KFCOOR ;OP TE VOLGEN CONTRACT-ORDERS ; [ 03/04/2003 1:36 PM ] ; Set FP=1903 Write @F,$P($T(T3),U,2) Lock +KFCOOR:0 Else Write !,"LOCKED",*7 Hang 5 Quit ; Indien gelockt dan onmiddellijk quit Do FETCH Quit:'$D(^HULP("KFCOOR","N")) Do OUTPUT Lock -KFCOOR Quit ; FETCH Kill ^HULP("KFCOOR") Set ^HULP("KFCOOR")=$H Set KLNr=0 For Set KLNr=$O(^KPBI("D",KLNr)) Quit:KLNr="" Do .If '$D(^KK1(KLNr)) Kill ^KPBI("D",KLNr) Quit .Set ORDNr="" .For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do ..Set K=^KOD(KLNr,"F",ORDNr,1),UTYP=$P(K,D,25) Quit:UTYP'="C" ..Set OLNr=100 ..For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ...Set K=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(K,D,2) Quit:'PRNr ...If '$D(^KPBI("D",KLNr,PRNr)) Quit ...Set UIMP=$P(^KPBI("D",KLNr,PRNr),D),RaamOrd=$P(^KPBI("D",KLNr,PRNr),D,3) ...Set UA=$P(K,D,3) ...If '$D(^HULP("KFCOOR","N",KLNr,PRNr)) Set ^HULP("KFCOOR","N",KLNr,PRNr)=D_D_UIMP_D_PRNr_D_$S(RaamOrd:"R",1:"") ...Set $P(^HULP("KFCOOR","N",KLNr,PRNr),D)=$P(^HULP("KFCOOR","N",KLNr,PRNr),D)+UA ...Set ^HULP("KFCOOR","N",KLNr,PRNr,ORDNr,OLNr)=UA_D_D_D_D_$S(RaamOrd:"R",1:"") .Set PRNr="" .For Set PRNr=$O(^KPBI("D",KLNr,PRNr)) Quit:PRNr="" Do ..If '$D(^KPR(PRNr)) Kill ^KPBI("D",KLNr,PRNr) Quit ..Set UIMP=$P(^KPBI("D",KLNr,PRNr),D),RaamOrd=$P(^KPBI("D",KLNr,PRNr),D,3) ..Do:RaamOrd ...Set UA=$S(RaamOrd:$$GETSTOCK^PRODUKT4(PRNr,"T"),1:"") ...Set ^HULP("KFCOOR","N",KLNr,PRNr)=UA_D_D_UIMP_D_PRNr_"\R",WIndex="W" ...For Set WIndex=$O(^KPR(PRNr,WIndex)) Quit:$E(WIndex)'="W" Do:$E(WIndex,9)="T" ....Set R=^KPR(PRNr,WIndex),UA=$P(R,D,4) ....Set TOENr=$E(WIndex,18,23),TLNr=100+$TR($E(WIndex,24,26)," ","") ....Set ^HULP("KFCOOR","N",KLNr,PRNr,TOENr,TLNr)=UA_"\\\\R" ..If $D(^HULP("KFCOOR","N",KLNr,PRNr)) Do Quit ...Kill:$P(^HULP("KFCOOR","N",KLNr,PRNr),D)>UIMP ^HULP("KFCOOR","N",KLNr,PRNr) ..Set ^HULP("KFCOOR","N",KLNr,PRNr)=D_D_UIMP_D_PRNr_D Quit ; OUTPUT New DL,LD Set FP=2001 Write @F,@F1 Do PREP Set DL(1)="LD",LD(1)="^HULP(""KFCOOR"",""O""",LD(2)=$P($T(T2),U,2,999),LD(3)=5,LD(8)=$P($T(T1),U,2,999) Set LD(11)="CONTRACT ORDERS\Herbestelpunt" Do ^OUTPUT("SP","-","") Kill ^HULP("KFCOOR","K"),^HULP("KFCOOR","O") Quit ; PREP New KLNr,KlIndex,KlNaam,SortKey,ORDNr,OLNr,Count,RaamOrd Do:'$D(^HULP("KFCOOR","N")) FETCH Kill ^HULP("KFCOOR","K"),^HULP("KFCOOR","O") Set KLNr="",Count=0 For Set KLNr=$O(^HULP("KFCOOR","N",KLNr)) Quit:KLNr="" Do SORT(KLNr) Set KlIndex="" For Set KlIndex=$O(^HULP("KFCOOR","K",KlIndex)) Quit:KlIndex="" Do .Set KlNaam=$P(^KKL(KlIndex,0),D,2),SortKey="" .For Set SortKey=$O(^HULP("KFCOOR","K",KlIndex,SortKey)) Quit:SortKey="" Do ..Set K=^HULP("KFCOOR","K",KlIndex,SortKey) ..Set RaamOrd=$P(K,D,5),K=$P(K,D,1,3),ORDNr="" ..If $O(^HULP("KFCOOR","K",KlIndex,SortKey,ORDNr))="" Do Quit ...Set $P(K,D,9)=RaamOrd,Count=Count+1 ...Set ^HULP("KFCOOR","O",Count)=KlNaam_D_K,KlNaam="" ..For Set ORDNr=$O(^HULP("KFCOOR","K",KlIndex,SortKey,ORDNr)) Quit:ORDNr="" Do ...Set $P(K,D,4)=ORDNr,OLNr="" ...For Set OLNr=$O(^HULP("KFCOOR","K",KlIndex,SortKey,ORDNr,OLNr)) Quit:OLNr="" Do ....Set $P(K,D,5)=^HULP("KFCOOR","K",KlIndex,SortKey,ORDNr,OLNr) ....Set Count=Count+1,^HULP("KFCOOR","O",Count)=KlNaam_D_K,(KlNaam,K)="" Quit ; KLANT(KLNr) New I,R,KlInd,LD,SortKey,Korttext,TotOrd,Impuls,ORDNr,OLNr,Aantal,Count,PRNr Do:'$D(^HULP("KFCOOR","N")) FETCH Do SORT(KLNr),INIT^vhLIST("MAIL","CONTRACT",.LD) Set KlInd=^KK1(KLNr),Count=0 If $G(^HULP("KFCOOR","N",KLNr)) Do .For I=1:1 Quit:'$D(LD("B",I)) If $P(LD("B",I),"`")="Contract" Set $P(LD("B",I),"`",3)="D" Quit Set Count=Count+1,Contract(1)="Korttekst | Tot Ord | Impuls | Order | Aantal" Set Count=Count+1,Contract(2)="--------------------------|----------|----------|---------|---------" Set SortKey="" For Set SortKey=$O(^HULP("KFCOOR","K",KlInd,SortKey)) Quit:SortKey="" Do .Set R=^HULP("KFCOOR","K",KlInd,SortKey),TotOrd=$P(R,D),KortText=$P(R,D,2),Impuls=$P(R,D,3),SortKey(SortKey)=$P(R,D,4) .Set ORDNr="" .For Set ORDNr=$O(^HULP("KFCOOR","K",KlInd,SortKey,ORDNr)) Quit:ORDNr="" Do ..Set OLNr="" ..For Set OLNr=$O(^HULP("KFCOOR","K",KlInd,SortKey,ORDNr,OLNr)) Quit:OLNr="" Do ...Set Aantal=^HULP("KFCOOR","K",KlInd,SortKey,ORDNr,OLNr) ...Do FL .If $L(KortText) Set Aantal=0 Do FL Do STORE^vhTERMINA(),WRITE^vhLIST(.LD) Set R=$$SCROLL^vhLIST(.LD) If R="C" Do MAILLNK^FLOWOFF(KLNr,.SortKey,"C") Set ^HULP("KFCOOR","N",KLNr)=1 Do REFRESH^vhTERMINA() Kill ^HULP("KFCOOR","K") Quit ; FL Set FL(1)="1;C;L;25;; |\2;N;R;10;;|\3;N;R;10;;|\4;N;R;9;;|\5;N;R;10",FL(2)="",FL(3)=KortText_D_TotOrd_D_Impuls_D_ORDNr_D_Aantal Do FL^PROC Set Count=Count+1,Contract(Count)=R,(KortText,TotOrd,Impuls)="" Quit ; NIGHT Set $ZT="^cA406" Lock +KFCOOR:0 Else Quit ; Indien gelockt dan onmiddellijk quit New Set Q="K" Do ^cA604 Do FETCH Quit:'$D(^HULP("KFCOOR","N")) ;Do PREP Set Tekst(1)="Voor bepaalde produkten is het herbestelpunt bereikt." Set Refer(1)="CO\\P",KlInd="" ;For I=2:1 Set KlInd=$O(^HULP("KFCOOR","K",KlInd)) Quit:KlInd="" Set Refer(I)="CO\"_$P(KlInd," ",2)_"\D" Set MailId=$$SYSTEM^vhMAIL("","","Herbestelpunt contracten","19",.Tekst,.Refer,1,"D") Kill ^HULP("KFCOOR","K"),^HULP("KFCOOR","O") Lock -KFCOOR Quit ; SORT(KLNr) New KlInd,PRNr,KortText,SortKey,ORDNr,OLNr Set KlIndex=^KK1(KLNr),PRNr="" For Set PRNr=$O(^HULP("KFCOOR","N",KLNr,PRNr)) Quit:PRNr="" Do .Set SortKey=$$SORTKEY^PRODUKT(PRNr),KortText=$P(^KPR(PRNr,0),D) .Set R=^HULP("KFCOOR","N",KLNr,PRNr),$P(R,D,2)=KortText .Set ^HULP("KFCOOR","K",KlIndex,SortKey)=R,ORDNr="" .For Set ORDNr=$O(^HULP("KFCOOR","N",KLNr,PRNr,ORDNr)) Quit:ORDNr="" Do ..Set OLNr="" ..For Set OLNr=$O(^HULP("KFCOOR","N",KLNr,PRNr,ORDNr,OLNr)) Quit:OLNr="" Do ...Set R=^HULP("KFCOOR","N",KLNr,PRNr,ORDNr,OLNr),^HULP("KFCOOR","K",KlIndex,SortKey,ORDNr,OLNr)=R Quit ; T1 ;" Klant";C;L;19;;|\"Korttekst";C;L;25;;|\"Tot Ord";C;L;8;;|\"Impuls";C;R;7;;|\"";C;L;1\"Order";C;R;7;;|\"Aantal ";C;R;8;; T2 ;1;C;L;19;;|\3;C;L;25;;|\2;N;R;8;;|\4;-N;R;7;;|\10;C;L;1\5;N+;R;7;;|\6;N;R;8;; T3 ;Nazicht contract-orders ;