ULTOER3 ;Toerlijst (Voorbereiden facturatie) ; [ 12/22/2003 4:56 PM ] ; ; Ingave facturatiegroep via bonnr of leveringsbewijs FactGroep(GroepVia) New %SC,%TC,I,R,BulkGroep,DelBulkGroep,KLNr,BONNr,BONNrs,ULTOER,ULNr,Delete,Deleted,Ingave,BonRef Set GroepVia=$G(GroepVia,"L"),BulkGroep="" For I=1:1 Set R=$G(^HULP(%J,"D",I)) Quit:R="" Do . Quit:$P(R,D,43)'["/" ; Geen markeergroep . Set:(D_BulkGroep_D)'[(D_$P(R,D,43)_D) BulkGroep=BulkGroep_D_$P(R,D,43) Set $E(BulkGroep)="" If $L(BulkGroep) For I=1:1:$L(BulkGroep,D) Set BulkGroep(I)=$P(BulkGroep,D,I)_"`"_$P(BulkGroep,D,I) Set BulkGroep="" Do INIT^PROC("ULTOER") Set ULTOER(6)=0 Set ULNr=$P($G(^HULP(%J,"D",ULTOER(6))),D) Do REFETCH^ULTOER Do ADD^vhScherm(1,24) Do REFRESH^ULTOER Set ULTOER(4)=14 If $D(^HULP(%J,"D")) Do . If $O(BulkGroep("")) Do Quit:zb="CANC" ; Er zijn reeds groepen binnen deze selectie . . Set BulkGroep($O(BulkGroep(""),-1)+1)="`Nieuwe groep" . . Set BulkGroep=$$WILD^vhPOPUP("C;C","O1-","Groep",.BulkGroep) . If $L(BulkGroep) Set %SC=1 . Else Do . . Set BulkGroep=$P($P(Kriteria,D,3)," ") Set:BulkGroep="" BulkGroep="DIV" . . Do FIELD^vhScherm("ULTOERSEL","BULKGROEP") ; Ingave facturatiegroep indien nieuwe groep . Do:%SC . . Set:$L(BulkGroep,"/")=1 BulkGroep=$$NewFactGroep(BulkGroep) . . For Do ADD^vhLock("BulkGroep(BulkGroep)") Quit:%TC Do LDISP^vhLock("BulkGroep(BulkGroep)","Markeergroep "_BulkGroep) . . Do DISPLAY^vhScherm("ULTOERSEL","",5,"H","BULKGROEP") . . Set Ingave="" . . For Do Quit:'%SC If '$D(^HULP(%J,"D")) Set R=$$^vhTXTPOP("ULTOER","BULKDONE","",BulkGroep) Quit . . . Do FIELD^vhScherm("ULTOERSEL",$S(GroepVia="L":"LEVBEWIJS",1:"BONNR")) ; Ingave bon of leveringsbewijs . . . Quit:'%SC . . . If 0,$L(Ingave)=1,"BL"[$$UPCASE^vhRtn1(Ingave) Do Set Ingave="" Quit ; Wissel tussen ingave leveringsbewijs en bonnummer . . . . Set Ingave=$$UPCASE^vhRtn1(Ingave) . . . . Quit:Ingave=GroepVia . . . . Set GroepVia=Ingave . . . . Do ADD^vhScherm(1,24) . . . . Do REFRESH^ULTOER . . . Set BonRef=$S(Ingave<0:-Ingave,1:Ingave) . . . If GroepVia="L" Do ; Zoek alle bons van het ingegeven leveringsbewijs . . . . Set Delete=$E(Ingave)="-" . . . . If Ingave<0 Do . . . . . Set Ingave=$$LevBewijsToDelete(BulkGroep,-Ingave) . . . . Else Set Ingave=$$LevBewijsToAdd(%J,Ingave) . . . . If $L(Ingave),'$$CheckSumLevBons(Ingave,BonRef) Set (Ingave,BonRef)="" Quit . . . . Set Ingave=$$SkipTerugN(Ingave) . . . . Set:$L(Ingave) Ingave=$$CalcCDigit6(Ingave) . . . . If Ingave="" Set R=$$^vhTXTPOP("ULTOER","BULKLEVBEWNODATA","",BonRef) Set BonRef="" Quit ; Geen bons gevonden . . . . If Delete For I=1:1:$L(Ingave,";") Set $P(Ingave,";",I)=-$P(Ingave,";",I) . . . For Set BONNr=$P(Ingave,";") Quit:BONNr="" Do Set Ingave=$P(Ingave,";",2,999) . . . . Set Delete=$E(BONNr)="-",BONNr=$$CheckBonNr(BONNr,.BONNrs,BulkGroep) . . . . If 'BONNr Set BonRef="" Quit ; Geen geldig bonnummer . . . . Set KLNr=$P(^KU1(BONNr,"F"),D) . . . . If Delete Do If '$G(Deleted) Set BONNr="" Quit . . . . . Set DelBulkGroep=BulkGroep . . . . . Set:$P(^KUL(KLNr,"F",BONNr,1),D,38)'=BulkGroep DelBulkGroep=$P(^KUL(KLNr,"F",BONNr,1),D,38) . . . . . Do DelFactGroep(KLNr,BONNr,0) . . . . . Set Deleted=$P(^KUL(KLNr,"F",BONNr,1),D,38)="" . . . . Do:'Delete AddFactGroep(KLNr,BONNr,BulkGroep) . . . Do:$L(BonRef) . . . . Do REFETCH^ULTOER,REFRESH^ULTOER . . . . ; Geef een bericht dat het leveringsbewijs of de bon opgenomen-, verwijderd is . . . . Set FP=2201 . . . . Write @FCH,@F,@F1 . . . . Set FP=2401 . . . . Write @F,@FMTI," "_$S(GroepVia="L":"Leveringsbewijs",1:"Bonnummer")_" ",BonRef," is " . . . . Write $S(Delete:"verwijderd uit de",1:"opgenomen in") . . . . Write " groep ",$S(Delete:DelBulkGroep,1:BulkGroep)," ",@FMTi . . . Read *Ingave:5 ; Eventueel lezen van het eerste karacter van de volgende input . . . Write @FCS . . . If "\-1\13\"[(D_Ingave_D) Set Ingave="" . . . Else Set Ingave=$C(Ingave) . . Do REMOVE^vhLock("BulkGroep(BulkGroep)") Else Set R=$$^vhTXTPOP("ULTOER","BULKNOBON") Kill BulkGroep Do DISPLAY^vhScherm("ULTOERSEL","",5,"H") Quit ; ; Ophalen van de bonnummers van een leveringsbewijs om te verwijderen LevBewijsToDelete(BulkGroep,LevBewijs) New I,R,KLNr,BONNr,BONNrs Set KLNr=0,BONNrs="" For Set KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do . Set BONNr="" . For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do . . Set R=^KUL(KLNr,"F",BONNr,1) . . If $P($P(R,D,42),";",3)=LevBewijs,$P(R,D,38)=BulkGroep Set BONNrs=BONNrs_";"_BONNr Set $E(BONNrs)="" Quit BONNrs ; ; Ophalen van de bonnummers van een leveringsbewijs om toe te voegen LevBewijsToAdd(%J,LevBewijs) New I,R,Next,KLNr,BONNr,BONNrs Set (BONNrs,Next)="" For Set Next=$O(^HULP(%J,"D",Next)) Quit:Next="" Do . Set R=^HULP(%J,"D",Next),BONNr=$P(R,D),KLNr=$P(R,D,3) . Set R=$G(^KUL(KLNr,"F",BONNr,1)) . Set:$P($P(R,D,42),";",3)=LevBewijs BONNrs=BONNrs_";"_BONNr Set $E(BONNrs)="" Quit $G(BONNrs) ; ; Het controlecijfer toevoegen aan de bonnrs om dan als manuele ingave te verwerken CalcCDigit6(BONNrs) New I,BONNr If $L(BONNrs) For I=1:1:$L(BONNrs,";") Set BONNr=$P(BONNrs,";",I),BONNr=BONNr_$$CalcCDigit6^vhRtn2(BONNr),$P(BONNrs,";",I)=BONNr Quit BONNrs ; ; Nazien of alle gegroepeerde bons inbegrepen zijn via het CheckSum CheckSumLevBons(BONNrs,LevBewijs) New I,R,BONNr,CheckSum,CheckSumOk Set CheckSumOk="" Do:$L(BONNrs) . Set CheckSum=##class(BL.Flow.Proxy.pxTransportLijst).CheckSumLevBons($$PiecesToList^vhLib(BONNrs,";")) . For I=1:1:$L(BONNrs,";") Do Quit:'CheckSumOk . . Set BONNr=$P(BONNrs,";",I),KLNr=$P(^KU1(BONNr,"F"),D) . . Set R=^KUL(KLNr,"F",BONNr,1) . . Set CheckSumOk=$P($P(R,D,42),";",3)=LevBewijs . . Quit:'CheckSumOk . . Set CheckSumOk=$P($P(R,D,42),";",4)=CheckSum . Set:'CheckSumOk R=$$^vhTXTPOP("ULTOER","BULKCHECKSUMNOK","",LevBewijs) Quit CheckSumOk ; ; Inputcotrole leveringsbon bulkfacturatie CheckBonNr(BONNr,BONNrs,BulkGroep) New R,CDigit,KLNr,KlNaam,Delete,DelBulkGroep Set Delete=$E(BONNr)="-",BONNr=$$TRIMN^vhRtn1(BONNr),CDigit=$E(BONNr,$L(BONNr)),BONNr=$E(BONNr,1,$L(BONNr)-1) If Delete,$L(BONNr)'=6 Set BONNr="" If $L(BONNr)>2,$L(BONNr)'=6 Set BONNr=$$SHORTNUM^FLOW("KUL","KU1",BONNr) If $L(BONNr)'=6 Set BONNr="" Else Set:'$$CheckCDigit6^vhRtn2(BONNr,CDigit) BONNr="" If BONNr,$D(^KU1(BONNr,"F")) Set KLNr=$P(^KU1(BONNr,"F"),D) Else Set BONNr="" If 'BONNr Do ; Foutief nummer . Set BONNr=$$^vhTXTPOP("ULTOER","BULKBONWRONG") Else If '$D(^KUL(KLNr,"F",BONNr)) Do ; Bon onbekend . Set BONNr=$$^vhTXTPOP("ULTOER","BULKBONUNDEF","",$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0)) Else If Delete Do . Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) . If $P(^KUL(KLNr,"F",BONNr,1),D,38)="" Set BONNr=$$^vhTXTPOP("ULTOER","BULKBONNOTINBULK","",$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0),KlNaam) Quit ; Bon niet opgenomen in een groep . If $P(^KUL(KLNr,"F",BONNr,1),D,38)'=BulkGroep Do . . Set DelBulkGroep=$P(^KUL(KLNr,"F",BONNr,1),D,38) . . Set:'$$^vhTXTPOP("ULTOER","BULKDELBONNOTINTHISBULK","",$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0),KlNaam,BulkGroep,DelBulkGroep) BONNr="" ; Bon niet opgenomen in de huidige groep Else If '$D(BONNrs(BONNr)) Do . Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) . Set R=^KUL(KLNr,"F",BONNr,1),BulkGroep=$P(R,D,38) . If $L(BulkGroep) Set BONNr=$$^vhTXTPOP("ULTOER","BULKBONINBULK","",$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0),KlNaam,BulkGroep) Quit ; Bon reeds opgenomen in een groep . Set:'$$^vhTXTPOP("ULTOER","BULKBONNOTINSEL","",$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0),KlNaam) BONNr="" ; Bon niet in deze selectie Quit BONNr ; ; Terugnames uit de lijst weghalen, mag men niet markeren SkipTerugN(BONNrs) New I,R,BONNr,Leveringen,TerugNames,KLNr,LevBewijs Set (Leveringen,TerugNames,KLNr,LevBewijs)="" For I=1:1 Set BONNr=$P(BONNrs,";",I) Quit:BONNr="" Do . If $$ISTERUGN^FLOWBON5(BONNr) Set TerugNames=TerugNames_";"_BONNr . Else Set Leveringen=Leveringen_";"_BONNr . Set:'KLNr KLNr=$P(^KU1(BONNr,"F"),D) Set:'LevBewijs LevBewijs=$P($P(^KUL(KLNr,"F",BONNr,1),D,42),";",3) Set ($E(Leveringen),$E(TerugNames))="" Set:$L(TerugNames) R=$$^vhTXTPOP("ULTOER","BULKSKIPTERUGN","",$P(^KKL(^KK1(KLNr),0),D,2),LevBewijs,$TR(Leveringen,";",","),$TR(TerugNames,";",",")) Quit Leveringen ; ; Geef een nieuwe facturatiegroep NewFactGroep(BulkGroep) New R Set R=$G(^KUL(0,"F","FG","VZ")),$P(R,D)=$P(R,D)+1,^KUL(0,"F","FG","VZ")=R Set BulkGroep=BulkGroep_"/"_$P(R,D) Quit BulkGroep ; ; Groep invullen in bon AddFactGroep(KLNr,BONNr,BulkGroep) New R,KlNaam Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) For Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") Quit:%TC Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Levering "_BONNr) Set R=^KUL(KLNr,"F",BONNr,1),$P(R,D,28)="L",$P(R,D,38)=BulkGroep,^KUL(KLNr,"F",BONNr,1)=R Do ##class(BL.Flow.RecuPak.Main).AddVerpakToBon(BONNr,1) Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") Quit ; ; Groep verwijderen uit bon DelFactGroep(KLNr,BONNr,Bevestig) New R,BulkGroep,KlNaam,Delete Set Bevestig=$G(Bevestig,1) If 'Bevestig Set Delete=1 Else Do . Set R=^KUL(KLNr,"F",BONNr,1),BulkGroep=$P(R,D,38),KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) . Set Delete=$$^vhTXTPOP("ULTOER","BULKDELBON","",$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0),KlNaam,BulkGroep) Do:Delete . For Do ADD^vhLock("^KUL(KLNr,""F"",BONNr)") Quit:%TC Do LDISP^vhLock("^KUL(KLNr,""F"",BONNr)","Levering "_BONNr) . Set R=^KUL(KLNr,"F",BONNr,1),$P(R,D,28)="",$P(R,D,38)="",^KUL(KLNr,"F",BONNr,1)=R . Do REMOVE^vhLock("^KUL(KLNr,""F"",BONNr)") Quit ; ; Afhalingen in facturatiegroep AFH2FactGroep New R,BulkGroep,KLNr,BONNr,VerzW,Control Set KLNr=0 For Set KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do . Set BONNr="" . For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do . . Set R=^KUL(KLNr,"F",BONNr,1),VerzW=$P(R,D,7),Control=$P(R,D,34) . . Quit:'Control Quit:$L($P(R,D,38)) ; Niet gecontroleerd of bulkgroep reeds ingevuld . . If $E(VerzW,1,3)'="AFH",$E(VerzW,1,3)'="AFC",$E(VerzW,1,3)'="POB",$E(VerzW,1,3)'="PON",$E(VerzW,1,3)'="TPO",$E(VerzW,1,3)'="TPU" Quit ; Geen afhaling, post of taxipost . . Set:'$D(BulkGroep) BulkGroep=##class(BL.Flow.Facturatie.BulkFacturatie).NewFactGroep("AFH") . . Set $P(R,D,38)=BulkGroep,^KUL(KLNr,"F",BONNr,1)=R Quit