persistent DataM %Library.Persistent A = 80% van de meest roterende producten B = 15% van de tweede meest roterende producten C = 5% van de minst roterende producten De klassificatie wordt opnieuw berekend door ^PRABC De klassificatie wordt berekend op het aantal uitgaande gecumuleerde faktuurlijnen in ^KSTPR %Library.String Toeleveringen opgedeeld in drie velden door "#" 1. Aantal stock ++ KOM Format: Numeric: 7 2. Aantal stock Format: Numeric: 7 3. Aantal KOM Format: Numeric: 7 %Library.String Reservatie opgedeeld in drie velden door "#" 1. Aantal Stock + KOM Format: Numeric: 7 2. Aantal Stock Format: Numeric: 7 3. Aantal KOM Format: Numeric: 7 %Library.String %Library.String Format: Char: 2 Waarde: E1,E2,...,H1,H2,... %Library.String Format: Char: 2 Waarde: E1, E2,...,H1,H2,... %Library.String Format: Char: 2 Waarde: E1,E2,...,H1,H2,... %Library.String Format: Char: 2 Waarde: E1,E2,...,H1,H2,... %Library.String Format: Numeric: 1 %Library.String Popup: PRODUKT;PRBARCODE %Library.String Fomat: 20 char %Library.String Copy van de fysische stock. Genomen bij het begin van de inventaris om na de inventaris een vergelijking te maken %Library.Integer Format: Numeric: 7 %Library.Integer Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String 1 = Niet bijhouden "" = Bijhouden %Library.String %Library.String Breedte in mm van de grootverpakking %Library.Integer Format: Numeriek, aantal weken %Library.Integer Popup PRODUKT;CYCLECOUNT 0 = Nooit 1 = Altijd 2 = Grenswaardeoverschrijding 3 = 2 + 4 4 = Bij leegworden drager %Library.Integer Format: DD.MM.JJ Sys.cDate Geeft aan wanneer een produkt veranderd is zodanig dat nieuwe goederen niet meer mogen bijgestapeld worden. Er moet een nieuwe paletplaats voor voorzien worden. %Library.Date Sys.cDate Opgedeeld in Stock en KOM door # Het gemiddelde wordt berekend door (totaal verkoop over 52 weken) / 48 1. Stock gem weekverkoop Format: Numeric: 7 2. KOM gem weekverkoop Format: Numeric: 7 3. Frequentie: hoeveel weken er verkoop is per jaar %Library.String Bij orderingave wordt deze routine opgeroepen voor kreatie van het afgeleide product %Library.String Format: Real: 12,3 %Library.Numeric Gemiddelde weekverkoop waar de recenste weken zwaarder wegen dan de oude weken ( VerkoopWeekx * (Weekx) MOD 4) / Weekx MOD 4 * ISVERLOF(Weekx) Waar Weekx gaat van 1 (= oudste week) tot 52 (= recenste week) De functie ISVERLOF geeft voor de verlof weken een 0 terug en voor de ander een 1. %Library.String Hoogte in mm van de grootverpakking %Library.Integer Format: String: 11 %Library.String %Library.Integer Format: Char: 1 Waarde: Indien empty is geen KATALOOG PRIJS - product Anders L,S,G dan KATALOOG PRIJS - product %Library.String 1 = verschijnt in de KS-prijslijst %Library.String Format: Char: 1 Waarde: Indien empty is geen KATALOOG PRIJS - product Anders L,S,G dan KATALOOG PRIJS - product %Library.String %Library.String Format: String: 25 %Library.String Lengte in mm van de grootverpakking %Library.Integer %Library.String K = Kind of leeg Indien "K" dan kan dit product niet alleen verkocht worden, alleen als deel van een moederproduct %Library.String Waarde: 1= NON-Aktief, empty = Aktief %Library.String %Library.String %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 26 %Library.String Format: String: 44 %Library.String Boekhoudkundig rekeningnummer waarop gefaktureerd wordt. Wordt gebruikt bv. voor verpakking. %Library.String Popup: PRODUKT;OPSLAGZONE %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String Format: String: 44 %Library.String %Library.String 1 Set {*}=##class(Prod.Product).GetPropViaNr({InternProductNr},"ProductGroep") 1 Popup: PRODUKT; STOCKAGEGRP Geeft aan tot welke productgroep dit product behoort voor opslag van dit product in een bep. opslagzone %Library.String Aantal dat gereserveerd van de fysische stock tijdens het doorsturen van de OL's naar ht WMS en het feitelijke op uitleveringsbon zetten van de lijnen %Library.Integer door "#" gescheiden 1. Rotatie 2. Gem. Fys Stock %Library.String Format: Char: 1 Indien leeg = Simulatie Indien numeriek: Limiet met als limietwaarde de ingevulde waarde %Library.String Format: Numeric: 4 %Library.Integer Format: Real: 4,2 %Library.Numeric Dekkingsbijdrage Format: Real: 4,2 %Library.Numeric Extra schaduw DB% voor de PRIJSLIJST-klanten (Codex = "P") Format: Real: 4,2 %Library.Numeric Format: Real: 4,2 %Library.Numeric %Library.String Format: Real: 12,2 %Library.Numeric Format: Real: 4,2 %Library.Numeric "" = Neen, 1 = Ja %Library.String Format: Numeric: 2 %Library.Integer Waarde: 1 = stock, empty = Niet stock %Library.String Is een vermenigvuldigingsfaktor om het aantal verkochte producten correct te herleiden naar bv. hoeveel laden hebben we verkocht Indien Telbaar = 0 dan is het produkt niet telbaar bv. accessoires Waarde: 0;1;2;...;0,5;0,25;... %Library.String Popup: PRODUKT;SAMPLETYPE E = Eenmalig sampelen B = Altijd hersampelen N = Niet sampelen Opmerking: Indien Sample = E en het produkt wordt geteld door de telweegschaal dan wordt door het WMS 's nachts een feedback gegeven van Sample = "N". Om te melden dat de sample is genomen. %Library.String Popu: PRODUKT;TELWIJZE Z = Zonderbijsamplen B = Bijsamplen L = aansturing meettoestel niet van toepassing %Library.String Format: Numeric: 7 %Library.Integer Uniekheid index voor property InternProductNr 1 InternProductNr 1 1 %Library.String M.AB.9 of BQBC1->B.QBC.1 of MAHBC2->M.AH.BC.2 Set vGroep="" Set vDossierNr="" Set vCtrlNr="" ;Input onthouden voor foutmeldigen New OrigDossier Set OrigDossier=Dossier ;Eventueel reeds geplaatste (foutieve of correcte) punten weghalen Set Dossier=$TR(Dossier,".","") ;Controlecijfer ophalen New Loop,tmpChar,CtrlNr Set CtrlNr="" For Loop=$L(Dossier):-1:1 Set tmpChar=$E(Dossier,Loop) Quit:('$IsValidNum(tmpChar)) Do . Set CtrlNr=tmpChar_CtrlNr Quit:(CtrlNr="") "" Write "Controlecijfer: "_CtrlNr,! ;Controlecijfer van dossier strippen New Rest Set Rest=$ZSTRIP(Dossier,">N") Quit:(Rest="") "" ;Groep (Tandembox,banco,...) strippen (1e char) New Groep,DossierNr Set Groep=$E(Rest,1) Set DossierNr=$E(Rest,2,99999) Write "Groep: "_Groep,! Quit:(DossierNr="") "" Write "ProdCode: "_DossierNr,! New DottedProdCode,PCLen Set PCLen=$L(DossierNr) If PCLen<4 Do . Set DottedProdCode=DossierNr Else Do . Set DottedProdCode=$CASE(PCLen,4:$E(DossierNr,1,2)_"."_$E(DossierNr,3,4),5:$E(DossierNr,1,3)_"."_$E(DossierNr,4,5),6:$E(DossierNr,1,2)_"."_$E(DossierNr,3,4)_"."_$E(DossierNr,5,6),:"") Quit:(DottedProdCode="") "" Set vGroep=Groep Set vDossierNr=DossierNr Set vCtrlNr=CtrlNr Quit Groep_"."_DottedProdCode_"."_CtrlNr ]]> 1 Opslagzone:%Library.Integer %Library.String 1 Groep:%Library.String,DossierNr:%Library.String %Library.String Ophalen van een property via het internproductnummer, zonder het product object te opene 1 PRNr:%Library.Integer,PropName:%Library.String %Library.String 1 IdentNr:%Library.String %Library.String Wegschrijven van een property via het internproductnummer, zonder het product object te openen. Geeft 1 terug als OK anders 0 of foutmelding. 1 PRNr:%Library.Integer,PropName:%Library.String,Val:%Library.String %Library.String Opties: "PROM" ;Omschrijving "PRLK" ; Lijst kindproducten incl. "PRIK" ; Is kindproduct "PRQTY" : Qty "PRKR" : incl .KLantreferentie Input:%Library.String,DevObj:%Library.String,Taal:%Library.String,Opties:%Library.String,XSLURL:%Library.String="" ") . Do WRITE^XMLWRITE(DevObj,"") . Do WRITELN^XMLWRITE(DevObj) Do ONEPROD(%this.InternProductNr,tmpKLNr,tmpQty,Opties) Quit ONEPROD(PRNr,KLNr,Qty,Opties) New KortTxt,IDNr,TekRef,Cnt,J,I,Node,Piece,Txt Set Opties=$G(Opties) Do BEGINTAG^XMLWRITE(DevObj,$S(Opties["PRIK":"KINDPRODUCT",1:"PRODUCT")) Do WRITELN^XMLWRITE(DevObj) Set KortTxt=%this.KortTekst ;$P(^KPR(PRNr,0),D) ;New tmpGADefObjID,tmpGADefObj ;Set tmpGADefObjID=$P(^KPR(PRNr,"G"),D,13) ;If tmpGADefObjID Do ;. Set tmpGADefObj=##class(Prod.GADef.AfgeleidDef).%OpenId(tmpGADefObjID) ;. If '(Opties[";GAV;GAO") Do Set Opties=Opties_";GAV;GAO" ;XMLWrite van KaderDeur zeker VML & Omschrijving-opties meegeven ;. Do tmpGADefObj.XMLWrite(DevObj,$G(Taal),$G(Opties),"") ;. Do tmpGADefObj.%Close() ; ; Aanpassingen voor GAData.Product: New GAProdID,GAProd,GENTYP Set GAProdID=$P(^KPR(PRNr,"G"),D,13) If $L(GAProdID) Do . Set GENTYP=$P(##class(Prod.Product).GetPropViaNr(PRNr,"GENTYP"),"\",1) ; Geeft TBX, KAD, BAN, ... terug naargelang het product . If GENTYP?1(1"TBX",1"STG") Do .. If '(Opties[";GAO") Do Set Opties=Opties_";GAO" ;XMLWrite van GAData.Product zeker Omschrijving-opties meegeven .. Set GAProd=##class(Prod.GAData.Product).OpenWithCalc(GAProdID) . Else Do .. If '(Opties[";GAV;GAO") Do Set Opties=Opties_";GAV;GAO" ;XMLWrite van KaderDeur zeker VML & Omschrijving-opties meegeven .. Set GAProd=##class(Prod.GADef.AfgeleidDef).%OpenId(GAProdID) . ; Als GAProd bestaat, dan XMLWrite() uitvoeren. . If GAProd Do .. Do GAProd.XMLWrite(DevObj,$G(Taal),$G(Opties),"") .. Do GAProd.%Close() Set IDNr=$P(^KPR(PRNr,2),D,25) Do BEGINTAG^XMLWRITE(DevObj,"BARCODE") Do TAGWRITE^XMLWRITE(DevObj,"TYPE",%this.BarcodeType) Do WRITELN^XMLWRITE(DevObj) Do TAGWRITE^XMLWRITE(DevObj,"WAARDE",%this.BarcodeWaarde) Do WRITELN^XMLWRITE(DevObj) Do ENDTAG^XMLWRITE(DevObj,"BARCODE") Do TAGWRITE^XMLWRITE(DevObj,"PRNR",PRNr) Do WRITELN^XMLWRITE(DevObj) Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",KortTxt) Do WRITELN^XMLWRITE(DevObj) Do TAGWRITE^XMLWRITE(DevObj,"IDENTNR",IDNr) Do WRITELN^XMLWRITE(DevObj) Do:Opties["PRKR" KLANTREF(PRNr,KLNr) ; Klantreferenties Do:Opties["PRQTY" TAGWRITE^XMLWRITE(DevObj,"QTY",Qty) Do WRITELN^XMLWRITE(DevObj) Set Talen=$G(Taal,"NFDE") If Opties["PROM" For I=1:1:$L(Talen) Do . Set Taal=$E(Talen,I) . 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" . Do BEGINTAG^XMLWRITE(DevObj,"OMS",$$PARAMFILL^XMLWRITE("TAAL",Taal)) . Set Cnt=0 . For J=1:1:$L(List,",") Do .. Set Node=$P($P(List,",",J),".",1) .. Set Piece=$P($P(List,",",J),".",2) .. Set Txt=$P($G(^KPR(PRNr,Node)),D,Piece) .. Quit:Txt="" .. Set Cnt=Cnt+1 .. Do TAGWRITE^XMLWRITE(DevObj,"LIJN",$$ConvertToHTML^vhRtn1(Txt),$$PARAMFILL^XMLWRITE("VOLGNR",Cnt)) .. Do WRITELN^XMLWRITE(DevObj) . Do ENDTAG^XMLWRITE(DevObj,"OMS") . Do WRITELN^XMLWRITE(DevObj) Do:Opties["PRLK" KINDPROD(PRNr) Do ENDTAG^XMLWRITE(DevObj,$S(Opties["PRIK":"KINDPRODUCT",1:"PRODUCT")) Do WRITELN^XMLWRITE(DevObj) Quit TEKREF(PRNr,Opties) New TekRef Set TekRef=$P(^KPR(PRNr,0),D) Set TekRef=$E(TekRef,4,99) Set TekRef=$TR($E(TekRef,1,8),".# ","") Set:($E(TekRef,7,8)=16)!($E(TekRef,7,8)=18)!($E(TekRef,7,8)=19) $E(TekRef,7,8)="xx" Set:($E(TekRef,7,8)="IN")!($E(TekRef,7,8)="GR")!($E(TekRef,7,8)="WI") $E(TekRef,7,8)="" Quit $S($L(TekRef):TekRef_".Gif",1:"") KINDPROD(PRNr) New KPRNr,Sort Set KPRNr="" For Set KPRNr=$O(^PRLINK("D",PRNr,KPRNr)) Quit:KPRNr="" Do . Set Sort($$SORTKEY^PRODUKT(KPRNr))=KPRNr_D_$P(^PRLINK("D",PRNr,KPRNr),D) Set Sort="" For Set Sort=$O(Sort(Sort)) Quit:Sort="" Do . Do ONEPROD($P(Sort(Sort),D,1),$P(Sort(Sort),D,2),"QK") ; Recursie Quit KLANTREF(PRNr,KLNr) ; Dummy Quit ]]> %CacheSQLStorage ^Prod.ProductBasisS data ^KPR delimited {InternProductNr} 0.1 "\" 0 8 "\" 0 17 "\" 2 9 "\" 3 20 "\" 1 14 "\" 1 10 "\" 1 15 "\" 1 16 "\" 0 5 "\" 2 13 "\" 2 14 "\" 1 9 "\" 0 12 "\" 4 1 "\" 4 7 "\" 4 8 "\" 4 9 "\" 4 10 "\" 5 4 "\" 5 5 "\" 5 6 "\" 5 7 "\" 5 8 "\" 5 9 "\" 4 2 "\" 5 10 "\" 4 3 "\" 5 1 "\" 5 2 "\" 5 3 "\" 4 4 "\" 4 5 "\" 4 6 "\" 0 15 "\" 3 1 "\" 1 5 "\" 1 17 "\" 1 2 "\" 0 13 "\" 1 8 "\" 0 16 "\" 1 23 "\" 0 3 "\" 1 13 "\" 1 21 "\" 1 4 "\" 2 25 "\" 1 18 "\" 3 3 "\" 1 19 "\" 3 2 "\" 0 1 "\" 1 6 "\" 0 6 "\" 0 23 "\" 1 25 "\" 0 20 "\" 0 21 "\" 2 2 "\" 3 23 "\" 2 1 "\" 3 22 "\" 1 22 "\" 3 21 "\" 0 2 "\" 0 11 "\" 0 10 "\" 2 15 "\" 8 9 "\" 6 9 "\" 8 10 "\" 6 10 "\" 9 1 "\" 7 1 "\" 9 2 "\" 7 2 "\" 9 3 "\" 7 3 "\" 9 4 "\" 7 4 "\" 9 5 "\" 7 5 "\" 9 6 "\" 7 6 "\" 9 7 "\" 7 7 "\" 9 8 "\" 7 8 "\" 9 9 "\" 7 9 "\" 9 10 "\" 7 10 "\" 8 1 "\" 6 1 "\" 8 2 "\" 6 2 "\" 8 3 "\" 6 3 "\" 8 4 "\" 6 4 "\" 8 5 "\" 6 5 "\" 8 6 "\" 6 6 "\" 8 7 "\" 6 7 "\" 8 8 "\" 6 8 "\" 1 1 "\" 0 9 "\" 1 24 "\" 0 24 "\" 0 18 "\" 2 7 "\" 2 6 "\" 2 10 "\" 2 4 "\" 1 3 "\" 2 3 "\" 2 5 "\" 2 16 "\" 2 8 "\" 1 20 "\" 1 7 "\" 2 12 "\" 2 11 "\" 0 14