GeoRapport ;Rapporten [ 02/22/2002 8:24 AM ] ; Overzicht New %J,UserID,Datum,LD,Input Set %J=$$%J^vhRtn1(),UserID=$G(CUserId),Datum=+$H Kill ^HULP(%J) Do INIT^vhLIST("GeoRapport","ONEV",.LD) Do NIEUW^vhScherm("GEORAPPORT") Do:%SC . Do ADD^vhScherm(1,24) . For Do Quit:Input="-" . . Do Refresh(%J,UserID,Datum,.LD) . . Set Input=$S($L($G(Input)):Input,1:$$SCROLL^vhLIST(.LD)) . . Quit:Input="-" . . If Input="COM" Set Input="" Do CALL^vhMenu("GEORAPP") . . Do EXEC^vhMenu("GEORAPP",.Input) . . If Input="CANC" Set Input="-" Quit . . If Input="NR" Do MOVE^vhLIST(.LD,"DO",1) Set Input="ENTER" Quit . . If Input="PR" Do MOVE^vhLIST(.LD,"UP",1) Set Input="ENTER" Quit . . Set Input="" Kill ^HULP(%J) Quit ; ; Keuze te verwerken gebruiker SelectUser(UserID) New CB,RubrPos Set CB("I")="F`CBSelectUser^"_$ZN,RubrPos=$$POS^vhScherm("GEOUSER") Set UserID=$$USELECT^vhUSER("","Gebruiker",,,"K",1,,$G(UserID),,"1;"_$P(RubrPos,D,2),,,,.CB) Quit UserID ; ; Bepalen gebruiker is Geo-user CBSelectUser(Rec) New Insert,UserID Set Insert=1,UserID=$P(Rec,"`") Set:UserID Rec=^vhUSER("D",UserID),Insert=''$P(Rec,D,8) Quit Insert ; ; Scherm vernieuwen Refresh(%J,UserID,Datum,List) If sRT<4 Do DISPLAY^vhScherm("GEORAPPORT") If sRB>3 Do . If $G(%J),$G(^HULP(%J,"Curr"))'=(UserID_D_Datum) Do FetchData(%J,UserID,Datum) . Do WRITE^vhLIST(.List) Do RESET^vhScherm Quit ; ; Ophalen van de gegevens van een dag FetchData(%J,UserID,Datum) New R,Count,RapportData,ID,Type,Klant,Leverancier,GesprokenMet,Gesproken,KlantTekst,InternTekst,TekstKort,Agenda,Ref Kill ^HULP(%J,"Curr") Set Count=0 &sql(DECLARE RapportData CURSOR FOR SELECT ID,Type,Klant,Leverancier,GesprokenMet,KlantTekst,InternTekst,TekstKort INTO :ID,:Type,:Klant,:Leverancier,:GesprokenMet,:KlantTekst,:InternTekst,:TekstKort FROM Derde_Agenda.Agenda WHERE Gebruiker=:UserID AND Datum=:Datum AND Type <> 'P' AND Type <> 'R' ORDER BY TijdVan ASC) &sql(OPEN RapportData) Set Cnt=0,TijdVorig="",ContactOnVorig="" For &sql(FETCH RapportData) Quit:SQLCODE Do . ;If 'Klant,'Leverancier,KlantTekst="",InternTekst="" Quit . Set Agenda=##class(Derde.Agenda.Agenda).%OpenId(ID) . Set (Gesproken,Ref)="" . For Set GesprokenMet=Agenda.GesprokenMet.GetNext(.Ref) Quit:Ref="" Do Quit:Gesproken'="" . . If GesprokenMet.Gesproken,GesprokenMet.Naam'="" Set Gesproken=GesprokenMet.Naam . Set R=ID_D_$S(Type="B":$S(Klant:"K",Leverancier:"L",1:""),1:Type)_D_$S(Type="B":$S(Klant:Klant,Leverancier:Leverancier,1:""),1:"") . Set R=R_D_Gesproken_D_Agenda.TekstKort . Set Count=Count+1,^HULP(%J,"Curr",Count)=R &sql(CLOSE RapportData) Set ^HULP(%J,"Curr")=UserID_D_Datum Quit ; ; Zoek de vorige dag op PrevDate(%J,UserID,Datum) New OldDatum,MinDatum Set OldDatum=Datum,MinDatum=$O(^Derde.Agenda.AgendaD(UserID,"")) Set:MinDatum="" MinDatum=+$H Kill ^HULP(%J,"Next") Merge ^HULP(%J,"Next")=^HULP(%J,"Curr") For Set Datum=Datum-1 Do Quit:$D(^HULP(%J,"Curr")) . If DatumMaxDatum Kill ^HULP(%J,"Curr") Merge ^HULP(%J,"Curr")=^HULP(%J,"Prev") Quit . Do FetchData(%J,UserID,Datum) . Kill:'$O(^HULP(%J,"Curr","")) ^HULP(%J,"Curr") Kill ^HULP(%J,"Prev") Set Datum=$P(^HULP(%J,"Curr"),D,2) Do:Datum'=OldDatum . Kill LD("OFFSET"),LD("MAX") . Set LD("SELECT")=0 . Do ADD^vhScherm(1,24) Quit Datum ; ; Wijzig selectiekriteria SetKriteria(UserID,Datum) Do EDIT^vhScherm("GEORAPPORT") Quit ; ; Detail van een rapport Detail(AgendaID) New I,R,Input,Agenda,BLAgenda,Label,LabRef,Datum,Body,Count,DispLoc,sWrap,DTL,Klant,Leverancier,Type,UserID,Datum Set Input="",Agenda=##class(Derde.Agenda.Agenda).%OpenId(AgendaID) If $isObject(Agenda) Do . Set BLAgenda=##class(BL.Derde.Agenda.Agenda).%New() . Set Label="Verslag",LabRef=$P(AgendaID,"||",3),Datum="" . Set Klant=Agenda.Klant,Leverancier=Agenda.Leverancier,Type=Agenda.Type . Set UserID=Agenda.Gebruiker.ID,Datum=Agenda.Datum . Set Body=BLAgenda.Format2Tekst(Agenda,,"TP") . Do GETWRAP^vhBIGEDIT($NA(Body),76,.sWrap,"O","~","") . Set Count=0 . For I=1:1:$O(sWrap(""),-1) Set Count=Count+1,DispLoc(Count)=$J("",$P(sWrap(I),"`",4))_$P(sWrap(I),"`",5) . Set Datum=Agenda.Datum . Do INIT^vhLIST("GeoRapport","DTL",.DTL) . For I=1:1 Quit:'$D(DTL("B",I)) Do ; Deactiveren van buttons . . If $P(DTL("B",I),"`",2)="V",LD("SELECT")=LD("MAX") Set $P(DTL("B",I),"`",3)="HD" Quit . . If $P(DTL("B",I),"`",2)="R",LD("SELECT")=1 Set $P(DTL("B",I),"`",3)="HD" Quit . . If $P(DTL("B",I),"`",2)'="K",$P(DTL("B",I),"`",2)'="L" Quit . . If $P(DTL("B",I),"`",2)="K",Klant Quit . . If $P(DTL("B",I),"`",2)="L",Leverancier Quit . . Set $P(DTL("B",I),"`",3)="HD" . Do WRITE^vhLIST(.DTL) . For Set Input=$$SCROLL^vhLIST(.DTL) Quit:"\K\L\"'[(D_Input_D) Do . . If Input="K" Set R=$$RAADPL^KLANT(Klant.Nummer,"N",1) Do ADD^vhScherm(1,24),Refresh(,UserID,Datum,.DTL) . . If Input="L" Set R=$$RAADPL^LEVER(Leverancier.Nummer) Do ADD^vhScherm(1,24),Refresh(,UserID,Datum,.DTL) . Do ADD^vhScherm(4,24) Quit Input ; ; Naar raadplegen klanten RPLKL(KLNr) New R Set R=$$RAADPL^KLANT(KLNr,"N",1) Do ADD^vhScherm(1,24) Quit ; ; Naar raadplegen leverancier RPLLEV(LEVNr) New R Set R=$$RAADPL^LEVER(LEVNr) Do ADD^vhScherm(1,24) Quit ;