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 TECH.Mail.MailAPI 1 DateTimeAPI:TECH.DateTime.impl.DateTimeAPI,Kopieerder:APPS.EDIExport.AankoopOrderResponse.BLUM.impl.Kopieerder,MailApi:TECH.Mail.MailAPI 1 1 %Status 1 COASO:APPS.EDIExport.AankoopOrderResponse.BLUM.dto.COASO Toelevering:%String,ToeleveringLijnNummer:%String,Laatstelijn:%Integer 0 { for Teller=Laatstelijn + 1:1:10{ If $Data(@..#Global(Toelevering,+ToeleveringLijnNummer,Teller)){ Kill @..#Global(Toelevering,+ToeleveringLijnNummer,Teller) } } } ]]> ToeleveringsNummer:%String,ToeleveringsUniekLijnNummer:%String,Aantal:%String,LeverDatum:%String = 100) { set ToeleveringsLijnNummer = (ToeleveringsUniekLijnNummer\100) } else { set ToeleveringsLijnNummer = +ToeleveringsUniekLijnNummer } Do:$$$Not($data(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer))) ..Logger.Info("BLOrdRsp UpdateVerwerkvlag", "Toelevering : "_ToeleveringsNummer_"."_ToeleveringsLijnNummer _ " niet gevonden in BLOrdRsp") 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 ) #dim ident as %String = $Extract($Piece(@..#Global(ToeleveringsNummer,ToeleveringsLijnNummer,indexoudste),"\",1),20,27) Do ..StuurMailHoeveelheidOntvangenVerschillendVanKAL(ToeleveringsNummer,ToeleveringsLijnNummer,ident,Aantal) ;Vdr verwittigd, mag dan voor de veiligheid op KAL blijven. } else { ; is al up to date. } } } } if ..IsToeleveringVolledigVerwerkt(ToeleveringsNummer) { Set $Piece(@..#Global(ToeleveringsNummer),"\",2)="1" } ]]> ToeleveringNummer:%String,ToeleveringLijnNummer:%String,IdentNummer:%String,Aantal:%String 1 ToeleveringsNummer:%String %Boolean 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