#include Prod.Product #include vhLib.Macro #include BL.Derde.LevSpecifiek HALFAK ;HALUX fakturatie via PRHIST [ 11/13/2003 12:48 PM ] Do GET(-1) Quit NU Do GET(0) Quit AnalytischeRekening(GenTyp) { Set GenTyp=$P(GenTyp,"\",1,2) Set:GenTyp="" GenTyp="\" Set AnalRek=$P($G(^RES("HAD","PI","GENTYP","D",GenTyp)),"`",6) Set:AnalRek="" AnalRek="0199" Quit AnalRek } AnalytischeOmschrijving(AnalRek) { Quit $P($G(^RES("HAD","PI","ANALREK","D",AnalRek_" "),"`Not Found"),"`",2) } GET(Delta,Periode) ;Write " ********* Opgelet : van 30/6/2004 tot 31/7/2004 ten gevolge van inventaris *********" Set Maand=$$CALCDATE^vhDTyp($H,"M",$G(Delta,-1)) Set:$G(Periode)>1 MndBegin=$$CALCDATE^vhDTyp(Maand,"M",-(Periode-1),"FD") Set:$G(Periode)'>1 MndBegin=$$CALCDATE^vhDTyp(Maand,"M","FD") Set MndEnd=$$CALCDATE^vhDTyp(Maand,"M","LD") ;For Vorig=1:1:8 Do ;. Set MndBegin=$$CALCDATE^vhDTyp(Maand,"M",-Vorig,"FD") ;. Set MndEnd=$$CALCDATE^vhDTyp(Maand,"M",-Vorig,"LD") Write !,"Faktuur van eindproducten van HALUX aan VAN HOECKE" Do HALUX(MndBegin,MndEnd) Write !,"Faktuur van halffabrikaten van VAN HOECKE aan HALUX" Do VANHOECKE(MndBegin,MndEnd) Quit #define Productie "I" #define HalfFabr "U" HALUX(MndBegin,MndEnd) ; Faktuur van eindproducten van HALUX aan VAN HOECKE New Periode Set Dev=0 Set Periode=$$EXTDATE^vhDTyp(MndBegin,"DM4") Set:Periode'=$$EXTDATE^vhDTyp(MndEnd,"DM4") Periode=Periode_" "_$$EXTDATE^vhDTyp(MndEnd,"DM4") Set Dev=$$OPEN^vhDEV(,"Faktuur eindproducten HALUX aan VANHOECKE "_$TR(Periode,".-")_".txt","W","T") Use Dev Write $TR("Actie;GenTyp;SubGT;PRNr;Product;Aantal;CifPPL;Kost;Extra;CifPPL*Qty;Kost*Qty;Kost+Extra*Qty;FSCCode;FSCGewicht*Qty;AnRek;AnOms",";",$C(9)),! Set PRNr="" For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Kill arHist . If $D(^KPR(PRNr,"J6332")) Do QTYHIST(PRNr,MndBegin,MndEnd,.arHist,$$$Productie) ; geproduceerde producten . If $$$PRGet($$$LinkType)?1(1"HH",1"HHS") Do QTYHIST(PRNr,MndBegin,MndEnd,.arHist,$$$HalfFabr) ; Halux halffabrikaten die toch verkocht worden . Quit:'$D(arHist) . Set KT=$P(^KPR(PRNr,0),D,1) . Set GenTyp=$$GENTYP^HAD(PRNr) . Set AnRek=$$AnalytischeRekening(GenTyp) . Set Kost=$$KOST(PRNr,GenTyp) . Set (FSCCode,Actie)="" . For Set FSCCode=$O(arHist(FSCCode)) Quit:FSCCode="" Do . . Set FSCOms=$P($G(^RES("PRODUKT","PI","HoutCertificaat","D",FSCCode)),"`",2) . . For Set Actie=$O(arHist(FSCCode,Actie)) Quit:Actie="" Do . . . Set Qty=$LG(arHist(FSCCode,Actie),1) . . . Set FSCGewicht=$LG(arHist(FSCCode,Actie),2) . . . Write Actie,$C(9),$P(GenTyp,D,1),$C(9),$P(GenTyp,D,2),$C(9),PRNr,$C(9),$P(^KPR(PRNr,0),D) . . . Write $C(9),Qty ; Aantal . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,1),0,2)) ; CiffPPL . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,2),0,2)) ; Kost (meerwaarde of CiffPPL) . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,3),0,2)) ; Kost (meerwaarde of CiffPPL) . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,1),0,2)*Qty) ; CiffPPL . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,2),0,2)*Qty) ; Kost*Qty . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,2)+$P(Kost,D,3),0,2)*Qty) ; Kost*Qty . . . Write $C(9),FSCOms,$C(9),$$$ExcelNum(FSCGewicht/1000) ; gewicht in gr -> kg . . . Write $C(9),AnRek,$C(9),$$AnalytischeOmschrijving(AnRek) . . . Write ! Do CLOSE^vhDEV(Dev) Quit KOST(PRNr,GenTyp) New Kost,Som,CifPPL,Extra Set Key=$O(^KPR(PRNr,"J")) Set RecJ=^KPR(PRNr,Key) Set (CifPPL,Kost)=$P(RecJ,D,23) ;If "TBX\PRO;TBX\STD;TBX\PR+;TBX\BBX"[$P(GenTyp,"\",1,2)&&($TR(GenTyp,"\")'="") Do ;. Set CifOldPerc=+$$$PRGet($$$CifPerc) ;. Quit:'CifOldPerc ;. Set CifNewPerc=$S(+CifOldPerc=1:2,CifOldPerc=2:4,1:CifOldPerc) ;. Set Kost=CifPPL/(1+(CifOldPerc/100))*(1+(CifNewPerc/100)) Set Extra=0 If (";TBX;"[(";"_$P(GenTyp,D)_";"))!(";DIV\POM;DIV\GRP;"[(";"_$P(GenTyp,D,1,2)_";")) Do . Do CALC^PRBS(PRNr,.Som) . Set Kost=$G(Som("T"))+$G(Som("S")) . Set Extra=$P(RecJ,D,19)*($P(RecJ,D,21)/100) Quit CifPPL_D_Kost_D_Extra QTYHIST(PRNr,MndBegin,MndEnd,arHist,HistActie) ;arHist via .Local, opbouw : arHist(FSCCode,Actie)=Qty New VolgNr,Rec Set VolgNr="" Kill arHist For Set VolgNr=$O(^PRHIST(PRNr,VolgNr)) Quit:VolgNr="" Do . Set Rec=^PRHIST(PRNr,VolgNr) . Set Datum=+$P(Rec,D,1) . Set FSCCode=$P($P(Rec,D,17),";") . Set FSCGewicht=$P($P(Rec,D,17),";",2) . Set:(FSCCode="") FSCCode="GEEN" . Quit:DatumMndEnd . Set Actie=$P(Rec,D,4) . If ((HistActie="I")&&(Actie?1(1"M",1"N",1"A",1"J",1"I"))) || ((HistActie="U")&&(Actie?1(1"U"))&&'$$IsLeverancier(Actie,$P(Rec,D,6))) Do . . Set lbHist=$G(arHist(FSCCode,Actie)) . . Set Qty=$P(Rec,D,2) . . Set:Actie="U" Qty=-Qty,FSCGewicht=-FSCGewicht . . Set $li(lbHist,1)=$LG(lbHist,1)+Qty . . Do:'FSCGewicht ##class(DOM.PR.FSC).CodeAndGewicht(PRNr,Qty,.FSCCodeCalculated,.FSCGewicht) . . Set $li(lbHist,2)=$LG(lbHist,2)+FSCGewicht ; gewicht in gr -> kg . . Set arHist(FSCCode,Actie)=lbHist Quit IsLeverancier(Actie,DerdeNr) If (Actie="I")||(Actie="J") Quit 1 ; Inkomende goederen, dus leverancier Quit:'DerdeNr 0 ; geen klant/leverancier ingevuld Quit $$UPCASE^vhRtn1($$GetActiviteit^KLANT5(DerdeNr))="LEVERANCIER" VANHOECKE(MndBegin,MndEnd) ; Faktuur van HalfFabrikaten van VAN HOECKE aan HALUX New Periode Set Dev=0 Set Periode=$$EXTDATE^vhDTyp(MndBegin,"DM4") Set:Periode'=$$EXTDATE^vhDTyp(MndEnd,"DM4") Periode=Periode_" "_$$EXTDATE^vhDTyp(MndEnd,"DM4") Set Dev=$$OPEN^vhDEV(,"Faktuur halffabrikaten VANHOECKE aan HALUX "_$TR(Periode,".-")_".txt","W","T") Use Dev Write $TR("Actie;GenTyp;SubGT;PRNr;Product;Aantal;CifPPL;CifPPL*Qty;FSCCode;FSCGewicht*Qty;AnRek;AnOms",";",$C(9)),! Set PRNr="" For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Quit:$E($$$PRGet($$$LinkType),1,2)="HH" ; zonder "Halux halffabrikaat" (met of zonder stock), vermits deze door HALUX worden aangekocht . Do QTYHF(PRNr,MndBegin,MndEnd,.arHist) . Quit:'$D(arHist) . Set KT=$P(^KPR(PRNr,0),D,1) . Set CifPPL=$$CIFPPL(PRNr) . Set (GenTyp,FSCCode)="" . For Set GenTyp=$O(arHist(GenTyp)) Quit:GenTyp="" Do . . Set AnRek=$$AnalytischeRekening(GenTyp) . . Set AnOms=$$AnalytischeOmschrijving(AnRek) . . For Set FSCCode=$O(arHist(GenTyp,FSCCode)) Quit:FSCCode="" Do . . . Set FSCOms=$P($G(^RES("PRODUKT","PI","HoutCertificaat","D",FSCCode)),"`",2) . . . Set Qty=$LG(arHist(GenTyp,FSCCode),1) . . . Set FSCGewicht=$LG(arHist(GenTyp,FSCCode),2) . . . Write "H",$C(9),$P(GenTyp,"\",1),$C(9),$P(GenTyp,"\",2),$C(9),PRNr,$C(9),$P(^KPR(PRNr,0),D) . . . Write $C(9),$$$ExcelNum($J(Qty,0,3)) ; Aantal . . . Write $C(9),$$$ExcelNum($J(CifPPL,0,3)) ; CiffPPL . . . Write $C(9),$$$ExcelNum($J(CifPPL,0,3)*$J(Qty,0,3)) ; Kost . . . Write $C(9),FSCOms,$C(9),$$$ExcelNum(FSCGewicht/1000) . . . Write $C(9),AnRek,$C(9),AnOms . . . Write ! Do CLOSE^vhDEV(Dev) Quit CIFPPL(PRNr) New Key,RecJ,CifPPL Set Key=$O(^KPR(PRNr,"J")) Set RecJ=^KPR(PRNr,Key) Set (CifPPL)=$P(RecJ,D,23) Quit CifPPL QTYHF(PRNr,MndBegin,MndEnd,arHist) New VolgNr,Qty,Rec Set VolgNr="" Kill arHist For Set VolgNr=$O(^PRHIST(PRNr,VolgNr)) Quit:VolgNr="" Do . Set Rec=^PRHIST(PRNr,VolgNr) . Set Datum=+$P(Rec,D,1) . Quit:DatumMndEnd . Set Actie=$P(Rec,D,4) . Quit:Actie'="H" . Set FSCCode=$P($P(Rec,D,17),";") . Set FSCGewicht=$P($P(Rec,D,17),";",2) . Set:(FSCCode="") FSCCode="GEEN" . Set MPRNr=$P(Rec,D,15) . Quit:'MPRNr . Quit:'$D(^KPR(MPRNr,"J"_$$$LevHalux)) . Set GenTyp=$P($$GENTYP^HAD(MPRNr),"\",1,2) . Set:GenTyp="" GenTyp="\" . Set lbHist=$G(arHist(GenTyp,FSCCode)) . Set $li(lbHist,1)=$LG(lbHist,1)-$P(Rec,D,2) ; het aantal in PRHIST is negatief . Do:'FSCGewicht ##class(DOM.PR.FSC).CodeAndGewicht(PRNr,-$P(Rec,D,2),.FSCCodeCalculated,.FSCGewicht) . Set $li(lbHist,2)=$LG(lbHist,2)+FSCGewicht . Set arHist(GenTyp,FSCCode)=lbHist Quit