EWORDSS ;EWMS - Doorsturen orders - opslitsen van grote orders [ 11/29/2003 8:15 AM ] ;Do CONTRL(336530) ;Do CONTRL(336071) ; bos q VERWERK(CONSNr,Force) New Sort,Prod,Lijst,LD,KLNr,Status ; Local Prod bevat per product het aantal, gewicht en volume en de groepering ; Local Sort bevat de SORTKEY en de verwijzing naar de Prod local ; Local Lijst bevat de te displayen lijst volgens sequentiele nummering, gesorteerd volgens de Sort local en met de inhoud van de Prod local. Set Status=$P(^ORDW("D",CONSNr),D,20) ;Quit:(Status'="K")&(Status'="") ;reeds doorgestuurd Lock +^ORDW("D",CONSNr) Do INIT ; Controle op voldoende lijnen If ($P($G(Som(0)),D,2)>15)!($P($G(Som(0)),D,4)>2)!$G(Force) Do COMMAND Lock -^ORDW("D",CONSNr) Quit COMMAND New Input Do REFRESH For Do Quit:Input="-"!(Input="CANC") .Set Input=$$SCROLL^vhLIST(.LD) .Set PRNr="" .If LD("SELECT") Do ..Set PRNr=$P($G(Lijst(LD("SELECT"))),D,1) .If Input="COM" Set Input="" Do CALL^vhMenu("EWORDSS") .Do EXEC^vhMenu("EWORDSS",.Input) Quit ASKSAVE New Key Set Input="CANC" Quit:'$P(Som(1),D,2)&'$P(Som(2),D,2)&'$P(Som(3),D,2) Set Key=$$^vhTXTPOP("EWORDSS","GROEP") If Key="*" Set Input="" Quit ; Annuleer Quit:'Key ; Niet doorvoeren Do SAVE Quit SAVE New ORDNr,OLUNr,SOLNr,SOLRec,PRNr,SoftV Set (ORDNr,OLUNr,SOLNr)="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do ..For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do ...Set SOLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr) ...Set PRNr=$P(SOLRec,D,1) ...Set SoftV=$P($G(Prod(PRNr)),D,10) ...Set $P(SOLRec,D,13)=SoftV ...Set ^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)=SOLRec Quit INIT Set lbBevat=$$Bevat^EWORDSW(CONSNr) Set KLNr=$P(^ORDW("D",CONSNr),D) Do INIT^vhLIST("EWORDSS","DTL",.LD) Do SORT(CONSNr,lbBevat,.Sort) Do SOM Quit REFRESH Do DISPLAY^vhScherm("EWORDSSH") Do WRITE^vhLIST(.LD) Quit MARK(Code) Set $P(Prod(PRNr),D,10)=Code Do SOM Do DISPLAY^vhScherm("EWORDSSH",,,,"R1;R2;R3;A1;A2;A3;B1;B2;B3;C1;C2;C3") Do LINE^vhLIST(.LD,LD("SELECT")) Do MOVE^vhLIST(.LD,"DO",0) Quit SOM New VolgNr,SortKey,Rec,SomRec,Key Set SortKey="" Kill Som,Lijst For Key=0,1,2,3 Set Som(Key)="" Set VolgNr=0 For Set SortKey=$O(Sort(SortKey)) Quit:SortKey="" Do .Set PRNr=Sort(SortKey) .Set Rec=Prod(PRNr) .Set Key=+$P(Rec,D,10) .Set SomRec=Som(Key) .Set $P(SomRec,D,2)=$P(SomRec,D,2)+1 .Set $P(SomRec,D,3)=$P(SomRec,D,3)+$P(Rec,D,3) .Set $P(SomRec,D,4)=$P(SomRec,D,4)+$P(Rec,D,4) .Set:$P(Rec,D,5) $P(SomRec,D,5)=1 .Set Som(Key)=SomRec .Set VolgNr=VolgNr+1 .Set Lijst(VolgNr)=Rec Quit SORT(CONSNr,lbBevat,Sort) New ORDNr,OLUNr,SOLNr,SOLRec,Aantal,PRNr,SoftV,SortKey,Key Set (ORDNr,OLUNr,SOLNr)="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do ..For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do ...Set SOLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr) ...Set PRNr=$P(SOLRec,D,1) ...Quit:'PRNr ...Set Aantal=$P(SOLRec,D,3) ...Set SoftV=$$SOFTV^EWORDSW(PRNr,KLNr,Aantal,lbBevat) ; SoftwareVerwerking ...Quit:SoftV'="E" ; Alleen AUTOMATISCH magazijn ...Set Key=$O(^KPR(PRNr,"I")) ...Set SortKey=$$SORTKEY^PRODUKT(PRNr) ...Do ADD($NA(Prod),PRNr,Aantal) ...If $P(SOLRec,D,13)?1N Set $P(Prod(PRNr),D,10)=$P(SOLRec,D,13) ; Wat vroeger reeds ingesteld was ...Set Sort(SortKey)=PRNr Quit ADD(Ref,PRNr,Aantal) New Rec,Gewicht,Volume,PalQty Set Rec=$G(@Ref@(PRNr)) Set $P(Rec,D,1)=PRNr Set Gewicht=$P(^KPR(PRNr,1),D,13)*Aantal/1000 Set Volume=$$VOLUME^PRODUKT(PRNr)*Aantal/1000000 Set PalQty=$P(^KPR(PRNr,2),D,16) Set $P(Rec,D,2)=$P(Rec,D,2)+Aantal Set $P(Rec,D,3)=$P(Rec,D,3)+Gewicht ; in kg Set $P(Rec,D,4)=$P(Rec,D,4)+Volume ; in m3 Set:Volume="" $P(Rec,D,5)=1 ; volume niet exact gedefinieerd Set:PalQty $P(Rec,D,6)=$P(Rec,D,2)\PalQty ; aantal per pallet ingevuld Set @Ref@(PRNr)=Rec Quit RPLKL New Actie Quit:'KLNr Set Actie=$$RAADPL^KLANT(KLNr,"O") Do REFRESH Quit RPLPR New Actie Quit:'PRNr Set Actie=$$RAADPL^PRODUKT(PRNr,"1") Do REFRESH Quit