BLEXPO3 G BEGIN ; Doorsturen voorraadgegevens naar BLUM ( logsteuer ); [ 12/27/2003 9:44 AM ] ;Parameters : ; BLEXP(1)= Tabelnaam waarin de nummers van de te verzenden toeleveringen staan opgeslagen. ; (2)= Alleen aanpassingen (default=empty wat betekend alles.) ; (3)= Naam van de zender, def = "LVH" ; (4)= Naam van de ontvanger, def = "BLUM" ; ; Invullen van de defaults BEGIN Set:'$D(BLEXP(2)) BLEXP(2)="" Set:'$D(BLEXP(3)) BLEXP(3)="PETER VDR" Set:'$D(BLEXP(4)) BLEXP(4)="BAU03436 " Set BlumNr="5005" Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Do ScanProd Quit:'$D(^HULP(%J)) Lock +^BLExport:60 Else Quit Kill ^BLExport Do TRUB^BLEXPO2 ; Transmissie begin Do MSB^BLEXPO2 ; Message begin Set BlumKLNr="" For Set BlumKLNr=$O(^HULP(%J,BlumKLNr)) Quit:BlumKLNr="" Do . Set InvCnt=0 . Do InventoryRapport . Do InventoryKlant(BlumKLNr) . Set PRNr="" . For Set PRNr=$O(^HULP(%J,BlumKLNr,PRNr)) Quit:PRNr="" Do . . Set InvCnt=$I(InvCnt) . . Do InventoryProduct(InvCnt,BlumKLNr,PRNr,^HULP(%J,BlumKLNr,PRNr)) Do MSEInventory ; Message einde Do BerichtConfirmatie^BLEXPO2 ; Bericht bevestiging Do TRUE^BLEXPO2 ; Transmissie einde Do ^BLEXP ; Wegschrijven van de ^BLExp global naar een EDI bestand Kill ^HULP(%J) Lock -^BLExport Quit ;IDRT30\IDLINE\IDKSNR\IDEANR\IDIDNO\IDQGHS\IDQPHS\IDQRES\IDQCUM\IDQSTP\IDQGIT\IDQSLSW\IDDATW\IDQDATW\IDQLWK\IDDTLS\IDQDTLS FmtInventoryProduct ;@"30";C;L;2\InvCnt;0N+.;R;6\;C;L;20\;C;L;13\IDIDNO;0N+.;R;8\IDQGHS;-0N0.;R;13\IDQPHS;-0N0.;R;13\IDQRES;-0N0.;R;13\;C;L;13\;C;L;13\IDQGIT;-0N0.;R;13\IDQSLSW;-0N0.;R;13\IDDATW;C;L;17\"616";C;L;3\IDQLWK;-0N0.;R;13\IDDTLS;C;L;8\"102";C;L;3 InventoryProduct(InvCnt,BlumKLNr,PRNr,PRec) ;Opzetten van het inventory product record New KindVkp,R,WVStock Set IDIDNO=$TR($P(^KPR(PRNr,"J"_BlumNr),D,3),".","") Set IDQGHS=$$GETSTOCK^PRODUKT4(PRNr,"F",,,0) ; Fysische stock zonder WMS reservatie Set Week=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"W",+2,"FD"),"DW") Set IDQPHS=$$GETSTOCK^PRODUKT4(PRNr,"P",Week) ; Praktische stock tot volgende week ; Rekeninghouden met de verkoop van kindprod en halffabrikaten Set KindVkp=$$VerkoopKinderen^PRODUKT4(PRNr,Week) ; Verkoop van halffabrikaten en kinderen (Orgalux) Set R=$G(^PRSTOCK("D",PRNr)),WVStock=$P(R,D,5) Set IDQPHS=IDQPHS-$P(KindVkp,D,3) ; Kind product verlaagt de praktische voorraad Set IDQPHS=IDQPHS-$S(WVStock>$P(KindVkp,D,2):0,1:$P(KindVkp,D,2)-WVStock) ; Als de werkvloervoorraad ontoereikend is voor de gewenste halffabrikaten ; Set IDQRES=IDQGHS-IDQPHS ; Reservatie = Fysische stock - Praktisch stock Set:IDQPHS<0 IDQPHS=0 ; De practische stock mag niet negatief zijn Set IDQGIT=$$GoederenInTransit(PRNr) ; Goederen in transit, in receptie maar nog niet in voorraad Set Verkoop=$$VerkoopLaatste(PRNr) Set IDQSLSW=$P(Verkoop,D,1) ; Verkocht aantal laatste week Set IDDATW=$TR($$EXTDATE^vhLib.DataTypes($P(Verkoop,D,2),"DW4"),"/.","") ; Datum van laatste week Set IDQLWK=$P(Verkoop,D,3) ; Verkocht aantal van laatste dag Set IDDTLS=$ZD($P(Verkoop,D,4),8) ; Datum van laatste verkoop Set FL(1)=$P($T(FmtInventoryProduct),"@",2) Do CONV^BLEXPO2 Quit ; IVRT10\IVREPT\IVCRDT\IVVADT\IVSEND\IVDEST FmtInventoryRapport ;@"10";C;L;2\IVREPT;C;L;35\IVCRDT;C;L;17\IVVADT;C;L;8\BLEXP(3);C;L;20\"LVH";C;L;3 InventoryRapport ; Opzetten van het inventory rapport record Set IVCRDT=$TR($ZDT($H,8)," :","") Set IVVADT=$ZD($H,8) Set IVREPT=$TR($ZDT($H,8)," :","") Set FL(1)=$P($T(FmtInventoryRapport),"@",2) Do CONV^BLEXPO2 Quit ; IVRT20\IVSUPB\IVSUPC\IVBUYB\IVBUYC\IVBUYE\IVCONB\IVCONC\IVCONE\IVF200 FmtInventoryKlant ;@"20";C;L;2\"BAU";C;L;3\;C;L;20\BlumKLNr;C;L;8\"030";C;L;20\;C;L;13\BlumKLNr;C;L;8\;C;L;20\;C;L;13 InventoryKlant(BlumKLNr) ; Opzetten van het inventory klant record Set FL(1)=$P($T(FmtInventoryKlant),"@",2) Do CONV^BLEXPO2 Quit MSEInventory ; Afsluiten van het inventory bericht Set MIINTY="ISR",MIINTS="DI",MINETC="C",MIACRQ=1 Do MSE^BLEXPO2 Quit VerkoopLaatste(PRNr,Week) ; Ophalen uit PRHIST de verkoop van de laatste week en van de laatste dag New Begin,End,VolgNr,HistRec,WeekSom,DagSom,DagDatum Set:$G(Week) Begin=$$CALCDATE^vhLib.DataTypes(Week,"W","FD") Set:'$G(Week) Begin=$$CALCDATE^vhLib.DataTypes($H,"W",$S($$EXTDATE^vhLib.DataTypes($H,"DWN")>4:0,1:-1),"FD") ; voor vrijdag vorige week, na vrijdag huidige week Set End=$$CALCDATE^vhLib.DataTypes(Begin,"W","LD") Set (WeekSom,DagSom)=0 Set DagDatum="" Set VolgNr="" For Set VolgNr=$O(^PRHIST(PRNr,VolgNr),-1) Quit:VolgNr="" Do Quit:DatumEnd . Quit:($P(HistRec,D,4)'="U")&&($P(HistRec,D,4)'="H") . Set Qty=-$P(HistRec,D,2) . Set WeekSom=WeekSom+Qty . If (DagDatum