1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| ALTER PROCEDURE [dbo].[sp_MAJ_pa_pourcentage_pour_validation_ART]
@PA_OBJ_FAM_NO AS BIGINT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ART VARCHAR(16)
DECLARE @QTE_CALC REAL
DECLARE @QTE_AJUST REAL
DECLARE @QTE_FINALE REAL
DECLARE @QTE_FAM BIGINT
DECLARE @POURCENT_NEW REAL
DECLARE c_ajust_art CURSOR SCROLL FOR
SELECT rq_ooep_obj_validArt_qte_pr_ajust.pa_art_cod , tb_OOEP_OBJ_pourcent_art.pa_qte_art_calc, rq_ooep_obj_validArt_qte_pr_ajust.delta_article, tb_OOEP_OBJ_pourcent_art.pa_qte_fam
FROM rq_ooep_obj_validArt_qte_pr_ajust INNER JOIN
tb_OOEP_OBJ_pourcent_art ON rq_ooep_obj_validArt_qte_pr_ajust.pa_art_cod = tb_OOEP_OBJ_pourcent_art.pa_art_cod
WHERE tb_ooep_obj_pourcent_art.pa_obj_fam_no = @PA_OBJ_FAM_NO
FOR UPDATE OF tb_ooep_obj_pourcent_art.pa_qte_art_man, tb_ooep_obj_pourcent_art.pa_pourcentage_man
-- mise à jour des quantités d'articles.
-- La différence (delta) entre la quantité initiale de la famille et la quantité finale après modification de l'utilisateur
-- est répartie ou retranchée entre les différents articles de la famille qui n'ont pas été modifiés.
-- calcul et mise à jour du nouveau pourcnetage de répartition des articles par rapport au total de la famille
OPEN c_ajust_art
FETCH c_ajust_art INTO @ART, @QTE_CALC, @QTE_AJUST, @QTE_FAM
IF (@@FETCH_STATUS = 0)
BEGIN
FETCH FIRST FROM c_ajust_art INTO @ART, @QTE_CALC, @QTE_AJUST, @QTE_FAM
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @QTE_FINALE = @QTE_CALC+@QTE_AJUST -- calcul de la nouvelle qtt de l'article
SELECT @POURCENT_NEW = @QTE_FINALE*100/@QTE_FAM -- calcul du nouveau pourcentage de répartition
UPDATE tb_ooep_obj_pourcent_art -- mise à jour de la table SQL
SET pa_qte_art_man = @QTE_FINALE -- maj de la quantité
WHERE CURRENT OF c_ajust_art
-- UPDATE tb_ooep_obj_pourcent_art
-- SET pa_pourcentage_man = @POURCENT_NEW -- mise à jour du pourcentage
-- WHERE CURRENT OF c_ajust_art
FETCH NEXT FROM c_ajust_art INTO @ART, @QTE_CALC, @QTE_AJUST, @QTE_FAM
END
END
CLOSE c_ajust_art
DEALLOCATE c_ajust_art
END |
Partager