#Define DeltaRefDate 5000 FLOW3 ;Toelevering, offerte, order, bon [ 12/08/2003 11:19 AM ] ; ; Berekenen van de leverdag ; lbExtraBtns $LB($LB(Key,Omschrijving)) GetLeverDag(KLNr,PRNr,VroegsteLevering,BackGround,lbSelected,Titel,lbExtraBtns,ValDate,NoOther) New zb,VroegstePick,lbDatums,LeverDatum,LeverDatums,Huidig,ORef,domVerlof,Verlof Set (VroegsteLevering,Huidig)=$G(VroegsteLevering),lbExtraBtns=$G(lbExtraBtns),ValDate=$G(ValDate,+$H) Set:VroegsteLevering<$H VroegsteLevering=+$H If $G(PRNr) Do . Set VroegstePick=blLeveringsTermijn.GetVroegstePicking(PRNr) . Set VroegsteLevering=blLeveringsTermijn.GetVroegsteLevering(VroegstePick) Set lbDatums=blLeveringsTermijn.GetLeverDatums(VroegsteLevering,3) If $G(BackGround) Set LeverDatum=$LI(lbDatums) Else Do . Set ORef=##Class(Derde.Klant.Klant).%OpenId(KLNr) . Set domVerlof=##Class(DOM.CRM.impl.KlantVerlofPeriode).%New(ORef) . Do domVerlof.Fetch(.Verlof) . Set lbSelected=$G(lbSelected) . Do MergeDatums(lbDatums,lbSelected,.LeverDatums,.lbExtraBtns,Huidig,.NoOther,.Verlof) . Set Titel=$G(Titel,$$SHOW^KLVERZW(,,,blVerzendWijze.VerzendWijze)) . Set CallBack("S")="F`CBSelect^FLOW3" . Set LeverDatum=$$WILD^vhPOPUP("C;C","-1O",Titel,.LeverDatums,VroegsteLevering,.CallBack) . Set:zb="CANC" LeverDatum="" . Do:LeverDatum="?" . . Set LeverDatum=VroegsteLevering . . For Do Quit:%TC . . . Set LeverDatum=$$EXTDATE^vhDTyp(LeverDatum) . . . Set LeverDatum=$$ASKL^vhINP("FLOWORD","LEVERDAG"),%TC=1 . . . If 'LeverDatum Set LeverDatum="" Quit . . . Do VALDATE^vhDTyp(LeverDatum,"DK",ValDate) . . . If '%TC Set LeverDatum=VroegsteLevering Quit . . . Do:LeverDatum . . . . If '$$ISARBDAG^vhRtn2(%INT),'$$^vhTXTPOP("FLOW","NOARBDAG","",%EXT) Set LeverDatum=VroegsteLevering,%TC=0 . . . . Else If ##Class(DOM.CRM.impl.KlantVerlofPeriode).IsVerlofDag(KLNr,%INT),'$$^vhTXTPOP("FLOW","KLVERLOF","",%EXT,$P(^KKL(^KK1(KLNr),0),D,2)) Set LeverDatum=VroegsteLevering,%TC=0 . . . . Else Set LeverDatum=%INT Quit LeverDatum ; Leverdatum bepalen voor een order GetLeverDagOrder(KLNr,ORDNr,PRNr,DefLeverDag,BackGround) New lbSelected Set lbSelected=$S($G(BackGround):"",1:$$GetLeverDagen^FLOWORD5(KLNr,ORDNr)) Quit $$GetLeverDag(KLNr,.PRNr,.DefLeverDag,.BackGround,lbSelected) ; Leverdatum bepalen voor een leverbon GetLeverDagBon(KLNr,BONNr,PRNr,DefLeverDag,BackGround) New lbSelected Set lbSelected=$S($G(BackGround):"",1:$$GetLeverDagen^FLOWBON5(KLNr,BONNr)) Quit $$GetLeverDag(KLNr,.PRNr,.DefLeverDag,.BackGround,lbSelected) ; Alle leverdatums in een tabel gieten MergeDatums(lbDatums,lbSelected,LeverDatums,lbExtraBtns,Huidig,NoOther,Verlof) New I,R,Datum,Datums,Selected,Status,Count Set lbExtraBtns=$G(lbExtraBtns) For I=1:1:$LL(lbDatums) Set Datums($LI(lbDatums,I))="" For I=1:1:$LL(lbSelected) Set Selected($LI(lbSelected,I))="" Set Datum="" For Set Datum=$O(Datums(Datum)) Quit:Datum="" Do . If Datum=$G(Huidig) Set Datums(Datum)="" . Else If $D(Selected(Datum)) Set Datums(Datum)="U" . Kill Selected(Datum) Set Datum="" For Set Datum=$O(Selected(Datum)) Quit:Datum="" Do . If Datum=$G(Huidig) Set Selected(Datum)="" . Else If '$D(Datums(Datum)),$O(Datums(Datum),-1)="" Set Selected(Datum)="I" . Else Set Selected(Datum)="U" For Count=1:1 Set R=$G(Verlof(Count)) Quit:R="" Do . Set VerlofVan=$P(R,D,2),VerlofTot=$P(R,D,3) . If $O(Datums(""))>VerlofTot Quit . If $O(Datums(""),-1)VroegsteDag VroegsteDag=LeverDag Quit VroegsteDag ; Is het order reeds geruime tijd geleden opgemaakt? CheckRefDate(KLNr,ORDNr) New RefDate,Delta Set Delta=$$$DeltaRefDate Set RefDate=$P(^KOD(KLNr,"F",ORDNr,1),D,45),RefDate=$S($P(RefDate,"#",2):$P(RefDate,"#",2),1:RefDate) Set:'RefDate RefDate=$H Quit $$DIFFTIME^vhDTyp(RefDate,$H)>Delta