PRFUSIE3 ;Produkt Fusie van de afgeleide producten met de generische producten [ 12/27/2003 2:25 PM ] Kill Set Q="K" Do ^cA604 Set Max=500 Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set EndPRNr=$O(^KPR(""),-1)-50000 For Do Quit:'OneDone . Set OneDone=0 . Set Cnt=0 . Kill VanPRNr . Set MemGenPR="" . Set AfglPRNr=0 . ;Set OmzetMaand=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-24),"DM4")_" " . Set OfferteMnd="" . Set Stop="" . For Set AfglPRNr=$O(^KPR(AfglPRNr)) Quit:AfglPRNr="" Do Quit:AfglPRNr>EndPRNr .. Set GenPRNr=$P(^KPR(AfglPRNr,0),D,3) .. Quit:'GenPRNr ; Geen afgeleid product .. If MemGenPR?4.7N,GenPRNr'=MemGenPR Quit ; Niet de goede .. If '$D(^KPR(GenPRNr)) Write AfglPRNr," generisch product "_GenPRNr_" bestaat niet",! Quit .. Set Rede=$$CheckDelAfgeleid(AfglPRNr) .. Write:MemGenPR?4.7N AfglPRNr,"->",GenPRNr," ",$P(^KPR(GenPRNr,0),D,1)," ",Rede,! .. Quit:$L(Rede) .. Kill ^HULP(%J) .. Set MemGenPR=GenPRNr .. Set VanPRNr(AfglPRNr)="" .. Set Cnt=Cnt+1 .. If Cnt=Max Do ; Per max uitvoeren van de fusie ... Write "Druk ""-"" om te stoppen",! ... Do FUSIE(.VanPRNr,GenPRNr) ... Kill VanPRNr ... Set Cnt=0 ... Set OneDone=1 ... ... Read *K:1 ... If K=$A("-") Set Stop=1 . If Cnt Do ; De achtergebleven ook afwerken .. Do FUSIE(.VanPRNr,GenPRNr) .. Kill VanPRNr .. Set Cnt=0 .. Set OneDone=2 Kill ^HULP(%J) Quit DELMAATWERK Kill Set Q="K" Do ^cA604 Set Max=5000 Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set (Deleted,Count)=0 Set EndPRNr=$O(^KPR(""),-1)-500000 Set AfglPRNr=100 Set Stop=0 Set K="" Do . For Set AfglPRNr=$O(^KPR(AfglPRNr)) Quit:AfglPRNr="" Do Quit:AfglPRNr>EndPRNr Quit:Stop .. Set GenPRNr=$P(^KPR(AfglPRNr,0),D,3) .. Quit:'GenPRNr ; Geen afgeleid product .. Set Rede=$$CheckDelAfgeleid(AfglPRNr) .. Write:Rede'="" AfglPRNr,"->",GenPRNr," ",$P(^KPR(GenPRNr,0),D,1)," : ",Rede,! .. Set Count=Count+1 .. If Rede="" Do .. . Do DELETE^PRODUKT2(AfglPRNr) .. . Set Deleted=Deleted+1 .. If Count#100=0 Write AfglPRNr," : ",Deleted, " / ", Count,! Read *K:1 .. If K=$A("-") Set Stop=1 Quit CheckDelAfgeleid(PRNr,MaandenOmzet,DagenCreatieZndOmzet) Set Del="" ;Set GeldigDatum=$$CALCDATE^vhLib.DataTypes($H,"M",-$G(MaandenOmzet,25),"FD") Set GeldigDatum=$$INTDATE^vhLib.DataTypes("01/01/2018") ; Opstart AX ;Set:$$INTDATE^vhLib.DataTypes($P($G(^KSTPR(PRNr,0,0)),D))>GeldigDatum Del="O" ; Omzet recenter dan X maand Set HistKey=$O(^PRHIST(PRNr,""),-1) Set:(Del="")&&HistKey&&(+$P(^PRHIST(PRNr,HistKey),"\",1)>GeldigDatum) Del="H" ; Historiek recenter dan X maand Set Datum=+$P($P(^KPR(PRNr,2),D,17),"#",2) Set:(Del="")&&(Datum>($H-$G(DagenCreatieZndOmzet,200))) Del="N" ; Het product is te recent gecreeerd Set:Del="" Del=$$CHECKDEL^PRODUKT2(PRNr,"OFSTZWK") ; Indien leeg dan mag het verwijderd worden Quit Del FUSIE(VanPRNr,NaarPRNr) ; VanPRNr via .Local New VAN,NAAR,NoAsk,NoDel Write "FUSIE",! Lock +^KSTKL:5 Else Quit Lock +^KSTPR:5 Else Quit Lock +^KLKAN:5 Else Quit Lock +^KPR:5 Else Quit Lock +^KSPW:5 Else Quit If $G(VanPRNr)?4.7N Set VAN(VanPRNr)="" ; Produkt rechtstreeks Else Merge VAN=VanPRNr ; via lijst Set NAAR(NaarPRNr)="\1\1" Set NoAsk=1 Set NoDel=0 Set NoPakket=1 ;zw NAAR ;zw VAN r k Do FUSIE^PRFUSIE2 Lock Quit