#include Prod.Product ZAAGSNEDE ;Produkt creatie voor zaagsnedes Kill Do BUILD^A508 Do INIT^vhTERMINA Set Q="K" Write @F11,@F1 Set PRNr=$$GENERATE(,558129,,4383) ; Zaagsnede Write !,"PRNr = ",PRNr,*7 r r Quit GENERATE(Ref,GenPRNr,Params,FromPRNr) New %SelProd,sFL,NewRec,NewPRNr,KLNr,LEVNr,Taal,IsStock,KortTxt,PR,LT Set Ref=$G(Ref),(GenPRNr,PR)=$G(GenPRNr),Params=$G(Params),FromPRNr=$G(FromPRNr) Set:Params="K" KLNr=Ref Set:Params="L" LEVNr=Ref,IsStock=1 If Params="",GenPRNr Do . Set R=$O(^KPR(GenPRNr,"J")) . Quit:$E(R)'="J" . Set R=^KPR(GenPRNr,R),LEVNr=$P(R,D) Set Taal=$G(KT) Do BUILD,NEWREC Do NIEUW^vhScherm("ZAAGSNEDE",,,,,,3) If %SC Do . Do FILLDATA . Do SAVE . Do BOUWSTEEN(NewPRNr,FromPRNr,.NewRec) Quit $G(NewPRNr) FILLDATA For I=1:1 Quit:'$D(sFL(I)) Set NewRec(I-1)=sFL(I) For I="I","J","G" Set NewRec(I)=$G(sFL(I)) ;DossierNr ingeven Set $P(NewRec("G"),D,1)=$$DOSNR() ;Korttekst opbouwen (gebruikt bij save) Set KortTxt=$$KORTTXT(FromPRNr,$P(NewRec("G"),D)) ;Langteksten opbouwen Do LANGTXT(FromPRNr,NewRec("G"),"N"),LANGTXT(FromPRNr,NewRec("G"),"F") Do LANGTXT(FromPRNr,NewRec("G"),"D"),LANGTXT(FromPRNr,NewRec("G"),"E") ;Bestelreferentie opbouwen Do BESTELRE(NewRec("G")) ;Klassificatie opbouwen Do KLAS(FromPRNr,.NewRec) For Taal="N","F","D","E","R" Do . Set:Taal="N" List="0.2,0.11,6.1,6.2,6.3" . Set:Taal="F" List="1.22,3.21,8.1,8.2,8.3" . Set:Taal="D" List="2.2,3.23,10.1,10.2,10.3" . Set:Taal="E" List="2.1,3.22,12.1,12.2,12.3" . Set:Taal="R" List="4.1,4.2,4.3,4.4,4.5" . ;Huidige implementatie: langtekst 2 regels, Bestelref 3 reg . For I=1:1:3 Do .. Set Node=$P($P(List,",",I),".",1) .. Set Piece=$P($P(List,",",I),".",2) .. Set:($D(LT(Taal,I))) $P(NewRec(Node),D,Piece)=LT(Taal,I) Quit BUILD Do FETCHPR^UTILI(GenPRNr,"NewRec") Set LEVNr=$P(NewRec("J"),D) Set $P(NewRec(0),D,3)=GenPRNr Do CLEAN Quit ; Klassificatie overnemen van het basisproduct KLAS(FromPRNr,NewRec) New Temp Do FETCHPR^UTILI(FromPRNr,"Temp") Merge NewRec("I")=Temp("I") Quit CLEAN Set $P(NewRec(0),D,6)="" ; Ligging Set $P(NewRec(0),D,12,14)=D_D ; Beginstock,FysStock Set $P(NewRec(0),D,16)="" ; Laatste beweging Set $P(NewRec(0),D,17)="" ; Bestelling Set $P(NewRec(0),D,20)="" ; Schaduwkorttekst Set $P(NewRec(0),D,21)="" ; Schaduw sectie Set $P(NewRec(1),D,9)="" ; Inventaris fysstock Set $P(NewRec(1),D,20)=$G(IsStock) ; Stock/niet stock Set $P(NewRec(1),D,21)="" ; Gem Weekverkoop Set $P(NewRec(1),D,23)="" ; Gewogen gem. weekverkoop Set $P(NewRec(2),D,3)="" ; Schad PPL ;Set $P(NewRec(2),D,4)="" ; Schad Korting ;Set $P(NewRec(2),D,5)="" ; Schad Vork ;Set $P(NewRec(2),D,6)="" ; Schad Winst ;Set $P(NewRec(2),D,7)="" ; Schad Cif Set $P(NewRec(2),D,9)="" ; Reservatie If LEVNr=5005 Set $P(NewRec(2),D,25)=8_$E($P(NewRec(2),D,25),2,99) ;Id Else Set $P(NewRec(2),D,25)="" If GenPRNr=FromPRNr Do . Set $P(NewRec(0),D,2)="" ; Omschrijving N1 . Set $P(NewRec(0),D,11)="" ; Omschrijving N2 . Set $P(NewRec(1),D,22)="" ; Omschrijving F1 . Set $P(NewRec(2),D,25)="" ; Identnummer . Set $P(NewRec(3),D,21)="" ; Omschrijving F2 . Set $P(NewRec("J"),D,3)="" ; Leveranciersref . Set $P(NewRec("J"),D,10)=20 ; KSDB% . Set $P(NewRec("J"),D,19)="" ; Aankoopprijs . Set $P(NewRec("J"),D,25)="" ; Lijstprijs Quit NEWREC For I=0:1 Quit:'$D(NewRec(I)) Set sFL(I+1)=NewRec(I) For I="I","J","G" Set sFL(I)=$G(NewRec(I)) Quit BESTELRE(FromPRNr,Param) ;Lijn 1 & 2 dienen reeds ingelezen te zijn (Do LANGTXT(Param,"N")) If ((LT("N",1)="")!(LT("N",2)="")) Do . Do LANGTXT(FromPRNr,Param,"N") Set LT("R",1)=LT("N",1) Set LT("R",2)=LT("N",2) Quit ; De korttekst aanmaken KORTTXT(FromPRNr,DosNr) New KortTxt,KTxt Set KortTxt=$P(^KPR(FromPRNr,0),D) Set $E(KortTxt,8,11)=DosNr_$J("",4-$L(DosNr)) ;DossierNr Set $E(KortTxt,12,99)="VERZ" Quit KortTxt ; De langteksten aanmaken LANGTXT(FromPRNr,Param,Taal) New I,Lengtes ;3 lijnen van langtekst clearen Set LT(Taal,1)="",LT(Taal,2)="",LT(Taal,3)="" Set LT(Taal,1)=$S(Taal="F":"Sciage de",Taal="D":"Verzagen van",Taal="E":"Verzagen van",1:"Verzagen van")_" "_$P(^KPR(FromPRNr,0),D) Set Lengtes="" For I=11:1:16 Set:$P(Param,D,I) Lengtes=Lengtes_", "_$P(Param,D,I) Set $E(Lengtes,1,2)="" Set:$L(Lengtes,", ")>1 Lengtes=$P(Lengtes,", ",1,$L(Lengtes,", ")-1)_" "_$S(Taal="F":"et",Taal="D":"en",Taal="E":"en",1:"en")_" "_$P(Lengtes,", ",$L(Lengtes,", ")) Set Lengtes=" "_Lengtes_"mm" Set LT(Taal,2)=$S(Taal="F":"sur mesure",Taal="D":"op lengte",Taal="E":"op lengte",1:"op lengte")_Lengtes Quit SAVE Set NewPRNr=$$NEXTID^PRODUKT() Set IdentNr=$$IDENTNR^PRODUKT(NewPRNr) Set $P(NewRec(2),D,25)=IdentNr Set $P(NewRec(0),D)=KortTxt For I=0:1:13 Set ^KPR(NewPRNr,I)=$G(NewRec(I)) Set:$D(NewRec("G")) ^KPR(NewPRNr,"G")=NewRec("G") ; Generische node Set ^KPR(NewPRNr,"I")="" Set ^KPR(NewPRNr,"I1")=NewRec("I") Set ^KPR(NewPRNr,"J")="" Set ^KPR(NewPRNr,"J"_$P(NewRec("J"),D))=NewRec("J") ;Indexen Do RECALC^PRODUKT2(NewPRNr) Do BLDIND^PRODUKT2(NewPRNr) Do ZEND^EWPR(NewPRNr) Do Gemaakt^PRODUKT2(NewPRNr) Quit ; De bouwstenen aanmaken BOUWSTEEN(PRNr,FromPRNr,NewRec) New BSKey,AantalZaagSnedes,NettoDim Set ^PRBS("BS",PRNr)="E\HF" Set BSKey="BSL.001" Set ^PRBS("BS",PRNr,BSKey)=FromPRNr_"\1\H\\\\\\\\HF\\" Set ^PRBS("IP",FromPRNr,PRNr,BSKey)="H" Set NettoDim=$P($G(^KPR(FromPRNr,15)),D,7) Set:NettoDim ^PRBS("BS",PRNr,BSKey,"D")=NettoDim_D_NettoDim_D_NettoDim Set AantalZaagSnedes=0 For I=11:1:16 Set:$P(NewRec("G"),D,I) AantalZaagSnedes=AantalZaagSnedes+1 Set BSKey="TIJD.001" Set:AantalZaagSnedes ^PRBS("BS",PRNr,BSKey)=D_AantalZaagSnedes_"\T\\\\35\35\GRPZAAG\\VERWERK\\Zaagwerk\\\\" Set BSKey="TIJD.002" Set ^PRBS("BS",PRNr,BSKey)="\1\T\\\\67\67\GRPZAAG\\VERWERK\\Verpakking los profiel\\\\" Set BSKey="KOST.001" Set ^PRBS("BS",PRNr,BSKey)="\1\S\1\\\\\XX_Etiket+Doc\\VERWERK\\Zaagwerk surplus\\\\" Do CONTROLE^PRBSC(PRNr,"A") Quit ; Het dossiernummer aanmaken DOSNR() New DosNr Lock +^KPR(0,"ZSNR") Set DosNr=$G(^KPR(0,"ZSNR"))+1,$P(^KPR(0,"ZSNR"),D)=DosNr Lock -^KPR(0,"ZSNR") Quit $$ALFAKEY^vhRtn1(DosNr,"A") ; Basisproduct selecteren FROMPRNR(FromPRNr) New R,X If '$G(FromPRNr) Do .Do STORE^vhTERMINA() .Set FromPRNr=$$SELECT^PRODUKT6(,,,"Basisprodukt : ") .Do REFRESH^vhTERMINA() Quit FromPRNr ;