Controle van usernaam en wachtwoord + alle bijhorende rechten BL.EC.Common 1 %RegisteredObject 0 Status 4000 WS:OffStat:O WS:OffStat:W WS:OffStat:A WS:OffStat:V OK BV NV OP 4500 WS:StatusFixed VerwerkData zorgt ervoor dat inkomende data wordt omgevormd Flow.Offerte Result is leeg of bevat een foutmelding. Data,Taal %String DataLen) Do . Set Char=$E(Data,Loop) . ;Niet geïnteresseerd in lege lijnen, dus alle CR/LF karakter negeren en niet kijken naar CR/LF groepen: . If (Char=$C(10)) || (Char=$C(13)) Do Quit .. Set InNewLine=1 .. Set Loop=Loop+1 . Else If InNewLine Do .. Do pdProcessLine(Line,.DataType) .. Set Line="" .. Set InNewLine=0 . Set Line=Line_Char . Set Loop=Loop+1 ;Laatst ingelezen gegevens ook verwerken Do pdProcessLine(Line,.DataType) ;Producten koppelen Do %blFlowOfferte.GenerateAll() ;Producten controleren Do %blFlowOfferte.ControleAll("P",Taal) ;De offerte bewaren Set Status=%blFlowOfferte.Save() Set Result = "" If $$$ISOK(Status) Do . Set %ECSession.WebShopID=%blFlowOfferte.oOfferte.%Id() . $$$SaveSession ; onthouden van de gewijzigde webshopID . $$$AddToLog("I","EDI DynaPlug","SAVE","ID: "_%blFlowOfferte.oOfferteGetObjectId()) Else Do . Set Result=$$ParseStatus^vhLib(Status) Quit Result ;------------------------------------------ pdProcessLine(Line,varDataType) If (varDataType'=$$$dtKlant) && (Line=$$$dhKlant) Do Quit . Set varDataType=$$$dtKlant Else If (varDataType'=$$$dtOrder) && (Line=$$$dhOrder) Do Quit . Set varDataType=$$$dtOrder If varDataType=$$$dtKlant Do . ;nog geen implementatie Else If varDataType=$$$dtOrder Do . Set IdentNr=$P(Line,$$$DataSep,$$$odpIdentNr) . Set Artikel=$P(Line,$$$DataSep,$$$odpArtikel) . Set Bez=$P(Line,$$$DataSep,$$$odpBez) . Set FarbeBez=$P(Line,$$$DataSep,$$$odpFarbeBez) . Set HaendlerNr=$P(Line,$$$DataSep,$$$odpHaendlerNr) . If $L(Line,$$$DataSep)=$$$cntLineLenWithEAN Do ;Lijn bevat EAN code .. Set Qty=$P(Line,$$$DataSep,$$$odpQtyWithEAN) .. Set EAN=$P(Line,$$$DataSep,$$$odpEANCode) . Else Do ;Lijn bevat géén EAN code .. Set Qty=$P(Line,$$$DataSep,$$$odpQty) .. Set EAN="" . ;Lijn toevoegen . If '(+Qty=0) Do . . Set Lijn=%blFlowOfferte.InsertLijnProduct(,,,+Qty) . . Set Lijn.SearchKeys=$LB($LB(IdentNr,"I"),$LB(Artikel,"K"))_$S($L(EAN):$LB($LB(EAN,"EAN")),1:"") . . ;Set Lijn.SearchOmschrijving=$LB(Artikel,Bez,FarbeBez) . . Set Lijn.SearchOmschrijving=$LB(Bez,FarbeBez) Quit ]]> OfferteID:%String DOM.dto.StringList OfferteID 1 %Boolean Criteria pxFetch =:Datum ORDER BY Datum desc,ID desc) &sql(OPEN OffPrep) For &sql(FETCH OffPrep) Quit:SQLCODE Do . Set Status=$CASE(Status,"A":..#osAfgehandeld,"V":..#osAfgehandeld,"I":..#osWachtenOpVerwerking,"W":..#osWachtenOpVerwerking,:..#osOpenStaand) ; OfferteStatus . Quit:OfferteStatus'[Status ; Criteria offerte status . Quit:OfferteID=%ECSession.WebShopID ; De actuele webshop niet tonen . Do %blFlowOfferte.Open(OfferteID) . Set Options=$S(%blFlowOfferte.oOfferte.Creator="DYNAPLAN":"GROUPBYREF",1:"") . ; Controle Offerte . Kill Sort . Set SortCnt=0 . Set Key="" . Set (OfferteTotaal,OfferteAantal)=0 . For Set oLijn=%blFlowOfferte.oOfferte.Lijnen.GetNext(.Key) Quit:Key="" Do . . Do ..CheckOfferteLijn(oLijn,ProductGroepen,.LijnType,.VoorraadStatus,.ProdGrp,Options) . . Quit:LijnType="" . . Set:"T"'[LijnType OfferteTotaal=OfferteTotaal+(oLijn.NettoEPrijs*oLijn.Aantal),OfferteAantal=OfferteAantal+1 . . Set:"P;GA;M"[LijnType HasProd=1 . . ; ProdGrp wordt allen door een product gedefinieerd, anders wordt de waarde van de vorige lijn genomen . . If $G(ProdGrp)="" Do . . . Set MemSort($I(SortCnt))=$LB(LijnType,oLijn.%Id(),VoorraadStatus) ; onthouden van de lijn totdat prodgrp gekend . . Else Do . . . Merge Sort(ProdGrp)=MemSort . . . Kill MemSort . . . Set Sort(ProdGrp,$I(SortCnt))=$LB(LijnType,oLijn.%Id(),VoorraadStatus) ; onthouden van de lijn . ;If $D(MemSort) Merge Sort("*",ProdGrp)=MemSort . If $D(MemSort) Merge Sort($G(ProdGrpn,"*"))=MemSort . Quit:'$G(HasProd) . . Set ^ECHULP(SessionKey,"FD",$I(LijnCnt))=$LB("OFH",OfferteID,OfferteTotaal,OfferteAantal) . Set SnapNewPage(LijnCnt)="" . Set (ProdGrp,SortCnt)="" . For Set ProdGrp=$O(Sort(ProdGrp)) Quit:ProdGrp="" Do . . Set:((ProdGrp'="*") && IncludeProdGrp) ^ECHULP(SessionKey,"FD",$I(LijnCnt))=$LB("G",ProdGrp,Options["GROUPBYREF") . . For Set SortCnt=$O(Sort(ProdGrp,SortCnt)) Quit:SortCnt="" Do . . . Set LijnType=$LI(Sort(ProdGrp,SortCnt),1) . . . Set LijnID=$LI(Sort(ProdGrp,SortCnt),2) . . . Set:LijnType="T" ^ECHULP(SessionKey,"FD",$I(LijnCnt))=$LB("OFT",LijnID) . . . Set:LijnType="M" ^ECHULP(SessionKey,"FD",$I(LijnCnt))=$LB("OFM",LijnID) . . . Set:LijnType="P" ^ECHULP(SessionKey,"FD",$I(LijnCnt))=$LB("OFP",LijnID,$LI(Sort(ProdGrp,SortCnt),3)) . . . Set:LijnType="GA" ^ECHULP(SessionKey,"FD",$I(LijnCnt))=$LB("OFGA",LijnID,$LI(Sort(ProdGrp,SortCnt),3)) &sql(CLOSE OffPrep) Set pxFetch=$$CreatePages^BL.EC.Common(SessionKey,LijnCnt,$$$tgWebShop,,.SnapNewPage) Set pxFetch.HasFullText=1 Set pxFetch.HasCriteria=1 Set pxFetch.HasProductDetail=1 Quit pxFetch ]]> %Query Page:%Integer,FullText:%Boolean 1 %Status 1 OffertePageExecute 0 %Status %LijnMax) Do . Set AtEnd=1 Else Do . Set Row=%blWebShop.OfferteRow(^ECHULP(%SessionKey,"FD",%LijnNr)) . If Row="" Set AtEnd=1 Quit $$$OK ]]> List "),1:"")_%Add #define AddTekst(%Add,%NoBR) Set Tekst=Tekst_$S($L(Tekst):$S(%NoBR:"",1:"
"),1:"")_%Add_" " Set Row="" If $LG(List)="G" Do ; Groep bevat als 2de element de groepoms en als derde element de NoTranslate boolean . Set Trans=$S($LG(List,3):$LG(List,2),1:$$$Translate($LG(List,2))) . Set Row=$LB("G",,,Trans,Trans) Else If $LG(List)="OFH" Do ; Hoofding . Set OfferteID=$LG(List,2) . Set oOfferte=##class(Flow.Offerte.Hoofding).%OpenId(OfferteID) . Set Datum=$$FormatDateTime^vhLib("d mmm yy",oOfferte.Datum,%Taal) . Set Status=$CASE(oOfferte.Status,"A":..#osAfgehandeld,"V":..#osVerwijderd,"I":..#osWachtenOpVerwerking,"W":..#osWachtenOpVerwerking,:..#osOpenStaand) ; OfferteStatus. Set TCompact="" . Set TCompact="" . Set:$L(oOfferte.CommReferentie) TCompact=""_$$$Translate("CommRef")_" : "_oOfferte.CommReferentie_" " . If oOfferte.Status="" Do . . If ##class(BL.Flow.Offerte.Build).cmIsVervallen(oOfferte) Do . . . Set TCompact=TCompact_""_$$$Translate($$$msgOfferteIsOngeldig)_"" . . Else Do . . . Set TCompact=TCompact_""_$$$Translate($$$msgOfferteIsGeldigTot)_" "_$$FormatDateTime^vhLib("dddd d mmmm jjjj",oOfferte.VervalDatum,%Taal)_"" . Else Do . . Set TCompact=TCompact_$S($L(TCompact):"
",1:"")_""_$$$Translate(Status) . . Set:oOfferte.Status="A" TCompact=TCompact_": "_oOfferte.OrderNrGetObjectId() . . Set TCompact=TCompact_"" . Set TFull=TCompact . If $isObject(oOfferte.LeveringsAdres),oOfferte.LeveringsAdres.Naam'="" Do . . Set oAdres=oOfferte.LeveringsAdres . . Set AdresFmt=""_$$$Translate("LevAdr")_" : "_oAdres.Naam_$S($L(oAdres.Toenaam):" - "_oAdres.Toenaam,1:"")_" - "_oAdres.StraatNrBus_" - "_oAdres.Woonplaats . Else Do . . Set Adres=^KKL(^KK1(%KLNr),0) . . Set AdresFmt=""_$$$Translate("LevAdr")_" : "_$P(Adres,"\",2)_$S($L($P(Adres,"\",3)):" - "_$P(Adres,"\",3),1:"")_" - "_$P(Adres,"\",5)_" - "_$P(Adres,"\",7) . Set TFull=TFull_$S($L(TFull):"
",1:"")_AdresFmt . ;Set Row=$LB("WSH",,,TCompact,TFull,$fn(OfferteID,"."),oOfferte.Referentie,Datum) . Set Row=$LB("WSH",,,TCompact,TFull,OfferteID,oOfferte.Referentie,Datum) . Set $LI(Row,14)=$S(%ECSession.Opties[$$$opNoPrice:$$$NoPrice,1:$LG(List,3)) ; OfferteTotaal . Set $LI(Row,9)=$LG(List,4) ; OfferteAantal . Set $LI(Row,10)=Status Else If $LG(List)="OFT" Do . Set LijnID=$LG(List,2) . Set oLijn=##class(Flow.Offerte.Lijn).%OpenId(LijnID) . Set Row=$LB("WST",,,oLijn.Tekst,oLijn.Tekst,oLijn.GroepKey) Else If $LG(List)="OFM" Do ; Manueel = product niet gevonden . Set Tekst="" . Set LijnID=$LG(List,2) . Set oLijn=##class(Flow.Offerte.Lijn).%OpenId(LijnID) . If oLijn.ProductGetObjectId()?4.7N Do ; oude webshop met verwijderd product . . $$$AddTekst(""_$$$Translate("WS:Verwijderd product")_" "_oLijn.ProductGetObjectId()_"
",0) . Else Do ; product niet gevonden . . If $LL(oLijn.SearchKeys) $$$AddTekst(""_$$$Translate("WS:NoAutoSearch")_"
",0) . . For I=1:1:$LL(oLijn.SearchKeys) Do . . . Set SearchKey=$LG(oLijn.SearchKeys,I) . . . If ($LG(SearchKey,2)=$$$skPakket)&&($LG(SearchKey,1)'=oLijn.Referentie) $$$AddTekst($$$Translate("WS:UwRef")_": "_$LG(SearchKey,1),1) . . . If ($LG(SearchKey,2)=$$$skIdentNr) $$$AddTekst($$$Translate("WS:Identnr")_": "_$LG(SearchKey,1),1) . . . If ($LG(SearchKey,2)=$$$skKortTekst) Do . . . . $$$AddTekst($$$Translate("WS:Productnaam")_": "_$LG(SearchKey,1),1) . . . If ($LG(SearchKey,2)=$$$skEAN) $$$AddTekst($$$Translate("WS:EAN")_": "_$LG(SearchKey,1),1) . . ;$$$AddTekst(""_$$$Translate("WS:Aantal")_""_": "_oLijn.Aantal,1) . . For I=1:1:$LL(oLijn.SearchOmschrijving) Do . . . If $L($LG(oLijn.SearchOmschrijving,I)) $$$AddTekst($LG(oLijn.SearchOmschrijving,I),0) . . $$$AddTekst(""_$$$Translate("WS:Aantal")_""_": "_oLijn.Aantal,0) . Set Row=$LB("WST",,,Tekst,Tekst,oLijn.GroepKey,,,oLijn.Aantal) Else If $LG(List)="OFP" Do . Set LijnID=$LG(List,2) . Set oLijn=##class(Flow.Offerte.Lijn).%OpenId(LijnID) . Set PRNr=oLijn.Product.%Id() . Set Datum=$$FormatDateTime^vhLib("d mmm yy",oLijn.LeverDatum,%Taal) . Set Row=$LB("WSP")_%blProduct.ProductElements(PRNr,%KLNr,oLijn.Tekst,"") . Set NettoPrijs=oLijn.NettoEPrijs*$S(oLijn.GrootteOrde="H":100,1:1) . Set Totaal=oLijn.NettoEPrijs*oLijn.Aantal . If %ECSession.Opties[$$$opNoPrice Set NettoPrijs=$$$NoPrice, Totaal=$$$NoPrice*oLijn.Aantal . Set Row=Row_$LB(oLijn.GroepKey,,Datum,oLijn.Aantal,$LG(List,3),NettoPrijs,,oLijn.MuntGetObjectId(),Totaal) . Set:oLijn.GrootteOrde="H" $LI(Row,12)="H" . Set Row=Row_%blData.FavorietElement(PRNr,1,1) . Set $LI(Row,4,5)=$LB($LG(Row,4+%FullText)) Quit Row ]]>
1 OffertePageExecute %Status Zoek,StartPage,StartLine,Direction,pxFetch Overbrengen van de webshop in een proxy Options ";" delimited "GROUPBYREF", ipv te groeperen op productgroep wordt er hier gegroepeerd per referentie OfferteID:%String,Options="" BL.EC.pxWebShop oOfferte.DefaultLeverDatum:MinLeverDatum,1:oOfferte.DefaultLeverDatum) . Set pxWebShop.MogelijkeLeverDatums=$$TransformDates(%blLeverTermijn.GetLeverDatums(MinLeverDatum,10)) . Set pxWebShop.LeverDatum=$$FormatDateTime^vhLib("d mmm yy",LeverDatum,%Taal) . Set pxWebShop.MinLeverDatum=$$FormatDateTime^vhLib("d mmm yy",MinLeverDatum,%Taal) . Set pxWebShop.VerzendWijze=oOfferte.VerzendWijze . Set pxWebShop.Controle=..ControleTekst(oOfferte,%Taal) ; LeveringsAdres Set pxAdres=##class(pxKlantInfoAdres).%New() If $isObject(oOfferte.LeveringsAdres),oOfferte.LeveringsAdres.Naam'="" Do . Set oAdres=oOfferte.LeveringsAdres . Set pxAdres.Naam=oAdres.Naam . Set pxAdres.Toenaam=oAdres.Toenaam . Set pxAdres.StraatNrBus=oAdres.StraatNrBus . Set pxAdres.WoonPlaats=oAdres.Woonplaats . Set pxAdres.PostCode=oAdres.PostNummer . Set pxAdres.Land=oAdres.LandOms Else Do . Set KlantAdres=..DefaultLevAdres() . Set pxAdres.Naam=$P(KlantAdres,"\",2) . Set pxAdres.Toenaam=$P(KlantAdres,"\",3) . Set pxAdres.StraatNrBus=$P(KlantAdres,"\",5) . Set pxAdres.PostCode=$P(KlantAdres,"\",6) . Set pxAdres.WoonPlaats=$P(KlantAdres,"\",7) . Set pxAdres.Land=$P(KlantAdres,"\",8) Set pxWebShop.LeveringsAdres=pxAdres ; Lijnen in DatSet en Totaal bedrag Kill %Cache Do ..GetDataSetCache(.Totaal,.Aantal,.Options) ;Prepare Set pxWebShop.Totaal=Totaal If %ECSession.Opties[$$$opNoPrice Set pxWebShop.Totaal=$$$NoPrice Set pxWebShop.Aantal=Aantal Set pxWebShop.Munt="EUR" Set DataSet=##class(BL.EC.pxXMLDataSet).%New("BL.EC.WebShop:SingleLijst") Do DataSet.SetArgs(OfferteID) Set DataSet.DiffGram=0 Set DataSet.NeedSchema=1 Set pxWebShop.Lijnen=DataSet Quit pxWebShop TransformDates(lbDates) Set Dates="" For I=1:1:$LL(lbDates) Set Dates=Dates_";"_$$EXTDATE^vhDTyp($LI(lbDates,I),"DK4",pxWebShop.Taal) Quit $E(Dates,2,999) ]]> oOfferte,Taal +$H ; nog geen tijd . Quit:$P(Rec,"`",6)<+$H ; tijd is verstreken . Set Tekst($I(Tekst))=$G(^RES("EC","PI","WEBSHOP","D",Label,Taal)) Quit:'Tekst "" If Tekst=1 Do ; slechts 1 lijn . Set Result=Tekst(1) Else Do ; meerdere lijnen . For I=1:1:Tekst Do . . Set Result=Result_"

"_Tekst(I)_"

" . . Set:I

" Quit Result ]]>
0 %Query OfferteID:%String 1 %Status 1 SingleLijstExecute 0 %Status 1 SingleLijstExecute %Status pxCriteria Nagaan of voor de klant en gebruiker reeds een recente WebShop gedefinieerd is w ##class(BL.EC.WebShop).%New().Exist(1051,4) KlantNr,ToegangID =:FromDatum) Quit $G(Count) ]]> Creatie van een nieuwe offerte en deze assignen aan de sessie WithSessionSave Openen van een actuele WebShop offerte OfferteID Referentie,CommReferentie,LeverDatum,Opmerking pxStatus AdresNr,Naam,Naam2,Straat,Gemeente,PostCode,Land pxStatus WebShopID WebShopID %String OfferteID Toevoegen of wijzigen van een productlijn GroepKey,PRNr,Qty pxStatus GroepKey,GAData:Prod.GAData.Abstract,Qty pxStatus GroepKey,Text pxStatus GroupKey pxStatus