Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Proxy trieda pre BabyBox kupón
- Class Organization.Proxy.BabyBox.Coupon Extends (%RegisteredObject, %XML.Adaptor, FW.Base.Proxy) [ Inheritance = right ]
- {
- /// name of persistent class that contains real data
- Parameter PERSISTENCYCONTAINER = "Organization.BabyBox.Coupon";
- /// Metóda overí, či je kupón v nejakej "otvorenej" zásielke, alebo neboli prevzaté
- /// Ak áno tak vráti ID zásielky
- ClassMethod CheckInPackage(couponId As %String = "") As %String
- {
- #dim retVal As %String=""
- q:couponId="" retVal
- &sql(SELECT ObjPackage INTO :retVal
- FROM Organization_BabyBox.CouponInPackage
- WHERE ObjCoupon=:couponId AND (ObjPackage->ObjStatus->IsFinal=0 OR ObjStatus->IsFinal=0))
- i SQLCODE<0
- {
- $$$FWThrowSQLCODE(SQLCODE)
- }
- elseif SQLCODE=100
- {
- s retVal=""
- }
- q retVal
- }
- /// Metóda overí čo má/mal POI (Relationship) nejaký kupón v stave Vydaný (I) alebo Uplatnený (U)
- /// Ak áno tak vráti Identifikátor kupónu
- ClassMethod CheckByRelationship(relId As %String = "") As %String
- {
- #dim retVal As %String=""
- &sql(SELECT Ident INTO :retVal
- FROM Organization_BabyBox.Coupon
- WHERE ObjRelationship=:relId AND ObjStatus IN ('I','U'))
- i SQLCODE<0
- {
- $$$FWThrowSQLCODE(SQLCODE)
- }
- elseif SQLCODE=100
- {
- s retVal=""
- }
- q retVal
- }
- /// Metóda overí či neexistuje platný kupón s identifikátorom v nie finálnom stave
- /// Ak takýto kupón existuje tak vráti jeho ID
- ClassMethod CheckByIdent(ident As %String = "") As %String
- {
- #dim retVal As %String=""
- &sql(SELECT %NOLOCK ID INTO :retVal
- FROM Organization_BabyBox.Coupon
- WHERE Ident=:ident AND (SYSDATE BETWEEN ValidFrom AND ISNULL(ValidTo,SYSDATE)) AND ObjStatus->IsFinal=0)
- i SQLCODE<0
- {
- $$$FWThrowSQLCODE(SQLCODE)
- }
- elseif SQLCODE=100
- {
- s retVal=""
- }
- q retVal
- }
- ClassMethod GetSVCButton(relId As %String = "", ByRef objButton As FW.WEB.Components.Button.Settings) As %String
- {
- #dim retVal,pastCoupon As %String=""
- #dim sc As %Status=$$$OK
- #dim ex As %Exception.StatusException
- q:relId="" retVal
- try
- {
- //Overíme predchádzajúce kupóny
- s pastCoupon=..CheckByRelationship(relId)
- s objitem=##class(FW.WEB.Components.Button.Item).%New()
- s objitem.IsVisible=1
- s objitem.Title=$$$FWAppText("Vydať BBox kupón")
- i pastCoupon=""
- {
- s objitem.OnClickUrl="FW.WEB.UI.CSP.Wizard.cls?mdx_wizard=AssignBBCoupon&relId="_$$$FWEscapeURL(relId)
- s objitem.OnClickUrlTarget="_dialog"
- }
- else
- {
- s objitem.OnClickJS="$.jAlert("_$$$FWEscapeJS($$$FWAppText("Pre POI už bol pridelený kupón BBox: ")_pastCoupon)_",'info');"
- }
- s objitem.ResourceName="AssignBBCoupon"
- s objitem.ResourceRights="R"
- s objitem.ObjButton=objButton
- }
- catch(ex)
- {
- s sc=ex.AsStatus()
- }
- q sc
- }
- /// OnFormSave metóda pre wizard AssignBBCoupon v SVC POI
- /// Priradí kupón k POI
- ClassMethod OnFormSaveAssignMethodClass(ByRef formProxy As FW.WEB.Proxy.Form.Settings, ByRef objProxy As FW.Base.Proxy, ByRef itemData, ByRef saveData, ByRef childData, ByRef customData, ByRef additionalSaveData, ByRef contextData) As %Status
- {
- #Dim ex As %Exception.StatusException=""
- #Dim sc As %Status=$$$OK
- #Dim couponId,relId,couponIdent,couponRelationship,couponStatus,couponPackage,pastCoupon As %String=""
- #Dim coupon As Organization.BabyBox.Coupon
- try
- {
- s couponIdent=$g(itemData("frmItObjCoupon"))
- s relId=$g(itemData("frmItObjRelationship"))
- //Overíme, či taký kupón existuje a vyhovuje pravidlám
- &sql(SELECT ID,ObjStatus,ObjRelationship->Name,ObjPackage->Ident INTO :couponId,:couponStatus,:couponRelationship,:couponPackage
- FROM Organization_BabyBox.Coupon
- WHERE Ident=:couponIdent AND SYSDATE BETWEEN ValidFrom AND isnull(ValidTo,SYSDATE))
- i SQLCODE'=0
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón s čiarovým kódom: '%1' v systéme neexistuje alebo je neplatný!",$$$FWDomain),couponIdent))
- }
- //Overíme, či pre POI už nie je pridelený nejaký kupón
- s pastCoupon=..CheckByRelationship(relId)
- i pastCoupon'=""
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Pre POI už bol pridelený kupón BBox: '%1'!",$$$FWDomain),pastCoupon))
- }
- //Overíme, či kupón už nie je v zásielke
- i couponPackage'=""
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón s čiarovým kódom: '%1' je v zásielke '%2'!",$$$FWDomain),couponIdent,couponPackage))
- }
- //Overíme, či kupón už nie je priradený k inému POI
- i couponRelationship'=""
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón s čiarovým kódom: '%1' je už priradený POI '%2'!",$$$FWDomain),couponIdent,couponRelationship))
- }
- //Overíme, či je kupón v stave Pripravený na použitie "P"
- i couponStatus'="P"
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón s čiarovým kódom: '%1' nie je v stave pripravený na použitie!",$$$FWDomain),couponIdent))
- }
- //Do kupónu zapíšeme POI, nastavíme čas vydania, kto vydal a zmeníme stav na Vydaný (I)
- s pxy=..%New()
- $$$THROWONERROR(sc,pxy.OpenInstance(couponId))
- s coupon=pxy.%Instance
- s couponIdent=coupon.Ident
- s coupon.Assigned=$$$FWNowDate
- $$$THROWONERROR(sc,coupon.ObjRelationshipSetObjectId(relId))
- $$$THROWONERROR(sc,coupon.ObjStatusSetObjectId("I"))
- $$$THROWONERROR(sc,coupon.AssignedBySetObjectId($$$FWUserId))
- $$$THROWONERROR(sc,pxy.SaveInstance())
- //Vytvoríme požiadavku (Ticket) Poistenec/Žiadosť/Výhody/Kupón BBox-vydanie a hneď aj uzavrieme
- $$$THROWONERROR(sc,##class(CRM.Ticket.Proxy.Data.Ticket).CreateAndCloseTicket("Kupón BBox-vydanie",couponIdent,"poi","request","10068",,"branch",$$$FWUserLogin,relId,,,,,$$$FWAppText("Požiadavka poistenca"),,,"395"))
- //Nastavime priznak, ze sa nema automaticky zavolat save instance.
- s formProxy.OnFormSaveCallSaveInstance=0
- }
- catch (ex)
- {
- s sc=$$$FWDecomposeExc(ex)
- }
- q sc
- }
- /// Metóda, ktorá sa volá pred uložením inštancie
- Method PreSaveInstance() As %Status
- {
- #Dim checkIdent As %String=""
- #Dim ex As %Exception.StatusException=""
- #Dim sc As %Status=$$$OK
- try
- {
- i ..%IsNewInstance
- {
- s checkIdent=##class(Organization.Proxy.BabyBox.Coupon).CheckByIdent(..%Instance.Ident)
- i (checkIdent'="")
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón s čiarovým kódom: '%1' už v systéme existuje! (ID: '%2')",$$$FWDomain),..%Instance.Ident,checkIdent))
- }
- //Pretože iba importujeme tak rovno meníme stav kupónu na Pripravený na použitie "P"
- $$$THROWONERROR(sc,..%Instance.ObjStatusSetObjectId("P"))
- //Kupóny sa vytvárajú len na centrálnom sklade
- $$$THROWONERROR(sc,..%Instance.ObjStockSetObjectId(##class(Organization.Proxy.BabyBox.CouponImport).#COUPONCENTRALSTOCKID))
- }
- }
- catch (ex)
- {
- s sc=$$$FWDecomposeExc(ex)
- }
- q sc
- }
- /// WO154648 30.05.2017 KLUD
- /// ClassMetóda, ktorá nastaví POI na BBox kupóne
- /// Required: ČK BabyBox kupónu, RČ POI
- /// Optional: Dátum priradenia kupónu - ak nie je zadaný berie sa aktuálny (1.1.2017)
- /// Príznak či vytvoriť aj požiadavku - štandardne sa nevytvára
- /// Login používateľa, ktorý vykonáva zmenu - štandardne sa berie aktuálne prihlásený
- ClassMethod AssignPOI(couponBarCode As %String = "", identifierPOI As %String = "", assigned As %Date = "", createTicket As %Boolean = 0, userLogin As %String = "") As %Status
- {
- #Dim idRel As %String=""
- #Dim pxyCoupon As Organization.Proxy.BabyBox.Coupon
- #Dim coupon As Organization.BabyBox.Coupon
- #Dim ex As %Exception.StatusException=""
- #Dim sc As %Status=$$$OK
- #Dim inTran=0
- $$$FWTSTART(inTran)
- try
- {
- i couponBarCode=""
- {
- $$$FWThrowMessage($$$FWAppText("Nebol zadaný ČK kupónu!"))
- }
- i identifierPOI=""
- {
- $$$FWThrowMessage($$$FWAppText("Nebolo zadané RČ poistenca!"))
- }
- s:userLogin="" userLogin=$$$FWUserLogin
- i assigned=""
- {
- s assigned=$$$FWNowDate
- }
- else
- {
- s assigned=##class(Datatypes.Date).DisplayToLogical(assigned)
- }
- //Získame ID Relationshipu POI (napríklad z RČ):
- &sql(SELECT %NOLOCK r.ID INTO :idRel
- FROM CRM_Entity_Data.Relationship r
- JOIN CRM_Entity_Data.Individual e ON (e.ID=r.ObjEntity)
- WHERE e.RC=:identifierPOI)
- i SQLCODE'=0
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("POI s rodným číslom: '%1' v systéme neexistuje!",$$$FWDomain),identifierPOI))
- }
- //Získame ID kupónu podľa jeho ČK
- &sql(SELECT %NOLOCK ID,ObjStatus,ObjPackage INTO :idCoupon,:couponStatus,:couponPackage
- FROM Organization_BabyBox.Coupon
- WHERE Ident=:couponBarCode)
- i SQLCODE'=0
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón BBox s čiarovým kódom: '%1' v systéme neexistuje!",$$$FWDomain),couponBarCode))
- }
- i couponPackage'=""
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Kupón BBox s čiarovým kódom: '%1' sa nachádza v zásielke!",$$$FWDomain),couponBarCode))
- }
- //Získame ID security usera podľa loginu
- &sql(SELECT %NOLOCK ID INTO :idUser
- FROM Security_Data."User"
- WHERE LoginName=:userLogin)
- i SQLCODE'=0
- {
- $$$FWThrowMessage($$$FormatText($$$FWText("Používateľ s loginom: '%1' v systéme neexistuje!",$$$FWDomain),userLogin))
- }
- //Nastaviť zmenu na kupóne
- s pxyCoupon=##class(Organization.Proxy.BabyBox.Coupon).%New()
- $$$THROWONERROR(sc,pxyCoupon.OpenInstance(idCoupon))
- s coupon=pxyCoupon.%Instance
- s coupon.Assigned=assigned
- $$$THROWONERROR(sc,coupon.ObjRelationshipSetObjectId(idRel))
- $$$THROWONERROR(sc,coupon.ObjStatusSetObjectId("I"))
- $$$THROWONERROR(sc,coupon.AssignedBySetObjectId(userLogin))
- $$$THROWONERROR(sc,pxyCoupon.SaveInstance())
- //Ak je záujem vytvárame aj ticket
- i createTicket
- {
- $$$THROWONERROR(sc,##class(CRM.Ticket.Proxy.Data.Ticket).CreateAndCloseTicket("Kupón BBox-vydanie",couponBarCode,"poi","request","10068",,"branch",userLogin,idRel,,,,,"Požiadavka poistenca",,,"395"))
- }
- $$$FWTCOMMIT(inTran)
- }
- catch (ex)
- {
- s sc=$$$FWDecomposeExc(ex)
- }
- $$$FWTROLLBACK(inTran)
- q sc
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement