#Include BL.Derde.KlantSpecifiek FLOWBON ;Bon [ 11/19/2003 4:52 PM ] ; New BONNr,KLNr,Input,Detail,DefLevT,PrCount,AD,ScrolBon,Help,KlMunt,IsHandel,ProfNr,AkpVkpVerlies,blVerzendWijze,blLeveringsTermijn,KlantObject Do INIT Do COMMAND Do RecuPak(BONNr) Quit ; COMMAND DO RESET^vhScherm For Do If Input="-" Do SORT(),CHKDEL(BONNr),AkpVkpVerlies^FLOW2("L",BONNr,.AkpVkpVerlies) Do:$G(ProfNr) RCP^EWBON(ProfNr),BON^KLACHT(KLNr,ProfNr) Quit .Set ScrolBon=1 .Do REFRESH .If USC=""!'Help Set FP=$P(UD,D,2)+1*100+1 Write @F,@F1 .Else Do HELP^FLOW .Set Help=1 .Set DL(2)="\[31~;SPEC" .If $L(Input) Set R=Input .Else Do SL^PROC .Set Input=R .If Input="COM" Do MENU .If Input="SPEC" Do SPEC .Kill A,B .Set UZ=^KUL(KLNr,"F",BONNr,0)-100 .If Input="." Do LINSERT("P") Set Help=K="-" Quit .If Input="T" Do LINSERT("T") Set Help=K="-" .If Input="M" Do LINSERT("M") Set Help=K="-" Quit .If Input="-" Quit .Do EXEC^vhMenu("FLOWBON",.Input) .If Input="HELP" Set USC=^KUL(0,"F","USC") .;If $L(Input)=1,"APW"[Input,$P(^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))),D,3) Do LMODIFY(Input) .If $L(Input)=1,"APW"[Input Do LMODIFY(Input) ; Test op PRNr weggehaald CW 16.06.10 .If Input="I" Do LINSERT("","B") .If Input="K" Do QKORT .If Input="N" Do RPLKL .If Input="D" Do RPLPR .If Input="R" Do SORT(),FETCHDET,WL^PROC .If Input="S" Set Input="-" Quit .If Input="V" Do LDELETE .If Input="X" Do DELETE Set Input=$S($G(K)="-":"",1:"-") Quit .If Input=">"!(Input="<") Do SWAP(Input) .If Input="RL" Do MLRECALC(KLNr,BONNr,Detail(@DL(1)@(6)),2) .If Input="RO" Do RECALC(BONNr,1) .If Input="PRINT" Do PRINT .Set Input="" Quit ; INSERT(Rec,Insert,OLNr,Show,Extern) ;Insert B=Before, A=After, E=End, R=Replace New R,PRNr,FromNr,ToNr,VerwType Set Extern=$G(Extern) Set R=^KUL(KLNr,"F",BONNr,1),VerwType=$P(R,D,29) For I=1:1:$L(VerwType) If $P(Rec,D,14)'[$E(VerwType,I) Set $P(Rec,D,14)=$P(Rec,D,14)_$E(VerwType,I) Set PRNr=$P(Rec,D,2) Set:PRNr $P(Rec,D,46)=$$RecentGekocht^STAT(KLNr,PRNr) Set OLNr=$G(OLNr),Show=$G(Show) If '$D(Detail),Show Set Insert="E" If $D(Detail),@DL(1)@(6)=$O(Detail(""),-1),Insert="A" Set Insert="E" If Insert="R" Do Quit .If 'OLNr Set OLNr=Detail(@DL(1)@(6)) .Do DELBON^FLOWBON3(KLNr,BONNr,OLNr),DELKUP^FLOWBON3(KLNr,BONNr,OLNr) .Set ^KUL(KLNr,"F",BONNr,OLNr)=Rec .Do BUILDBON^FLOWBON3(KLNr,BONNr,OLNr),BUILDKUP^FLOWBON3(KLNr,BONNr,OLNr) .Quit:Extern .Do LRECALC(KLNr,BONNr,OLNr,1) Quit:'Show .Do EL^PROC Quit If Insert="A" Do .If 'OLNr Set OLNr=100 If $D(Detail) Set OLNr=Detail(@DL(1)@(6)),@DL(1)@(6)=@DL(1)@(6)+1 .Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)),Insert=$S('OLNr:"E",1:"B") If Insert="B" Do Quit .If 'OLNr Set OLNr=Detail(@DL(1)@(6)) .Set FromNr=^KUL(KLNr,"F",BONNr,0),^KUL(KLNr,"F",BONNr,0)=FromNr+1 .Set ^KUL(KLNr,"F",BONNr,FromNr)=Rec,ToNr=FromNr .Do BUILDBON^FLOWBON3(KLNr,BONNr,FromNr),BUILDKUP^FLOWBON3(KLNr,BONNr,FromNr) .Do:'Extern LRECALC(KLNr,BONNr,FromNr,1) .For Set FromNr=$O(^KUL(KLNr,"F",BONNr,FromNr),-1) Do Quit:FromNr=OLNr ..Do LSWAP(BONNr,FromNr,ToNr) ..Set ToNr=FromNr .If Show Do FETCHDET,WL^PROC If Insert="E" Do Quit .Set OLNr=^KUL(KLNr,"F",BONNr,0),^KUL(KLNr,"F",BONNr,0)=OLNr+1 .Set ^KUL(KLNr,"F",BONNr,OLNr)=Rec .Do BUILDBON^FLOWBON3(KLNr,BONNr,OLNr),BUILDKUP^FLOWBON3(KLNr,BONNr,OLNr) .Quit:Extern .Do LRECALC(KLNr,BONNr,OLNr,1) .Set:UL'>$P(UD,D,2) UL=UL+1 .If Show Do NIEUWV^PROC3(OLNr) Quit ; ; Insert produkt PINSERT(Insert,Line,PRNr,Aantal,Prijs,Korting1,Korting2,LevTerm,Show) New B,R ;If '$$ASK^vhWACHTW("MANAGER","","",0) Set K="-",Input="" Quit Set UZ=^KUL(KLNr,"F",BONNr,0)-100 Set:$G(Insert)="" Insert="E" Set Line=$G(Line) Set:'$D(Show) Show=1 If 'Line,Show Set Line=$G(Detail(@DL(1)@(6))) If 'Line Set Insert="E" If Insert="E" Set Line="" Set PRNr=$G(PRNr),Aantal=$G(Aantal),Prijs=$G(Prijs) Set Korting1=$G(Korting1),Korting2=$G(Korting2),LevTerm=$G(LevTerm) Set K=$S(PRNr:PRNr,1:".") Do SCROL^KF6(Aantal,Prijs,Korting1,Korting2,LevTerm) Set R="" If K'="-",$O(B(100))'="" For I=1:1:35 Set R=R_$G(B(I+100))_D If $L(R) Do INSERT(R,Insert,Line,Show),PRCOUNT^FLOW("+","KUL") New U2,PR Set U2=R,PR=$P(R,D,2) Do ^KF78 Set:K="-" Input="" Quit ; ; Insert Tekst TINSERT(Insert,Line,Text,Show,BlockId,AfdrFakt) New B,R Set UZ=^KUL(KLNr,"F",BONNr,0)-100 Set:$G(Insert)="" Insert="E" Set Line=$G(Line) Set:'$D(Show) Show=1 Set BlockId=$G(BlockId) Set:BlockId="" BlockId=$P(Text,D,18) If 'Line,Show Set Line=$G(Detail(@DL(1)@(6))) If 'Line Set Insert="E" If Insert="E" Set Line="" Set Text=$G(Text) If $L(Text,D)>1 Do .Set R=Text .If $P($P(R,D,17),"#")="KF1925" Set UTOT=$G(UTOT)+$P(Text,D,9) Do SHOWTOT^KFTOT(UTOT) .Quit:"\KF11\KF1925\KF5\"[(D_$P($P(R,D,17),"#")_D) .Set R=$P(Text,D,17),$P(R,"#")="KF11",$P(Text,D,17)=R,R=Text Else If $L(Text)!BlockId Set R="",$P(R,D,35)=D,$P(R,D,5)=Text,$P(R,D,17)="KF11#"_$G(AfdrFakt) Else Do .Do SCROL^KF11() .Set R="" If K'="-",$O(B(100))'="" For I=1:1:35 Set R=R_$G(B(I+100))_D If $L(R) Do .If $P($P(R,D,17),"#")="KF11" Do ..Set:'BlockId BlockId=$P(R,D,18) ..Set:'$P(BlockId,";") $P(BlockId,";")=$P($H,";",2) ..Set:$P(BlockId,";",2,4)="" BlockId=$P(BlockId,";")_";T;;O" ..Set:$P($P(R,D,17),"#",2) BlockId=BlockId_"BF" .Set $P(R,D,18)=BlockId .Do INSERT(R,Insert,Line,Show) Set:K="-" Input="" Quit ; ; Insert manuele lijn MINSERT(Insert,Line,Text,Show) New B,R Set UZ=^KUL(KLNr,"F",BONNr,0)-100 Set:$G(Insert)="" Insert="E" Set Line=$G(Line) Set:'$D(Show) Show=1 If 'Line,Show Set Line=$G(Detail(@DL(1)@(6))) If 'Line Set Insert="E" If Insert="E" Set Line="" Set Text=$G(Text) If $L(Text,D)>1 Do .Set R=Text .If $P($P(R,D,17),"#")="KF1925" Do CALCTOT^FLOW($P(Text,D,9),$P(Text,D,22),1) Else Do .Set K=$$NIEUW^FLOWMANL("KUL",KLNr,BONNr) .Set R="" If K'="-",$O(B(100))'="" For I=1:1:35 Set R=R_$G(B(I+100))_D .If $P($P(R,D,17),"#")="KF1925" Do CALCTOT^FLOW($P(R,D,9),$P(R,D,22),1) If $L(R) Do INSERT(R,Insert,Line,Show) Set:K="-" Input="" Quit ; LINSERT(Type,Insert) New Y,X Set Insert=$G(Insert) Set:Insert="" Insert="E" If Type="" Do .Set Y(1)="Produktlijn",Y(2)="Tekstlijn" .Set Y="21\F\Selekteer lijntype",Y(0)=$O(Y(""),-1) .Do ^POP Set Type=$P("P\T",D,X) .Set FP=$P(UD,D,2)+1*100+1 Write @F,@F1 If Type="P" Set K="." Do PINSERT(Insert) If Type="T" Do NIEUW^FLOWTEXT(Q_UGL,$ZN,Insert) If Type="M" Do MINSERT(Insert) Quit ; ; Nieuwe produktlijn vanuit een extern programma (momenteel enkel het aantal) EINSERT(KLNr,BONNr,BLNr,Insert,PRNr,Aantal,Prijs,Korting1,Korting2,LevTerm) New %TC,I,R,BRec,LRec,GbRek,PR,Munt,Pariteit,Netto,Bruto,IsEuro,DateSN New ULUNr,NetBrutP,PortKode,GrOrde,Land,Pariteit,DateSN,BLUNr,OrdDat Set KLNr=$G(KLNr),BONNr=$G(BONNr),BLNr=$G(BLNr) Set:$G(Insert)="" Insert="E" Set Prijs=$G(Prijs),Korting1=$G(Korting1),Korting2=$G(Korting2),LevTerm=$G(LevTerm) Set:'KLNr R=^KU1(BONNr,"F"),KLNr=$P(R,D) For Do Quit:%TC .Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") .Quit:%TC .Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Bon "_BONNr) Set IsEuro=$$ISEURO^vhRtn1() Set BRec=^KUL(KLNr,"F",BONNr,1),PortKode=$P($P(BRec,D,13),"#",2),Munt=$P(BRec,D,18),NetBrutP=$P(BRec,D,27) Set R=^KKL(^KK1(KLNr),0),Land=$P(R,D,8) Set:Land="" Land=$$LAND^vhRtn1($$FADEF^vhRtn1(3),"I") Set R=^KPR(PRNr,0),BtwKode=$P(R,D,5),GbRek=$P(R,D,10) Set:GbRek="" GbRek=$$GBREK^FLOW(Land) Set R=$$KLANTPR^KPRIJS(KLNr,PRNr),GrOrde=$P(R,D,10) Set:Prijs="" Prijs=$P(R,D),Korting1=$P(R,D,5),Korting2=$P(R,D,6) Set:LevTerm="" LevTerm=$$LEVWK^PRODUKT4(PRNr,KLNr,1) Set (Netto,Bruto)=$J(Prijs*Aantal,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) Set:NetBrutP Prijs=$P(R,D,4),Bruto=$J(Prijs*Aantal,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) Set $P(LRec,D)=GbRek,$P(LRec,D,2)=PRNr,$P(LRec,D,3)=Aantal Set $P(LRec,D,6)=Prijs,$P(LRec,D,7)=Korting1_"#"_Korting2,$P(LRec,D,8)=BtwKode Set $P(LRec,D,9)=Netto,$P(LRec,D,10)=Netto,$P(LRec,D,11)=GbRek,$P(LRec,D,12)="L" Set $P(LRec,D,16)=Bruto,$P(LRec,D,17)="KF6" Set $P(LRec,D,21)=GrOrde,$P(LRec,D,22)=Munt Set $P(LRec,D,24)=PortKode,$P(LRec,D,25)=LevTerm,$P(LRec,D,36)=$P(LRec,D,36) Set BLUNr=$$UNIEKLNR^FLOWBON(KLNr,BONNr),$P(LRec,D,15)=BLUNr Do INSERT(LRec,Insert,BLNr,,1) If $P(LRec,D,3)'<0 Do .Set PR=PRNr .Set DateSN=$$CONVDATE^vhLib.DataTypes($P(BRec,D,2),,"DSN") .Set Pariteit=$$MUNT^vhRtn1(Munt,,12) .Set Netto=$P(LRec,D,9)*Pariteit .Set R=DateSN_2_D_$P(LRec,D,3)_"\\1\" .Set R=R_$J(Netto,0,$S(IsEuro:4,1:2))_"\0\0\"_BONNr .Do ^KPR10 .Set OrdDat=$P($$ORDGEG(KLNr,BONNr,BLNr),D,2) Set:$L(OrdDat) OrdDat=$$INTDATE^vhLib.DataTypes(OrdDat) .Do PUT^PRHIST(PRNr,-$P(LRec,D,3),"U",,KLNr,BONNr,BLUNr,$$INTDATE^vhLib.DataTypes($P(BRec,D,2)),,,,,,OrdDat) .Set R=PRNr_D_DateSN_D_$P(LRec,D,3)_D_$J(Netto,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen())_D_($P($P(LRec,D,28),";")="KOM") .Do ^Stat.Product.UpdateWeekStatistiek Set:$P(BRec,D,28)="M" $P(BRec,D,28)="X" Set $P(BRec,D,13)=$P($$BON^PORT(BONNr),D),^KUL(KLNr,"F",BONNr,1)=BRec Do RecuPak(BONNr) Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") Quit ; ; Verwerk swap keys SWAP(Swap) Quit:'$D(Detail) If Swap="<" Do Quit .Quit:@DL(1)@(6)=1 .Do LSWAP(BONNr,Detail(@DL(1)@(6)),Detail(@DL(1)@(6)-1)) .Set DL(2)="UP" Do ML^PROC Kill DL(2) If Swap=">" Do Quit .Quit:@DL(1)@(6)=@DL(1)@(9) .Do LSWAP(BONNr,Detail(@DL(1)@(6)),Detail(@DL(1)@(6)+1)) .Set DL(2)="DO" Do ML^PROC Kill DL(2) Quit ; ; Swap bonlijnen LSWAP(BONNr,FromNr,ToNr) New FromRec,ToRec Quit:FromNr=ToNr If ToNr>^KUL(KLNr,"F",BONNr,0) Set ^KUL(KLNr,"F",BONNr,0)=ToNr+1 Set FromRec=$G(^KUL(KLNr,"F",BONNr,FromNr)),ToRec=$G(^KUL(KLNr,"F",BONNr,ToNr)) Do:$L(FromRec) DELBON^FLOWBON3(KLNr,BONNr,FromNr),DELKUP^FLOWBON3(KLNr,BONNr,FromNr) Do:$L(ToRec) DELBON^FLOWBON3(KLNr,BONNr,ToNr),DELKUP^FLOWBON3(KLNr,BONNr,ToNr) Kill ^KUL(KLNr,"F",BONNr,FromNr),^KUL(KLNr,"F",BONNr,ToNr) If $L(FromRec) Do .Set ^KUL(KLNr,"F",BONNr,ToNr)=FromRec .Do BUILDBON^FLOWBON3(KLNr,BONNr,ToNr),BUILDKUP^FLOWBON3(KLNr,BONNr,ToNr) If $L(ToRec) Do .Set ^KUL(KLNr,"F",BONNr,FromNr)=ToRec .Do BUILDBON^FLOWBON3(KLNr,BONNr,FromNr),BUILDKUP^FLOWBON3(KLNr,BONNr,FromNr) Quit ; LMODIFY(Input) New TempK,Exit,TxtPop,ORDNr,OrdDat,OrdRef Quit:'$D(Detail) Set (K,TempK)=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))) If $P($P(K,D,17),"#")="KF11" Do WIJZIG^FLOWTEXT(Q_UGL,BONNr,Detail(@DL(1)@(6)),$ZN) Quit Do .If Input'="P",$P(K,D,3)<0,$$CHECKWMS^FLOW(,,,,BONNr,Detail(@DL(1)@(6)),1) Quit .If Input'="P",$P(K,D,2),'$$OPSLMAN^PRODUKT2($P(K,D,2)) Quit:$$OPTRANSP(KLNr,BONNr,Detail(@DL(1)@(6)),,2) Quit:'$$ASK^vhWACHTW("MANAGER","","",0) .Do SCROL^KF8(Detail(@DL(1)@(6)),Input) .If Input="A"!(Input="L") Do ..If Input="A" Do Quit:Exit ...Set Exit=1 ...Set K=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))) ...Quit:$P(K,D,3)=$P(TempK,D,3) ...Set R=$$ORDGEG(KLNr,BONNr,Detail(@DL(1)@(6))),ORDNr=$P(R,D),OrdDat=$P(R,D,2),OrdRef=$P(R,D,3) ...If $P(K,D,3)<$P(TempK,D,3),ORDNr Do Quit:$L(TxtPop) ....Set TxtPop=$$^vhTXTPOP("FLOWBON","BACKORD","",$P(TempK,D,3)-$P(K,D,3)) ...Set TxtPop=$$TXTPOP^FLOW("LRECALC") Set:TxtPop TxtPop="R" ...If TxtPop'="R" Do Quit ....New PRNr,Aantal ....Set K=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))),PRNr=$P(K,D,2),Aantal=$P(K,D,3) ....Quit:'PRNr Quit:'Aantal ....Set $P(K,D,48)=$$GetFSCCodeEnGewicht^PRODUKT2(PRNr,Aantal) ....Set ^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6)))=K ...Set Exit=0,K=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))),$P(K,D,26)="" ...Set ^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6)))=K ...Do LRECALC(KLNr,BONNr,Detail(@DL(1)@(6)),2) ...Set K=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))) ...Quit:$L($P(K,D,26)) Quit:$P(K,D,26)=$P(TempK,D,26) ...Set $P(K,D,26)=$P(TempK,D,26),^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6)))=K .If Input="A",$G(TxtPop)="B" Do ..Do LSPLIT(KLNr,BONNr,Detail(@DL(1)@(6)),ORDNr,OrdDat,OrdRef,$P(TempK,D,3)-$P(K,D,3)) .Do:Input="P" RecalcCommKort^FLOWMANL("KUL",KLNr,BONNr,,1) If @DL(1)@(6)=@DL(1)@(9) Do EL^PROC Quit Set DL(2)="DO" Do ML^PROC Kill DL(2) Quit ; ; Wijzig lijn vanuit een extern programma (momenteel enkel het aantal) EMODIFY(KLNr,BONNr,BLNr,Aantal) ;,Prijs,Korting1,Korting2,LevTerm) New %TC,I,R,BRec,LRec,PRNr,PR,Munt,Pariteit,Netto,StockUpd,IsEuro,DateSN,ULUNr,OrdDat Set KLNr=$G(KLNr),BONNr=$G(BONNr),BLNr=$G(BLNr) Set:'KLNr R=^KU1(BONNr,"F"),KLNr=$P(R,D) For Do Quit:%TC .Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") .Quit:%TC .Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Bon "_BONNr) Set IsEuro=$$ISEURO^vhRtn1() Set BRec=^KUL(KLNr,"F",BONNr,1),Munt=$P(BRec,D,18) Set LRec=^KUL(KLNr,"F",BONNr,BLNr),(PRNr,PR)=$P(LRec,D,2),ULUNr=$P(LRec,D,15) If $L($G(Aantal)),Aantal'=$P(LRec,D,3) Do .Do:PRNr ..Set DateSN=$$CONVDATE^vhLib.DataTypes($P(BRec,D,2),,"DSN") ..Set Pariteit=$$MUNT^vhRtn1(Munt,,12) ..Set StockUpd=$P(LRec,D,14)'["S" Set:StockUpd StockUpd=$P(LRec,D,14)'["Z" .If $P(LRec,D,3)'<0 Do ..Do:PRNr ...Set Netto=$P(LRec,D,9)*Pariteit ...Set R=DateSN_2_D_$S(StockUpd:-$P(LRec,D,3),1:0)_"\\1\" ...Set R=R_$J($S(StockUpd:-Netto,1:0),0,$S(IsEuro:4,1:2))_"\0\0\"_BONNr ...Do ^KPR10 ...Set OrdDat=$P($$ORDGEG(KLNr,BONNr,BLNr),D,2) Set:$L(OrdDat) OrdDat=$$INTDATE^vhLib.DataTypes(OrdDat) ...Do PUT^PRHIST(PRNr,$P(LRec,D,3),"I",,KLNr,BONNr,ULUNr,$$INTDATE^vhLib.DataTypes($P(BRec,D,2)),,,,,,OrdDat) ...Set R=PRNr_D_DateSN_D_-$P(LRec,D,3)_D_$J(-Netto,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen())_D_($P($P(LRec,D,28),";")="KOM") ...Do ^Stat.Product.UpdateWeekStatistiek .If Aantal Do ..For I=9,10,16 Set $P(LRec,D,I)=$J($P(LRec,D,I)/$P(LRec,D,3)*Aantal,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) ..Set $P(LRec,D,3)=Aantal ..Set ^KUL(KLNr,"F",BONNr,BLNr)=LRec ..If $P(LRec,D,3)'<0 Do ...Do:PRNr ....Set Netto=$P(LRec,D,9)*Pariteit ....Set R=DateSN_2_D_$S(StockUpd:$P(LRec,D,3),1:0)_"\\1\" ....Set R=R_$J($S(StockUpd:Netto,1:0),0,$S(IsEuro:4,1:2))_"\0\0\"_BONNr ....Do ^KPR10 ....Set OrdDat=$P($$ORDGEG(KLNr,BONNr,BLNr),D,2) Set:$L(OrdDat) OrdDat=$$INTDATE^vhLib.DataTypes(OrdDat) ....Do PUT^PRHIST(PRNr,-$P(LRec,D,3),"U",,KLNr,BONNr,ULUNr,$$INTDATE^vhLib.DataTypes($P(BRec,D,2)),,,,,,OrdDat) ....Set R=PRNr_D_DateSN_D_$P(LRec,D,3)_D_$J(Netto,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen())_D_($P($P(LRec,D,28),";")="KOM") ....Do ^Stat.Product.UpdateWeekStatistiek .Else Do ..Do DELBON^FLOWBON3(KLNr,BONNr,BLNr),DELKUP^FLOWBON3(KLNr,BONNr,BLNr) ..Kill ^KUL(KLNr,"F",BONNr,BLNr) .If PRNr Set $P(BRec,D,13)=$P($$BON^PORT(BONNr),D),^KUL(KLNr,"F",BONNr,1)=BRec Set:$P(BRec,D,28)="M" $P(BRec,D,28)="X",^KUL(KLNr,"F",BONNr,1)=BRec Do RecuPak(BONNr) Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") Quit ; ORDGEG(KLNr,BONNr,OLNr,FaktSoort) New R,Next,Exit,ORDNr,OrdDat,OrdRef Set FaktSoort=$G(FaktSoort,"F"),Next=OLNr For Set Next=$O(^KUL(KLNr,FaktSoort,BONNr,Next),-1) Do Quit:Exit .Set Exit=1 .Quit:Next'>100 .Set R=^KUL(KLNr,FaktSoort,BONNr,Next) .Quit:$P(R,D,17)="KF5" .Set Exit=0 Quit:Next'>100 "" Set R=^KUL(KLNr,FaktSoort,BONNr,Next),R=$P(R,D,5) Set ORDNr=$P(R," - ",1),OrdDat=$P(R," - ",2),OrdRef=$P(R," - ",3,99) Quit ORDNr_D_OrdDat_D_OrdRef ; LSPLIT(KLNr,BONNr,OLNr,ORDNr,OrdDat,OrdRef,Aantal) New I,R,Next If $D(^KO1(ORDNr,"F")),$P(^KO1(ORDNr,"F"),D)'=KLNr Set ORDNr=$$GETNUM^FLOW("KOD","KO1") If '$D(^KOD(KLNr,"F",ORDNr)) Do .Set R=^KUL(KLNr,"F",BONNr,1),$P(R,D,2)=OrdDat,$P(R,D,3)=OrdRef .For I=7,8,13,24,26,28,30 Set $P(R,D,I)="" .Set ^KOD(KLNr,"F",ORDNr,0)=101,^KOD(KLNr,"F",ORDNr,1)=R .For I=2,3 Set ^KOD(KLNr,"F",ORDNr,I)=^KUL(KLNr,"F",BONNr,I) .Set ^KO1(ORDNr,"F")=KLNr_D,^KO2("F",KLNr,ORDNr)="" .Do ##class(DOM.VKP.event.OrderEventRaiser).RaiseOrderGemaaktEvent(ORDNr) Set R=^KUL(KLNr,"F",BONNr,OLNr) For I=9,10,16 Set $P(R,D,I)=$J($P(R,D,I)/$P(R,D,3)*Aantal,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) Set $P(R,D,3)=Aantal,$P(R,D,15)="",$P(R,D,17)="KF0" Set Next=^KOD(KLNr,"F",ORDNr,0),^KOD(KLNr,"F",ORDNr,0)=Next+1,^KOD(KLNr,"F",ORDNr,Next)=R Do SWNODE^FLOWORD(KLNr,ORDNr,Next) //Backorder lijn aangemaakt Do ProductOrderLijnGemaakt^FLOWORD2(KLNr,ORDNr,Next) Quit ; ; Sorteer volgens boom SORT(First,Last) New R,%J,OLNr,Count,PRNr,Key,Next,NewRef,OldRef,PakketNr Quit:$$$KlantDedecker Quit:$O(^KUL(KLNr,"F",BONNr,100))="" Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Lock +^UL("SORT",BONNr) Set:'$G(First) First=101 Set:'$G(Last) Last=^KUL(KLNr,"F",BONNr,0)-1 Set OLNr=First-1,Count=0 For Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)) Quit:OLNr>Last!'OLNr Do .Set R=^KUL(KLNr,"F",BONNr,OLNr),PRNr=$P(R,D,2),PakketNr=$P(R,D,31) .If 'PRNr Set Count=Count+1,Key="" .Else Set Key=$$SORTKEY^PRODUKT(PRNr) Set:'PakketNr PakketNr=999999 .Set ^HULP(%J,$J(Count,3)_$J(PakketNr,7)_" "_Key_" "_OLNr)=OLNr Set Next="",NewRef=100 For Set Next=$O(^HULP(%J,Next)) Quit:Next="" Do .Set NewRef=NewRef+1 .Set OldRef=^(Next) .Quit:OldRef=NewRef .Do LSWAP(BONNr,OldRef,NewRef) .Set Key=Next .For Set Key=$O(^HULP(%J,Key)) Quit:Key="" Do ..Set:^(Key)=NewRef ^(Key)=OldRef Set Next=$O(^KUL(KLNr,"F",BONNr,999),-1)+1,^KUL(KLNr,"F",BONNr,0)=Next Lock -^UL("SORT",BONNr) Kill ^HULP(%J) Quit ; ; Verwijder een lijn LDELETE New OpslMan,Reden,PRNr,Aantal,StockUpd,Created,KlasRef,VerzW Quit:'$D(Detail) Set K=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))) If $P($P(K,D,17),"#")="KF11" Do DELETE^FLOWTEXT(Q_UGL,BONNr,Detail(@DL(1)@(6))) Quit Set PRNr=$P(K,D,2),Aantal=$P(K,D,3) Set StockUpd=$P(K,D,14)'["S" Set:StockUpd StockUpd=$P(K,D,14)'["Z" ;If Aantal<0,$$CHECKWMS^FLOW(,,,,BONNr,Detail(@DL(1)@(6)),,1) Set K="-" Quit If PRNr Do Quit:K="-" .If '$$ISOVP^ORGALUX(PRNr),$$OPTRANSP(KLNr,BONNr,Detail(@DL(1)@(6))) Set K="-" Quit .Set OpslMan=$$OPSLMAN^PRODUKT2(PRNr) .Quit:OpslMan .If Aantal<0,$$CHECKWMS^FLOW(,,,,BONNr,Detail(@DL(1)@(6)),,1) Set K="-" Quit .;If '$$ASK^vhWACHTW("MANAGER","","",0) Set K="-" Quit Set K=$$KEYL^vhINP("FLOWBON","LDELETE") Quit:K'="V" If Aantal>0,$D(OpslMan),'OpslMan,'$G(ProfNr),StockUpd,'$$ISOVP^ORGALUX(PRNr) Do Quit:'Reden .Set Reden=$$PI^vhPOPUP("C;C","BO1-","Titel","FLOWBON","STORNO") .Quit:'Reden .Set VerzW="INT",VerzW=VerzW_" #"_$G(^RES("KLANT","PI","VERZENDWIJZE","D",VerzW,KT)) .Set ProfNr=$$GETNUM^FLOW("KUL","KU1") .Set ^KUL(KLNr,"F",ProfNr,0)=103 .Set K=^KUL(KLNr,"F",BONNr,1),$P(K,D,7)=VerzW,$P(K,D,8)="",$P(K,D,13)="",$P(K,D,24)="",$P(K,D,25)="P",$P(K,D,29)="F" .Set ^KUL(KLNr,"F",ProfNr,1)=K .Do SET^KFVZW("F",K,ProfNr),OPEN^LOG("UL",ProfNr) .For I=2,3 Set ^KUL(KLNr,"F",ProfNr,I)=^KUL(KLNr,"F",BONNr,I) .Set K=$$CREATOR(KLNr,BONNr),Created=$P(K,D),KlasRef=$P(K,D,2) .Set K="",$P(K,D,4)=Created,$P(K,D,5)="999999 - "_DT .Set $P(K,D,17)="KF5",$P(K,D,19)=KlasRef,$P(K,D,35)="" .Set ^KUL(KLNr,"F",ProfNr,101)=K .Do BUILDBON^FLOWBON3(KLNr,ProfNr,101),BUILDKUP^FLOWBON3(KLNr,ProfNr,101) .Set K="",$P(K,D,5)=^RES("FLOWBON","PI","STORNO","D",Reden,KT) .Set $P(K,D,17)="KF11#1",$P(K,D,18)=$P($H,",",2)_";T;;BF",$P(K,D,35)="" .Set ^KUL(KLNr,"F",ProfNr,102)=K .Do BUILDBON^FLOWBON3(KLNr,ProfNr,102),BUILDKUP^FLOWBON3(KLNr,ProfNr,102) .Set ^KU1(ProfNr,"F")=KLNr_D,^KUB(ProfNr,"F")=KLNr_D,^KU2("F",KLNr,ProfNr)="" Set K=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))),UTOT=UTOT-$P(K,D,9),PRNr=$P(K,D,2) Do:PRNr PRCOUNT^FLOW("-","KUL") Do DELLINE(BONNr,Detail(@DL(1)@(6)),"",$G(ProfNr),0),SHOWTOT^KFTOT(UTOT),DELETE^PROC3 Do RecalcCommKort^FLOWMANL("KUL",KLNr,BONNr,,1) Do:PRNr ^KF78 Quit ; ; Verwijder de volledige bon DELETE New OpTransp Do DL^PROC If $$CHECKWMS^FLOW(,,,,BONNr,,,1) Set K="-" Do EL^PROC Quit Set OpTransp=$$OPTRANSP(KLNr,BONNr) If OpTransp Set K="-" Do EL^PROC Quit Else If $L(OpTransp),'$$ISTERUGN^FLOWBON5(BONNr,1),'$$ASK^vhWACHTW("DELBON","","",0) Set K="-" Do EL^PROC Quit Set K=$$ASKL^vhINP("FLOWBON","DELETE") If K'="V" Do EL^PROC Quit Do DELOBJ(BONNr,0) Set UTOT=0 Do SHOWTOT^KFTOT(UTOT) Quit ; DELLINE(BONNr,OLNr,Extern,ProfNr,CheckOpTransp) Do DELLINE^FLOWBON3(BONNr,OLNr,$G(Extern),$G(ProfNr),$G(CheckOpTransp)) Quit ; DELOBJ(BONNr,CheckOpTransp) Do DELOBJ^FLOWBON3(BONNr,$G(CheckOpTransp)) Quit ; CHKDEL(BONNr) Do CHKDEL^FLOWBON3(BONNr) Quit ; ; Kwantumkorting bij handel QKORT Quit:'$D(Detail) For Do Quit:K="-" .Do SCROL^KFKYW(Detail(@DL(1)@(6))) .Set FP=$P(UD,D,2)+1*100+1 Write @F,@F1 .Quit:K="-" .If @DL(1)@(6)=@DL(1)@(9) Do EL^PROC Set K="-" Quit .Set DL(2)="DO" Do ML^PROC Kill DL(2) Quit ; ; Invullen creator en klassementref (bij +/- bon). CREATOR(KLNr,BONNr) New R,IntPers,DevNr,KlasRef,Created,UserInit Set (Created,KlasRef)="" Do:$O(^KUL(KLNr,"F",BONNr,100)) .Set DevNr=$$IO^cQ5,UserInit=$G(QU) .If $L(UserInit) Set IntPers=$$USERID^vhUSER(UserInit) .Else Set IntPers=$P($$DEVUSER^vhUSER(DevNr),";") .Set Created=IntPers_"#"_DevNr_"#"_$H .If ";"_$$TGROEP^vhUSER("EIGENKLAS")_";"[(";"_IntPers_";") Set KlasRef=IntPers .Else Set KlasRef="DIV" .Set KlasRef=KlasRef_"#"_$H_"#999999" Quit Created_D_KlasRef ; ; Geeft de gebruiker en tijdstip creatie het order OrderCreatedBy(BONNr,ORDNr,PRNr) New R,CreatedBy,BLNr,KlasRef,Creator Set ORDNr=$G(ORDNr),KLNr=$P($G(^KU1(BONNr,"F")),D),CreatedBy="",Creator="" Do:KLNr . Set BLNr=100,KlasRef="" . For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:CreatedBy . . Set R=^KUL(KLNr,"F",BONNr,BLNr) Set:$P(R,D,17)="KF5" Creator=$P(R,D,4),KlasRef=$P(R,D,19) . . If ORDNr,$P(KlasRef,"#",3)'=ORDNr Quit . . If $G(PRNr),$P(R,D,2)'=PRNr Quit . . Set:Creator CreatedBy=Creator Quit CreatedBy ; RPLKL Goto RPLKL^FLOW ; RPLPR New R,PR Quit:'$D(Detail) Set R=^KUL(KLNr,"F",BONNr,Detail(@DL(1)@(6))),PR=$P(R,D,2) Quit:'PR Goto RPLPR^FLOW ; ; Herrekenen lijn LRECALC(KLNr,BONNr,OLNr,Display,KortTyp) New K,R,Rec,BrutoPr,BonDat,BonMunt,LijnMunt,Closed,PRNr,Aantal,Prijs,OptKort Set Display=$G(Display),KortTyp=$G(KortTyp) If Display Set FP=UL*100+1 Write @F,@F1 Set R=^KUL(KLNr,"F",BONNr,1),BonDat=$P(R,D,2),BonMunt=$P(R,D,18),Closed=$P(R,D,22),BrutoPr=$P(R,D,27) New Bon,Orderlijn,PrijsInfo,LijnType,OrderlijnPrijsBepaler,KlantID,OrderlijnPrijsBepaler #dim KlantID As DOM.VKP.VanHoeckeKlantID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) #dim Bon As DOM.VKP.Bon = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefBon(BONNr) #dim Orderlijn As DOM.VKP.ProductOrderlijn = Bon.GeefBonLijnViaVolgnummer(OLNr) #dim PrijsInfo As APPS.VKP.dto.PrijsInfo Set OrderlijnPrijsBepaler = ##class(APPS.VKP.OrderlijnPrijsBepaler).%New(KlantID,Bon.GeefPrijsAffichering()) set LijnType = Orderlijn.GeefType() if LijnType = ##class(DOM.VKP.enu.BonLijnType).Product() do . New HuidigeEenheidPrijs set HuidigeEenheidPrijs = Orderlijn.GeefEenheidPrijsExclBTW() . set PRNr = Orderlijn.GeefProductID() . Do Orderlijn.BerekenEnZetHoutCertificaat() . Set Aantal=Orderlijn.GeefAantal() . Do STORE^vhTERMINA() . Set PrijsInfo=$$KlantPrijsObject^KPRIJS(KLNr,PRNr,"N",BonDat,Orderlijn.GeefAantal(),Orderlijn.GeefLeverdag(),$S(Display:"D",1:"")) . Do REFRESH^vhTERMINA() . Quit:('##class(BL.Legacy.FLOW).MagUitvoerenLRECALC(Orderlijn,PrijsInfo,KortTyp)) . Quit:('##class(BL.Legacy.FLOW).IsMuntCorrect(PrijsInfo,BonMunt,KlMunt)) . If OrderlijnPrijsBepaler.MagPrijzenHerladen(Orderlijn) Do . . Do Orderlijn.ZetPrijsAanduiding($$GeefPrijsAanduiding(PrijsInfo)) . . Do OrderlijnPrijsBepaler.VulInPrijzen(Orderlijn,Orderlijn.GeefAantal(),PrijsInfo) . Do Orderlijn.Save() . If Display D . . Set UTOT=UTOT-HuidigeEenheidPrijs+Orderlijn.GeefEenheidPrijsExclBTW() . . Do SHOWTOT^KFTOT(UTOT) . . Do EL^PROC Do RecalcCommKort^FLOWMANL("KUL",KLNr,BONNr,,Display) Quit GeefPrijsAanduiding(PrijsInfo) #dim PrijsAanduiding As DOM.VKP.enu.PrijsAanduiding = ##class(DOM.VKP.enu.PrijsAanduiding).NormalePrijs() If PrijsInfo.PrijsBerekingManier = ##class(APPS.VKP.enu.PrijsBerekingManier).Geforceerd() { Set PrijsAanduiding = ##class(DOM.VKP.enu.PrijsAanduiding).OptioneleKorting() } Quit PrijsAanduiding ; ; Herrekenen lijn via menu MLRECALC(KLNr,BONNr,OLNr,Display) New Rec,PRNr,TempRec Set (Rec,TempRec)=^KUL(KLNr,"F",BONNr,OLNr),PRNr=$P(Rec,D,2) Quit:'PRNr If $P(Rec,D,26)'="*",$P(Rec,D,26)'="=" Kill TempRec Else Quit:'$$TXTPOP^FLOW("LRECALC") Set $P(Rec,D,26)="",^KUL(KLNr,"F",BONNr,OLNr)=Rec Do LRECALC(KLNr,BONNr,OLNr,$G(Display)) If $D(TempRec) Do .Set Rec=^KUL(KLNr,"F",BONNr,OLNr) .Quit:$L($P(Rec,D,26)) Quit:$P(Rec,D,26)=$P(TempRec,D,26) .Set $P(Rec,D,26)=$P(TempRec,D,26),^KUL(KLNr,"F",BONNr,OLNr)=Rec .Do:Display EL^PROC Quit ; ; Herreken een leveringsbon RECALC(BONNr,Display) New %TC,R,OLNr,KLNr,KlMunt,IsHandel,BonMunt Quit:'$D(^KU1(BONNr)) Set R=^KU1(BONNr,"F") Quit:$L($P(R,D,2)) Set Display=$G(Display),KLNr=$P(R,D),OLNr=100 Set BonMunt=$P(^KUL(KLNr,"F",BONNr,1),D,18) Do INITKL If KlMunt'="MTL",KlMunt'=BonMunt Do Quit .If Display Set R=$$TXTPOP^FLOW("RECALC","","KlMunt","""bon""","BonMunt") Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") If '%TC Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Bon "_BONNr) Quit If Display Set DL(2)="HO" Do ML^PROC Kill DL(2) For Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)) Quit:'OLNr Do .Set R=^KUL(KLNr,"F",BONNr,OLNr) .If $P(R,D,2),$P(R,D,26)'="*",$P(R,D,26)'="=" Do LRECALC(KLNr,BONNr,OLNr,Display) .If Display Set DL(2)="DO" Do ML^PROC Kill DL(2) Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") Quit ; BEDRAG(BONNr) New R,KLNr,ULNr,Bedrag,Netto,Port,Munt Set Netto=0,KLNr=$P(^KU1(BONNr,"F"),D),ULNr=100 Set R=^KUL(KLNr,"F",BONNr,1),Port=$P(R,D,13),Munt=$P(R,D,18),Port=$S($P(Port,"#",2):$P(Port,"#"),1:0) For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Do .Set R=^KUL(KLNr,"F",BONNr,ULNr),Netto=Netto+$P(R,D,9) Set Bedrag="" Set Bedrag=Netto_D_Port_D_Munt Quit Bedrag ; ; Aktie = 1 - toevoegen ; = 2 - wijzigen ; = 3 - verwijderen OPTRANSP(KLNr,BONNr,OLNr,BackGrnd,Aktie) New R,OpTransp,Closed,TranspD,VervRef,GroepNr,Txt,Btn,TranspNr Set Aktie=$G(Aktie,3) Set OpTransp=0,R=^KUL(KLNr,"F",BONNr,1),VervRef=$P($P(R,D,8),";"),GroepNr=$P($P(R,D,8),";",2) If VervRef,GroepNr Do .Set OpTransp=1 .Quit:$G(BackGrnd) .Set R=^TRANSP("D",VervRef),TranspNr=$P(R,D),Closed=$L($P(R,D,2)),TranspD=$P(R,D,10) .Set Txt(1)="Leveringsbon "_$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0)_" is opgenomen" .Set Txt(2)="in de transportlijst "_$P(^KLE(^KL1(TranspNr),0),D,2)_" van "_$$EXTDATE^vhLib.DataTypes(TranspD)_"." .Set Txt(3)=" " .If Closed Do .. Set Txt(4)="Dit transport is reeds afgesloten!",Txt(5)=" " .. Set Txt(6)="Wenst u deze "_$S($G(OLNr):"lijn",1:"bon")_" dan toch " .. Set Txt(6)=Txt(6)_$P("toe te voegen\te wijzigen\te verwijderen",D,Aktie)_"?" .. Set Btn(1)="Annuleer" .. Set Btn(2)=$P("Toevoegen\Wijzigen\Verwijderen",D,Aktie)_" "_$S($G(OLNr):"lijn",1:"bon")_"&V*" .Else Set Txt(4)="Gelieve deze bon uit het transport",Txt(5)="te laten verwijderen.",Btn(1)="Ok" .Set Btn=$O(Btn(""),-1),R=$$WILD^vhTXTPOP("C;C","","Txt","Btn") .If Closed,R="V" Do ..If Aktie=3,'$$ISTERUGN^FLOWBON5(BONNr),'$$ASK^vhWACHTW("DELBON","","",0) Quit ..Set OpTransp="" Quit OpTransp ; TranspLink(BONNr) New Obj,TransportLink Set Obj=##class(Flow.Uitlevering.Hoofding).%OpenId(BONNr) Set:$IsObject(Obj) TransportLink=Obj.TransportLink Quit TransportLink ; REFRESH If sRT=1 Write @F11,@F1 Xecute ^KUL(0,"F",0) If sRT<$P(UD,D) Xecute ^KUL(0,"F","UT") Do ToonHoofding^Flow.ToonDocHoofding If sRT<($P(UD,D,2)+1) Do WL^PROC DO RESET^vhScherm Quit ; ; Call back voor lijsdefinitie CB(K,OLNr) New R Set R=^KUL(KLNr,"F",BONNr,OLNr) If $P($P(R,D,17),"#")="KF11" Quit 3 If $P(R,D,17)="KF5" Quit 2 If $P(R,D,2)'?4.7N Quit 1 Quit "" ; ; Ophalen detail FETCHDET New OLNr,Count Kill PrCount,Detail,@DL(1)@(7),@DL(1)@(9) Set OLNr=100,(Count,PrCount)=0 For Set OLNr=$O(^KUL(KLNr,"F",BONNr,OLNr)) Quit:'OLNr Do .Set Count=Count+1,Detail(Count)=OLNr If $P(^KUL(KLNr,"F",BONNr,OLNr),D,2) Set PrCount=PrCount+1 .Set:UL'>$P(UD,D,2) UL=UL+1 Do PRCOUNT^FLOW(PrCount,"KUL") Quit ; PRINT Set FP=USM*100+1 W @F,@F1 Do SORT(),FETCHDET,WL^PROC Do EXTERN^DCPRINT("L",BONNr,"","",1) Kill ^KUB(BONNr,"F") Quit ; INIT New R Set BONNr=UR,KLNr=KC Do INITDOMVKP(KLNr,BONNr) Do INITKL Do INIT^PROC("FLOWBONADP","AD") Set AD(2,1)=^LD("L","FLOWBONADM") Set AD(2,2)=^LD("L","FLOWBONADR") Set AD(2,3)=^LD("L","FLOWBONADT") Set FP=UD*100+1 Write @F,@F1 Do FETCHDET,WL^PROC Set Input="",Help=1 If $O(^KUL(KLNr,"F",BONNr,100))="" Set Input=".",Help=0 Quit ; ; Initialisatie voor levertermijn INITDOMVKP(KLNr,BONNr) New R,VerzendWijze,LandCode,PostCode,RefDate Set VerzendWijze=$P($P($P(^KUL(KLNr,"F",BONNr,1),D,7),"#")," ") Set:VerzendWijze="" VerzendWijze=$$DEFAULT^KLVERZW(,KLNr) Set LandCode=$P(^KUL(KLNr,"F",BONNr,3),D,8) Set:LandCode LandCode=$$LAND^vhRtn1(LandCode) ; Leveringsadres Set:LandCode="" LandCode=$$LAND^vhRtn1(KLNr,"K") Set PostCode=$P(^KUL(KLNr,"F",BONNr,3),D,6) ; Leveringsadres Set:PostCode="" PostCode=$P(^KKL(^KK1(KLNr),0),D,6) Set RefDate=$$INTDATE^vhLib.DataTypes($P(^KUL(KLNr,"F",BONNr,1),D,2)) ; Datum v/d leverbon Set:RefDate<$H RefDate=$H Set blVerzendWijze=##class(APPS.VKP.VerzendWijze).%New(KLNr,VerzendWijze,LandCode,PostCode) Set blLeveringsTermijn=##class(APPS.VKP.LeveringsTermijn).%New(RefDate,blVerzendWijze) Quit ; INITKL New sFL,PartijID Do FETCHKL^UTILI(KLNr,"sFL") Set KlMunt=$P(sFL(0),D,11),IsHandel=$$IsHandel^KLANT5(KLNr) Set:KlMunt="" KlMunt=$$FADEF^vhRtn1() Set PartijID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) Set KlantObject = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(PartijID) Quit ; MENU Do CALL^vhMenu("FLOWBON") Quit ; SPEC Do CALLSPEC^vhMenu(AD(3)+AD(6)-1_";80","FLOWBONQCK","") Quit ; UNIEKLNR(KLNr,BONNr) New BLUNr Set KLNr=$G(KLNr),BONNr=$G(BONNr) Set:'KLNr KLNr=$P(^KU1(BONNr,"F"),D) Set BLUNr=$G(^KUL(KLNr,"F",BONNr,4)) Set:'BLUNr BLUNr=1 Set ^KUL(KLNr,"F",BONNr,4)=BLUNr+1 Quit BLUNr*100 ; EXTERN(BONNr) Do EXTERN^FLOWBON3(BONNr) Quit ; RecuPak(BONNr) Do:$D(^KU1(BONNr)) ##class(BL.Flow.RecuPak.Main).AddVerpakToBon(BONNr) Quit ; ; Geeft de verzendwijze, indien op transport ook de transporteur VerzendWijze(BONNr,Input) New R,VerzendWijze,KLNr,TransportLink Set VerzendWijze=$G(Input),R=$G(B(1)) Set:R="" KLNr=$P(^KU1(BONNr,"F"),D),R=^KUL(KLNr,"F",BONNr,1) Set:VerzendWijze="" VerzendWijze=$P(R,D,7) Set TransportLink=$P(R,D,8) If $L(TransportLink) Set VerzendWijze=$P(VerzendWijze,"#")_"#"_$$TRANSPORT^ULTOER(BONNr,1) Quit VerzendWijze ; ; Geef de facturatiesoort van een opgeslagen bon NODE(BONNr,Nodes) New I,KLNr,Node Set Nodes=$G(Nodes,"FGM") For I=$L(Nodes):-1:1 Set $E(Nodes,I)=","""_$E(Nodes,I)_"""" Set $E(Nodes)="" Set Node="F",KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Xecute "For Node="_Nodes_" Quit:$D(^KUL(KLNr,Node,BONNr))" Quit Node ; ; Geeft het controlegetal van een opgeslagen bon $lb(huidige waarde,opgeslagen waarde) GetCheckSum(BONNr) New blLevDoc,CheckSum,KLNr,FactSoort Set KLNr=$P($G(^KU1(BONNr,"F")),D) Do:KLNr . Set FactSoort=$$NODE(BONNr,"FGMT") . Set blLevDoc=##class(BL.Flow.Levering.Doc).%New() ; Instantiate() . Set CheckSum= $LB("","") ;$LB(blLevDoc.CheckSumBon(BONNr,FactSoort,KLNr),$P(^KUL(KLNr,FactSoort,BONNr,1),D,43)) Quit $G(CheckSum) ; ; Vult het controlegetal in van een opgeslagen bon SetCheckSum(BONNr) New CheckSum,KLNr,FactSoort Set KLNr=$P($G(^KU1(BONNr,"F")),D) Do:KLNr . Set FactSoort=$$NODE(BONNr,"FGMT") . Set CheckSum=$$GetCheckSum(BONNr) . Set $P(^KUL(KLNr,FactSoort,BONNr,1),D,43)=$LI(CheckSum) Quit IsAventosBon(BONNr) ; Controleert of het een order is met aventosbakken N bl Set bl=##class(BL.MB.UGLYPicking.Aventosbak.Aventosbak).Instantiate() Quit bl.OrdHasAventos(BONNr) PrintAventos(BONNr) ;afdrukken van info aventosbakken van een order N bl Set bl=##class(BL.MB.UGLYPicking.Aventosbak.Aventosbak).%New() Quit:'bl.OrdHasAventos(BONNr) Set UpdateOK=$$^vhTXTPOP("SYSTEM","JANEEN","","Herberekenen aventosbakken?") If UpdateOK Do bl.InstellenBakken(BONNr) ;set bl.Debug=1 Do bl.AfdrukkenBakkenA5enA4(BONNr) Do WARN^vhTXTPOP("Aventosinfo van bon "_BONNr_" afgedrukt op printer LEVBON_PS","") Quit