Advertisement
Guest User

coupon import

a guest
Nov 24th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.68 KB | None | 0 0
  1. /// Proxy trieda pre Import BabyBox kupónov
  2. Class Organization.Proxy.BabyBox.CouponImport Extends (%RegisteredObject, %XML.Adaptor, FW.Base.Proxy) [ Inheritance = right ]
  3. {
  4.  
  5. /// name of persistent class that contains real data
  6. Parameter PERSISTENCYCONTAINER = "Organization.BabyBox.CouponImport";
  7.  
  8. /// ID centrálneho skladu kupónov
  9. Parameter COUPONCENTRALSTOCKID = 1;
  10.  
  11. ClassMethod GetPropsMethodsImport() As %String
  12. {
  13. #dim tSC As %Status = $$$OK
  14. #dim exceptionvar As %Exception.StatusException = ""
  15. #dim tRet As %ListOfDataTypes = ""
  16.  
  17. try
  18. {
  19. s tRet=##class(%ListOfDataTypes).%New()
  20. $$$THROWONERROR(tSC,tRet.Insert($lb("Ident",$$$FWAppText("Čiarový kód"))))
  21. $$$THROWONERROR(tSC,tRet.Insert($lb("ObjStockImport",$$$FWAppText("Miesto evidencie kupónu"))))
  22. }
  23. catch exceptionvar
  24. {
  25. s tRet=$$$FWDecomposeExcMsg(exceptionvar)
  26. }
  27. q tRet
  28. }
  29.  
  30. ClassMethod GetConstants() As %String
  31. {
  32. q "SetValidFromByImport()=frmItValidFrom~~~Platnosť od;SetValidToByImport()=frmItValidTo~~~Platnosť do"
  33. }
  34.  
  35. ClassMethod GetJSAction(ReImport = 0, idUCI = "") As %String
  36. {
  37. 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)
  38. }
  39.  
  40. /// Metóda, ktorá sa vykoná po naimportovaní BB kupónu
  41. ClassMethod SetCouponProperties(ParentID, IDsavedRow) As %Status
  42. {
  43. #dim sc As %Status = $$$OK
  44. #dim ex As %Exception.StatusException = ""
  45.  
  46. try
  47. {
  48. //Otvoríme vložený kupón a nastavíme mu odkaz na ImportProtocol
  49. s pxy=##class(Organization.Proxy.BabyBox.Coupon).%New()
  50. $$$THROWONERROR(sc,pxy.OpenInstance(IDsavedRow,3))
  51. $$$THROWONERROR(sc,pxy.%Instance.ObjImportProtocolSetObjectId(ParentID))
  52. $$$THROWONERROR(sc,pxy.SaveInstance())
  53. }
  54. catch ex
  55. {
  56. s sc=$$$FWDecomposeExc(ex)
  57. }
  58. q sc
  59. }
  60.  
  61. /// Metóda na vytvorenie zásielok z naimportovaných kupónov na základe cieľového skladu
  62. ClassMethod CreatePackages(fpID As %String = "") As %String
  63. {
  64. #dim sc As %Status = $$$OK
  65. #dim ex As %Exception.StatusException = ""
  66. #dim data,coupon,couponTemp,destStock,couponSt,packageIdent,nextIdent,newPackageId,inTrans,senderPersonId,recipientPersonId As %String=""
  67. #dim package As Organization.BabyBox.Package
  68. #dim cip As Organization.BabyBox.CouponInPackage
  69. #dim packageCnt As %Integer=0
  70. #dim year=$p($zd($h,3),"-",1)
  71. s inTrans=1,data("pkgIdent")=""
  72. try
  73. {
  74. //Prejdeme všetky naimportované kúpony na základe FileImport ID
  75. //Vytvoríme si list kupónov podľa cieľových skladov
  76. &sql(DECLARE BBCouponPackagesCUR1 CURSOR FOR
  77. SELECT %NOLOCK ID,ObjStockImport INTO :couponID,:couponStockImport
  78. FROM Organization_BabyBox.Coupon
  79. WHERE ObjImportProtocol->ObjImportProtocol=:fpID
  80. ORDER BY ObjStockImport ASC)
  81. &sql(OPEN BBCouponPackagesCUR1)
  82. i (SQLCODE=0)
  83. {
  84. &sql(FETCH BBCouponPackagesCUR1)
  85. while (SQLCODE=0)
  86. {
  87. i (couponStockImport'="")
  88. {
  89. s couponTemp(couponStockImport,couponID)=couponID
  90. }
  91. &sql(FETCH BBCouponPackagesCUR1)
  92. }
  93. &sql(CLOSE BBCouponPackagesCUR1)
  94. }
  95.  
  96. $$$FWTSTART(inTrans)
  97.  
  98. //Prechádzame jednotlivé kupóny na základe cieľového skladu
  99. s senderPersonId=##class(Organization.Proxy.Employee.Person).FindPersonByLogin($$$FWUserLogin)
  100. i senderPersonId=""
  101. {
  102. $$$FWThrowFormatText("Pre používateľa %1 nie je v systéme evidovaná žiadna osoba zamestnanca (Organization.Employee.Person)!",$$$FWUserLogin)
  103. }
  104. s couponSt=$o(couponTemp(""))
  105. while (couponSt'="")
  106. {
  107. //Vytvoríme novú zásielku na cieľový sklad
  108. s pxyPackage=##class(Organization.Proxy.BabyBox.Package).%New()
  109. $$$THROWONERROR(sc,pxyPackage.NewInstance())
  110. s package=pxyPackage.%Instance
  111.  
  112. //Nastavíme odosielateľa osobu zamestnanca na základe aktuálne prihláseného používateľa
  113. $$$THROWONERROR(sc,package.ObjSenderSetObjectId(senderPersonId))
  114.  
  115. //Nastavíme príjemcu zásielky na základe cieľového skladu
  116. s recipientPersonId=##class(Organization.Stock.BabyBoxStock).ObjResponsibleGetStored(couponSt)
  117. i recipientPersonId=""
  118. {
  119. $$$FWThrowFormatText("Pre sklad BabyBoxov %1 nie je v systéme evidovaná žiadna zodpovedná osoba!",couponSt)
  120. }
  121. $$$THROWONERROR(sc,package.ObjRecipientSetObjectId(recipientPersonId))
  122.  
  123. //Nastavíme sklad odosielateľa a príjemncu
  124. $$$THROWONERROR(sc,package.ObjSendFromSetObjectId(..#COUPONCENTRALSTOCKID))
  125. $$$THROWONERROR(sc,package.ObjSendToSetObjectId(couponSt))
  126.  
  127. //Nastavíme identifikátor zásielky
  128. s nextIdent=##class(Organization.Proxy.BabyBox.Package).GetNextIdent()
  129. $$$FWThrowIfError(sc)
  130. s:nextIdent'="" package.Ident=nextIdent
  131. $$$THROWONERROR(sc,pxyPackage.SaveInstance(,1))
  132.  
  133. s packageCnt=packageCnt+1
  134.  
  135. //Získame ID novovytvorenej zásielky
  136. s newPackageId=pxyPackage.%InstanceId
  137. $$$THROWONERROR(sc,pxyPackage.DisposeInstance())
  138. s data("pkgIdent")=data("pkgIdent")_$s($g(data("pkgIdent"))="":"",1:", ")_$$$FWEscapeJS(nextIdent)
  139.  
  140. s coupon=$o(couponTemp(couponSt,""))
  141. while (coupon'="")
  142. {
  143. //Pridáme do zásielky kupóny
  144. s pxyCIP=##class(Organization.Proxy.BabyBox.CouponInPackage).%New()
  145. $$$THROWONERROR(sc,pxyCIP.NewInstance())
  146. s cip=pxyCIP.%Instance
  147. $$$THROWONERROR(sc,cip.ObjCouponSetObjectId(coupon))
  148. $$$THROWONERROR(sc,cip.ObjPackageSetObjectId(newPackageId))
  149. $$$THROWONERROR(sc,pxyCIP.SaveInstance())
  150.  
  151. s coupon=$o(couponTemp(couponSt,coupon))
  152. }
  153.  
  154. //Odoslanie zásielky
  155. $$$THROWONERROR(sc,##class(Organization.Proxy.BabyBox.Package).CreateBabyBoxCouponService(newPackageId))
  156.  
  157. s couponSt=$o(couponTemp(couponSt))
  158. }
  159.  
  160. $$$FWTCOMMIT(inTrans)
  161.  
  162. s data("packageCnt")=packageCnt
  163. s data("result")=$$$OK
  164. h 1
  165. }
  166. catch ex
  167. {
  168. $$$FWTROLLBACK(inTrans)
  169. s sc=$$$FWDecomposeExc(ex)
  170. }
  171. q ##class(FW.WEB.Util).CreateJSONCallResponse(sc,.data)
  172. }
  173.  
  174. /// Metóda, ktorá vykreslí JS (nastaviť následne do dynamického komponentu).
  175. ClassMethod AddJS(ByRef sc As %Status, ajaxCall As %Boolean = 0, scriptType As %Integer = 0) As %String
  176. {
  177. #Define qJs(%js) $$$FWEscapeJS(%js)
  178. #Dim ex As %Exception.StatusException=""
  179. #Dim js As %String=""
  180. #Dim drawStaticScripts As %Boolean=($$$FWIsBFlag(scriptType,$$$FWFScriptStatic))
  181. #Dim drawDynamicScripts As %Boolean=($$$FWIsBFlag(scriptType,$$$FWFScriptDynamic))
  182. s sc=$$$OK
  183. try
  184. {
  185. i (drawStaticScripts)
  186. {
  187. &html<<script type="text/javascript">
  188.  
  189.  
  190. //Po importe záznamov vytvoríme zásielky s kupónami
  191. function afterImportMethod()
  192. {
  193. //Získame identifikátor fileprotocolu
  194. var fpID=$("#FIPID").mdxValue();
  195.  
  196. mdxHandleJSONCall(function(){
  197. return #($$$FWHyperCSP("Organization.Proxy.BabyBox.CouponImport.CreatePackages","fpID"))#;
  198. },function(data){
  199. if (data.result)
  200. {
  201. if (data.packageCnt==0)
  202. {
  203. $.jAlert('#($$$FWText("Kupóny boli úspešne naimportované","MDXAPP"))#',"success");
  204. }
  205. else
  206. {
  207. $.jAlertLong('#($$$FWText("Kupóny boli úspešne naimportované a boli vytvorené a odoslané nasledujúce zásielky","MDXAPP"))#',data.pkgIdent,"Zobraziť","Skryť","success");
  208. }
  209. }
  210. },function(error,defaultErrorHandler){
  211. defaultErrorHandler();
  212. },true,null,50,#($$$qJs($$$FWText("Vytváram zásielky BabyBox kupónov",$$$FWAppDomain)))#);
  213. }
  214.  
  215. </script>>
  216. }
  217. }
  218. catch(ex)
  219. {
  220. s sc=$$$FWDecomposeExc(ex),js=""
  221. }
  222. q js
  223. }
  224.  
  225. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement