#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 JAAR For MndCnt=-12:1:-1 Do . Do GET(MndCnt) Quit ControleEerstFSCIngeboekt Set PRNr="" For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Set VolgNr="" . Quit:$P(^KPR(PRNr,0),"\",3)'?4.8N . Kill arHist . For Set VolgNr=$O(^PRHIST(PRNr,VolgNr)) Quit:VolgNr="" Do . . Set Rec=^PRHIST(PRNr,VolgNr) . . Set Datum=+$P(Rec,D,1) . . Set ClaimTransactie=$P($P(Rec,D,17),";") . . Set ClaimGewicht=$P($P(Rec,D,17),";",2) . . Set:(ClaimTransactie="") ClaimTransactie="GEEN" . . Quit:ClaimTransactie="GEEN" . . Set Actie=$P(Rec,D,4) . . Quit:Actie'="U" . . Set ClaimInboeking=$$ZoekFSCIngeboekt(PRNr,VolgNr,Rec) . . Set:(ClaimInboeking="") ClaimInboeking="GEEN" . . Quit:ClaimInboeking'="GEEN" . . Write PRNr," ",$$$PRGet($$$KortTekst)," ","^PRHIST(",PRNr,",",VolgNr-5,":",VolgNr+5,")",! . . Set $P(^PRHIST(PRNr,VolgNr),D,18)="geen" Quit ZoekFSCIngeboekt(PRNr,VolgNr,RecOrig) New Rec,ClaimTransactie,Found Set Found=0 Set ClaimTransactie="" For Set VolgNr=$O(^PRHIST(PRNr,VolgNr),-1) Quit:VolgNr="" Do Quit:Found . Set Rec=^PRHIST(PRNr,VolgNr) . Set Actie=$P(Rec,D,4) . If Actie="I" Do . . If $P(Rec,"\",18)'="" Do ;HoutCertificaatClaim . . . Set ClaimTransactie=$P(Rec,"\",18) . . Else Do . . . Set ClaimTransactie=$P($P(Rec,"\",17),";") . . Set Found=1 Quit ClaimTransactie ControleFSC Quit ;Kill ^pvPRHIST Set PRNr="" For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . 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 ClaimTransactie=$P($P(Rec,D,17),";") . . Set ClaimGewicht=$P($P(Rec,D,17),";",2) . . Set:(ClaimTransactie="") ClaimTransactie="GEEN" . . Quit:$ZCVT(ClaimTransactie,"U")="GEEN" . . Set Actie=$P(Rec,D,4) . . Quit:Actie'="U" . . Quit:'$$NotFSCInFactuur(PRNr,Rec) . . Write PRNr," ",$$$PRGet($$$KortTekst)," ",$P(Rec,"\",10)," ",$P(Rec,"\",7)," ",$P($P(Rec,D,17),";"),! . . Set ^pvPRHIST(PRNr,VolgNr)=^PRHIST(PRNr,VolgNr) . . Set $P(^PRHIST(PRNr,VolgNr),D,17)="GEEN;"_ClaimGewicht Quit NotFSCInFactuur(PRNr, Rec) Quit:$P(Rec,"\",4)'="U" 0 ; Actie Set FAKNr=$P(Rec,"\",10) Quit:'FAKNr 0 Quit:'$D(^KFA("F",FAKNr)) 0 Set BonNr=$P(Rec,"\",7) Set Result="" ; normaal is het juist Set LijnNr="" For Set LijnNr=$O(^KFA("F",FAKNr,"U"_BonNr,LijnNr)) Quit:LijnNr="" Do Quit:Result'="" . Quit:$P($G(^KFA("F",FAKNr,"U"_BonNr,LijnNr)),"\",2)'=PRNr . Set ClaimTransactie=$P($P($G(^KFA("F",FAKNr,"U"_BonNr,LijnNr)),"\",48),";") . Set Result=(ClaimTransactie="")||($zcvt(ClaimTransactie,"U")="GEEN") ; overrule Quit Result 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^vhLib.DataTypes($H,"M",$G(Delta,-1)) Set:$G(Periode)>1 MndBegin=$$CALCDATE^vhLib.DataTypes(Maand,"M",-(Periode-1),"FD") Set:$G(Periode)'>1 MndBegin=$$CALCDATE^vhLib.DataTypes(Maand,"M","FD") Set MndEnd=$$CALCDATE^vhLib.DataTypes(Maand,"M","LD") ;For Vorig=1:1:8 Do ;. Set MndBegin=$$CALCDATE^vhLib.DataTypes(Maand,"M",-Vorig,"FD") ;. Set MndEnd=$$CALCDATE^vhLib.DataTypes(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^vhLib.DataTypes(MndBegin,"DM4") Set:Periode'=$$EXTDATE^vhLib.DataTypes(MndEnd,"DM4") Periode=Periode_" "_$$EXTDATE^vhLib.DataTypes(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;ClaimTransactie;ClaimGewicht*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) . Quit:AnRek="0109" ; Revego is NIET IC in de SWS - PV 09/03/23 . Set Kost=$$KOST(PRNr,GenTyp) . Set (ClaimTransactie,Actie)="" . For Set ClaimTransactie=$O(arHist(ClaimTransactie)) Quit:ClaimTransactie="" Do . . Set ClaimOms=##class(DOM.PM.HoutCertificaatService).%New().GeefHoutCertificaat(ClaimTransactie).GeefOmschrijving() . . For Set Actie=$O(arHist(ClaimTransactie,Actie)) Quit:Actie="" Do . . . Set Qty=$LG(arHist(ClaimTransactie,Actie),1) . . . Set ClaimGewicht=$LG(arHist(ClaimTransactie,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),$$$ExcelNum(Qty) ; Aantal . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,1),0,2)) ; Kost - Huidige prijs CiffPPL . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,2),0,2)) ; Kost - Schaduwprijzen met huidige bouwstenen . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,3),0,2)) ; Kost - Scaduwprijzen met schaduwbouwstenen . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,1),0,2)*Qty) ; . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,2),0,2)*Qty) ; . . . Write $C(9),$$$ExcelNum($J($P(Kost,D,3),0,2)*Qty) ; . . . Write $C(9),ClaimOms,$C(9),$$$ExcelNum(ClaimGewicht/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 (KostNN,KostSN,KostSS)=$$GetOrOld^PRODUKT(PRNr,$$$CifPPLEUR) ; defaulting ;If $D(^PRBS("BS",PRNr)) Do . If (";TBX;"[(";"_$P(GenTyp,D)_";"))!(";DIV\POM;DIV\GRP;"[(";"_$P(GenTyp,D,1,2)_";")) Do . . Do CALCPRBS(PRNr,.Som,"N","N") . . Set KostNN=$P(Som,"\")*(1+($P(RecJ,D,21)/100)) . Do CALCPRBS(PRNr,.Som,"S","N") . Set KostSN=$P(Som,"\")*(1+($P(RecJ,D,21)/100)) . Do CALCPRBS(PRNr,.Som,"S","S") . Set KostSS=$P(Som,"\")*(1+($P(RecJ,D,21)/100)) Quit KostNN_D_KostSN_D_KostSS CALCPRBS(PRNr,Som,HFPrijsNoSa,BouwsteenNoSa) Set GlobRef=$NA(^PRBS($S(($G(BouwsteenNoSa)="S")&&($D(^PRBS("BSS",PRNr))):"BSS",1:"BS"),PRNr)) If '$$LOCKW^vhLock("NX",GlobRef) Do Quit . Set $P(Som,D,7)="ERROR" Do CALCREF^PRBS(.Som,GlobRef,"","","",$G(HFPrijsNoSa,"N")) Lock -@GlobRef Quit QTYHIST(PRNr,MndBegin,MndEnd,arHist,HistActie) ;arHist via .Local, opbouw : arHist(ClaimTransactie,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) . If $P(Rec,"\",18)'="" Do ;HoutCertificaatClaim . . Set ClaimTransactie=$P(Rec,"\",18) . . Set ClaimProduct=$P($P(Rec,"\",17),";") . Else Do . . Set ClaimTransactie=$P($P(Rec,"\",17),";") . . Set ClaimProduct=$P($P(Rec,"\",17),";") . Set ClaimGewicht=$P($P(Rec,D,17),";",2) . Set:(ClaimTransactie="") ClaimTransactie="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(ClaimTransactie,Actie)) . . Set Qty=$P(Rec,D,2) . . Set:Actie="U" Qty=-Qty,ClaimGewicht=-ClaimGewicht . . Set $li(lbHist,1)=$LG(lbHist,1)+Qty . . Do:'ClaimGewicht ##class(DOM.PM.HoutCertificaatService).%New().CodeAndGewicht(PRNr,Qty,.ClaimTransactieCalculated,.ClaimGewicht) . . Set $li(lbHist,2)=$LG(lbHist,2)+ClaimGewicht ; gewicht in gr -> kg . . Set arHist(ClaimTransactie,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^vhLib.DataTypes(MndBegin,"DM4") Set:Periode'=$$EXTDATE^vhLib.DataTypes(MndEnd,"DM4") Periode=Periode_" "_$$EXTDATE^vhLib.DataTypes(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;ClaimTransactie;ClaimGewicht*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=$$GetOrOld^PRODUKT(PRNr,$$$CifPPLEUR) . Set (GenTyp,ClaimTransactie)="" . For Set GenTyp=$O(arHist(GenTyp)) Quit:GenTyp="" Do . . Set AnRek=$$AnalytischeRekening(GenTyp) . . Quit:AnRek="0109" ; Revego is NIET IC in de SWS - PV 09/03/23 . . Set AnOms=$$AnalytischeOmschrijving(AnRek) . . For Set ClaimTransactie=$O(arHist(GenTyp,ClaimTransactie)) Quit:ClaimTransactie="" Do . . . Set ClaimOms=##class(DOM.PM.HoutCertificaatService).%New().GeefHoutCertificaat(ClaimTransactie).GeefOmschrijving() . . . Set Qty=$LG(arHist(GenTyp,ClaimTransactie),1) . . . Set ClaimGewicht=$LG(arHist(GenTyp,ClaimTransactie),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),ClaimOms,$C(9),$$$ExcelNum(-ClaimGewicht/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" . If $P(Rec,"\",18)'="" Do ;HoutCertificaatClaim . . Set ClaimTransactie=$P(Rec,"\",18) . . Set ClaimProduct=$P($P(Rec,"\",17),";") . Else Do . . Set ClaimTransactie=$P($P(Rec,"\",17),";") . . Set ClaimProduct=$P($P(Rec,"\",17),";") . Set ClaimGewicht=$P($P(Rec,D,17),";",2) . Set:(ClaimTransactie="") ClaimTransactie="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,ClaimTransactie)) . Set $li(lbHist,1)=$LG(lbHist,1)-$P(Rec,D,2) ; het aantal in PRHIST is negatief . Do:'ClaimGewicht ##class(DOM.PM.HoutCertificaatService).%New().CodeAndGewicht(PRNr,-$P(Rec,D,2),.ClaimTransactieCalculated,.ClaimGewicht) . Set $li(lbHist,2)=$LG(lbHist,2)+ClaimGewicht . Set arHist(GenTyp,ClaimTransactie)=lbHist Quit