Production Process Steering - Tandembox Genereert van een Toelevering de verpakkingsdefinitie Prod.Product,BL.Prod.OptiBox,BL.PPS.TBX.Common,BL.Sys.Toegang,BL.Sys.Proxy,BL.Sys.FOP.Common,BL.Derde.KlantSpecifiek 1 %RegisteredObject 0 %String %String %Integer %String %String %String %String %String %String 1 APPS.Halux.common.Batch 1 Maximum bodems per kar 30 Halux_Productie_Keller BrotherBoekH BrotherHALUX TBXProductieProPlus2D 5x10 vhossdoc_01.01 BatchID,ProdGrp,LabelDevice,FOPDevice s bl=##class(BL.PPS.TBX.Sequencer).Instantiate(1938) d bl.ProPlusDocs("E") 0 0:" ",1:"")_"SPBAK" . Else If (KLAS["SY") Set Opm=Opm_$s($l(Opm)>0:" ",1:"")_"SIFON" . Else Quit:(KLAS'="L") . . Set VHoss=rs.Data("UnitNr")_"."_$C(64+rs.Data("SubNr"))_"."_rs.Data("SlotNr") . ;If MemVHoss'=VHoss Do . . Set:$L(MemVHoss) ^HULP(%J,$I(Count))="" . . Set MemVHoss=VHoss . Set RugB=IB-28 . Set KT="" . Set:KR="NI" KR="MG" . Set:DK=25 KL=KL_":I" ; intrabox . If oQ.Status="PB" Set Opm="PREBUILD" . Set:##class(BL.PPS.TBX.DocsV1).MetInkeeping(PRNr) Opm=Opm_" INK" ; . Set ^HULP(%J,$I(Count))=oQ.Sequence_"\"_rs.Data("ID")_"\"_PRNr_"\"_oQ.TOENr_"\"_oQ.DOSNr_"\"_KT_"\"_RH_"\"_KB_"\"_RugB_"\"_KL_"\"_LD_"\"_(IB+37)_"\"_Opm_"\"_VHoss . If $G(KlantOrdRef)="" Do . . Do ..GetKlantRef(rs.Data("ID"),.KlantOrdRef,.KlantProdRef,.TransRef) . . Set TOENr=oQ.TOENr ; Aanvullen van totalen van dezelfe producten Set Count="" Set MemVHoss="" Set MemPRNr="" For Set Count=$O(^HULP(%J,Count)) Quit:Count="" Do . Set PRNr=$P(^HULP(%J,Count),"\",3) . Quit:MemPRNr=PRNr . Set Count2=Count . Set Aantal=1 . For Set Count2=$O(^HULP(%J,Count2)) Quit:Count2="" Quit:PRNr'=$P(^HULP(%J,Count2),"\",3) Do . . Set Aantal=Aantal+1 . Set MemPRNr=PRNr . Set $P(^HULP(%J,Count),"\",20)=Aantal ; Output If $D(^HULP(%J)) Do ; geen gevonden . Do INIT^vhLISTO(..%ClassName(1),"PERS",.PLD) . Set PLD(5)=89 . Set PLD("HALUX")="" . Set PLD("NOFOOT")="" . Set PLD(1)=$NA(^HULP(%J)) . Set PLD(10)="Class("_..%ClassName(1)_").PersCB" . Set (MemUnit,MemZij,MemProd)="" . Set PLD(11)="TBX PERS\ Line: "_..Line_" Batch:"_$E(..BatchID,$L(..BatchID)-2,$L(..BatchID))_" Klant:"_$S($L($G(TransRef)):TransRef,1:$P($G(KlantOrdRef),"-")) . Set IsPrintOpScherm = ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("PrintLijstenOpScherm") . Do PRINT^OUTPUT(.PLD,$S(IsPrintOpScherm:"S",1:"P"),"S","BL") ]]> 1 Ref 0 0 1 Ref 0 PRNr 1 PRNr 1 0 1 Ref 0 0 ReedsGezaagdOnly:%Boolean=0 0 KarMin Do ; bodems per kar . . . Set oQ=##class(DS.PPS.TBX.Queue).%OpenId($LI(Sort(VHossNr,VolgNr))) . . . Set TBXLade=ProductAPI.GeefProduct(oQ.ProductGetObjectId()) . . . Set Bodem = TBXLade.GeefBodem() . . . Set TeZagen = ((TBXLade.GeefPlaatMateriaal()="HS") || (Bodem.HeeftInkeping())) . . . Set MetHoutenRug=(TBXLade.GeefRugMateriaal()=##class(DOM.PM.enu.TBXRugMateriaal).Hout()) ; Added by WimV on 18/03/2011 . . . ; Toevoegen aan BODEM PERS lijst voor picking . . . Set VHoss=oQ.WPVerpak.UnitNr_"."_$C(64+oQ.WPVerpak.SubNr)_"."_oQ.WPVerpak.SlotNr . . . Set HeeftTipon = (TBXLade.GeefBlumotion() = ##class(DOM.PM.enu.TBXBlumotion).TipOn()) . . . Set Oms2=$S(Bodem.HeeftInkeping():"INK",1:"")_$S(MetHoutenRug:"+RUG", 1:"")_$S(HeeftTipon:"TIP-ON",1:"") . . . Set Oms1=$S(TeZagen:"ZAAG",1:"") . . . Set IB = TBXLade.GeefInbouwBreedte() . . . Set BodemBreedte = TBXLade.GeefBodemBreedte() . . . Set BodemDiepte = TBXLade.GeefBodemDiepte() . . . Set BodemCount="" . . . If (PrevBodem'=Bodem.GeefPRNr()) || (PrevIB '= IB) Do . . . . Set VolgNr2=VolgNr . . . . Set BodemCount=1 . . . . For Set VolgNr2=$O(Sort(VHossNr,VolgNr2),-1) Quit:VolgNr2="" Quit:VolgNr2'>KarMin Quit:(Bodem.GeefPRNr()'=$LI(Sort(VHossNr,VolgNr2),3)||(IB'=$LI(Sort(VHossNr,VolgNr2),4))) Set BodemCount=BodemCount+1 . . . . Set PrevBodem=Bodem.GeefPRNr() . . . . Set PrevIB = IB . . . Set ^HULP(%J,"P",$I(^HULP(%J,"P")))=oQ.Sequence_"\"_oQ.%Id()_"\"_Bodem.GeefPRNr()_"\"_oQ.TOENr_"\"_oQ.DOSNr_"\"_Bodem.GeefKorttekst()_"\"_TBXLade.GeefBodemKleur()_"\"_BodemDiepte_"\"_BodemBreedte_"\"_"\"_VHoss_"\"_Oms1_"\"_Oms2_"\"_oQ.WPVerpak.UnitNr_"\"_Kar . . . Set $P(^HULP(%J,"P",^HULP(%J,"P")),"\",20)=BodemCount . . . ;Set Index("P",PRNr)=$G(Index("P",PRNr))+1 . . . ; Toevoegen aan BODEM ZAAG lijst . . . If TeZagen Do . . . . If Bodem.HeeftInkeping() Do . . . . . If Bodem.GeefBreedteVanLade()=IB Do ; 27/10/11 PV GeeftBreedte veranderd in GeefBreedteVan Lade . . . . . . Set (ZaagBreedte1,BodemBreedte)="" . . . . . Else Do . . . . . . Set ZaagBreedte1=(Bodem.GeefBreedteVanLade()-IB)/2-5 ; -5 toegevoegd : PV 27/11/08 . . . . Else Do ; zonder inkeeping uit stroken . . . . . Set ZaagBreedte1="" . . . . . . . . If MetHoutenRug Do . . . . . // Houten ruggen voor Keller mee opnemen in de zaaglijst (Added by WimV on 18/03/2011) . . . . . ;New TBXRug,RugPRNr,RugHoogte,RugBreedte,OmsRug,RugKT . . . . . Set TBXRug=TBXLade.GeefRug() . . . . . Set RugPRNr=TBXRug.GeefPRNr() . . . . . Set RugHoogte=TBXLade.GeefRugHoogteMM() . . . . . Set RugBreedte=TBXLade.GeefRugBreedte() . . . . . Set OmsRug="RUG" . . . . . Set RugKT=TBXRug.GeefKorttekst() . . . . . Set ^HULP(%J,"ZT",$I(^HULP(%J,"ZT")))=oQ.Sequence_"\"_oQ.%Id()_"\"_RugPRNr_"\"_oQ.TOENr_"\"_oQ.DOSNr_"\"_RugKT_"\"_TBXLade.GeefBodemKleur()_"\"_RugHoogte _"\"_RugBreedte _"\"_ZaagBreedte1_"\"_VHoss_"\"_OmsRug_"\\"_oQ.WPVerpak.UnitNr_"\"_Kar . . . . . . . . Set Oms=$S(Bodem.HeeftInkeping():"INK",1:"") . . . . Set ^HULP(%J,"ZT",$I(^HULP(%J,"ZT")))=oQ.Sequence_"\"_oQ.%Id()_"\"_Bodem.GeefPRNr()_"\"_oQ.TOENr_"\"_oQ.DOSNr_"\"_Bodem.GeefKorttekst()_"\"_TBXLade.GeefBodemKleur()_"\"_BodemDiepte_"\"_BodemBreedte_"\"_ZaagBreedte1_"\"_VHoss_"\"_Oms_"\\"_oQ.WPVerpak.UnitNr_"\"_Kar . . . . . . If $G(KlantOrdRef)="" Do . . . . Do ..GetKlantRef(oQ,.KlantOrdRef,.KlantProdRef,.TransRef) . . . . Set TOENr=oQ.TOENr . . ;Set ^HULP(%J,"P",$I(^HULP(%J,"P")))="" ; Omgekeerde volgorde van de gezaagde bodems Set Count="" For Set Count=$O(^HULP(%J,"ZT",Count),-1) Quit:Count="" Do . Set ^HULP(%J,"Z",$I(^HULP(%J,"Z")))=^HULP(%J,"ZT",Count) Set IsPrintOpScherm = ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("PrintLijstenOpScherm") ; Output BODEM PERS If $D(^HULP(%J,"P")) Do . Do INIT^vhLISTO(..%ClassName(1),"BODEMPERS",.PLD) . Set PLD(5)=80 . Set PLD("HALUX")="" . Set PLD("NOFOOT")="" . Set PLD(1)=$NA(^HULP(%J,"P")) . Set PLD(10)="Class("_..%ClassName(1)_").BodemCB" . Set (MemUnit,MemProd,MemKar,MemBreedte)="" . If ReedsGezaagdOnly Do . . Set PLD(11)="TBX LADEBODEMS\ Line: "_..Line_" Batch:"_$E(..BatchID,$L(..BatchID)-2,$L(..BatchID)) . Else Do . . Set PLD(11)="TBX PRO+ BODEM PERS\ Line: "_..Line_" Batch:"_$E(..BatchID,$L(..BatchID)-2,$L(..BatchID))_" Klant:"_$S($L($G(TransRef)):TransRef,1:$P($G(KlantOrdRef),"-")) . Do PRINT^OUTPUT(.PLD,$S(IsPrintOpScherm:"S",1:"P"),"S","BL") ; Output BODEM ZAAG If $D(^HULP(%J,"Z"))&&(..ProdGrp="+") Do . Do INIT^vhLISTO(..%ClassName(1),"BODEMZAAG",.PLD) . Set PLD(5)=79 . Set PLD("HALUX")="" . Set PLD(1)=$NA(^HULP(%J,"Z")) . Set PLD(11)="TBX PRO+ BODEM ZAGEN\ Line: "_..Line_" Batch:"_$E(..BatchID,$L(..BatchID)-2,$L(..BatchID))_" Klant:"_$S($L($G(TransRef)):TransRef,1:$P($G(KlantOrdRef),"-")) . Do PRINT^OUTPUT(.PLD,$S(IsPrintOpScherm:"S",1:"P"),"S","BL") Quit $O(^HULP(%J,"Z",""),-1) ; aantal te zagen bodems ]]> 1 Ref 0 ",Fmt r k Quit Fmt ]]> StartNr:%Numeric,EndNr:%Numeric EndNr . Set pxLabel=..EtiketOne(oQ) . Do blLabelPrinter.Add(pxLabel) . Set Count=Count+1 Do blLabelPrinter.Print2Bartender() Kill ..IndexKlantSort ]]> oQ 1 600:" met STEUN",1:"") ;Set:DK=25 Opm=Opm_", Intrabox" Set:DS="BA" Opm=Opm_", Baliko" Set:DC="L" Opm=Opm_", Intivo" Set:(ODSP'="") Opm=Opm_", HERSTELLING "_ODSP ; herstelling zonder rugwandhouders Set:KLAS["SP" Opm=Opm_$CASE(KLAS,"SP2":", SPOELBAK2",:"")_" "_$CASE(SPZK,"S2":"Smal","B2":"Breed",:"maatw") Set:KLAS["SY" Opm=Opm_", Sifon" Set:KLAS="B" Opm=Opm_", Buro" Set:##class(BL.PPS.TBX.DocsV1).MetInkeeping(PRNr) Opm=Opm_", INKEPING" ; If oQ.Status="PB" Set Opm=Opm_", Reeds geproduceerd!" If Opm'="" Do ; opsplitsen in opm1 en opm2 . Set $E(Opm,1,2)="" . If $L(Opm,", ")>1 Do . . Set pxLabel.Opm1=$P(Opm,", ",1,$L(Opm,", ")\2) . . Set pxLabel.Opm2=$P(Opm,", ",$L(Opm,", ")\2+1,99) . Else Do . . Set pxLabel.Opm1=Opm ; Set pxLabel.VHoss=oQ.WPVerpak.UnitNr_$C(oQ.WPVerpak.SubNr+64) ; SubNr vertalen naar A of B Set pxLabel.SlotNr=oQ.WPVerpak.SlotNr ; Vorige en volgens Slotnr bepalen Set KlantSort=oQ.WPVerpak.KlantSort Set Key=$O(..IndexKlantSort(KlantSort),-1) ; vorig Set lbSlot=$S(Key="":"",1:..IndexKlantSort(Key)) If lbSlot="" Set pxLabel.VorigSlotNr="+" Else If ($LG(lbSlot,1)'=oQ.WPVerpak.UnitNr)||($LG(lbSlot,2)'=oQ.WPVerpak.SubNr) Set pxLabel.VorigSlotNr="+" Else Set pxLabel.VorigSlotNr=$LG(lbSlot,3) Set Key=$O(..IndexKlantSort(KlantSort),1) ; volgend Set lbSlot=$S(Key="":"",1:..IndexKlantSort(Key)) If lbSlot="" Set pxLabel.VolgendSlotNr="" Else If ($LG(lbSlot,1)'=oQ.WPVerpak.UnitNr)||($LG(lbSlot,2)'=oQ.WPVerpak.SubNr) Set pxLabel.VolgendSlotNr="+"_$LG(lbSlot,3) Else Set pxLabel.VolgendSlotNr=$LG(lbSlot,3) /**/ ; Klantreferentie Do ..GetKlantRef(oQ,.KlantOrdRef,.KlantProdRef,.TransRef) Set pxLabel.KlantOrdRef=KlantOrdRef Set pxLabel.KlantProdRef=KlantProdRef Set pxLabel.Device=..LabelDevice Set pxLabel.Layout=..LabelLayout /// LadeID, VHoss 2D data matrix Set pxLabel.VHossSeqNr = oQ.WPVerpak.UnitNr Set pxLabel.VHossZijkant = oQ.WPVerpak.SubNr Set pxLabel.ProductID = PRNr Set pxLabel.BatchID = oQ.BatchID Quit pxLabel ]]> 1 PRNr %Status %Status Aanvulling op de method VHossDocs(), die de docs naar de printer stuurt (postscript). Deze method VHossDocsToFile() genereert een .pdf, die in de Shared-map van de gebruiker bewaard wordt. %Status 1 1