#Include vhLib.Macro RPLKOM ;RAADPLEGEN Leverweken Orders ; Do naar RPLSW1, %A101 en PROC [ 12/19/2003 8:19 AM ] ; Do INIT,SELECT If $D(Select) Do FETCH(),COMMAND Quit ; T0 ; Nazicht leverweken orders T1 ;"Leverweek problemen ivm KOM"\P\"Leverweek KOM" T2 ;"Oude orders tot vorige week ("_$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(,"W",-1,"MD"),"DW")_")"\O\"Oude orders tot vorige week ("_$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(,"W",-1,"MD"),"DW")_")" T3 ;"Oude orders tot huidige week ("_$$EXTDATE^vhLib.DataTypes(,"DW")_")"\H\"Oude orders tot huidige week ("_$$EXTDATE^vhLib.DataTypes(,"DW")_")" T4 ;"Orders tot huidige week+X"\X\"Orders tot huidige week+"_PlusX_" ("_$$EXTDATE^vhLib.DataTypes($H+(PlusX*7),"DW")_")" T5 ;"Orders van klanten op KODE (tot huidige week+1)"\B\"Klanten op KODE" T6 ;"Afroep orders (alle)"\A\"Afroep orders" T7 ;"Contract orders (alle)"\C\"Contract orders" T8 ;"Klantgebonden orders (alle)"\K\"Klantgebonden orders" T9 ;"Terugnames"\T\"Terugnames" T10 ;"Orders met verzendwijze XXX"\Z\"Verzendwijze "_VerzW T11 ;"Stockproblemen voor stockproducten huidige week ("_$$EXTDATE^vhLib.DataTypes(,"DW")_")"\W\"Stockproblemen huidige week ("_$$EXTDATE^vhLib.DataTypes(,"DW")_")" T12 ;"Stockproblemen voor stockproducten volgende week ("_$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(,"W",1,"MD"),"DW")_")"\V\"Stockproblemen volgende week ("_$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(,"W",1,"MD"),"DW")_")" ; ; Entry, om automatisch de probleem lijst te tonen ; bij het opstarten van bep. terminals LOGIN N (Q) I $D(^KLOG("TERMINAL","RPLKOM",$I)),^($I)=+$H Q D ^cA604,INIT^vhTERMINA S ^KLOG("TERMINAL","RPLKOM",$I)=+$H S Select="P" Do INIT,SELECT:'$D(Select) If $D(Select) Do FETCH(),COMMAND Quit ; REGIO New UserId,Regios Do INIT Set UserId=$G(CUserId,$$DEVUSER^vhUSER($$IO^cQ5)) Set Regios=$$REGIO^KLOPV(UserId,"Opvolgen Leverweken") If $L(Regios) Do ADD^vhScherm(1,2),REFRESH,SELECT If $D(Select) Do FETCH(Regios,Select),COMMAND Quit ; COMMAND For Quit:Input="-" Do .Do REFRESH .Do SL^PROC .If R'="COM" Set Input=R .Else Set Input="" Do CALL^vhMenu("RPLKOM") .Do EXEC^vhMenu("RPLKOM",.Input) .If Input'="-" Set Input="" .;If R'="-",R'="," D MARK(R) Do CLEAN Quit CLEAN Kill ^HULP(%J) Quit ; Ophalen van de orders FETCH(Regios,Select) Set Regios=$G(Regios) S FP=160 W @F,@FMTK,"*** I'm thinking ***",@FMTk Kill ^HULP(%J) New LOG,OLUNr Set Cnt=0 If $E(Select)="T" Do . Do:Select["O" FETCHORD(Regios,Select) . Do:Select["B" FETCHBON(Regios,Select) Else Do FETCHORD(Regios,Select) Set UR="" For Set UR=$O(^KLOG("RPLKOM",UR)) Quit:UR="" Do .Set UZ="" .For Set UZ=$O(^KLOG("RPLKOM",UR,UZ)) Quit:UZ="" Do ..If '$D(LOG(UR,UZ)) Kill ^KLOG("RPLKOM",UR,UZ) Set (KL,Nr)="",Cnt=0 For Set KL=$O(^HULP(%J,KL)) Q:KL="" Do .Set (First,Naam)="" .For Set Nr=$O(^HULP(%J,KL,Nr)) Q:Nr="" Do ..S R=^(Nr) ..S Cnt=Cnt+1 ..;I Naam=$P(R,D,8) S $P(R,D,8)="" ..;E S Naam=$P(R,D,8) ..S Naam=$P(R,D,8) ..S:First=$P(R,D,3) $P(R,D,14)="" S First=$P(R,D,3) ..;S:'First $P(R,D,8)="",$P(R,D,14)="" ..S ^HULP(%J,Cnt)=R ;,First=0 .Kill ^HULP(%J,KL) .Set KOM(9)=Cnt Quit FETCHORD(Regios,Select) New R,LOG,OLUNr,VzwToCheck,DagNr If "\H\X\Z\"[(D_Select_D),$L($G(VerzW)) Do . Set R="`"_VerzW . For DagNr=1:1:5 If R[("`OD;"_DagNr) Do . . New VerzW . . Set VerzW="OD" . . For Set VerzW=$O(^RES("KLANT","PI","VERZENDWIJZE","D",VerzW)) Quit:$E(VerzW,1,2)'="OD" If $E(VerzW,3)?.N,R'[("`"_VerzW_";"_DagNr) Set R=R_"`"_VerzW_";"_DagNr . Set $E(R)="",VzwToCheck=R Set KC=0,UR=0,(BR,BZ)="" For Set KC=$O(^KOD(KC)) Quit:'KC Do .Set Kode='$$WAARDIG^KREDIET(KC) .I Select="B" Quit:'Kode .Set:KOM(13)="RPLKOMCAK" Kode=$$DAGEN^KLVERZW(KC) ;'$$WAARDIG^KREDIET(KC) .For Set UR=$O(^KOD(KC,"F",UR)) Quit:'UR Do ..Quit:'$$CHKREGIO(KC,UR,Regios) ..If "CAK"[Select Quit:Select'=$P(^KOD(KC,"F",UR,1),D,25) ..If Select="O"!(Select="H") Quit:'$$CHKORD(KC,UR) ..If "\H\X\Z\"[(D_Select_D),$L($G(VzwToCheck)) Quit:'$$CHKVZW(KC,UR,VzwToCheck) ..Set UZ=99 Set:KOM(13)="RPLKOMCAK" Kode=$$VERZW(KC,UR) ..For Set UZ=$O(^KOD(KC,"F",UR,UZ)) Quit:'UZ Do ...Set ORD=^KOD(KC,"F",UR,UZ) ...Set TR=$P(ORD,D,27),TZ=$P($P(ORD,D,28),";"),OLUNr=$P(ORD,D,15) ...Set PRNr=$P(ORD,D,2),Aantal=$P(ORD,D,3) ...If $E(Select)="T" Do:Aantal<0 TERUGN Quit ...;If Regios["H" Quit:TR'?6N ; Alleen KOM-toeleveringen ...If Regios["H",PRNr?4.7N Quit:'$D(^KPR(PRNr,"J6332")) ; geen HALUX producten ...If OLUNr,$D(^ORDW("IO",UR,OLUNr)) Quit ; In verwerking WMS ...If Select="O"!(Select="H") Do LVWK ...If Select="P" Do KOMLINK:TR,LVWK:'TR ...;If Select="P" Do LVWK:'TR ...If Select'="P",Select'="O",Select'="H",Select'="T",Select'="V",Select'="W" Do TYPE ...If Select="W"!(Select="V") Do STOCK(Select) Quit FETCHBON(Regios,Select) New LOG,OLUNr Set KC=0,(UR,UZ)="",BR=0 For Set KC=$O(^KUL(KC)) Quit:'KC Do .Set Kode='$$WAARDIG^KREDIET(KC) .For Set BR=$O(^KUL(KC,"F",BR)) Quit:'BR Do ..Quit:'$$CHKREGIO(KC,BR,Regios) ..Set BZ=99 ..For Set BZ=$O(^KUL(KC,"F",BR,BZ)) Quit:'BZ Do ...Set ORD=^KUL(KC,"F",BR,BZ) ...Set TR=$P(ORD,D,27),TZ=$P($P(ORD,D,28),";"),OLUNr=$P(ORD,D,15) ...Set PRNr=$P(ORD,D,2),Aantal=$P(ORD,D,3) ...Do:Aantal<0 TERUGN Quit CHKREGIO(KLNr,ORDNr,Regios) New I,R,KlantId,Regio,Aantal,Deuren,Halux,Ok Set Ok=1 If $L(Regios),Regios'="A" Do .Set (Deuren,Halux)=0 .For I=1:1:$L(Regios,";") Set Deuren=Deuren+($E($P(Regios,";",I))="D") .For I=1:1:$L(Regios,";") Set Halux=Halux+($E($P(Regios,";",I))="H") .Set Aantal=$L(Regios,";")-Deuren-Halux .Set:Aantal KlantId=^KK1(KLNr),R=^KKL(KlantId,0),Regio=+$P(R,D,20),Ok=";"_Regios_";"[(";"_Regio_";") .Do:Ok ..If Deuren!Halux Do ...If Deuren Set Ok=$$CHKDEUR(KLNr,ORDNr) Quit:Ok ...If Halux Set Ok=$$CHKHALUX(KLNr,ORDNr,Regios) ..Else Do ...Set Ok='$$CHKDEUR(KLNr,ORDNr) ...Quit:'Ok ...Set Ok='$$CHKHALUX(KLNr,ORDNr,"H") Quit Ok CHKDEUR(KLNr,ORDNr) New R,Ok,OLNr,PRNr Set Ok=0,OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:Ok .If OLNr'?.N Set Ok=$E(OLNr,3,4)="DE" Quit .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) .Quit:'PRNr .Set R=$O(^KPR(PRNr,"I")) .Quit:$E(R)'="I" .Set R=^KPR(PRNr,R),Ok=$E(R,3,4)="DE" Quit Ok CHKHALUX(KLNr,ORDNr,Regios) New I,R,Ok,OLNr,PRNr,GenType,GenTypes Set Ok=0,OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:Ok .Quit:OLNr'?.N .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) .Quit:'PRNr .If ";"_Regios_";"[";H;" Set Ok=$D(^KPR(PRNr,"J6332")) Quit .Quit:'$D(^KPR(PRNr,"J6332")) .Set R=$$GENTYP^HAD(PRNr),GenType=$P(R,D) Set:GenType="" GenType="DIV" .For I=1:1:$L(Regios,";") Do Quit:Ok ..Set Regio=$P(Regios,";",I) ..Quit:$E(Regio)'="H" ..Set R=^RES("KLOPV","PI","HALUX","D",Regio),GenTypes=$P(R,"`",3) ..Set Ok=";"_GenTypes_";"[(";"_GenType_";") Quit Ok CHKORD(KC,UR) New R,UZ,Ok Set UZ=100,Ok=0 For Set UZ=$O(^KOD(KC,"F",UR,UZ)) Quit:UZ="" Do Quit:Ok .Set R=^KOD(KC,"F",UR,UZ) Set:$P($P(R,D,17),"#")'="KF11" Ok=1 Do:'Ok .Set Cnt=Cnt+1 .Set R=D_KC_D_UR_D_D_"Leeg"_D_D_D_$P(^KKL(^KK1(KC),0),D,2)_D_D_D_D_D_D_Kode_D .Set ^HULP(%J,^KK1(KC),Cnt)=R Quit Ok LVWK ;Testen of dat de leverweek reeds gepasseerd is Set BelDat=$P(^KOD(KC,"F",UR,1),D,16),Type=$P(^KOD(KC,"F",UR,1),D,25) Set (OrdWk,OorspWk)=$$CALCDATE^vhLib.DataTypes($P(ORD,D,25),"W","MD") Set:$L($P(ORD,D,29)) OorspWk=$$CALCDATE^vhLib.DataTypes($P(ORD,D,29),"W","MD") If OrdWk>(NextWk+$S(Select="H":7,1:0)) Quit:Select'="O"&(Select'="H") Quit:Type="C" If OorspWk>(NextWk+$S(Select="H":7,1:0)) Quit ;Quit:OrdWk>NextWk Set PR=$P(ORD,D,2) Quit:'PR Set Cnt=Cnt+1 Set:$L(Type) Type=$P(";Contrct;Afroep;Klantgb",";",$F("CAK",Type)) Set:'$L(Type) Type=$S(TZ="KOM":"Kom",1:TR) If TR,Type'=TR Set Type=$E(Type)_TR If Select'="O"&(Select'="H") Quit:Type="" Set R=PR_D_KC_D_UR_D_UZ_D_Type_D_TZ_D_$P(^KPR(PR,0),D,1)_D_$P(^KKL(^KK1(KC),0),D,2)_D_D_$$DDMM($P(ORD,D,25)) Set R=R_D_D_D_$P(ORD,D,3)_D_Kode_D_$$DDMM($P(ORD,D,29))_D_$S($L(BelDat):"b ",1:"")_BelDat If $D(^KLOG("RPLKOM",UR,UZ)) S R=R_^KLOG("RPLKOM",UR,UZ) Set ^HULP(%J,^KK1(KC),Cnt)=R,LOG(UR,UZ)="" Quit TYPE ;Testen of dat de ordertype OK is Set PR=$P(ORD,D,2) Quit:'PR Set BelDat=$P(^KOD(KC,"F",UR,1),D,16) Set Wk=$$CALCDATE^vhLib.DataTypes($P(ORD,D,25),"W","MD") If Select="B" Quit:$$COMPDATE^vhLib.DataTypes(Wk,"W",">",$H+7) If Select="X" Quit:$$COMPDATE^vhLib.DataTypes(Wk,"W",">",$H+(7*PlusX)) Set Cnt=Cnt+1 Set R=PR_D_KC_D_UR_D_UZ_D_TR_D_TZ_D_$P(^KPR(PR,0),D,1)_D_$P(^KKL(^KK1(KC),0),D,2)_D_D_$$DDMM($P(ORD,D,25)) Set R=R_D_($$COMPDATE^vhLib.DataTypes(Wk,"W","<",$H)!$L(BelDat))_D_D_$P(ORD,D,3)_D_Kode_D_$$DDMM($P(ORD,D,29))_D_$S($L(BelDat):"b ",1:"")_BelDat Set ^HULP(%J,^KK1(KC),Cnt)=R,LOG(UR,UZ)="" Quit TERUGN ;Terugname New VerzW Set PR=$P(ORD,D,2) Quit:'PR If UR,UZ Set LOG(UR,UZ)="",VerzW=$$VERZW(KC,UR) If BR,BZ Set LOG(BR,BZ)="",VerzW=$P($P($P(^KUL(KC,"F",BR,1),D,7),"#")," ") Set Wk=$$CALCDATE^vhLib.DataTypes($P(ORD,D,25),"W","MD") If Select="B" Quit:$$COMPDATE^vhLib.DataTypes(Wk,"W",">",$H+7) If Select="X" Quit:$$COMPDATE^vhLib.DataTypes(Wk,"W",">",$H+(7*PlusX)) Set Cnt=Cnt+1 Set R=PR_D_KC_D_UR_D_UZ_D_TR_D_TZ_D_$P(^KPR(PR,0),D,1)_D_$P(^KKL(^KK1(KC),0),D,2)_D_D_$$DDMM($P(ORD,D,25)) Set R=R_D_$$COMPDATE^vhLib.DataTypes(Wk,"W","<",$H)_D_D_$P(ORD,D,3)_D_Kode_D_$$DDMM($P(ORD,D,29))_D_D_BR_D_BZ_D_VerzW Set ^HULP(%J,^KK1(KC),Cnt)=R Quit KOMLINK ; Test op leverweekprobleem met KOM LINK Set LC=+^KTO1(TR) Set TL=^KTO(LC,TR,TZ) Set TBev=$S($P(^KTO(LC,TR,1),D,10)'="":"*",1:""),BelDat=$P(^KOD(KC,"F",UR,1),D,16) Set TlWk=$$INTDATE^vhLib.DataTypes($P(TL,D,25),"DW") Set OrdWk=$$CALCDATE^vhLib.DataTypes($P(ORD,D,25),"W","MD") If TlWk+3>$H,(OrdWk>TlWk) Quit ; Indien ToeLev Week > dan huidige week EN Order week groter of gelijk aan de Toelev Week Set Cnt=Cnt+1 Set PR=$P(TL,D,2) Set R=PR_D_KC_D_UR_D_UZ_D_TR_D_TZ_D_$P(^KPR(PR,0),D,1)_D_$P(^KKL(^KK1(KC),0),D,2)_D_$P(TL,D,25)_D_$$DDMM($P(ORD,D,25)) Set R=R_D_(TlWk+3'>$H!$L(BelDat))_D_TBev_D_D_Kode_D_$$DDMM($P(ORD,D,29))_D_$S($L(BelDat):"b ",1:"")_BelDat If $D(^KLOG("RPLKOM",UR,UZ)) S R=R_^KLOG("RPLKOM",UR,UZ) Set ^HULP(%J,^KK1(KC),Cnt)=R,LOG(UR,UZ)="" Quit RPLKL(Input) ; Raadplegen klant New Param,Rec Quit:'KOM(6) Set Rec=$G(^HULP(%J,KOM(6))) Quit:'$L(Rec) ;Do STORE^vhTERMINA() S Param="O" If Input="K" Set KScreen=$$RAADPL^KLANT($P(Rec,D,2),$P(KScreen,D)) If Input="O" Set $P(Param,D,6)="ORD"_U_$P(Rec,D,3)_U_$P(Rec,D,4),KScreen=$$RAADPL^KLANT($P(Rec,D,2),Param) ;Do REFRESH^vhTERMINA() Do ADD^vhScherm(1,24) Do REFRESH Do REFRESH Q RPLPR(Input) ; Raadplegen New Param,Rec Quit:'KOM(6) Set Rec=$G(^HULP(%J,KOM(6))) Quit:'$L(Rec) ;Do STORE^vhTERMINA() S Param="O" If Input="P" Set PScreen=$$RAADPL^PRODUKT($P(Rec,D,1),$P(PScreen,D)) If Input="T" Set $P(Param,D,6)="OOT"_U_$P(Rec,D,5)_U_$P(Rec,D,6),PScreen=$$RAADPL^PRODUKT($P(Rec,D,1),Param) ;Do REFRESH^vhTERMINA() Do ADD^vhScherm(1,24) Do REFRESH Q SELECT ; Selecteren van verwerkingstype New Y,X,zb S Y="12\\Selecteer lijsttype\" F Y(0)=1:1:12 D . N R . S R=$P($T(@("T"_Y(0))),";",2) . X "S $P(R,D)="_$P(R,D) . S Y(Y(0))=R . ;S Y(Y(0))=$P($T(@("T"_Y(0))),";",2) Do ^POP If 'X Do REFRESH Quit S Select=$P(Y(X),D,2) If Select="X" Set PlusX=$$PLUSX() If 'PlusX Kill Select Goto SELECT If Select="T" Do Goto SELECT:zb="CANC"!(Select="") Set Select="T"_$TR(Select,";","") . Set Select=$$PI^vhPOPUP("C;C","-1OM","Terugname","RPLKOM","TERUGNAME","O;B") If "\H\X\"[(D_Select_D) Set VerzW=$$SELECT^KLVERZW(,,,,,,,1,"Beperkt tot") Goto SELECT:zb="CANC" If Select="Z" Set VerzW=$$SELECT^KLVERZW() Goto SELECT:zb="CANC"!(VerzW="") Do CLEAN Do INIT^PROC($S(Select="P":"RPLKOM",$E(Select)="T":"RPLKOMTN",Select="W":"RPLKOMDYST",Select="V":"RPLKOMDYST",1:"RPLKOMCAK"),"KOM") Do ADD^vhScherm(1,24) Do REFRESH Do ADD^vhScherm(1,24) Quit PLUSX() New PlusX Set PlusX=1,PlusX=$$ASKL^vhINP("RPLKOM","PLUSX") Quit PlusX MARK(R) ; Markeren voor wie het probleem moet behandelen I "\1\2\V\"'[(D_R_D) Q Q:'$D(^HULP(%J)) S K=^HULP(%J,KOM(6)),$P(K,D,13)=$S(R="V":"",1:R),^HULP(%J,KOM(6))=K I R="V" K ^KLOG("RPLKOM",$P(K,D,3),$P(K,D,4)) E S ^KLOG("RPLKOM",$P(K,D,3),$P(K,D,4))=R I KOM(6)=KOM(9) D EL^PROC Q S DL(2)="DO" D ML^PROC K DL(2) Q INIT ;Initialisatie Do:'$D(Q) .New Select .S Q="K" .Do ^cA604 Set %J=$$%J^vhRtn1() Do CLEAN Set (KScreen,PScreen)="O" Set Input="-" Do INIT^PROC("RPLKOM","KOM") Write @F11,@F1 Do ADD^vhScherm(1,3),REFRESH Set NextWk=$$CALCDATE^vhLib.DataTypes($H,"W","FD"),OOrdDat=$$CALCDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H+1,"M",-3),"W") If $L($G(Select))'=1!("CAKOPB"'[$G(Select)) Kill Select Do:$D(Select) INIT^PROC($S(Select="P":"RPLKOM",$E(Select)="T":"RPLKOMTN",Select="W":"RPLKOMDYST",Select="V":"RPLKOMDYST",1:"RPLKOMCAK"),"KOM"),ADD^vhScherm(1,24) Set Input="" Quit REFRESH I sRT=1 W @F11,@F1,@FMTI," RAADPLEGEN LEVERWEKEN - "_QN," ",@FMTi,@F2 I sRT=1,$D(Select) D .N R .S R=$P($T(@("T"_($F("POHXBACKTZWV",$E(Select))-1))),D,3) .X "S R="_R .S FP=141 W @F,$J("",39-$L(R)),@FMTB,R,@FMTb I sRT<3,sRB>1,$D(Regios) Do .New I,Aantal,Deuren,Halux .Set FP=201 Write @F,"Regio : " .If Regios="A" Write "Alles" Quit .Set (Deuren,Halux)=0 .For I=1:1:$L(Regios,";") Set Deuren=Deuren+($E($P(Regios,";",I))="D") .For I=1:1:$L(Regios,";") Set Halux=Halux+($E($P(Regios,";",I))="H") .Set Aantal=$L(Regios,";")-Deuren-Halux .Write $TR($P(Regios,";",1,Aantal),";",",") .If Aantal=1 Write " - ",$P(^RES("KLANT","PI","REGIO","D",$P(Regios,";")),"`",2) .Do:Deuren!Halux ..Write:Aantal " (" ..Write $S(Deuren&Halux:"Deuren + "_$$RHALUX(Regios),Deuren:"Deuren",Halux:$$RHALUX(Regios),1:"") ..Write:Aantal ")" I sRT<4,sRB>1,$D(Select) Set FP=301 W @F,"Huidige week : ",$$EXTDATE^vhLib.DataTypes($H,"DW"),@F2 I sRB>3 S DL(2)=sRT,DL(3)=sRB Do WL^PROC Kill DL(2),DL(3) Do RESET^vhScherm Quit PRINT ; Afdrukken lijst op MAC-printer of Matrix-printer New KOMP,R If '$D(^HULP(%J)) W *7 Quit Merge KOMP=KOM If Select="C" Do INIT^PROC("RPLKOMCPRI","KOMP") S R=$P($T(@("T"_($F("POHXBACKTZWV",$E(Select))-1))),D,3) X "S R="_R S KOMP(11)="Raadplegen leverweken\"_R ;R *K:1 D PRINT^OUTPUT(.KOMP,"P","S;L;B") S DL(1)="KOM",DL(2)=20 D WL^PROC Q TRANS ; Treansfert lijst New KOMP,R If '$D(^HULP(%J)) W *7 Quit Merge KOMP=KOM If Select="C" Do INIT^PROC("RPLKOMCPRI","KOMP") S R=$P($T(@("T"_($F("POHXBACKTZWV",$E(Select))-1))),D,3) X "S R="_R S KOMP(11)="Raadplegen leverweken\"_R ;R *K:1 D PRINT^OUTPUT(.KOMP,"T","S;L;B") S DL(1)="KOM",DL(2)=20 D WL^PROC Q NOCLOSE ; Het niet doorsturen van orders New Do INIT^vhTERMINA Do ##class(TECH.Context.RuntimeContext).Instance().ZetPersonalityID(##class(DOM.common.enu.Personality).VanHoecke()) Set KLNr=0 For Set KLNr=$O(^KOD(KLNr)) Quit:KLNr="" Do . Set ORDNr="" . For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do . . Set Rec=^(ORDNr,1) . . Quit:$P(Rec,D,22) . . If $P(Rec,D,23)=1 Quit:$$EXTDATE^vhLib.DataTypes(,"DWN")'=6 Set IntVw=30 ; Indien voorlopig gesloten mail naar de boekhouding en enkel op zaterdag (Rita Meersman) . . Else Quit:$$EXTDATE^vhLib.DataTypes(,"DWN")>5 Set IntVw=1007 ;$$INTVW^KLOPV(KLNr) Set:'IntVw IntVw=1007 ; WV als vangnet . . Set NoClose(IntVw,KLNr,ORDNr)=$P(Rec,D,2) . . Set Klant=KLNr_" "_$P(^KKL(^KK1(KLNr),0),D,2) . . Set:$G(NoClose(IntVw))<$L(Klant) NoClose(IntVw)=$L(Klant) . . Set NoClose(IntVw,KLNr)=Klant Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE",IntVw="" For Set IntVw=$O(NoClose(IntVw)) Quit:IntVw="" Do . Set To="Bidisupport@vanhoecke.be" ;$$REPLACE^vhRtn1($$USERNAME^vhUSER(IntVw,"@"),";",""",""") . Xecute "Set To=$LB("""_To_""")" . Set (Body,KLNr)="",Lijnen=0 . For Set KLNr=$O(NoClose(IntVw,KLNr)) Quit:KLNr="" Do . . Set Klant=NoClose(IntVw,KLNr),ORDNr="",Body=Body_$C(13) . . For Set ORDNr=$O(NoClose(IntVw,KLNr,ORDNr)) Quit:ORDNr="" Do . . . Set Body=Body_Klant_$J("",NoClose(IntVw)-$L(Klant))_$S($L(Klant):": ",1:" ")_ORDNr_" "_NoClose(IntVw,KLNr,ORDNr)_$$nclGeefCreatorInfo(ORDNr,$P($G(^KOD(KLNr,"F",ORDNr,1)),"\",8))_$S(IntVw=99991007:$$nclGeefOrderDataInfo(KLNr,ORDNr),1:"")_$C(13) . . . Set Klant="",Lijnen=Lijnen+1 . Set Subject="Niet afgesloten order"_$S(Lijnen>1:"s",1:""),Body="Volgend"_$S(Lijnen>1:"e orders zijn",1:" order is")_" nog niet gesloten:"_$C(13)_$C(13)_Body . Set Status=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit nclGeefCreatorInfo(OrderID,CreatorInfo) New CreatorInfo,UserID,GebruikerInitialen Set CreatorInfo = "" Try { Set UserID = +$P(CreatorInfo,"#",1) If '(UserID) { Set UserID = +$P(##class(BL.Legacy.RPLKOM).GeefOrderAangemaaktGebruikerID(OrderID),"||",2) } Set GebruikerInitialen = $$USERNAME^vhUSER(UserID,-1) Set CreatorInfo = " ("_GebruikerInitialen_")" ; _" - "_UserID_")" } Catch { New Exception Set Exception = ##class(TECH.ExceptionHandler).Catch() Do ##class(vhLib.Logger).LogEnMailExceptie(Exception) } Quit CreatorInfo nclGeefOrderDataInfo(KLNr,OrderID) Quit $$$CRLF_$$$CRLF_$$ArrayToText^vhLib($Name(^KOD(KLNr,"F",OrderID))) RHALUX(Regios) New I,R,RHalux,Regio Set RHalux="" For I=1:1:$L(Regios,";") Do .Set Regio=$P(Regios,";",I) .Quit:$E(Regio)'="H" .Set R=^RES("KLOPV","PI","HALUX","D",Regio),R=$P(R,"`",2) .If RHalux="" Set R=$E(R,1,$L(R)-1) .Else Set R=", "_$P($P(R,"(",2),")") .Set RHalux=RHalux_R Set:$L(RHalux) RHalux=RHalux_")" Quit RHalux VERZW(KLNr,ORDNr) New I,VerzW Set VerzW=$$DEFAULT^KLVERZW(,KLNr,ORDNr) For I=1:1:$L(VerzW,"`") Set:$P($P(VerzW,"`",I),";",2) $P(VerzW,"`",I)=$P("Ma;Di;Wo;Do;Vr",";",$P($P(VerzW,"`",I),";",2)) Quit $TR(VerzW,"`","") CHKVZW(KLNr,ORDNr,VerzW) New Default,ChkVzw Set ChkVzw=0,Default=$$DEFAULT^KLVERZW(,KLNr,ORDNr) For Set ChkVzw="`"_VerzW_"`"[("`"_$P(Default,"`")_"`") Quit:ChkVzw Set Default=$P(Default,"`",2,99) Quit:Default="" Quit ChkVzw STOCK(Week) ; Test stockprobleem voor huidige of volgende week New IntChkWk,ExtChkWk,IntLevWk,ExtLevWk,Aantal,Stock,DynStock,StockUpd Set IntChkWk=$$CALCDATE^vhLib.DataTypes(,"W",$S(Week="W":0,1:1),"MD"),ExtChkWk=$$EXTDATE^vhLib.DataTypes(IntChkWk,"DW") Set PR=$P(ORD,D,2),Aantal=$P(ORD,D,3),ExtLevWk=$$EXTDATE^vhLib.DataTypes($P(ORD,D,25),"DW") Quit:'PR ; Geen product Set StockUpd=$P(ORD,D,14)'["S" Set:StockUpd StockUpd=$P(ORD,D,14)'["Z" Quit:'StockUpd ; Zonder stockupdate Set IntLevWk=$$INTDATE^vhLib.DataTypes(ExtLevWk,"DW") Quit:IntLevWk>IntChkWk ; Leverweek ligt na te controleren week Quit:'$P(^KPR(PR,1),D,20) ; Geen stockproduct Set BelDat=$P(^KOD(KC,"F",UR,1),D,16) Set Wk=$$CALCDATE^vhLib.DataTypes($P(ORD,D,25),"W","MD") Set DynStock=$$DYNSTOCK^PRODUKT4(PR,$S(Week="W":"P",1:"T"),ExtLevWk),Stock=DynStock+Aantal Quit:Aantal'>Stock ; Aantal voldoende Set Cnt=Cnt+1 Set R=PR_D_KC_D_UR_D_UZ_D_D_D_$P(^KPR(PR,0),D,1)_D_$P(^KKL(^KK1(KC),0),D,2)_D_D_$$DDMM($P(ORD,D,25)) Set R=R_D_($$COMPDATE^vhLib.DataTypes(Wk,"W","<",$H)!$L(BelDat))_D_D_$P(ORD,D,3)_D_Kode_D_$$DDMM($P(ORD,D,29))_D_$S($L(BelDat):"b ",1:"")_BelDat_D_Stock Set ^HULP(%J,^KK1(KC),Cnt)=R,LOG(UR,UZ)="" Quit DDMM(Datum) Quit:Datum="" "" Quit $E($$EXTDATE^vhLib.DataTypes(Datum,,,""),1,5)