Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Proxy trieda pre Import BabyBox kupónov
- Class Organization.Proxy.BabyBox.CouponImport Extends (%RegisteredObject, %XML.Adaptor, FW.Base.Proxy) [ Inheritance = right ]
- {
- /// name of persistent class that contains real data
- Parameter PERSISTENCYCONTAINER = "Organization.BabyBox.CouponImport";
- /// ID centrálneho skladu kupónov
- Parameter COUPONCENTRALSTOCKID = 1;
- ClassMethod GetPropsMethodsImport() As %String
- {
- #dim tSC As %Status = $$$OK
- #dim exceptionvar As %Exception.StatusException = ""
- #dim tRet As %ListOfDataTypes = ""
- try
- {
- s tRet=##class(%ListOfDataTypes).%New()
- $$$THROWONERROR(tSC,tRet.Insert($lb("Ident",$$$FWAppText("Čiarový kód"))))
- $$$THROWONERROR(tSC,tRet.Insert($lb("ObjStockImport",$$$FWAppText("Miesto evidencie kupónu"))))
- }
- catch exceptionvar
- {
- s tRet=$$$FWDecomposeExcMsg(exceptionvar)
- }
- q tRet
- }
- ClassMethod GetConstants() As %String
- {
- q "SetValidFromByImport()=frmItValidFrom~~~Platnosť od;SetValidToByImport()=frmItValidTo~~~Platnosť do"
- }
- ClassMethod GetJSAction(ReImport = 0, idUCI = "") As %String
- {
- q ##class(FW.Srv.App.Proxy.FileImportProtocol).OpenWizardJS("Organization.UI.CSP.Form.BabyBox.CouponImport", "Organization.BabyBox.CouponImport", "Organization.Proxy.BabyBox.Coupon", "Organization.Proxy.BabyBox.CouponImport.GetConstants", "Organization.Proxy.BabyBox.CouponImport.GetPropsMethodsImport", "Organization.Proxy.BabyBox.CouponImport.SetCouponProperties", $$$FWAppText("Import BabyBox kupónov"), ReImport, idUCI)
- }
- /// Metóda, ktorá sa vykoná po naimportovaní BB kupónu
- ClassMethod SetCouponProperties(ParentID, IDsavedRow) As %Status
- {
- #dim sc As %Status = $$$OK
- #dim ex As %Exception.StatusException = ""
- try
- {
- //Otvoríme vložený kupón a nastavíme mu odkaz na ImportProtocol
- s pxy=##class(Organization.Proxy.BabyBox.Coupon).%New()
- $$$THROWONERROR(sc,pxy.OpenInstance(IDsavedRow,3))
- $$$THROWONERROR(sc,pxy.%Instance.ObjImportProtocolSetObjectId(ParentID))
- $$$THROWONERROR(sc,pxy.SaveInstance())
- }
- catch ex
- {
- s sc=$$$FWDecomposeExc(ex)
- }
- q sc
- }
- /// Metóda na vytvorenie zásielok z naimportovaných kupónov na základe cieľového skladu
- ClassMethod CreatePackages(fpID As %String = "") As %String
- {
- #dim sc As %Status = $$$OK
- #dim ex As %Exception.StatusException = ""
- #dim data,coupon,couponTemp,destStock,couponSt,packageIdent,nextIdent,newPackageId,inTrans,senderPersonId,recipientPersonId As %String=""
- #dim package As Organization.BabyBox.Package
- #dim cip As Organization.BabyBox.CouponInPackage
- #dim packageCnt As %Integer=0
- #dim year=$p($zd($h,3),"-",1)
- s inTrans=1,data("pkgIdent")=""
- try
- {
- //Prejdeme všetky naimportované kúpony na základe FileImport ID
- //Vytvoríme si list kupónov podľa cieľových skladov
- &sql(DECLARE BBCouponPackagesCUR1 CURSOR FOR
- SELECT %NOLOCK ID,ObjStockImport INTO :couponID,:couponStockImport
- FROM Organization_BabyBox.Coupon
- WHERE ObjImportProtocol->ObjImportProtocol=:fpID
- ORDER BY ObjStockImport ASC)
- &sql(OPEN BBCouponPackagesCUR1)
- i (SQLCODE=0)
- {
- &sql(FETCH BBCouponPackagesCUR1)
- while (SQLCODE=0)
- {
- i (couponStockImport'="")
- {
- s couponTemp(couponStockImport,couponID)=couponID
- }
- &sql(FETCH BBCouponPackagesCUR1)
- }
- &sql(CLOSE BBCouponPackagesCUR1)
- }
- $$$FWTSTART(inTrans)
- //Prechádzame jednotlivé kupóny na základe cieľového skladu
- s senderPersonId=##class(Organization.Proxy.Employee.Person).FindPersonByLogin($$$FWUserLogin)
- i senderPersonId=""
- {
- $$$FWThrowFormatText("Pre používateľa %1 nie je v systéme evidovaná žiadna osoba zamestnanca (Organization.Employee.Person)!",$$$FWUserLogin)
- }
- s couponSt=$o(couponTemp(""))
- while (couponSt'="")
- {
- //Vytvoríme novú zásielku na cieľový sklad
- s pxyPackage=##class(Organization.Proxy.BabyBox.Package).%New()
- $$$THROWONERROR(sc,pxyPackage.NewInstance())
- s package=pxyPackage.%Instance
- //Nastavíme odosielateľa osobu zamestnanca na základe aktuálne prihláseného používateľa
- $$$THROWONERROR(sc,package.ObjSenderSetObjectId(senderPersonId))
- //Nastavíme príjemcu zásielky na základe cieľového skladu
- s recipientPersonId=##class(Organization.Stock.BabyBoxStock).ObjResponsibleGetStored(couponSt)
- i recipientPersonId=""
- {
- $$$FWThrowFormatText("Pre sklad BabyBoxov %1 nie je v systéme evidovaná žiadna zodpovedná osoba!",couponSt)
- }
- $$$THROWONERROR(sc,package.ObjRecipientSetObjectId(recipientPersonId))
- //Nastavíme sklad odosielateľa a príjemncu
- $$$THROWONERROR(sc,package.ObjSendFromSetObjectId(..#COUPONCENTRALSTOCKID))
- $$$THROWONERROR(sc,package.ObjSendToSetObjectId(couponSt))
- //Nastavíme identifikátor zásielky
- s nextIdent=##class(Organization.Proxy.BabyBox.Package).GetNextIdent()
- $$$FWThrowIfError(sc)
- s:nextIdent'="" package.Ident=nextIdent
- $$$THROWONERROR(sc,pxyPackage.SaveInstance(,1))
- s packageCnt=packageCnt+1
- //Získame ID novovytvorenej zásielky
- s newPackageId=pxyPackage.%InstanceId
- $$$THROWONERROR(sc,pxyPackage.DisposeInstance())
- s data("pkgIdent")=data("pkgIdent")_$s($g(data("pkgIdent"))="":"",1:", ")_$$$FWEscapeJS(nextIdent)
- s coupon=$o(couponTemp(couponSt,""))
- while (coupon'="")
- {
- //Pridáme do zásielky kupóny
- s pxyCIP=##class(Organization.Proxy.BabyBox.CouponInPackage).%New()
- $$$THROWONERROR(sc,pxyCIP.NewInstance())
- s cip=pxyCIP.%Instance
- $$$THROWONERROR(sc,cip.ObjCouponSetObjectId(coupon))
- $$$THROWONERROR(sc,cip.ObjPackageSetObjectId(newPackageId))
- $$$THROWONERROR(sc,pxyCIP.SaveInstance())
- s coupon=$o(couponTemp(couponSt,coupon))
- }
- //Odoslanie zásielky
- $$$THROWONERROR(sc,##class(Organization.Proxy.BabyBox.Package).CreateBabyBoxCouponService(newPackageId))
- s couponSt=$o(couponTemp(couponSt))
- }
- $$$FWTCOMMIT(inTrans)
- s data("packageCnt")=packageCnt
- s data("result")=$$$OK
- h 1
- }
- catch ex
- {
- $$$FWTROLLBACK(inTrans)
- s sc=$$$FWDecomposeExc(ex)
- }
- q ##class(FW.WEB.Util).CreateJSONCallResponse(sc,.data)
- }
- /// Metóda, ktorá vykreslí JS (nastaviť následne do dynamického komponentu).
- ClassMethod AddJS(ByRef sc As %Status, ajaxCall As %Boolean = 0, scriptType As %Integer = 0) As %String
- {
- #Define qJs(%js) $$$FWEscapeJS(%js)
- #Dim ex As %Exception.StatusException=""
- #Dim js As %String=""
- #Dim drawStaticScripts As %Boolean=($$$FWIsBFlag(scriptType,$$$FWFScriptStatic))
- #Dim drawDynamicScripts As %Boolean=($$$FWIsBFlag(scriptType,$$$FWFScriptDynamic))
- s sc=$$$OK
- try
- {
- i (drawStaticScripts)
- {
- &html<<script type="text/javascript">
- //Po importe záznamov vytvoríme zásielky s kupónami
- function afterImportMethod()
- {
- //Získame identifikátor fileprotocolu
- var fpID=$("#FIPID").mdxValue();
- mdxHandleJSONCall(function(){
- return #($$$FWHyperCSP("Organization.Proxy.BabyBox.CouponImport.CreatePackages","fpID"))#;
- },function(data){
- if (data.result)
- {
- if (data.packageCnt==0)
- {
- $.jAlert('#($$$FWText("Kupóny boli úspešne naimportované","MDXAPP"))#',"success");
- }
- else
- {
- $.jAlertLong('#($$$FWText("Kupóny boli úspešne naimportované a boli vytvorené a odoslané nasledujúce zásielky","MDXAPP"))#',data.pkgIdent,"Zobraziť","Skryť","success");
- }
- }
- },function(error,defaultErrorHandler){
- defaultErrorHandler();
- },true,null,50,#($$$qJs($$$FWText("Vytváram zásielky BabyBox kupónov",$$$FWAppDomain)))#);
- }
- </script>>
- }
- }
- catch(ex)
- {
- s sc=$$$FWDecomposeExc(ex),js=""
- }
- q js
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement