FLOW2 ;Toelevering, offerte, order, bon [ 11/29/2003 1:32 PM ] ; ; controle kredietwaardigheid ; * vrijgave boekhouding indien noodzakelijk ; * KredLock : controle of vrijgave reeds gebeurd is door boekhouding ; * Stock producten vormen geen probleem als klant toch niet kan betalen --> terug in stock ; * Negatieve orders moeten niet worden vrijgegeven ; ; SkipOrd : boolean ; * order wordt enkel geskipped indien SkipOrd true en volgende voorwaarden voldaan ; - monsters en proforma's ; - klant keukenbeheer KEUKENGROEP BEHEER F.E. heeft geen limiet op maatwerk producten CHKKRED(ORDNr,SkipOrd) New I,R,KLNr,Closed,Waardig,ExtraTxt,Count,KLNaam,Tekst,Ref,Optie,TUserId,AutoFree,VooruitBetaling,Dubieus,Created,Land New MailId,Ref,Optie,TUserId,KredLock,OLNr,PRNr,IsStock,Munt,NetStNSt,Contract,NegOrd,StockUpd,Txt,VerzW,Onderwerp Set SkipOrd=$G(SkipOrd) Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) Set Land=$$LAND^vhRtn1(KLNr,"K") Set R=^KKL(^KK1(KLNr),2),AutoFree=$P(R,D,8),R=^KKL(^KK1(KLNr),3),VooruitBetaling=$P(R,D,2),Dubieus=$P(R,D,8) If ##class(TECH.Config.ConfigMgr).Instance().GeefBoolean("BevestigdAXOrderSluitenActief") Do . Set Dubieus=0 . Set VooruitBetaling=0 Set R=^KOD(KLNr,"F",ORDNr,1) If $G(HalTOENr),HalTOENr'=$P(R,D,4) Set $P(R,D,4)=HalTOENr,^KOD(KLNr,"F",ORDNr,1)=R Set Created=$P(R,D,8),Closed=$P(R,D,22),KredLock=$P(R,D,23) Set Waardig=Closed,IsStock=1,NegOrd=0 Set:SkipOrd SkipOrd=$$SKIPORD(ORDNr) If 'Waardig,'AutoFree,'SkipOrd,KredLock<2 Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),Contract=$P(R,D,13) ..Set StockUpd=$P(R,D,14)'["S" Set:StockUpd StockUpd=$P(R,D,14)'["Z" ..Quit:'PRNr Quit:$L(Contract) Quit:'StockUpd ..Set:IsStock R=^KPR(PRNr,1),IsStock=$P(R,D,20) .Quit:IsStock .Set R=$$CALCORD^FLOWORD5(ORDNr),Munt=$P(R,D,7),NetStNSt=$P(R,D,8),NegOrd=NetStNSt<0 .Quit:NegOrd .Set ExtraTxt(1)="De boekhouding moet order "_ORDNr .Set ExtraTxt(2)="vrijgeven om te sluiten." .If KredLock,$L(Created) Do ..Set ExtraTxt(3)=" " ..Set ExtraTxt(4)="Reeds gemeld door "_$$USERNAME^vhUSER($P(Created,"#")) ..Set ExtraTxt(5)="op "_$$EXTDATE^vhLib.DataTypes($P(Created,"#",3))_" om "_$$EXTTIME^vhLib.DataTypes($P(Created,"#",3))_"." .If Dubieus Do ..Set Txt="Txt",Txt(1)="ªBªKDubieus!!!ªbªk",Txt(2)="" ..For I=1:1 Quit:'$D(ExtraTxt(I)) Set Txt(I+2)=ExtraTxt(I) ..Set R=$$WILD^vhTXTPOP("","",Txt),Waardig=0 .Else If VooruitBetaling Do ..Set Txt="Txt",Txt(1)="ªBVooruitbetaling!!!ªb",Txt(2)="" ..For I=1:1 Quit:'$D(ExtraTxt(I)) Set Txt(I+2)=ExtraTxt(I) ..Set R=$$WILD^vhTXTPOP("","",Txt),Waardig=0 .Else Set Waardig=$$WAARDIG^KREDIET(KLNr,"OLF",1,,.ExtraTxt) .Quit:Waardig Quit:KredLock .Do KLACHT^FLOWORD .Set R=^KOD(KLNr,"F",ORDNr,1),($P(R,D,23),KredLock)=1,VerzW=$P($P($P(R,D,7),";")," "),^KOD(KLNr,"F",ORDNr,1)=R .Set TUserId="EWKODE"_$$BOEKHVW^KLOPV(KLNr,,-1) .Set:'$D(^vhUSER("S",TUserId)) TUserId="EWKODE" .If '$G(CUserId) New CUserId Set CUserId=$P($$DEVUSER^vhUSER($$IO^cQ5),";") Set:'CUserId CUserId=3 .If '$$CHKMAIL(KLNr,"O") Do ..Set Count=0,R=^KKL(^KK1(KLNr),0),KLNaam=$P(R,D,2) ..Set Count=Count+1,Tekst(Count)="Mail van : "_$$USERNAME^vhUSER(CUserId) ..Set Count=Count+1,Tekst(Count)="~Klant : "_KLNr_" "_KLNaam ..If Dubieus Set Count=Count+1,Tekst(Count)="~~ªBªKDubieus!!!ªbªk" ..Else If VooruitBetaling Set Count=Count+1,Tekst(Count)="~~ªBVooruitbetaling!!!ªb" ..Set Count=Count+1,Tekst(Count)="~~Bepaalde orders (niet stock) kunnen niet gesloten worden!" ..Set Count=Count+1,Tekst(Count)="~Gelieve het nodige te doen zodat deze kunnen afgewerkt worden." ..Set Optie("LATER")="\D LATER^FLOW2(MailId)" ..Set Ref(1)="KL\"_KLNr_"\R\S",Ref(2)="FLOWGLOBORD\"_KLNr,Onderwerp=$S(Land="NL":"n ",1:"b ")_"Order -> vrijgave" ..Set:$L(VerzW) Onderwerp=Onderwerp_" ("_VerzW_")" ..Set MailId=$$SYSTEM^vhMAIL("KL",KLNr,Onderwerp,TUserId,.Tekst,.Ref,1,"",.Optie) ..Set ^VRIJGAVE(KLNr,"O")=MailId .Set ^VRIJGAVE(KLNr,"O",ORDNr)=CUserId Quit Waardig!KredLock!IsStock!NegOrd!SkipOrd ; ; Order telt niet mee voor kredietlimiet SKIPORD(ORDNr) New R,SkipOrd,KLNr Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) Set R=^KOD(KLNr,"F",ORDNr,1),SkipOrd=$P(R,D,25)="M" Set:'SkipOrd SkipOrd=$P(R,D,25)="P" Set:'SkipOrd SkipOrd=$S(KLNr=3711:$$ISHALUX^FLOW("O",ORDNr),1:0) ; Keukenbeheer indien Halux Quit SkipOrd ; FREEORD(ORDNr,MailId,TUserId) New R,Tekst,KLNr,KLNaam,KredLock,Ref,Creator Set R=$G(^KO1(ORDNr,"F")),KLNr=$P(R,D) If 'KLNr||'$D(^KOD(KLNr,"F",ORDNr,1)) Do Quit .Set R=$$^vhTXTPOP("FLOWORD","VRIJGAVEUNDEF","",ORDNr) .Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"S") .Do DELUSERS(MailId) If $$LOCKW^vhLock(,$NA(^KOD(KLNr,"F",ORDNr))) Else Quit Set R=^KOD(KLNr,"F",ORDNr,1),KredLock=$P(R,D,23),Creator=$P($P(R,D,8),"#") If $G(KredLock)=1 Do .If '$$ASK^vhWACHTW("BOEKHOUD.","","",0) Quit .Quit:'$$^vhTXTPOP("FLOWORD","VRIJGAVE","",ORDNr,$P(^KKL(^KK1(KLNr),0),D,2)) .Set $P(^KOD(KLNr,"F",ORDNr,1),D,23)=2 ; vrijgave order .Set Count=0,R=^KKL(^KK1(KLNr),0),KLNaam=$P(R,D,2) .Set Count=Count+1,Tekst(Count)="Mail van : "_$$USERNAME^vhUSER(CUserId) .Set Count=Count+1,Tekst(Count)="~Klant : "_KLNr_" "_KLNaam .Set Count=Count+1,Tekst(Count)="~Order : "_ORDNr .Set Count=Count+1,Tekst(Count)="~~Dit order kan afgesloten worden." .Set Ref(1)="KL\"_KLNr_"\R\O",Ref(2)="ORD\"_ORDNr_"\R\" .Set:'TUserId TUserId=Creator Set:'TUserId R=^vhMAIL("D",MailId),TUserId=$P(R,D,6) .Quit:'TUserId .Do:TUserId'=CUserId ..Set TUserId="ORDVW" ..Set R=$$SYSTEM^vhMAIL("KL",KLNr,"Order "_ORDNr_" -> afsluiten",TUserId,.Tekst,.Ref,1) .Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"S") .Do DELUSERS(MailId) Lock -^KOD(KLNr,"F",ORDNr) Quit ; LATER(MailId) Do DELUSERS(MailId) Kill ^vhMAIL("D",MailId,"S") Quit ; ; Verwijder alle andere gebruikers uit de mail DELUSERS(MailId) New R,System,TUserId Do:$D(^vhMAIL("D",MailId)) .Set TUserId=";"_$$TUSERID^vhMAIL(MailId)_";" .Set TUserId=$P(TUserId,";"_CUserId_";")_";"_$P(TUserId,";"_CUserId_";",2) .Set $E(TUserId)="",$E(TUserId,$L(TUserId))="" .Do DELUSERS^vhMAIL(MailId,TUserId) .Set R=^vhMAIL("D",MailId),System=$P($P(R,D,10),",",2) .Kill:$L(System) ^vhMESSAGE(System,"MAIL",MailId) Quit ; ; Globaal vrijgeven van orders en leveringsbons GLOBFREE(KLNr,Pos) New I,R,zb,GetFree,Vrijgave,ObjId,SelKey,Orders,Bons,KlNaam,LD,ORDNrs,IsRemb New BONNrs,ODELNrs,BDELNrs,Txt,But,Cnt,UserId,GlobFree,GlobDel,TeBet,Munt,VerzW,VerzDat If '$D(Type) New Type Set Type="OB" If '$G(CUserId) New CUserId Set CUserId=$$DEVUSER^vhUSER($G(io,$$IO^cQ5)) Set Pos=$G(Pos,"C;C"),UserId=CUserId,GetFree=$$GETFREE(KLNr,Type) If Type="O",GetFree'["O#" Set GetFree="" If Type="B",GetFree'["B#" Set GetFree="" Set (zb,Type)="" Set:GetFree["O#" Type="O" Set:GetFree["B#" Type=Type_"B" If $L(GetFree) Do .Set:$L(Type)=2 $E(Type)=$E(Type)_";",Type=$$PI^vhPOPUP(Pos,"-1OM","","FLOW","GLOBFREE") .Quit:zb="CANC" .Set Type=$TR(Type,";","") .Quit:Type="" Quit:'$$ULOCK^vhMAIL(UserId) .Do STORE^vhTERMINA() .Set GetFree=$$GETFREE(KLNr,Type),IsRemb=$$ISREMB^REMBOURS(KLNr) .Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2) .For I=1:1:$L(GetFree,";") Do ..Set ObjId=$P($P(GetFree,";",I),"#",2) ..Set Type=$P($P(GetFree,";",I),"#") ..If Type="S" Set Vrijgave(I)="&S" ..Else If Type="E" Do ...Set R=$$EXTNUM^vhLib.DataTypes($$GETEXTRA^REMBOURS(KLNr),0,".ZT",2) ...Set Vrijgave(I)="\E\"_"Extra te bet."_D_R_D_$$MUNT^KLANT(KLNr)_D_D ...If IsRemb Set Vrijgave(I)=Vrijgave(I)_"REMBOURS" ..Else Do ...Set:Type="O" R=$$CALCORD^FLOWORD5(ObjId),Munt=$P(R,D,7) ...Set:Type="B" R=$$TEBET^EWORDS3(ObjId),Munt=$P(R,D,2) ...Set TeBet=$$EXTNUM^vhLib.DataTypes($P(R,D),0,".T",2) ...Set R=$S(Type="O":"Order",1:"Bon"),R=$RE($J($RE(R),5)) ...Set Vrijgave(I)="1\"_$P(GetFree,";",I)_D_R ...Set Vrijgave(I)=Vrijgave(I)_" "_ObjId_D_TeBet_D_Munt ...Quit:Type="O" ...Set R=^ORDW("D",ObjId),VerzW=$P(R,D,2),VerzDat=$P(R,D,5) ...Set Vrijgave(I)=Vrijgave(I)_D_VerzW_D_$$EXTDATE^vhLib.DataTypes(VerzDat) .Do INIT^vhLIST("FLOW","GLOBFREE",.LD) .If GetFree["E#" Do ..Set But="" ..For Set But=$O(LD("B",But)) Quit:But="" Set R=LD("B",But) If $P(R,"`",2)="E" Set $P(R,"`",3)=$TR($P(R,"`",3),"H",""),LD("B",But)=R Quit ..Set R=$P(LD("FMT","L",1),"§",3),$P(R,"`",4)=$P(R,"`",4),$P(LD("FMT","L",1),"§",3)=R .If GetFree'["B#" Do ..Set R=LD("FMT","L",1),R=$P(R,"§",1,5),LD("FMT","L",1)=R ..Set R=$P(LD("POS"),"`"),$P(R,";",2)=$P(R,";",2)+8,$P(R,";",4)=$P(R,";",4)-8 ..Set ($P(LD("POS"),"`"),$P(LD("SET"),"`"))=R .If GetFree["B#" Do ..For I=1:1 Set R=$G(LD("B",I)) Quit:R="" If $P(R,"`",2)="V" Set $P(R,"`",3)="",LD("B",I)=R Quit .Set I=$O(Vrijgave(""),-1),R=$P(LD("POS"),"`") .Do:I<20 ..Set $P(R,";")=12-(I\2),$P(R,";",3)=$P(R,";")+I-1 .Do:$P(R,";",4)-$P(R,";",2)<($L(KlNaam)+10) ..Set $P(R,";",2)=40-($L(KlNaam)+10\2),$P(R,";",4)=$P(R,";",2)+$L(KlNaam)+10 .Set ($P(LD("POS"),"`"),$P(LD("SET"),"`"))=R .For Set R=$G(Vrijgave(LD("SELECT"))) Quit:$P(R,D)'="&S"&($P(R,D,2)'="E") Set LD("SELECT")=LD("SELECT")+1 .Do WRITE^vhLIST(.LD) .For Set SelKey=$P(LD("B"),"`",5),R=$$SCROLL^vhLIST(.LD) Quit:R="O" Quit:R="A" Do ..Do:R=" " ...Set $P(LD("B"),"`",5)=SelKey,$P(Vrijgave(LD("SELECT")),D)='$P(Vrijgave(LD("SELECT")),D) ...Do WRITE^vhLIST(.LD) ..Do:R="V" ...Set R=Vrijgave(LD("SELECT")) ...Quit:$P($P(R,D,2),"#")'="B" ...Set $P(LD("B"),"`",5)=SelKey,$P(Vrijgave(LD("SELECT")),D)=-1 ...Do WRITE^vhLIST(.LD) ..Do:R="E" ...Do STORE^vhTERMINA() ...Set R=$$WIJZIG^KLANT(KLNr) ...For I=1:1 Quit:'$D(Vrijgave(I)) If $P(Vrijgave(I),D,2)="E" Set $P(Vrijgave(I),D,4)=$$EXTNUM^vhLib.DataTypes($$GETEXTRA^REMBOURS(KLNr),0,".ZT",2) ...Do REFRESH^vhTERMINA(),WRITE^vhLIST(.LD) ..Do:R="K" ...Do STORE^vhTERMINA() ...Set Type="" ...Set:GetFree["O#" Type="O" Set:GetFree["B#" Type=Type_"B" ...Set R=$$RAADPL^KLANT(KLNr,$S(Type="B":"L",Type="O":"O",1:1),1) ...Do REFRESH^vhTERMINA() .Do:R="O" ..Set (GlobFree,GlobDel)="" ..For I=1:1 Set R=$G(Vrijgave(I)) Quit:R="" Do ...Set:$P(R,D)=1 GlobFree=GlobFree_";"_$P(R,D,2) ...Set:$P(R,D)=-1 GlobDel=GlobDel_";"_$P(R,D,2) ..Set ($E(GlobFree),$E(GlobDel))="" ..Set (ORDNrs,BONNrs,ODELNrs,BDELNrs)="" ..For I=1:1:$L(GlobFree,";") Do ...Set:$P($P(GlobFree,";",I),"#")="O" ORDNrs=ORDNrs_";"_$P(GlobFree,";",I) ...Set:$P($P(GlobFree,";",I),"#")="B" BONNrs=BONNrs_";"_$P(GlobFree,";",I) ..For I=1:1:$L(GlobDel,";") Do ...Set:$P($P(GlobDel,";",I),"#")="O" ODELNrs=ODELNrs_";"_$P(GlobDel,";",I) ...Set:$P($P(GlobDel,";",I),"#")="B" BDELNrs=BDELNrs_";"_$P(GlobDel,";",I) ..Set ($E(ORDNrs),$E(BONNrs),$E(ODELNrs),$E(BDELNrs))="" ..If ORDNrs="",BONNrs="",ODELNrs="",BDELNrs="" Quit ..Quit:'$$ASK^vhWACHTW("BOEKHOUD.","","",0) ..Set Cnt=0 ..Do:$L(ORDNrs) ...Set Cnt=Cnt+1,Txt(Cnt)="Alle geselekteerde orders (*) van "_KlNaam ...Set Cnt=Cnt+1,Txt(Cnt)="kunnen afgesloten worden." ..If $L(ORDNrs),$L(BONNrs) Set Cnt=Cnt+1,Txt(Cnt)="" ..Do:$L(BONNrs) ...Set Cnt=Cnt+1,Txt(Cnt)="Alle geselekteerde leveringsbons (*) van "_KlNaam ...Set Cnt=Cnt+1,Txt(Cnt)="zijn vrij voor uitlevering." ..Do:$L(ODELNrs) ...Set Cnt=Cnt+1,Txt(Cnt)="Alle te verwijderen orders (v) van "_KlNaam ...Set Cnt=Cnt+1,Txt(Cnt)="zijn verwijderd." ..Do:$L(BDELNrs) ...Set Cnt=Cnt+1,Txt(Cnt)="Alle te verwijderen leveringsbons (v) van "_KlNaam ...Set Cnt=Cnt+1,Txt(Cnt)="zijn verwijderd." ..Set But(1)="Ok&1",But(2)="Annuleer&0" ..Quit:'$$WILD^vhTXTPOP("","","Txt","But") ..Do:$L(ORDNrs) GLOBORD(ORDNrs,UserId) ..Do:$L(BONNrs) GLOBBON(BONNrs,UserId) ..;Do:$L(ODELNrs) GLOBODEL(ODELNrs,UserId) ..Do:$L(BDELNrs) GLOBBDEL(BDELNrs,UserId) .Do REFRESH^vhTERMINA() .Do UULOCK^vhMAIL(UserId) Else Do .Set R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) .Set R=$S(Type="O":"geen orders",Type="B":"geen bons",1:"noch orders, noch bons") .Set R=$$^vhTXTPOP("FLOW","GLOBFREE","",R,KlNaam) .Set ^REMBOURS(KLNr)="" Quit ; ; Ophalen van de vrij te geven orders en leveringen GETFREE(KLNr,Type) New R,GetOrd,GetBon,GetFree,ORDNr,CONSNr Set Type=$G(Type,"OB"),(GetOrd,GetBon,GetFree)="" Do:Type["O" .Set ORDNr="" .For Set ORDNr=$O(^VRIJGAVE(KLNr,"O",ORDNr)) Quit:ORDNr="" Do ..Set R=$G(^KOD(KLNr,"F",ORDNr,1)) ..If $P(R,D,23)=1 Set GetOrd=GetOrd_";O#"_ORDNr ..Else Kill ^VRIJGAVE(KLNr,"O",ORDNr) Do:Type["B" .Set CONSNr="" .For Set CONSNr=$O(^VRIJGAVE(KLNr,"B",CONSNr)) Quit:CONSNr="" Do ..Set R=$G(^ORDW("D",CONSNr)) ..If $P(R,D,20)="K" Set GetBon=GetBon_";B#"_CONSNr ..Else Kill ^VRIJGAVE(KLNr,"B",CONSNr) Set GetFree=GetOrd If $L(GetBon) Set:$L(GetOrd) GetFree=GetFree_";S#" Set GetFree=GetFree_";E#;S#"_GetBon Set $E(GetFree)="" Quit GetFree ; ; Vrijgave van alle geselekteerde orders GLOBORD(ORDNrs,CUserId) New I,R,ORDNr,MailId,TUserId,TUser,KredLock,KLNr,KlNaam,Tekst,Count,Ref,Urgentie For Set R=$P(ORDNrs,";") Quit:R="" Do .Set ORDNrs=$P(ORDNrs,";",2,999) .Set ORDNr=$P(R,"#",2) .Set R=$G(^KO1(ORDNr,"F")),KLNr=$P(R,D) .Do:KLNr ..Set R=$G(^KOD(KLNr,"F",ORDNr,1)),KredLock=$P(R,D,23) ..Quit:KredLock'=1 ..Set $P(R,D,23)=2,^KOD(KLNr,"F",ORDNr,1)=R ..Set R=$G(^VRIJGAVE(KLNr,"O",ORDNr)),TUserId=$P(R,D) ..Set:TUserId TUserId(TUserId,ORDNr)="" .Kill ^VRIJGAVE(KLNr,"O",ORDNr) Set TUserId="" For Set TUserId=$O(TUserId(TUserId)) Quit:TUserId="" Do .Quit:TUserId=CUserId .Set (ORDNrs,ORDNr)="" .For Set ORDNr=$O(TUserId(TUserId,ORDNr)) Quit:ORDNr="" Set ORDNrs=ORDNrs_","_ORDNr .Set $E(ORDNrs)="" .Quit:'$L(ORDNrs) .Kill Tekst,Ref .Set Count=0,R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) .Set Count=Count+1,Tekst(Count)="Mail van : "_$$USERNAME^vhUSER(CUserId) .Set Count=Count+1,Tekst(Count)="~Klant : "_KLNr_" "_KlNaam .If $L(ORDNrs,",")=1 Do ..Set Count=Count+1,Tekst(Count)="~Order : "_ORDNrs ..Set Count=Count+1,Tekst(Count)="~~Dit order kan afgesloten worden." .Else Do ..Set R=ORDNrs ..Set Count=Count+1,Tekst(Count)="~Orders : "_$P(R,",",1,9),R=$P(R,",",10,999) ..For Quit:R="" Set Count=Count+1,Tekst(Count)="~"_$J("",9)_$P(R,",",1,9),R=$P(R,",",10,999) ..Set Count=Count+1,Tekst(Count)="~~Deze orders kunnen afgesloten worden." .Set Ref(1)="KL\"_KLNr_"\R\O" .For I=1:1:$L(ORDNrs,",") Set Ref(I+1)="ORD\"_$P(ORDNrs,",",I)_"\R\" .Set TUser=$$GeefBestemmelingenVoorCascadeAdminMail(KLNr) .Do ##class(BL.Legacy.vhMAIL).VerstuurViaSmtpIpvSystemMail("KL",KLNr,"Orders -> afsluiten",TUser,.Tekst,.Ref,1) .;Set R=$$SYSTEM^vhMAIL("KL",KLNr,"Orders -> afsluiten",TUser,.Tekst,.Ref,1) Set MailId=$G(^VRIJGAVE(KLNr,"O")),ORDNr=$O(^VRIJGAVE(KLNr,"O","")) If MailId Do DELUSERS(MailId) Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"S") If ORDNr="" Kill ^VRIJGAVE(KLNr,"O") ; Alles is vrijgegeven Else Set ^VRIJGAVE(KLNr,"O")="" Quit ; ; Vrijgave van alle geselekteerde leveringen GLOBBON(CONSNrs,CUserId) New I,R,CONSNr,BCONSNrs,WCONSNrs,MailId,TUserId,KLNr,KlNaam New Tekst,Count,Ref,DOutDate,WMSStat,Aktie,Param,Type,Urgentie For Set R=$P(CONSNrs,";") Quit:R="" Do .Set CONSNrs=$P(CONSNrs,";",2,999) .Set CONSNr=$P(R,"#",2) .Set R=$G(^ORDW("D",CONSNr)),KLNr=$P(R,D),WMSStat=$P(R,D,20) .Set R=$G(^VRIJGAVE(KLNr,"B",CONSNr)),TUserId=$P(R,D),Aktie=$P(R,D,2) .If KLNr,WMSStat="K" Do ..Do CHKLEVT^EWORDST4(CONSNr) ..Set R=^ORDW("D",CONSNr),$P(R,D,20)="",^ORDW("D",CONSNr)=R,DOutDate=$P($P(R,D,3),",") ..If Aktie="",DOutDate'>$H Do SEND^EWORDSW(CONSNr) ; Doorsturen naar WMS ..If Aktie="B" Do UITLEV^EWORDS2(CONSNr,1) ; Bon opmaken ..Set:TUserId TUserId(TUserId,$S($L(Aktie):Aktie,1:"W"),CONSNr)="" .Kill ^VRIJGAVE(KLNr,"B",CONSNr) Set TUserId="" For Set TUserId=$O(TUserId(TUserId)) Quit:TUserId="" Do .Quit:TUserId=CUserId .Set (Aktie,BCONSNrs,WCONSNrs)="" .For Set Aktie=$O(TUserId(TUserId,Aktie)) Quit:Aktie="" Do ..Set CONSNr="" ..For Set CONSNr=$O(TUserId(TUserId,Aktie,CONSNr)) Quit:CONSNr="" Set @(Aktie_"CONSNrs")=@(Aktie_"CONSNrs")_","_CONSNr .Set ($E(BCONSNrs),$E(WCONSNrs))="" .If BCONSNrs="",WCONSNrs="" Quit .Kill Tekst,Ref .Set Count=0,R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) .Set Count=Count+1,Tekst(Count)="Mail van : "_$$USERNAME^vhUSER(CUserId) .Set Count=Count+1,Tekst(Count)="~Klant : "_KLNr_" "_KlNaam .Do:$L(BCONSNrs) ..If $L(BCONSNrs,",")=1 Do ...Set Count=Count+1,Tekst(Count)="~~Lev. bon : "_BCONSNrs ...Set Count=Count+1,Tekst(Count)="~Deze leveringsbon is vrijgegeven en opgemaakt." ..Else Do ...Set Count=Count+1,Tekst(Count)="~~Lev. bons: "_$P(BCONSNrs,",",1,9),BCONSNrs=$P(BCONSNrs,",",10,999) ...For Quit:BCONSNrs="" Set Count=Count+1,Tekst(Count)="~"_$J("",11)_$P(BCONSNrs,",",1,9),BCONSNrs=$P(BCONSNrs,",",10,999) ...Set Count=Count+1,Tekst(Count)="~Deze leveringsbons zijn vrijgegeven en opgemaakt." .Do:$L(WCONSNrs) ..If $L(WCONSNrs,",")=1 Do ...Set Count=Count+1,Tekst(Count)="~~Lev. bon : "_WCONSNrs ...Set Count=Count+1,Tekst(Count)="~Deze leveringsbon is vrijgegeven en verzonden naar het WMS." ..Else Do ...Set Count=Count+1,Tekst(Count)="~~Lev. bons: "_$P(WCONSNrs,",",1,9),WCONSNrs=$P(WCONSNrs,",",10,999) ...For Quit:WCONSNrs="" Set Count=Count+1,Tekst(Count)="~"_$J("",11)_$P(WCONSNrs,",",1,9),WCONSNrs=$P(WCONSNrs,",",10,999) ...Set Count=Count+1,Tekst(Count)="~Deze leveringsbons zijn vrijgegeven en verzonden naar het WMS." .Set Ref(1)="KL\"_KLNr_"\R\O" .Set TUserId = $$GeefBestemmelingenVoorAdminMail(KLNr) .Do ##class(BL.Legacy.vhMAIL).VerstuurViaSmtpIpvSystemMail("KL",KLNr,"Leveringsbons -> vrijgegeven",TUserId,.Tekst,.Ref,1) .;Set R=$$SYSTEM^vhMAIL("KL",KLNr,"Leveringsbons -> vrijgegeven",TUserId,.Tekst,.Ref,1) Set MailId=$G(^VRIJGAVE(KLNr,"B")),CONSNr=$O(^VRIJGAVE(KLNr,"B","")) If MailId Do DELUSERS(MailId) Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"R",3),^vhMAIL("D",MailId,"S") If CONSNr="" Kill ^VRIJGAVE(KLNr,"B") ; Alles is vrijgegeven of verwijderd Else Set ^VRIJGAVE(KLNr,"B")="" Quit GeefBestemmelingenVoorAdminMail(KLNr) New KlantID, Bestemmelingen #dim KlantID As %String = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) Set Bestemmelingen = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(KlantID).GeefInterneVerantwoordelijkeEnBackups() Quit Bestemmelingen GeefBestemmelingenVoorCascadeAdminMail(KLNr) New KlantID, Bestemmelingen #dim KlantID As %String = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) Set Bestemmelingen = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(KlantID).GeefCascadeMailgroepInterneVerantwoordelijke() Quit Bestemmelingen ; GLOBBDEL(CONSNrs,CUserId) New I,R,CONSNr,MailId,TUserId,KLNr,KlNaam New Tekst,Count,Ref,WMSStat,Param,Type,Urgentie For Set R=$P(CONSNrs,";") Quit:R="" Do .Set CONSNrs=$P(CONSNrs,";",2,999) .Set CONSNr=$P(R,"#",2) .Set R=$G(^ORDW("D",CONSNr)),KLNr=$P(R,D),WMSStat=$P(R,D,20) .Set R=$G(^VRIJGAVE(KLNr,"B",CONSNr)),TUserId=$P(R,D) .If KLNr,WMSStat="K" Do ..Set R=^ORDW("D",CONSNr),$P(R,D,20)="",^ORDW("D",CONSNr)=R ..Do REMWMS^EWORDST(CONSNr) ; Verwijderen ..Set:TUserId TUserId(TUserId,CONSNr)="" .Kill ^VRIJGAVE(KLNr,"B",CONSNr) Set TUserId="" For Set TUserId=$O(TUserId(TUserId)) Quit:TUserId="" Do .Quit:TUserId=CUserId .Set (CONSNrs,CONSNr)="" .For Set CONSNr=$O(TUserId(TUserId,CONSNr)) Quit:CONSNr="" Set CONSNrs=CONSNrs_","_CONSNr .Set $E(CONSNrs)="" .Quit:'$L(CONSNrs) .Kill Tekst,Ref .Set Count=0,R=^KKL(^KK1(KLNr),0),KlNaam=$P(R,D,2) .Set Count=Count+1,Tekst(Count)="Mail van : "_$$USERNAME^vhUSER(CUserId) .Set Count=Count+1,Tekst(Count)="~Klant : "_KLNr_" "_KlNaam .If $L(CONSNrs,",")=1 Do ..Set Count=Count+1,Tekst(Count)="~Lev. bon : "_CONSNrs ..Set Count=Count+1,Tekst(Count)="~~Deze leveringsbon is verwijderd uit het WMS." .Else Do ..Set Count=Count+1,Tekst(Count)="~Lev. bons: "_$P(CONSNrs,",",1,9),CONSNrs=$P(CONSNrs,",",10,999) ..For Quit:CONSNrs="" Set Count=Count+1,Tekst(Count)="~"_$J("",9)_$P(CONSNrs,",",1,9),CONSNrs=$P(CONSNrs,",",10,999) ..Set Count=Count+1,Tekst(Count)="~~Deze leveringsbons zijn verwijderd uit het WMS." .Set Ref(1)="KL\"_KLNr_"\R\O" .Set R=$$SYSTEM^vhMAIL("KL",KLNr,"Leveringsbons -> verwijderd",TUserId,.Tekst,.Ref,1) Set MailId=$G(^VRIJGAVE(KLNr,"B")),CONSNr=$O(^VRIJGAVE(KLNr,"B","")) If MailId Do DELUSERS(MailId) Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"R",3),^vhMAIL("D",MailId,"S") If CONSNr="" Kill ^VRIJGAVE(KLNr,"B") ; Alles is vrijgegeven of verwijderd Else Set ^VRIJGAVE(KLNr,"B")="" Quit ; CHKMAIL(KLNr,Type) New MailId,UserId,VooruitBetaling Set VooruitBetaling=$P(^KKL(^KK1(KLNr),3),D,2) If VooruitBetaling Set MailId="" ; Indien vooruitbetaling steeds een mail verzenden Else Do .Set MailId=$G(^VRIJGAVE(KLNr,Type)) .Do:MailId ..Set UserId="" ..For Set UserId=$O(^vhMAIL("D",MailId,"N",UserId)) Quit:UserId="" Set R=^vhMAIL("D",MailId,"N",UserId) Quit:$P(R,D,3)'="G" ..Set:'UserId MailId="" Quit MailId ; ; Verwijderen van de referentie in ^VRIJGAVE DelVRIJGAVE(KLNr,Type,Ref) New MailId Kill ^VRIJGAVE(KLNr,Type,Ref) Do:$O(^VRIJGAVE(KLNr,Type,""))="" ; Indien alles weg, de mail ook weghalen . Set MailId=$G(^VRIJGAVE(KLNr,Type)) . Do:MailId DELOBJ^vhMAIL(MailId) . Kill ^VRIJGAVE(KLNr,Type) Quit ; ; Toegang vragen tot het verkopen per stuk van producten dewelke niet per stuk verkocht mogen worden WWNooitPerStuk(PRNr) New J,R,WWOk,PerStuk,RecuPak,ExtraTekst Set WWOk=0,J=$O(^KPR(PRNr,"J")) Do:$E(J)="J" . Set R=^(J),PerStuk=$P(R,D,13) . If PerStuk'=-1 Set WWOk=1 Quit . Set RecuPak=$P(R,D,32),ExtraTekst="Enkel veelvouden van de "_$S(RecuPak:"(Ecopak) ",1:"")_"verpakking toegelaten." . Set WWOk=$$ASK^vhWACHTW($S(RecuPak:"ECOPAK",1:"")_"PERSTUK","","",0,,ExtraTekst) Quit WWOk ; ; Minimail versturen indien prijzen toegelaten < de aankoopprijs AkpVkpVerlies(DocType,DocNum,AkpVkpVerlies) New R,KLNr,KlNaam,KlPrompt,DocNaam,LijnNr,UNLNr,PRNr,AankPr,VerkPr,Aantal,KortText,Verlies,From,To,Subject,Body,Status,TempText,TempText2,GrOrde,VerkOnderAank,VerlaagdeVerk,Regio Do:$D(AkpVkpVerlies) . If DocType="A",DocNum Set DocNaam="Offerte",KlPrompt="Klant ",KLNr=$P($G(^KOFKL1(DocNum,"F")),D),TempText="aan te bieden",TempText2="offerteprijs" . If DocType="O",DocNum Set DocNaam="Order",KlPrompt="Klant",KLNr=$P($G(^KO1(DocNum,"F")),D),TempText="te verkopen",TempText2="verkoopprijs" . If DocType="L",DocNum Set DocNaam="Levering",KlPrompt="Klant ",KLNr=$P($G(^KU1(DocNum,"F")),D),TempText="te verkopen",TempText2="verkoopprijs" . Quit:'$G(KLNr) . Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2),Regio=$P(^KKL(^KK1(KLNr),0),D,20),Subject=DocNaam_" voor "_KlNaam_" - verlaagde verkoopprijs",(VerkOnderAank,VerlaagdeVerk,UNLNr)="" . For Set UNLNr=$O(AkpVkpVerlies(UNLNr)) Quit:UNLNr="" Do If VerkOnderAank,VerlaagdeVerk Quit . . Set R=AkpVkpVerlies(UNLNr) . . Set:$P(R,D,5)="" VerkOnderAank=1 . . Set:$P(R,D,5)="*" VerlaagdeVerk=1 . Set Body=KlPrompt_": "_KlNaam_$C(13)_DocNaam_": "_DocNum_$C(13)_$C(13) . Do:VerkOnderAank . . Set Body=Body_"Er werd toestemming gegeven aan "_$$USERNAME^vhUSER($$DEVUSER^vhUSER()) . . Set Body=Body_" om producten "_TempText_" onder de aankoopprijs!"_$C(13)_$C(13) . . Set Body=Body_"Korttekst Aank prijs Verk prijs Aantal Verlies"_$C(13) . . Set Body=Body_"------------------------- ---------- ---------- ------ -------"_$C(13) . . Set UNLNr="" . . For Set UNLNr=$O(AkpVkpVerlies(UNLNr)) Quit:UNLNr="" Do . . . Set R=AkpVkpVerlies(UNLNr),PRNr=$P(R,D),AankPr=$P(R,D,2),VerkPr=$P(R,D,3),GrOrde=$P(R,D,4) . . . Quit:$P(R,D,5)="*" . . . Set:'GrOrde GrOrde=1 . . . Set LijnNr=UNLNr . . . If DocType="A" Set LijnNr=$$OFLNR^FLOWOFF3(DocNum,UNLNr),Aantal=$P($G(^KOFKL(KLNr,"F",DocNum,LijnNr)),D,3) . . . If DocType="O" Set LijnNr=$$OLNR^FLOWORD3(DocNum,UNLNr),Aantal=$P($G(^KOD(KLNr,"F",DocNum,LijnNr)),D,3) . . . If DocType="L" Set LijnNr=$$BLNR^FLOWBON3(DocNum,UNLNr),Aantal=$P($G(^KUL(KLNr,"F",DocNum,LijnNr)),D,3) . . . Set Verlies=$J(AankPr-VerkPr/GrOrde*Aantal,0,2),KortText=$P(^KPR(PRNr,0),D) . . . Set GrOrde=$S(GrOrde=1000:"/M",GrOrde=100:"% ",1:" ") . . . Set R=KortText_$J("",25-$L(KortText))_$$EXTNUM^vhLib.DataTypes(AankPr,15,".",2)_GrOrde_$$EXTNUM^vhLib.DataTypes(VerkPr,13,".",2)_GrOrde . . . Set R=R_$$EXTNUM^vhLib.DataTypes(Aantal,8,".",0)_$$EXTNUM^vhLib.DataTypes(Verlies,15,".",2) . . . Set Body=Body_R_$C(13) . Do:VerlaagdeVerk . . Set:VerkOnderAank Body=Body_$C(13)_$C(13) . . Set Body=Body_$$USERNAME^vhUSER($$DEVUSER^vhUSER())_" verlaagde de "_TempText2_" van volgende producten!"_$C(13)_$C(13) . . Set Body=Body_"Korttekst Actuele pr Verk prijs Aantal Verlies"_$C(13) . . Set Body=Body_"------------------------- ---------- ---------- ------ -------"_$C(13) . . Set UNLNr="" . . For Set UNLNr=$O(AkpVkpVerlies(UNLNr)) Quit:UNLNr="" Do . . . Set R=AkpVkpVerlies(UNLNr),PRNr=$P(R,D),AankPr=$P(R,D,2),VerkPr=$P(R,D,3),GrOrde=$P(R,D,4) . . . Quit:$P(R,D,5)="" . . . Set:'GrOrde GrOrde=1 . . . Set LijnNr=UNLNr . . . If DocType="A" Set LijnNr=$$OFLNR^FLOWOFF3(DocNum,UNLNr),Aantal=$P($G(^KOFKL(KLNr,"F",DocNum,LijnNr)),D,3) . . . If DocType="O" Set LijnNr=$$OLNR^FLOWORD3(DocNum,UNLNr),Aantal=$P($G(^KOD(KLNr,"F",DocNum,LijnNr)),D,3) . . . If DocType="L" Set LijnNr=$$BLNR^FLOWBON3(DocNum,UNLNr),Aantal=$P($G(^KUL(KLNr,"F",DocNum,LijnNr)),D,3) . . . Set Verlies=$J(AankPr-VerkPr/GrOrde*Aantal,0,2),KortText=$P(^KPR(PRNr,0),D) . . . Set GrOrde=$S(GrOrde=1000:"/M",GrOrde=100:"% ",1:" ") . . . Set R=KortText_$J("",25-$L(KortText))_$$EXTNUM^vhLib.DataTypes(AankPr,15,".",2)_GrOrde_$$EXTNUM^vhLib.DataTypes(VerkPr,13,".",2)_GrOrde . . . Set R=R_$$EXTNUM^vhLib.DataTypes(Aantal,8,".",0)_$$EXTNUM^vhLib.DataTypes(Verlies,15,".",2) . . . Set Body=Body_R_$C(13) . Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE" . Set To=$$MAILTO(Regio) . Set Status=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit ; ; Minimail versturen bij het opmaken van een offerte, order of bon voor "B VAN HOECKE" PartMedew(DocType,DocNum) New R,KLNr,KlNaam,DocNaam,LijnNr,PRNr,VerkPr,Aantal,KortText,From,To,Subject,Body,GrOrde,GloRef,DocRef,Medewerker If DocType="A",DocNum Set DocNaam="Offerte",KLNr=$P($G(^KOFKL1(DocNum,"F")),D),GloRef="KOFKL" If DocType="O",DocNum Set DocNaam="Order",KLNr=$P($G(^KO1(DocNum,"F")),D),GloRef="KOD",Medewerker=$P(^KOD(KLNr,"F",DocNum,1),D,3) If DocType="L",DocNum Set DocNaam="Levering",KLNr=$P($G(^KU1(DocNum,"F")),D),GloRef="KUL" Do:$G(KLNr) . Set KlNaam=$P(^KKL(^KK1(KLNr),0),D,2),LijnNr="" . Set Subject=DocNaam_" voor "_KlNaam . Set:$L($G(Medewerker)) Subject=Subject_" (Ref: "_Medewerker_")" . Set Body="Er werd een "_$$LOCASE^vhRtn1(DocNaam)_" opgemaakt voor "_KlNaam . Set Body=Body_" door "_$$USERNAME^vhUSER($$DEVUSER^vhUSER())_"."_$C(13)_$C(13) . Set R=@("^"_GloRef_"(KLNr,""F"",DocNum,1)"),DocRef=$P(R,D,3) . Set Body=Body_DocNaam_": "_DocNum Set:$L(DocRef) Body=Body_" - "_DocRef . Set Body=Body_$C(13)_$C(13) . Set Body=Body_"Korttekst Verk prijs Aantal"_$C(13) . Set Body=Body_"------------------------- ---------- ------"_$C(13) . Set LijnNr=100 . For Set LijnNr=$O(@("^"_GloRef_"(KLNr,""F"",DocNum,LijnNr)")) Quit:'LijnNr Do . . Set R=@("^"_GloRef_"(KLNr,""F"",DocNum,LijnNr)"),PRNr=$P(R,D,2) . . Quit:'PRNr . . Set KortText=$P(^KPR(PRNr,0),D) . . Set Aantal=$P(R,D,3),VerkPr=$P(R,D,6),GrOrde=$P(R,D,21) . . Set GrOrde=$S($E(GrOrde)="M":"/M",$E(GrOrde)="H":"% ",1:" ") . . Set R=KortText_$J("",25-$L(KortText))_$$EXTNUM^vhLib.DataTypes(VerkPr,15,".",2)_GrOrde . . Set R=R_$$EXTNUM^vhLib.DataTypes(Aantal,8,".",0) . . Set Body=Body_R_$C(13) . Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE" . Set To=$LB("PVH@VANHOECKE.BE") . Set Status=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit ; MAILTO(RegioID) new Regio Set To=$LB("PVH@VANHOECKE.BE") If (RegioID '= "") { Set Regio = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefRegio(RegioID) If (Regio.GeefLand().GeefID() = ##class(DOM.common.enu.Land).Nederland()) Set $LI(To,$LL(To)+1)="AGL@VANHOECKE.BE" } Quit To ;