EWSTART ;E'WMS Opstarten [ 10/29/2001 11:41 AM ] ; If 0,$$GO() Do .Do AKTIVATE(),INSTAL .Write !!!,"Installatie doorgevoerd !!!",! .Do AKTIES() Else Write !!!,"Installatie ",@FMTB,"NIET",@FMTb," doorgevoerd !!!" Quit ; GO() Do INIT^vhTERMINA Write @F11,@F1 Set ToUci=$G(^EWSTART("COPY","TOUCI")) Set ToVol=$G(^EWSTART("COPY","TOVOL")) If $L(ToUci),$L(ToVol) Do .Set FP=2101 .Write @F,"Heeft u ",@FMTB,"BACKUP",@FMTb," genomen van de ",@FMTB,"huidige situatie",@FMTb,"?" .Write !!,"Wenst u de installatie van het WMS op ",@FMTB,ToUci,",",ToVol,@FMTb," door te voeren? ",*27,7 .Write !,@FMTB,ToUci,",",ToVol,@FMTb,"[] = ok",*27,8 .Read Ok Quit Ok=(ToUci_","_ToVol) ; INSTAL Do INIT^vhTERMINA Write @F11,@F1 If $G(^EWSTART("AKTIVATE","SYSTEM")) Do .Do PARAM() .Write ! .Do RCOPY() .Write ! .Do GCOPY() .Write ! .Do GSET .Do AKTIVATE("S",0,1) Else Write !,"Gelieve het SYSTEM te aktiveren !!!" Quit ; AKTIVATE(Level,Aktie,NoClear) New (Level,Aktie,NoClear) Do .New Level,Aktie,NoClear .Do INIT^vhTERMINA Set Level=$G(Level,"S"),Aktie=$G(Aktie),Clear='$G(NoClear) Write:Clear @F11,@F1 Set GloRef=$S(Level="S":"SYSTEM",Level="R":"RCOPY",Level="G":"GCOPY",1:"") If $L(GloRef) Do .Set:Aktie="" Aktie='$G(^EWSTART("AKTIVATE",GloRef)) .Set ^EWSTART("AKTIVATE",GloRef)=Aktie .Write !,GloRef," is ",$S('Aktie:"niet ",1:""),"aktief !!!" .If Level="S" For Level="R","G" Do AKTIVATE(Level,Aktie,1) Quit ; CHKLIST New Do INIT^vhTERMINA Set $ZT="ERROR^EWSTART" Write @F11,@F1 Set Printer=0 If Printer Do .Open 104 .Use 104 Do PARAM(1) If Printer Write # Else Write ! Do RCOPY(1) If Printer Write # Else Write ! Do GCOPY(1) If Printer Write # Else Write ! Do AKTIES(1) If Printer Write # Close 104 Else Write ! Quit ; PARAM(ChkList) New (ChkList) Set ChkList=$G(ChkList) Do:'ChkList .New ChkList .Do INIT^vhTERMINA Set $ZT="ERROR^EWSTART" Write !,"*** Basis instellingen ***",! Write !,"ToUci = ",$G(^EWSTART("COPY","TOUCI")) Write !,"ToVol = ",$G(^EWSTART("COPY","TOVOL")) Quit ; RCOPY(ChkList) New (ChkList) Set ChkList=$G(ChkList) Do:'ChkList .New ChkList .Do INIT^vhTERMINA Set $ZT="ERROR^EWSTART" If $G(^EWSTART("AKTIVATE","SYSTEM"))!ChkList Do .If $G(^EWSTART("AKTIVATE","RCOPY"))!ChkList Do ..Set ToUci=$G(^EWSTART("COPY","TOUCI")) ..Set ToVol=$G(^EWSTART("COPY","TOVOL")) ..If $L(ToUci),$L(ToVol) Do ...Write !,"*** ",$S(ChkList:"Te copieren",1:"Copy")," routines ***",! ...Set RCopy="" ...For Set RCopy=$O(^EWSTART("R",RCopy)) Quit:RCopy="" Do ....If 'ChkList Quit:'^EWSTART("R",RCopy) ....Else Set Aktief=^EWSTART("R",RCopy) ....If $E(RCopy,$L(RCopy))="*" Do .....Set (Routine,RTemp)=$E(RCopy,1,$L(RCopy)-1) .....For Set Routine=$O(^$ROUTINE(Routine)) Quit:$E(Routine,1,$L(RTemp))'=RTemp Do ......If 'ChkList Do .......Write !,Routine .......Do c^cR(Routine,ToUci,ToVol,1) ......Else Do .......Xecute "ZL @Routine Set FL=$T(+1) Write !,$S(Aktief:"""",1:""N/A""),?6,$P(FL,"";""),?17,$E($P(FL,"";"",2,9),1,60)" ....Else Do .....If 'ChkList Do ......Quit:'$D(^$ROUTINE(RCopy)) ......Write !,RCopy ......Do c^cR(RCopy,ToUci,ToVol,1) .....Else Do ......If '$D(^$ROUTINE(RCopy)) Write !,RCopy," --> onbekend" Quit ......Xecute "ZL @RCopy Set FL=$T(+1) Write !,$S(Aktief:"""",1:""N/A""),?6,$P(FL,"";""),?17,$E($P(FL,"";"",2,9),1,60)" ..If 'ChkList Do ...Write ! ...Do AKTIVATE("R",0,1) .Else Write !,"Gelieve RCOPY te aktiveren !!!" Else Write !,"Gelieve het SYSTEM te aktiveren !!!" Quit ; GCOPY(ChkList) New (ChkList) Set ChkList=$G(ChkList) Do:'ChkList .New ChkList .Do INIT^vhTERMINA Set $ZT="ERROR^EWSTART" If $G(^EWSTART("AKTIVATE","SYSTEM"))!ChkList Do .If $G(^EWSTART("AKTIVATE","GCOPY"))!ChkList Do ..Set ToUci=$G(^EWSTART("COPY","TOUCI")) ..Set ToVol=$G(^EWSTART("COPY","TOVOL")) ..If $L(ToUci),$L(ToVol) Do ...Write !,"*** ",$S(ChkList:"Te copieren",1:"Copy")," globals ***",! ...Set GCopy="" ...For Set GCopy=$O(^EWSTART("G",GCopy)) Quit:GCopy="" Do ....If 'ChkList Quit:'^EWSTART("G",GCopy) ....Else Set Aktief=^EWSTART("G",GCopy) ....If GCopy'["(" Do .....If 'ChkList Do ......Kill @("^["""_ToUci_""","""_ToVol_"""]"_GCopy) ......Merge @("^["""_ToUci_""","""_ToVol_"""]"_GCopy)=@("^"_GCopy) ......Write !,"^",GCopy .....Else Do ......Write !,$S(Aktief:"",1:"N/A"),?6,GCopy ....Else Do .....Kill Level .....Set R=$P($P(GCopy,"(",2),")"),Level=$L(R,",") .....For Level=Level:-1:1 Set Level(Level)=$P(R,",",Level) .....Set GloRef="^"_$P(GCopy,"(")_"(" .....Do GFROMTO(ToUci,ToVol,GloRef,.Level,ChkList) ..If 'ChkList Do ...Write ! ...Do AKTIVATE("G",0,1) .Else Write !,"Gelieve GCOPY te aktiveren !!!" Else Write !,"Gelieve het SYSTEM te aktiveren !!!" Quit ; GFROMTO(ToUci,ToVol,GloRef,Level,ChkList) New R,FromNode,ToNode Set R=Level(Level) Set:R="" R="-""zzzzzzzz""" Set:$P(R,"-",2)="" $P(R,"-",2)=$P(R,"-") Set:$P(R,"-",2)="" R="""zzzzzzzz""-""zzzzzzzz""" Set FromNode=$P(R,"-"),ToNode=$P(R,"-",2) Set FromNode=$TR(FromNode,"""","") Set ToNode=$TR(ToNode,"""","") Set GloRef=GloRef_"FromNode)" Set:$L(FromNode) FromNode=$O(@GloRef,-1) For Set FromNode=$O(@GloRef) Quit:FromNode="" Quit:ToNode?.N&(FromNode>ToNode) Quit:FromNode]ToNode Do .Set Level=Level+1 .If $D(Level(Level)) Do ..Do GFROMTO(ToUci,ToVol,$P(GloRef,"FromNode")_""""_FromNode_""",",.Level,ChkList) ..Set Level=Level-1 .Else Do ..Set Level=Level-1 ..If 'ChkList Do ...Do GKILL(ToUci,ToVol,GloRef,FromNode,ToNode) ...Do GMERGE(ToUci,ToVol,GloRef,FromNode,ToNode) ..Else Do ...Set R=$G(@GloRef) ...Write !,$S(Aktief:"",1:"N/A"),?6,$E($ZR,2,999) Quit ; GKILL(ToUci,ToVol,FromRef,FromNode,ToNode) New R,ToRef Set ToRef="^["""_ToUci_""","""_ToVol_"""]"_$E(FromRef,2,99),FromNode=$O(@ToRef,-1) For Set FromNode=$O(@ToRef) Quit:FromNode="" Quit:ToNode?.N&(FromNode>ToNode) Quit:FromNode]ToNode Kill @ToRef Quit ; GMERGE(ToUci,ToVol,FromRef,FromNode,ToNode) New R,ToRef Set ToRef="^["""_ToUci_""","""_ToVol_"""]"_$E(FromRef,2,99) Merge @ToRef=@FromRef Write !,"^",$P($ZR,"|",3) Quit ; AKTIES(ChkList) New (ChkList) Set ChkList=$G(ChkList) Do:'ChkList .New ChkList .Do INIT^vhTERMINA Set $ZT="ERROR^EWSTART" Write !,"*** ",$S(ChkList:"Andere",1:"Nog uit te voeren")," akties ***",! Write:ChkList !,"Backup nemen van de oude situatie!!!" Write !,"BUILDTOE^EWSTART opstarten (opmaken starttoeleveringen)" Write !,"PRODUKT^EWSTART opstarten (doorsturen produkten naar het WMS)" Write !,"Backup nemen van de nieuwe situatie!!!" Quit ; GSET Set ToUci=$G(^EWSTART("COPY","TOUCI")) Set ToVol=$G(^EWSTART("COPY","TOVOL")) If $L(ToUci),$L(ToVol) Do .Set ^[ToUci,ToVol]EWREC("DH")=0 .Set ^[ToUci,ToVol]EWREC("WH")=0 .Set ^[ToUci,ToVol]EWREC("S")=0 .Set ^[ToUci,ToVol]EWLOG("DEBUG")=0 Quit ; BUILDTOE Do INIT^vhTERMINA Write @F11,@F1 Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set LevWk=$$EXTDATE^vhDTyp(,"DW"),(PRNr,PRTot,PRVerw)=0,FP=2002 Write @F,"Stock op 0 brengen" Do VERWERKT^PRODUKT(PRTot,PRVerw,22,21) For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do .Set PRTot=PRTot+1 .Do:'(PRTot#100) VERWERKT^PRODUKT(PRTot,PRVerw,22,21) .Do FETCHPR^UTILI(PRNr,"R") .Set FysStock=$P(R(0),D,14),Munt=$P(R("J"),D,17),$P(^KPR(PRNr,1),D,9)=FysStock .Quit:'FysStock .If $D(^PRLINK("IKM",PRNr)) Do MODSTOCK^PRODUKT4(PRNr,FysStock,,4,,"Start WMS") Quit .If Munt="" Write *7,!,$J(PRNr,5)," Munt ?" Quit .If FysStock<0 Write !,*7,$J(PRNr,5)," ",$J(FysStock,10) Quit .Set LEVNr=$P(R("J"),D),SortKey=$$SORTKEY^PRODUKT(PRNr),LevInd=^KL1(LEVNr) .If $D(^HULP(%J,LevInd,Munt,SortKey)) W !,*7,$J(PRNr,5)," ",SortKey Quit .Set ^HULP(%J,LevInd,Munt,SortKey)=PRNr,PRVerw=PRVerw+1 Set LevInd="" For Set LevInd=$O(^HULP(%J,LevInd)) Quit:LevInd="" Do .Set Munt="" .For Set Munt=$O(^HULP(%J,LevInd,Munt)) Quit:Munt="" Do ..Set SortKey="",Count=0 ..For Set SortKey=$O(^HULP(%J,LevInd,Munt,SortKey)) Quit:SortKey="" Set Count=Count+1 ..Set ^HULP(%J,LevInd,Munt)=Count Set (PRTot,PRVerw)=0,FP=2002 Write @F,"Opmaak toeleveringen" Do VERWERKT^PRODUKT(PRTot,PRVerw,22,21) Set LevInd="" For Set LevInd=$O(^HULP(%J,LevInd)) Quit:LevInd="" Do .Set ToeMunt="",Count=0,LEVNr=$P(^KLE(LevInd,0),D) .For Set ToeMunt=$O(^HULP(%J,LevInd,ToeMunt)) Quit:ToeMunt="" Do ..Set MaxCount=^HULP(%J,LevInd,ToeMunt),Count=Count+1,TOENr=$$TOENR(LEVNr,ToeMunt,Count,MaxCount),SortKey="" ..For Set SortKey=$O(^HULP(%J,LevInd,ToeMunt,SortKey)) Quit:SortKey="" Do ...Set PRTot=PRTot+1 ...Do:'(PRTot#100) VERWERKT^PRODUKT(PRTot,PRVerw,22,21) ...Set PRNr=^HULP(%J,LevInd,ToeMunt,SortKey) ...Set R=$$LEVPR^KPRIJS(LEVNr,PRNr) ...Set Prijs=$P(R,D),Munt=$P(R,D,2),Eenheid=$P(R,D,3),LijstPr=$P(R,D,4) ...Set Korting1=$P(R,D,5),Korting2=$P(R,D,6),EenhNum=$P(R,D,11) ...Set R=^KTO(LEVNr,TOENr,1) ...If $P(R,D,18)'=Munt Write *7,!,$J(PRNr,5)," ",Munt Quit ...Do FETCHPR^UTILI(PRNr,"R") ...Set FysStock=$P(R(0),D,14) ...Set $P(R,D,36)="",$P(R,D,2)=PRNr,$P(R,D,3)=FysStock,$P(R,D,6)=LijstPr,$P(R,D,7)=Korting1_"#"_Korting2 ...Set $P(R,D,9)=$J(Prijs*FysStock/EenhNum,0,2),$P(R,D,10)=$P(R,D,9),$P(R,D,12)="L" ...Set $P(R,D,16)=$J(LijstPr*FysStock/EenhNum,0,2),$P(R,D,17)="KTRPL",$P(R,D,21)=Eenheid ...Set $P(R,D,22)=Munt,$P(R,D,25)=LevWk ...Set TLNr=^KTO(LEVNr,TOENr,0) Set:TLNr'<200 Count=Count+1,TOENr=$$TOENR(LEVNr,ToeMunt,Count,MaxCount) ...Set TLNr=^KTO(LEVNr,TOENr,0),^KTO(LEVNr,TOENr,0)=TLNr+1 ...Set $P(R,D,13)=TLNr-100,$P(R,D,15)=$$UNIEKLNR^FLOWTOE(LEVNr,TOENr) ...Set ^KTO(LEVNr,TOENr,TLNr)=R ...Do SWNODE^FLOWTOE(LEVNr,TOENr,TLNr) ...Do MODSTOCK^PRODUKT4(PRNr,FysStock,,4,,"Start WMS") Kill ^HULP(%J) Quit ; TOENR(LEVNr,ToeMunt,Count,MaxCount) New R,TOENr Set R="",$P(R,D,26)="",$P(R,D,2)=DT,$P(R,D,3)="START WMS",$P(R,D,6)=LEVNr,$P(R,D,18)=ToeMunt Set:MaxCount'<100 $P(R,D,3)=$P(R,D,3)_" "_Count_"/"_(MaxCount\100+1) Set:LEVNr=5005 $P(R,D,9)=212250 Set TOENr=$$GETNUM^FLOW("KTO","KTO1") Set ^KTO(LEVNr,TOENr,0)=101,^KTO(LEVNr,TOENr,1)=R,^KTO1(TOENr)=LEVNr_D,^KTO2(LEVNr,TOENr)="" Quit TOENr ; PRODUKT Do INIT^vhTERMINA Do ZENDALL^EWPR Quit ; ERROR Write !,$ZE Quit ;