TECH.RegisteredObject,APPS.EDIExport.AankoopOrderResponse.BLUM.BLOrdRspService %String ^BLOrdRsp %String 0 %String 1 vhLib.Logger 1 TECH.DateTime.impl.DateTimeAPI 1 APPS.EDIExport.AankoopOrderResponse.BLUM.impl.Kopieerder 1 DateTimeAPI:TECH.DateTime.impl.DateTimeAPI,Kopieerder:APPS.EDIExport.AankoopOrderResponse.BLUM.impl.Kopieerder 1 1 %Status 1 COASO:APPS.EDIExport.AankoopOrderResponse.BLUM.dto.COASO ToeleveringsNummer:%String,ToeleveringsUniekLijnNummer:%String,Aantal:%String,LeverDatum:%String = 100) { set ToeleveringsLijnNummer = (ToeleveringsUniekLijnNummer\100) } else { set ToeleveringsLijnNummer = ToeleveringsUniekLijnNummer } quit:(ToeleveringsLijnNummer="") quit:$$$Not($data(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer))) set eersteindexvoortlnr = $Order(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer,0)) If $$$Not($Order(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer,eersteindexvoortlnr))){ Do ..ZetRecordAlsVerwerkt(ToeleveringsNummer,ToeleveringsLijnNummer,eersteindexvoortlnr) } Else { set index = eersteindexvoortlnr While index'=""{ If (..IsTeVerwerken(ToeleveringsNummer,ToeleveringsLijnNummer,index)) && (..IsMatch(ToeleveringsNummer,ToeleveringsLijnNummer,index, +Aantal, LeverDatum)){ Do ..ZetRecordAlsVerwerkt(ToeleveringsNummer,ToeleveringsLijnNummer,index) set updated = 1 quit } set index = $Order(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer,index)) } if $$$Not(updated){ ;geen exacte match op combinatie aantal en datum -> niet verwerkte lijn met oudste leverdatum YYMMDD aanpassen set index = eersteindexvoortlnr While index'=""{ if (..IsTeVerwerken(ToeleveringsNummer,ToeleveringsLijnNummer,index)){ set:(indexoudste=0) indexoudste = index ;eerste nog te verwerken set:(..GeefLeverDatum(ToeleveringsNummer,ToeleveringsLijnNummer,index) < ..GeefLeverDatum(ToeleveringsNummer,ToeleveringsLijnNummer,indexoudste) ) indexoudste = index if ..GeefAantal(ToeleveringsNummer,ToeleveringsLijnNummer,index) = +Aantal { set:(indexoudstemetjuistehoeveelheid = 0) indexoudstemetjuistehoeveelheid = index ;eerste nog te verwerken set:(..GeefLeverDatum(ToeleveringsNummer,ToeleveringsLijnNummer,index) < ..GeefLeverDatum(ToeleveringsNummer,ToeleveringsLijnNummer,indexoudstemetjuistehoeveelheid) ) indexoudstemetjuistehoeveelheid = index } } set index = $Order(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer,index)) } if (indexoudstemetjuistehoeveelheid) { Do ..ZetRecordAlsVerwerkt(ToeleveringsNummer,ToeleveringsLijnNummer,indexoudstemetjuistehoeveelheid) } else { if (indexoudste){ Do ##class(vhLib.Logger).%New().WarningMail("Blum OrderBevestiging","Opkuis BLOrdRsp : geen match gevonden op datum en/of hoeveelheid : "_ToeleveringsNummer_" "_ToeleveringsLijnNummer _" Hoeveelheid " _ Aantal ) ;mag dan voor de veiligheid op KAL blijven. } else { ; is al up to date. } } } } ]]> ToeleveringsNummer:%String zijn niet geleverd en moeten manueel behandeld worden ; Do ..ZetVervallenLijnenAlsVerwerkt() Do ..Kopieerder.Kopieer() ]]> 1 Lijn:%String 1 %Boolean Lijn:%String 1 %Boolean ToeleveringNummer:%String,ToeleveringLijnNummer:%String,index:%Integer 1 ToeleveringNummer:%String,ToeleveringLijnNummer:%String,index:%Integer,Aantal:%Integer,LeverDatum:%String 1 %Boolean ToeleveringNummer:%String,ToeleveringLijnNummer:%String,index:%Integer %String ToeleveringNummer:%String,ToeleveringLijnNummer:%String,index:%Integer 1 %Integer ToeleveringNummer:%String,ToeleveringLijnNummer:%String,index:%Integer 1 %Boolean ToeleveringNr:%String,ToeleveringLijnNr:%String,lijnnr:%Integer,Record:%String ToeleveringNr:%String,Record:%String Record:%String ToelevNr:%String,ToelevLijnNr:%String,Aantal:%Integer %Boolean 60) continue:$$$Not($piece(LijnData,"\",13)=ToelevLijnNr) continue:$$$Not($piece(LijnData,"\",3)=Aantal) do Items.Insert(LijnData) } quit (Items.Count() > 0) ]]> ToelevNr:%String,ProductNummer:%String,Aantal:%Integer %Boolean 60) continue:$$$Not($piece(LijnData,"\",2)=ProductNummer) continue:$$$Not($piece(LijnData,"\",3)=Aantal) do Items.Insert(LijnData) } quit (Items.Count() > 0) ]]> IdentNummer:%String,KundeNummer:%String 1 0 %String