#include BL.Derde.LevSpecifiek #include vhLib.Macro HADVUL ;Statistiek portefeuille [ 09/24/2003 11:40 AM ] New %J,LD,LEVNr,Input,GVORDNr,SortType Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set LEVNr=6332 ; HALUX Do INIT Set GVORDNr=$$ORDDEF Quit:(GVORDNr="") ; Early quit, anders crasht de code hierna !!! Do FETCH() Do REFRESH For Do Quit:Input="-"!(Input="CANC") .Set Input=$$SCROLL^vhLIST(.LD) .Set Select=LD("SELECT") .Set PRNr=$S(Select:$P(^HULP(%J,"L",Select),D,1),1:"") .If Input="COM" Set Input="" Do CALL^vhMenu("HADVUL") .Do EXEC^vhMenu("HADVUL",.Input) Do CLEAN Quit INIT Set SortType="V" Do INIT^vhLIST("HADVUL","OVZ",.LD) Quit CLEAN If GVORDNr,'$D(^HADPR("GVO",GVORDNr)) Kill ^HADPR("GVB",GVORDNr) Quit REFRESH Write @F11,@F1 Do INIT^vhLIST("HADVUL","OVZ",.LD) Do DISPLAY^vhScherm("HADVULT") Do WRITE^vhLIST(.LD) Quit OPEN Set GVORDNr=$$ORDPOP() Do FETCH() Do REFRESH Quit SORTPOP Set SortType=$$PI^vhPOPUP("C;C","BKO2","Sorteervolgorde","HADVUL","SORTPOP") Do FETCH() Do REFRESH Quit ; PlaniMat via .Local FETCH(Node,SortCode,PlaniMat) New RecO,VolgNr,Cnt,Key,FabKey If $G(Node)="" Set Node="L" If $G(SortCode)="" Set SortCode=SortType Kill ^HULP(%J,"S"),^HULP(%J,Node) Set (FabKey,Cnt)="" Set PlaniMat=0 For Set FabKey=$O(^HADPR("GVO",GVORDNr,FabKey)) Quit:FabKey="" Do .Set RecO=^(FabKey) .Quit:'$D(^KPR($P(RecO,D,1))) .Set Cnt=Cnt+1 .Set ^HULP(%J,"S",$$SORT(SortCode,FabKey,RecO,.PlaniMat),Cnt)=RecO Set Key="",VolgNr="" Set Cnt=0 For Set Key=$O(^HULP(%J,"S",Key)) Quit:Key="" Do .For Set VolgNr=$O(^HULP(%J,"S",Key,VolgNr)) Quit:VolgNr="" Do ..Set Cnt=Cnt+1 ..Set ^HULP(%J,Node,Cnt)=^HULP(%J,"S",Key,VolgNr) Quit ;PlaniMat via .Local SORT(Type,FabKey,RecO,PlaniMat) New Key,PRNr,TOENr,KLNr,Vulling Set Key="" Set PRNr=$P(RecO,D,1) Set TOENr=$P(RecO,D,4) Set Vulling=$P($G(^HADPR("P",PRNr,"GV")),D,1) ;s:$L(Vulling)="" ^PVHADVUL=PRNr_","_TOENr Set:$L(Vulling)&&$ZCVT($$GeefVullingOmschrijving^HADVUL(Vulling),"U")["PLANILAK MAT" PlaniMat=$G(PlaniMat)+1 If Type="K" Do ; Klantnaam .Set KLNr=$P($G(^KTO(6332,TOENr,1)),D,8) .Set:'KLNr KLNr=$P(RecO,D,6) .Set Key=$P($S(KLNr="":"*****",1:$G(^KK1(KLNr),"*")),D) .Set Key=Key_";"_TOENr Else If Type="B" Do ; Batch .Set Key=$P($G(^HADPR("F",FabKey)),D,1)_";"_TOENr Else If Type="V" Do ; Vulling .Set Key=$P($G(^HADPR("P",PRNr,"GV")),D,1,2)_";"_TOENr Else If Type="D" Do ; Dossiernr .Set Key=$P($G(^KPR(PRNr,"G")),D,1) Else If Type="T" Do ; Toelevering .Set Key=$P(RecO,D,4) Set:Key="" Key="*" Quit Key CBOVZ(Select,Rec) Do CBFETCH($P(Rec,D,1),$P(Rec,D,4),$P(Rec,D,5),$P(Rec,D,6)) Quit CBFETCH(PRNr,TOENr,TULNr,KLNr2) New KLNr,VulExtra,VolgNr,Cnt,ORDRef,GVORDNr,FabKey Set FabKey=$$FABKEYT^HADOPV(TOENr,TULNr) Set sFL(0)=^KPR(PRNr,0) Set KLNr=$P($G(^KTO(6332,TOENr,1)),D,8) Set:'KLNr KLNr=KLNr2 Set:'KLNr KLNr="*" Set ORDRef="" If KLNr=3479 Do ;Svedex . Set ORDNr=$P($G(^KTO(6332,TOENr,1)),D,7) . Quit:'ORDNr . Set ORDRef="Svedex "_$E($P($G(^KOD(KLNr,"F",ORDNr,1)),D,3),10,99) Else Do . Set ORDRef=$S(KLNr="":"*****",1:$P($G(^KKL($G(^KK1(KLNr),"*"),0)),D,2)) Set sFL("K")=D_ORDRef ; Klantreferentie Set sFL("G")=$G(^KPR(PRNr,"G")) Set sFL("P")=$G(^HADPR("F",FabKey)) Set sFL("B")=$G(^HADPR("F",FabKey,"B")) Set sFL("V")=$G(^HADPR("P",PRNr,"GV")) Set VulExtra=$P(sFL("V"),D,2) For Quit:$E(VulExtra)'=";" Set $E(VulExtra)="" For Quit:$E(VulExtra,$L(VulExtra))'=";" Set $E(VulExtra,$L(VulExtra))="" ;Set:$E($P(sFL("G"),D,2),1,3)="PBA" VulExtra="PBA" ; temp profiel kennnen Set $P(sFL("V"),D,2)=VulExtra Set (VolgNr,Cnt)="" For Set VolgNr=$O(^HADPR("P",PRNr,"GV","B",VolgNr)) Quit:VolgNr="" Set Cnt=Cnt+1 Set $P(sFL("V"),D,10)=Cnt Quit ORDDEF() New GVORDNr Set GVORDNr="" If '$D(^HADPR("GVB")) Quit "*" For Set GVORDNr=$O(^HADPR("GVB",GVORDNr),-1) Quit:GVORDNr="" Quit:'$P(^HADPR("GVB",GVORDNr),D,3) Set:GVORDNr GVORDNr=$$ORDPOP("A") Set:'GVORDNr GVORDNr=$$ORDPOP() Quit GVORDNr ORDPOP(Optie) ; Optie : A : Afgesloten NIET opnemen in de lijst ; N : bovenaan de lijst optie "Nieuw" ; M : Multiple select New X,Y,GVORDNr2,LevNr,Sort,Ref,Rec,Ok Set GVORDNr2="" Set Y=0 Set Optie=$G(Optie) If Optie["N" Do . Set LevNr="" . For Set LevNr=$O(^RES("HADVUL","PI","GLASLEV","D",LevNr)) Quit:LevNr="" Do .. Set:LevNr=6831 Sort($P(^RES("HADVUL","PI","GLASLEV","D",LevNr),"`"))="N"_LevNr_D_$P(^RES("HADVUL","PI","GLASLEV","D",LevNr),"`",2) . Set Sort="" . For Set Sort=$O(Sort(Sort)) Quit:Sort="" Do .. Set Y=Y+1,Y(Y)=Sort(Sort) . Set Y=Y+1,Y(Y)="&S&C Bestaande " For Set GVORDNr2=$O(^HADPR("GVB",GVORDNr2),-1) Quit:GVORDNr2="" Do . If Optie["A" Quit:$P(^HADPR("GVB",GVORDNr2),D,3) . If Optie["N",GVORDNr2'=150 Quit . Set Rec=^HADPR("GVB",GVORDNr2) . Set Ref=$P($G(^RES("HADVUL","PI","GLASLEV","D",$P(Rec,D))),"`",2) . Quit:$P(Rec,D,2)<($H-60) . Set Ref=$E(Ref_$J("",15-$L(Ref)),1,15)_"| "_$$EXTDATE^vhLib.DataTypes($P(Rec,D,2),"DK")_" "_$S($P(Rec,D,4):"B",1:"") . Set Y=Y+1,Y(Y)=GVORDNr2_D_Ref Set X=$$WILD^vhPOPUP("C;C","KO2-"_$S(Optie["M":"M",1:""),"Glasbestelling",.Y,$S(Optie["N":"",1:GVORDNr)) If $E(X)="N" Do ; Nieuw .Set Rec=$E(X,2,99)_D_$H .Set X=$O(^HADPR("GVB",""),-1)+1 .Set:X<100 X=101 .Set ^HADPR("GVB",X)=Rec Else If Optie["N" Do ;Bestaande batch bij nieuw .Set Ok=$$^vhTXTPOP("HADVUL","NEWBATCH",,X) .Set:'Ok X="" Quit X FETCHDTL(Batch,Som) New VolgNr,RecB,PRNr,Qty,Type,Code,RecS,Som,Piece,Type,PRNr,FabKey S X=X/0 ; Test of wordt gebruikt Set VolgNr="" For Set VolgNr=$O(^HADPR("O",Batch,VolgNr)) Quit:VolgNr="" Do .Set RecB=^HADPR("O",Batch,VolgNr) .Set FabKey=$$FABKEYB^HADOPV(RecB) .Set PRNr=$P(RecB,D,3) .Set Qty=$P(RecB,D,7) .Set Type=$P(RecB,D) .Quit:Type="DV" .For Code="B","H","G","T","L","Z","F" Do ..Set RecS=$G(^HADPR("F",FabKey,Code)) ..Set Som(Code)=$G(Som(Code)) ..Quit:$P(RecS,D,3)="-" ; Niet van toepassing ..Set Piece=$S(Type="KM":1,1:3)+$S($P(RecS,D,3)="A":0,1:1) ..Set $P(Som(Code),D,Piece)=$P(Som(Code),D,Piece)+Qty .Set $P(Som,D,$S(Type="KM":1,1:3))=$P($G(Som),D,$S(Type="KM":1,1:3))+Qty Quit DISPDTL(Select) New sFL Set sFL("O")=^HULP(%J,"L",Select) Do CBOVZ(Select,sFL("O")) Merge sFL=^HADPR("P",PRNr,"GV","B") Do DISPLAY^vhScherm("HADVUL",,,,,,3) Quit DISPGLAS(PRNr,TOENr,TULNr,KLNr,Opties) ; Wordt opgeroepen vanuit HADOPV New sFL Set sFL("O")=D_D_D_TOENr_D_TULNr Do CBFETCH(PRNr,TOENr,TULNr,KLNr) Merge sFL=^HADPR("P",PRNr,"GV","B") Do:$G(Opties)["W" DISPLAY^vhScherm("HADVUL",,,,,,3) Do:$G(Opties)'["W" DISPLAY^vhScherm("HADVUL") Quit GETGLAS(Batches,GVORDNr2,BestelWk,Opties) ;Ophalen van de vulling voor een bepaalde leverweek rekening houdend met de levertermijn New LevNr,AddCnt,I,VolgNr,ORec,PRNr,GVRec,TOENr,TULNr,TLNr,LevTrm,Batch,LevWk,Qty,FabKey,ProfSel,ProfType,ProdDatum Do REFRESH^HADSTAT2(LEVNr,"T") ;; Vooralleer op te halen eerst opnemen van nieuwe toelevering in ^HADPR Set LevNr=6332 If '$L($G(GVORDNr2)) Set GVORDNr2=$$ORDPOP("AN") Quit:'$L(GVORDNr2) If '$L($G(Batches)) Set Batches=$$BATCHALL^HADBATCH() ;Set ProfSel=$$PI^vhPOPUP("C;C","OK1B","Profiel selectie","HADVUL","PROFSEL") Set:'$G(BestelWk) BestelWk=$H If $G(Opties)["W" Do FIELD^vhScherm("HADVULS","BESTELWK") Set BestelWk=$$CALCDATE^vhLib.DataTypes(BestelWk,"W","LD") Quit:'BestelWk Set AddCnt=0 Set PlaniMat=0 ;Write @F11,@F1 For I=1:1:$L(Batches,";") Set Batch=$P(Batches,";",I) Do:$L(Batch) . Set VolgNr="" . For Set VolgNr=$O(^HADPR("O",Batch,VolgNr)) Quit:VolgNr="" Do .. Set ORec=^HADPR("O",Batch,VolgNr) .. Set FabKey=$$FABKEYB^HADOPV(ORec) .. Set PRNr=$P(ORec,D,3) .. Set ProfType=$P($G(^HADPR("P",PRNr,"GK")),D,2) .. ;If ProfSel'="R",$E(ProfType,2)'=ProfSel Quit .. Set GVRec=$G(^HADPR("P",PRNr,"GV")) .. Quit:'$L(GVRec) .. Set TOENr=$P(ORec,D,6) .. Set TULNr=$P(ORec,D,5) .. Set TLNr=$G(^TO("IU",TOENr,TULNr)) .. Quit:TLNr="" .. Set LevTrm=$P(GVRec,D,7) .. Set LevWk=$$CALCDATE^vhLib.DataTypes($$INTDATE^vhLib.DataTypes($P(^KTO(LevNr,TOENr,TLNr),D,25),"DW"),"W",-LevTrm-1,"LD") ; Het glas moet toekomen 1 week voor de toeleveringsdatum .. Quit:$P($G(^HADPR("F",FabKey,"B")),D,3)="-" .. Quit:$P($G(^HADPR("F",FabKey,"B")),D,3)="A" ; Reeds besteld .. Quit:$P($G(^HADPR("F",FabKey,"G")),D,3)="A" ; Reeds geleverd .. ;Write PRNr," ",$P(^KTO(LevNr,TOENr,TLNr),D,25),"=",LevWk,">",BestelWk,"=",$$EXTDATE^vhLib.DataTypes(BestelWk,"DW"),! .. Quit:LevWk>BestelWk .. Set Qty=$P(ORec,D,7) .. ;Set LevWk=$$CALCDATE^vhLib.DataTypes($$INTDATE^vhLib.DataTypes($P(^KTO(LevNr,TOENr,TLNr),D,25),"DW"),"W",-1,"LD") ; Het glas moet toekomen 1 week voor de toeleveringsdatum .. Set ProdDatum=$$ProductieDatum(LevNr,TOENr,TLNr) .. Set LevWk=$$CalcGlasLevDatum(PRNr,ProdDatum) ; Het glas moet toekomen 1 week voor de toeleveringsdatum .. Set AddCnt=AddCnt+1 .. ;Write PRNr," ",TOENr," ",TULNr," ",Qty,! .. Do ADDGLAS(GVORDNr2,PRNr,TOENr,TULNr,LevWk,Qty,Qty,,,.PlaniMat) Set GVORDNr=GVORDNr2 Do FETCH(),REFRESH Do WARN^vhTXTPOP(AddCnt_" lijn(en) bijgevoegd","Glasref : "_GVORDNr) Quit ProductieDatum(LevNr,TOENr,TLNr) New ProdDatum Set ProdDatum=+$P(^KTO(LevNr,TOENr,1),D,19) ; dueout productie ingevuld in de toeleveringshoofding If 'ProdDatum { ; leveringsdatum van het order en daarvan terugrekenen Set KLNr=$P($G(^KTO($$$LevHalux,TOENr,1)),"\",8) ; klant Set ORDNr=$P($G(^KTO($$$LevHalux,TOENr,$G(^TO("IU",TOENr,TLUNr),"*"))),"\",27) ; KOMLink Set OLNr=$P($G(^KTO($$$LevHalux,TOENr,$G(^TO("IU",TOENr,TLUNr),"*"))),"\",28) ; KOMLink If (ORDNr="") { Do ##class(TECH.Exceptions.GeneralErrorException).Throw("Fout bij ProductieDatum : OrderID = '' voor Toelevering '"_TOENr_"' op lijn TLUNr='"_TLUNr_"' ") } Set LevDatum=$P($G(^KOD(KLNr,"F",ORDNr,OLNr),"*"),"\",25) ; Orderdatum Do INITDOMVKP^FLOWORD2(KLNr,ORDNr) Set ProdDatum=+blLeveringsTermijn.GetLaatsteProductieTijdstip(LevDatum,,ORDNr) } If 'ProdDatum { ; datum van de toelevering Set ProdDatum=$$CALCDATE^vhLib.DataTypes($$INTDATE^vhLib.DataTypes($P(^KTO(LevNr,TOENr,TLNr),D,25),"DW"),"W","MD") } Quit ProdDatum CalcGlasLevDatum(PRNr,ProdDatum) Quit ##class(APPS.VKP.LeveringsTermijn).GlasLeveringsDatum(PRNr,ProdDatum) ;MatGlas via .Local ADDGLAS(GVORDNr,PRNr,TOENr,TULNr,LevWk,Qty,MaxQty,Rede,RedeOms,PlaniMat) New KLNr,FabKey,VulRec If '$L($G(GVORDNr)) Set GVORDNr=$$ORDPOP("AN") Quit:GVORDNr="" Quit:Qty=0 Set Vulling=$P($G(^HADPR("P",PRNr,"GV")),D,1) Quit:Vulling="ZZ" Quit:Vulling="ZP" Quit:Vulling="" Set:$ZCVT($$GeefVullingOmschrijving^HADVUL(Vulling),"U")["PLANILAK MAT" PlaniMat=$G(PlaniMat)+1 Set KLNr=$P($G(^KTO(6332,TOENr,1)),D,8) Set FabKey=$$FABKEYT^HADOPV(TOENr,TULNr) If $D(^HADPR("GVO",GVORDNr,FabKey))!(Qty<1) Do . Set VulRec=$G(^HADPR("GVO",GVORDNr,FabKey)) . If $P(VulRec,D,2)+Qty<1 Do ;Verwijderen .. Kill ^HADPR("GVO",GVORDNr,FabKey) . Else Do ; Wijziging .. Set $P(VulRec,D,2)=$P(VulRec,D,2)+Qty .. Set ^HADPR("GVO",GVORDNr,FabKey)=VulRec Else Do ; Nieuwe . Set ^HADPR("GVO",GVORDNr,FabKey)=PRNr_D_Qty_D_LevWk_D_TOENr_D_TULNr_D_KLNr_D_$G(Rede)_D_$G(RedeOms) Do MARKGLAS^HADOPV(PRNr,TOENr,TULNr,Qty,MaxQty,$G(Rede),GVORDNr) Quit DELGLAS ; Verwijderen van het glas Set Rec=^HULP(%J,"L",Select) Quit:Rec="" Do ADDGLAS(GVORDNr,$P(Rec,D,1),$P(Rec,D,4),$P(Rec,D,5),,-$P(Rec,D,2),$P(Rec,D,2),$P(Rec,D,7)) Do FETCH(),REFRESH Quit MARKDAT(GVORDNr,FromGlob) ; Markeren van de besteldatum in de fabricage status New VolgNr,RecO,PRNr,Rede,FabKey Set VolgNr="" For Set VolgNr=$O(@FromGlob@(VolgNr)) Quit:VolgNr="" Do . Set RecO=@FromGlob@(VolgNr) . Set FabKey=$$FABKEYT^HADOPV($P(RecO,D,4),$P(RecO,D,5)) . Set PRNr=$P(RecO,D,1) . Quit:PRNr="" . Set Rede=$P(RecO,D,7) . Set Rede=$S(Rede="L":"H",Rede="":"B",1:Rede) . Lock +^HADPR("F",FabKey,Rede) . Set $P(^HADPR("F",FabKey,Rede),D,5)=+$H . Lock -^HADPR("F",FabKey,Rede) Quit PRINTASK New Opties,Type,LevNr,SortCode,Titel,X,PlaniMat Set Opties="" Set Type=$$PI^vhPOPUP("C;C","2BKO-","Print keuze","HADVUL","PRINT") If Type="" Quit Set LevNr=$P(^HADPR("GVB",GVORDNr),D) Set:Type="O" Opties=Opties_";O" Set:Type="B"!(Type="T") Opties=Opties_";"_$S(LevNr=6831:"TM",1:"INV") Set SortCode=$$PI^vhPOPUP("C;C","BKO2-","Sorteervolgorde","HADVUL","SORTPOP",SortType) Quit:SortCode="" Set Titel=$P(^RES("HADVUL","PI","PRINT","D",Type),"`",2)_" "_GVORDNr Set $P(Titel,"\",2)=$P(^RES("HADVUL","PI","GLASLEV","D",LevNr),"`",2) Do FETCH("PT",SortCode,.PlaniMat) Do:PlaniMat WARN^vhTXTPOP("Gelieve te controleren of dit de juiste leverancier is !~~Bevat "_PlaniMat_" lijn(en) met Planilak MAT.","Planilak MAT") If Type="T" Do . Do TRANSFER($NA(^HULP(%J,"PT")),Opties,Titel) Else Do . Do PRINT($NA(^HULP(%J,"PT")),Opties,Titel) If Type="B"!(Type="T"),'$P(^HADPR("GVB",GVORDNr),D,3) Do ; markeren van besteldatum . Set X=$$^vhTXTPOP("HADVUL","MARKBESTELD") . If X Do .. Do MARKDAT(GVORDNr,$NA(^HULP(%J,"PT"))) .. Set $P(^HADPR("GVB",GVORDNr),D,3)=$H Do REFRESH Quit PRINT(FromGlob,Opties,Titel) ; Opties met ";"gescheiden ; "TM" : Transpose MirorLux ; "INV" : Wegwerken van INVERS ; "O" ; Overzicht zonder detail boringen New PL,LCnt,VolgNr,RecO,PRNr,BorNr,BorCnt,TransRec Kill ^HULP(%J,"P") Set Opties=$G(Opties) If ";"_Opties_";"[";O;" Do . Merge ^HULP(%J,"P")=@FromGlob Else Do ; Boringen allen op de volgende lijn zetten . Set LCnt=0 . Set VolgNr="" . For Set VolgNr=$O(@FromGlob@(VolgNr)) Quit:VolgNr="" Do .. Set RecO=@FromGlob@(VolgNr) .. Set PRNr=$P(RecO,D,1) .. Set LCnt=LCnt+1,^HULP(%J,"P",LCnt)=RecO .. Set BorCnt=$O(^HADPR("P",PRNr,"GV","B",""),-1) .. Set:+BorCnt=0 BorCnt=1 .. For BorNr=1:1:BorCnt Do ... Set LCnt=LCnt+1,$P(^HULP(%J,"P",LCnt),D,11)=$G(^HADPR("P",PRNr,"GV","B",BorNr)) Set (GlasOms,TxtBor)="" Do INIT^vhLISTO("HADVUL","PRINT",.PL) Set PL(11)=$G(Titel,"Glas") Do STORE^vhTERMINA() Do PRINT^OUTPUT(.PL,"P") Do REFRESH^vhTERMINA() Quit TRANSFER(FromGlob,Opties,Titel) New FileNm,Dev,LCNt,VolgNr,sFL,Fmt,PRNr,VulExtra,FL,BorCnt,BorNr,RecB,GlasOms,Gehard,MailList New TransformatieRec,ProfielAfwerkingCode,VullingRec,IsActiefProfielPsvZwartVanSchuco,IsAanpassingNodigVoorPsvZwart,DossierCode New VullingOnbekendArray Set VullingOnbekendArray=##class(%ArrayOfDataTypes).%New() Set IsActiefProfielPsvZwartVanSchuco = $$$False ; Switch voor tijdelijk profiel PsvZwart van Schuco (andere constructie waardoor afmetingen van Vulling 2mm kleiner zijn) Set FileNm=$P(Titel,"\",2)_GVORDNr_".txt" Set Dev=0 Set Dev=$$OPEN^vhDEV(,FileNm,"W") Use Dev Set LCnt=0 Set (GlasOms,TxtBor)="" Set VolgNr="" For Set VolgNr=$O(@FromGlob@(VolgNr)) Quit:VolgNr="" Do . Set Fmt=$$CBPRINT($NAME(@FromGlob@(VolgNr))) . Set TransformatieRec = $G(TransRec) ; variabele TransRec werd in bovenstaande routine CBPRINT opgezet. (idem voor GlasOms, TxtBor) . Set PRNr=$P(FL(3),D,1) . Set DossierCode = $P(FL(3,"G"),"\",1) . Set ProfielAfwerkingCode = $P(FL(3,"G"),"\",2) . ;Do ControleerVullingOnbekend(PRNr,VullingOnbekendArray) . Set VullingRec = FL(3,"V") . Set VulExtra=$P(VullingRec,D,2) . Set Gehard=$S(VulExtra["HARD":"Ja",1:"Neen") . Set VulExtra=$$REMLIST^vhRtn1(VulExtra,"HARD",";") . Set:$L($TR(VulExtra,";","")) GlasOms=GlasOms_" - "_VulExtra . ;Set VulExtra="" . Set IsAanpassingNodigVoorPsvZwart = (ProfielAfwerkingCode="PSV-S") && IsActiefProfielPsvZwartVanSchuco . If IsAanpassingNodigVoorPsvZwart Do . . Do PasAanVullingRecVoorPsvZwart(.VullingRec) . . Do PasAanTransRecVoorPsvZwart(.TransformatieRec) . . ;Set GlasOms = GlasOms _ "(*)" ; GlasOms niet aanpassen, want dat zou de verwerking bij de glasleverancier kunnen verstoren. . . Set DossierCode = DossierCode _ "(*)" . Set BorCnt=$O(^HADPR("P",PRNr,"GV","B",""),-1) . Set LevDatum=$P(FL(3),D,3) . ;Write $P(FL(3,"K"),D,2),$C(9),$P(FL(3),D,4),".",DossierCode,$C(9),$P(FL(3),D,7),$C(9),$$EXTDATE^vhLib.DataTypes(LevDatum,"W"),$C(9),GlasOms,$C(9),Gehard,$C(9),VulExtra,$C(9),$P(FL(3),D,2),$C(9),BorCnt,$C(9),$$MOD($P(VullingRec,D,4)),$C(9),-$$MOD($P(VullingRec,D,5)) . Write $P(FL(3,"K"),D,2),$C(9),$P(FL(3),D,4),".",DossierCode,$C(9),$P(FL(3),D,7),$C(9),$TR($$EXTDATE^vhLib.DataTypes(LevDatum,"DKP"),".","/"),$C(9),GlasOms,$C(9),Gehard,$C(9),VulExtra,$C(9),$P(FL(3),D,2),$C(9),BorCnt,$C(9),$$MOD($P(VullingRec,D,4)),$C(9),-$$MOD($P(VullingRec,D,5)) . For BorNr=1:1:BorCnt Do .. Set RecB=$G(^HADPR("P",PRNr,"GV","B",BorNr)) .. Do:(IsAanpassingNodigVoorPsvZwart) PasAanGlasBoringRecVoorPsvZwart(.RecB) .. Set $P(RecB,D,1,2)=$$TRANS($P(RecB,D,1,2),TransformatieRec) .. Write $C(9),$$MOD($P(RecB,D,1)),$C(9),-$$MOD($P(RecB,D,2)),$C(9),$P(RecB,D,4) . Write ! . If ($P(FL(3),D,7)'="") Do ; herstelling .. ; $LB(KlantNaam, TOENr, DOSNr, HerstellingsRede, Datum, GlasOms, Gehard, Hoogte, Breedte) .. Set MailList($I(MailList))=$LB($P(FL(3,"K"),D,2),$P(FL(3),D,4),DossierCode,$P(FL(3),D,7)_$S($L($P(FL(3),D,8)):": "_$P(FL(3),D,8),1:""),$TR($$EXTDATE^vhLib.DataTypes(LevDatum,"DKP"),".","/"),GlasOms,Gehard,$P(VullingRec,D,4),$C(9),$P(VullingRec,D,5)) Close:0'[Dev Dev Do WARN^vhTXTPOP("Bestand "_FileNm_" weggeschreven") ;Do MailOnbekendeVullingen(VullingOnbekendArray) Do:$D(MailList) InfoMailHerstelling(.MailList) Quit PasAanVullingRecVoorPsvZwart(VullingRec) ; VullingRec als .local doorgeven Set $P(VullingRec,"\",4) = $$GeefVullingAfmetingVoorPsvZwart($P(VullingRec,"\",4)) ; Vulling Hoogte Set $P(VullingRec,"\",5) = $$GeefVullingAfmetingVoorPsvZwart($P(VullingRec,"\",5)) ; Vulling Breedte Quit PasAanTransRecVoorPsvZwart(TransformatieRec) ; TransformatieRec als .local doorgeven Set $P(TransformatieRec,"\",1) = $$GeefVullingAfmetingVoorPsvZwart($P(TransformatieRec,"\",1)) ; Transform horizontaal Set $P(TransformatieRec,"\",2) = $$GeefVullingAfmetingVoorPsvZwart($P(TransformatieRec,"\",2)) ; Transform verticaal Quit PasAanGlasBoringRecVoorPsvZwart(BoringRec) ; BoringRec als .local doorgeven Set $P(BoringRec,"\",1) = $$GeefBoringPositieVoorPsvZwart($P(BoringRec,"\",1)) ; Boring XPos Set $P(BoringRec,"\",2) = $$GeefBoringPositieVoorPsvZwart($P(BoringRec,"\",2)) ; Boring YPos Quit #define CorrectiePsvZwartAftrekGlas 1 GeefVullingAfmetingVoorPsvZwart(VullingAfmeting) Quit:(VullingAfmeting="") VullingAfmeting Quit VullingAfmeting - ($$$CorrectiePsvZwartAftrekGlas * 2) GeefBoringPositieVoorPsvZwart(BoringPos) ;New CorrectieBoringPosInMM Set CorrectieBoringPosInMM = $$$CorrectiePsvZwartAftrekGlas Quit BoringPos - ($$$CorrectiePsvZwartAftrekGlas) /* ControleerVullingOnbekend(PRNr,VullingOnbekendArray) New VullingID Set VullingID=$P($G(^HADPR("P",PRNr,"GV")),"\",1) ; in $$CBPRINT() wordt het VullingID uit dezelfde global opgehaald, maar met zeer grote omweg. If $L(VullingID)&&('$$BestaatVullingInGlobalResHadPI(VullingID)) { Do VullingOnbekendArray.SetAt("",VullingID) } Quit MailOnbekendeVullingen(VullingOnbekendArray) If (VullingOnbekendArray.Count()>0) { New Body,VullingOnbekendIt,VullingID Set Body="" Set Body=Body_$$$CRLF_"Volgende vullingen zijn onbekend of onvolledig ingevuld in ^RES(""HAD"",""PI"",""VULLING"") : " Set VullingOnbekendIt=##class(TECH.KeyListIterator).%New(VullingOnbekendArray) While (VullingOnbekendIt.HasNext()) { Set VullingID=VullingOnbekendIt.Next() Set Body=Body_$$$CRLF_"ID: "_VullingID_" --> omschrijving in Res.PI.Vulling="_##class(Res.PI.Vulling).GeefVullingVertaling(VullingID,"N") } Set Body=Body_$$$CRLF_$$$CRLF_$$GetJobInfo^vhLib.System(1,) Set sc=$$SendMiniMail^vhLib($$$SystemMail("HADVUL"),$LB("fma@vanhoecke.be","pv@vanhoecke.be","wv@vanhoecke.be"),"Kaderdeur: vulling(en) onbekend in ^RES. (Warning)",Body,0) } Quit */ #define fmtBeginHtml "
" #define fmtBeginTable() $C(10,13)_"Klant | TOENr | DOSNr | Oorzaak | Datum | Glas | Gehard | Afm1 | Afm2 |
"_$zcvt(%Val,"O","HTML")_" | " #define fmtEndRow "