PVHISTSM ;Historiek [ 11/08/2003 8:27 PM ] K Select S Select="" S Select("GROEP")="L" ; per maand S Select("MODE")="M" ; manuele lijnen S Select("BEGIN")=+$H ;$$CALCDATE^vhDTyp($H,"M",-15) ;S Select("CB")="CB^PVHISTSM" S Select("KIND")="KM" ;S Select("PRNR",1162)="" Do VERWERK(.Select) Q CB(PRNr,Rec) ; Rec via .Local doorgeven Quit:$D(^PRLINK("IKM",PRNr)) $$CB^PVHISTSM($O(^PRLINK("IKM",PRNr,"")),"") Set Key=$O(^KPR(PRNr,"I")) Set Key=$P(^KPR(PRNr,Key),D,1) Quit Key["OL" ; Orgalux of kind van orgalux VERWERK(Select) ;Select doorgeven via .Local ; Select bevat : ; Select("PRNR",PRNr) : Lijst met productnummers ; Select("KLAS") : Klassificatie (HG,Grp of SubGroep) ; Select("LEVNR") : Leverancier ; Select("KTBEGIN") : Korttext begint ; Select("KTPATTERN") : Korttext bevat pattern (MUMPS pattern) ; Select("MODE") : Mulptiple met "A;V;M" ; Alleen bij Groep="L" ; Select("BEGIN") : Datum begin ; Select("EIND") : Datum start ; Select("GROEP") : L=Per Lijn, D=Per Dag, W=PerWeek, M=PerWeek, J = PerJaar, O = Overzicht ; Select("INCLUDEEMPTY") : 1=Lege lijnen opnemen in lijst, indien GROEP'="L" ; Select("STOCK") : Multiple "S" : Stock, "N" : Niet stock ; Select("KIND") : Multiple K : Kinder, M : Moeder ; Select("OPSLAG") : Multiple van defaultopslagzones ;Defaulting Set:'$G(Select("BEGIN")) Select("BEGIN")=$H-365 Set:'$G(Select("EIND")) Select("EIND")=$H+0 Set:$G(Select("GROEP"))="" Select("GROEP")="O" Set:$G(Select("STOCK"))="" Select("STOCK")="S;N" Set:$G(Select("KIND"))="" Select("KIND")="K" Set:$G(Select("OPSLAG"))="" Select("OPSLAG")="1;2;3;4" Set:$G(Select("MODE"))="" Select("MODE")="A;V;M" Set Select("INCLUDEEMPTY")=$G(Select("INCLUDEEMPTY")) If "WMJ"[Select("GROEP") Do .Set Select("BEGIN")=$$CALCDATE^vhDTyp(Select("BEGIN"),Select("GROEP"),"FD") .Set Select("EIND")=$$CALCDATE^vhDTyp(Select("EIND"),Select("GROEP"),"LD") ;Set Dat=$$EXTDATE^vhDTyp(Select("BEGIN"),"DKN4") ;Set Select("DATBEGIN")=$E(Dat,5,8)_$E(Dat,3,4)_$E(Dat,1,2) ;Set Dat=$$EXTDATE^vhDTyp(Select("EIND"),"DKN4") ;Set Select("DATEIND")=$E(Dat,5,8)_$E(Dat,3,4)_$E(Dat,1,2) Set FP=2401 Write @F,@F2,"Product : " Set Dev=0 Set Dev=$$OPEN^vhDEV(,"HISTORY.TXT","W") Use Dev Set %J=$$%J^vhRtn1() Write:Select("GROEP")="L" $TR("PRNr;IdentNr;Produktnaam;Klas;LEVNr;Stock;Datum;Bewegingstype;Qty;Waarde;Klant;KlantNaam;Type;Ref",";",$C(9)),! Write:Select("GROEP")'="L" $TR("PRNr;IdentNr;Produktnaam;Klas;LEVNr;Stock;Datum;Bewegingstype;Qty;Waarde;#Lijnen",";",$C(9)),! Set (DispCnt,FetchCnt)=0 Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do ;Quit:PRNr>2000 .Set DispCnt=DispCnt+1 .Quit:'$$CHECK(PRNr,.Select,.PRec) .Set FetchCnt=FetchCnt+1 .If FetchCnt#100=0 Do ..Use 0 ..Set FP=2413 Write @F,FetchCnt,"/",DispCnt ..Use Dev .If Select("GROEP")="L" Do ..Do LIJN(PRNr,.Select,.PRec) .Else Do ..Do CUMUL(PRNr,.Select,.PRec) Close:0'[Dev Dev Quit CHECK(PRNr,Select,PRec) New Chk Set Chk=1 Do FETCHPR^UTILI(PRNr,"PRec") Quit:$P(PRec(1),D,25)=1 0 ; Geen Non akt Quit:Select("OPSLAG")'[$P(PRec(2),D,15) 0 ; Opslagzone If $D(Select("PRNR")) Quit:'$D(Select("PRNR",PRNr)) 0 If $L($G(Select("KLAS"))) Quit:$E($P(PRec("I"),D,3),1,$L(Select("KLAS")))'=Select("KLAS") 0 If $L($G(Select("LEVNR"))) Quit:Select("LEVNR")'=$P(PRec("J"),D) 0 If $L($G(Select("KTBEGIN"))) Quit:$E($P(PRec(0),D),1,$L(Select("KTBEGIN")))=Select("BEGIN") 0 If $L($G(Select("KTPATTERN"))) X "S Chk=$P(PRec(0),D)?"_Select("KTPATTERN") If Select("STOCK")'["S" Quit:$P(PRec(1),D,20) 0 If Select("STOCK")'["N" Quit:'$P(PRec(1),D,20) 0 If $D(Select("CB")) X "Set CBChk=$$"_Select("CB")_"(PRNr,.PRec)" Quit:'CBChk 0 ; Select("KIND") : Multiple K : Kinder, M : Moeder If Select("KIND")'["K" Quit:$D(^PRLINK("IKM",PRNr)) 0 If Select("KIND")'["M" Quit:$D(^PRLINK("D",PRNr)) 0 Quit Chk CUMUL(PRNr,Select,PRec) ;Begin,Einde : Formaat 'JJJJMMDD' ;Soort : 1 = Aankoop,2=Verkoop,3=Man. UIT,4=Man. IN New Key,I,Cumul Set Key="H" Kill Qty,Cnt Set Qty=0 Set Begin=Select("BEGIN") Set Einde=Select("EIND") Kill ^HULP(%J,"H") Set CiffPPL=$P(PRec("J"),D,23) ;w PRNr For Set Key=$O(^KPR(PRNr,Key)) Quit:$E(Key)'="H" Do .Set HRec=^(Key) .For Set Node=$P(HRec,D),HRec=$P(HRec,D,2,999) Do:Node'="" Quit:HRec="" ..Set Code=$E("AVMM",$E(Node,7)) ..Set Dat=$E(Node,1,6) ..Set Dat=$$INTDATE^vhDTyp($E(Dat,5,6)_"."_$E(Dat,3,4)_"."_$E(Dat,1,2),"DK") ..Quit:+Dat<+Begin ..Quit:+Dat>+Einde ..;Write Node," ",Dat," ",Begin," ",Einde,! ..Set GrpDat=$S(Select("GROEP")="O":"*",1:$$CALCDATE^vhDTyp(Dat,Select("GROEP"),"FD")) ..Set Qty=$S($E(Node,7)=3!($E(Node,7)=1):1,1:-1)*$E($P(Node,"#"),8,99) ..Set CRec=$G(^HULP(%J,"H",GrpDat,Code)) ..Set $P(CRec,D,1)=$P(CRec,D,1)+1 ..Set $P(CRec,D,2)=$P(CRec,D,2)+Qty ..Set $P(CRec,D,3)=$P(CRec,D,3)+(Qty*CiffPPL) ..Set ^HULP(%J,"H",GrpDat,Code)=CRec Quit:'Select("INCLUDEEMPTY")&'$D(^HULP(%J,"H")) ;Write Set (Dat,Code)="" For Set Dat=$O(^HULP(%J,"H",Dat)) Quit:Dat="" Do .For Set Code=$O(^HULP(%J,"H",Dat,Code)) Quit:Code="" Do ..If $L($G(Select("MODE"))),Select("MODE")'[Code Quit ; Beperking tot de gewenste mode ..Set CRec=^HULP(%J,"H",Dat,Code) ..Write PRNr,$C(9),$P(PRec(2),D,25),$C(9),$P(PRec(0),D),$C(9),$P(PRec("I"),D,3),$C(9),$P(PRec("J"),D),$C(9),$S($P(PRec(1),D,20):"S",1:"N"),$C(9) ..Write $S(Dat="*":"",1:$TR($$EXTDATE^vhDTyp(Dat,"DKP"),".","/")),$C(9),Code,$C(9),$P(CRec,D,2),$C(9),$TR($J($P(CRec,D,3),0,2),".",","),$C(9),$P(CRec,D),! Quit LIJN(PRNr,Select,PRec) ;Begin,Einde : Formaat 'JJJJMMDD' ;Soort : 1 = Aankoop,2=Verkoop,3=Man. UIT,4=Man. IN New Key,I,Cumul Set Key="H" Kill Qty,Cnt Set Qty=0 Set Begin=Select("BEGIN") Set Einde=Select("EIND") Kill ^HULP(%J,"H") Set CiffPPL=$P(PRec("J"),D,23) For Set Key=$O(^KPR(PRNr,Key)) Quit:$E(Key)'="H" Do .Set HRec=^(Key) .For Set Node=$P(HRec,D),HRec=$P(HRec,D,2,999) Do:Node'="" Quit:HRec="" ..Set Code=$E("AVMM",$E(Node,7)) ..Quit:$G(Select("MODE"))'[Code ; A;V;M ..Set Dat=$E(Node,1,6) ..Set Dat=$$INTDATE^vhDTyp($E(Dat,5,6)_"."_$E(Dat,3,4)_"."_$E(Dat,1,2),"DK") ..Quit:+Dat<+Begin ..Quit:+Dat>+Einde ..Set Qty=$S($E(Node,7)=3!($E(Node,7)=1):1,1:-1)*$E($P(Node,"#"),8,99) ..Set Prijs=Qty*CiffPPL ..Set Ref=$P(Node,"#",3) ..Set FlowTyp="M" ..Set (KLNr,KLNm)="" ..If Ref?6N,$D(^KU1(Ref,"F")) Do ...Set Rec=^("F"),FlowTyp="L" ; Levering ...Set:$L($P(Rec,D,2)) Ref=$P(Rec,D,2),FlowTyp="F" ; Factuur ...Set:$L($P(Rec,D,3)) FlowTyp=$P(Rec,D,3) ; Proforma ...Set KLNr=+$P(Rec,D,1) ...Set KLId=$G(^KK1(KLNr)) ...Set KLNm=$S($L(KLId):$P(^KKL(KLId,0),D,2),1:"") ..Else If Ref?6N Do ; Storno of toevering ...Set FlowTyp=$S(Ref>300000:"S",1:"T") ...Set:FlowTyp="S" Ref="STORNO"_Ref ..Write PRNr,$C(9),$P(PRec(2),D,25),$C(9),$P(PRec(0),D),$C(9),$P(PRec("I"),D,3),$C(9),$P(PRec("J"),D,1),$C(9),$S($P(PRec(1),D,20):"S",1:"N"),$C(9) ..Write $TR($$EXTDATE^vhDTyp(Dat,"DKP"),".","/"),$C(9),Code,$C(9),Qty,$C(9),$TR(Prijs,".",","),$C(9),KLNr,$C(9),KLNm,$C(9),FlowTyp,$C(9),Ref,! Quit