#include Prod.Product RPLSCHA2 ;Raadplegen Schaduw prijsvergelijk EXPORT [ 11/08/2003 8:27 PM ] OVERZ(Begin, Einde,SchMarge) New KLNr,Dev,PRNr Set Dev=$$OPEN^vhDEV("","PRIJSVGL.txt","W") Use Dev Set:'$L($G(Begin)) Begin=$$EXTDATE^vhLib.DataTypes($P(^RPLSCHAD,"\",3),"DM4")_" " Set:'$L($G(Begin)) Einde=$$EXTDATE^vhLib.DataTypes($P(^RPLSCHAD,"\",4),"DM4")_" " Set:'$L($G(Begin)) Begin=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-12),"DM4")_" " Set:'$L($G(Einde)) Einde=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-1),"DM4")_" " Write $TR("KLNr;KLNm;Regio;Codex;Huid Omz;Schad Omz"_$S($G(SchMarge)="M":";Huid Mar;Schad Mar",1:""),";",$C(9)),! Set KLNr=0 For Set KLNr=$O(^KSTKL(KLNr)) Quit:KLNr="" Do KLANT(KLNr,Begin,Einde) Close:0'[Dev Dev Quit DETAIL(KLNr,Begin,Einde,SchMarge) New Dev,PRNr Set:'$G(KLNr) KLNr=$$SELECT^KLANT6() Quit:'KLNr Set Dev=0 Set Dev=$$OPEN^vhDEV("","PRIJSVGL"_KLNr_".txt","W") Use Dev Set:'$L($G(Begin)) Begin=$$EXTDATE^vhLib.DataTypes($P(^RPLSCHAD,"\",3),"DM4")_" " Set:'$L($G(Begin)) Einde=$$EXTDATE^vhLib.DataTypes($P(^RPLSCHAD,"\",4),"DM4")_" " Set:'$L($G(Begin)) Begin=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-12),"DM4")_" " Set:'$L($G(Einde)) Einde=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-1),"DM4")_" " Write $TR("SortKey;Identnr;ProdukNaam;KlantRef;Qty;Huid Prijs;GO;Munt;Shad Prijs;GO;Munt;HuidOmz;Schad Omz"_$S($G(SchMarge)="M":";HuidMar;Schad Mar",1:""),";",$C(9)),! Set PRNr=0 For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do PRODDTL(KLNr,PRNr,Begin,Einde) Close:0'[Dev Dev Quit KLANT(KLNr,Begin,Einde) New MargeS,MargeN,OmzetS,OmzetN,PRNr,KLId,Regio,Codex Quit:'$D(^KK1(KLNr)) Set (MargeS,MargeN,OmzetS,OmzetN)=0 Set PRNr=0 For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do PROD(KLNr,PRNr,Begin,Einde) Quit:MargeS+MargeN+OmzetS+OmzetN=0 Set KLId=^KK1(KLNr) Set KLNm=$P(^KKL(KLId,0),D,2) Set Regio=$P(^KKL(KLId,0),D,20) Set Codex=$P(^KKL(KLId,2),D,3)_$S($D(^KLPUTZ("N",KLNr)):"+",1:"") Write KLNr,$C(9),KLNm,$C(9),Regio,$C(9),Codex,$C(9),$TR($J(OmzetN,0,2),".",","),$C(9),$TR($J(OmzetS,0,2),".",",") Write:$G(SchMarge)="M" $C(9),$TR($J(MargeN,0,2),".",","),$C(9),$TR($J(MargeS,0,2),".",",") Write ! Quit PROD(KLNr,PRNr,Begin,Einde) New AKP,VKP,Prijs,Qty Set Qty=$$GetQty(KLNr,PRNr,Begin,Einde) Quit:'Qty ; Normaal Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr) Set VKP=$P(Prijs,D,14) ;$P(Prijs,D,1)/$S($P(Prijs,D,3)="H":100,1:1)*$P(Prijs,D,9) Set AKP=$P(Prijs,D,13) Set OmzN=VKP*Qty Set MargN=VKP-AKP*Qty ; Schaduw Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr,"S") Set VKP=$P(Prijs,D,14) ;$P(Prijs,D,1)/$S($P(Prijs,D,3)="H":100,1:1)*$P(Prijs,D,9) Set AKP=$P(Prijs,D,13) Set OmzS=VKP*Qty Set MargS=VKP-AKP*Qty ; Cumuleren Set OmzetN=OmzetN+OmzN Set MargeN=MargeN+MargN Set OmzetS=OmzetS+OmzS Set MargeS=MargeS+MargS Quit PRODDTL(KLNr,PRNr,Begin,Einde,GlobRef) New Qty,KortT,IDNr,SortKey,KLRef,VKP,AKP,OmzN,OmzS,MargN,MargS,PrijsN,PrijsS Set Qty=$$GetQty(KLNr,PRNr,Begin,Einde) Quit:'Qty Set KortT=$P(^KPR(PRNr,0),D,1) Set IDNr=$P(^KPR(PRNr,2),D,25) Set SortKey=$$SORTKEY^PRODUKT(PRNr) Set KLRef=$$DISP^PAKKET(KLNr,PRNr) ; Normaal Set PrijsN=$$KLANTPR^KPRIJS(KLNr,PRNr) Set VKP=$P(PrijsN,D,14) ;$P(PrijsN,D,1)/$S($P(PrijsN,D,3)="H":100,1:1)*$P(PrijsN,D,9) ;W PRNr,!,PrijsN,! Set AKP=$P(PrijsN,D,13) Set OmzN=VKP*Qty Set MargN=VKP-AKP*Qty ; Schaduw Set PrijsS=$$KLANTPR^KPRIJS(KLNr,PRNr,"S") ;W PrijsS,! Set VKP=$P(PrijsS,D,14) ;$P(PrijsS,D,1)/$S($P(PrijsS,D,3)="H":100,1:1)*$P(PrijsS,D,9) Set AKP=$P(PrijsS,D,13) Set OmzS=VKP*Qty Set MargS=VKP-AKP*Qty If $G(GlobRef)'="" Do . Set List=$LB(PRNr,KortT,Qty) . Set List=List_$LB($P(PrijsN,D,1),$S($P(PrijsN,D,3)="H":"%",1:""),$S($P(PrijsN,D,2)="EUR":"",1:$P(PrijsN,D,2))) . Set List=List_$LB($P(PrijsS,D,1),$S($P(PrijsS,D,3)="H":"%",1:""),$S($P(PrijsS,D,2)="EUR":"",1:$P(PrijsS,D,2))) . Set List=List_$LB(+$J(OmzN,0,2),+$J(OmzS,0,2)) . Set List=List_$LB(+$J(MargN,0,2),+$J(MargS,0,2)) . Set @GlobRef@(SortKey)=List Else Do . Write SortKey,$C(9),IDNr,$C(9),KortT,$C(9),KLRef,$C(9),Qty,$C(9) . Write $TR($P(PrijsN,D),".",","),$C(9),$S($P(PrijsN,D,3)="H":"%",1:""),$C(9),$S($P(PrijsN,D,2)="EUR":"",1:$P(PrijsN,D,2)),$C(9) . Write $TR($P(PrijsS,D),".",","),$C(9),$S($P(PrijsS,D,3)="H":"%",1:""),$C(9),$S($P(PrijsS,D,2)="EUR":"",1:$P(PrijsS,D,2)),$C(9) . Write $TR($J(OmzN,0,2),".",","),$C(9),$TR($J(OmzS,0,2),".",",") . Write:$G(SchMarge)="M" $C(9),$TR($J(MargN,0,2),".",","),$C(9),$TR($J(MargS,0,2),".",",") . Write ! Quit GetQty(KLNr,PRNr,Begin,Einde) New Qty,SRec Quit:'$D(^KPR(PRNr)) 0 Quit:$$$PRGet($$$NONAktief) 0 ; Non Aktief Quit:##class(BL.Flow.Proxy.pxPrijsLijst).CheckProd2009(KLNr,PRNr)=-1 0 ; Niet opnemen Set SRec=$G(^KSTKL(KLNr,PRNr,0)) ;w SRec,! Quit:SRec="" 0 Quit:$P(SRec,D,8) 0 ; Verwijderd uit prijsvgl. Set Qty=$P(SRec,D,9) Set:'Qty Qty=$$KLANT^STAT(KLNr,PRNr,Begin,Einde,1) Quit Qty