Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

orderdetails.component.js 104KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Bizgaze;
  11. (function (Bizgaze) {
  12. let Apps;
  13. (function (Apps) {
  14. let Transact;
  15. (function (Transact) {
  16. let Controls;
  17. (function (Controls) {
  18. let Subscriptions;
  19. (function (Subscriptions) {
  20. class OrderDetails extends Unibase.Platform.Core.BaseComponent {
  21. constructor() {
  22. super(...arguments);
  23. this.CartItems = [];
  24. this.AddonItems = [];
  25. this.PaymentStatus = true;
  26. }
  27. cssFiles() {
  28. return ['apps/transact/controls/subscriptions/style.subscription.css'];
  29. }
  30. jsFiles() {
  31. return ['apps/transact/components/subscriptions/userregistration.component.js'];
  32. }
  33. html() {
  34. }
  35. init(formpropertyid, prop, callback) {
  36. $("#btnRegistrationSave").click(function () {
  37. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().createOrder();
  38. });
  39. $("#btnCheckOut").click(function () {
  40. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  41. });
  42. }
  43. loadControl(containerid, prop) {
  44. this.fileCacheHelper.loadCssFile("apps/transact/controls/subscriptions/style.subscription.css", null);
  45. var html = `<div class="orderitemsdiv"></div>`;
  46. $(".btn_Save_Form").addClass("btn_SaveRegistration_Form");
  47. var Register = `<span><button type="button" id="btnCheckOut" class="hidden btn btn-sm btn-primary">Check Out</button></span><span><button type="button" id="btnRegistrationSave" class=" btn btn-sm btn-primary">Save</button></span>`;
  48. $(".btn_SaveRegistration_Form").removeClass("btn_Save_Form");
  49. $(".btn_SaveRegistration_Form").html(Register);
  50. $(`[data-formuniquekey="bizgaze_extension_transact_subscription_createsubscriptionorderitems"]`).css("height", '100vh').find(".simple-scroll-bar.modal-body").css("height", '100vh');
  51. $("#" + containerid).html(html);
  52. }
  53. getorderitems(id, itemid, tenureid, tenurePeriod) {
  54. OrderDetails.instance.CartItems = [];
  55. OrderDetails.instance.TenureId = tenureid;
  56. OrderDetails.instance.TenurePeriod = tenurePeriod;
  57. this.fileCacheHelper.loadJsFiles(['apps/transact/managers/subscriptions/subscriptionmanager.js', 'platform/core/helpers/navigation/interfaces/inavigationhelper.js'], function () {
  58. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getItem(itemid, tenureid).then(function (response) {
  59. var res = response.result;
  60. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getTenurePeriodAndPrice(Number(itemid), Number(tenureid), tenurePeriod).then(function (tenureresponse) {
  61. var tenureres = tenureresponse.result;
  62. var html = ``;
  63. html += `<div class="add-on-products-sec">
  64. <div class="row add-on-content-wrap biz-custom-scrollbar mx-0 p-md-4">
  65. <div class="Uaddonitems col-xl-8 col-md-6 px-0 pr-md-10 pr-lg-20 mb-30 mb-md-0 pr-xl-30">
  66. <div class="addons-wrap">
  67. <div class="addon-heading-search-wrap mb-25" id="addonHeadingSearchWrap"><h2 class="addons-heading heading-underline">Add-ons</h2><div class="addon-search-wrap"><input type="text" id="addonSearchInput" class="form-control addon-search-input" oninput="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().searchAddons();" placeholder="Search Addons"><i class="fa fa-search search-icon"></i></div></div>
  68. <div class="addon-products-wrap biz-custom-scrollbar addonslist row justify-content-start r-gap-30"><div class="alert alert-danger err-msg text-center w-100 d-none" role="alert">No Addons Found!</div></div>
  69. </div>
  70. </div>
  71. <div class="col-xl-4 col-md-6 px-0 pl-md-10 pl-lg-20 pl-xl-30 OrderAddonItems">
  72. <div class="ml-auto w-50"><img src="../../../../imgs/biz-logo.svg" class="img-fluid" alt="Bizgaze-Logo"></div>
  73. <div class="cart-wrap biz-custom-scrollbar Uaddonitems SubsItems rounded-20 p-3 mt-15">
  74. <div class="align-items-center border-bottom cart-header d-flex justify-content-between py-10">
  75. <h5 class="cart-heading heading-underline">Cart Summary(<span class="cartcount"></span>)</h5><div><a href="javascript:;" id="btn_Proceed1" class="btn btn-block btn-warning submit-btn">Proceed</a></div><div class="cart-proceed-wrap">
  76. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().createOrder()" class="btn btn-success cart-proceed-btn ProceedtoPay">Proceed to
  77. Pay</a>
  78. </div>
  79. </div>
  80. <div class="cart-footer">
  81. <div class="cart-price-details-wrap" id="cartSummaryFooter"></div>
  82. </div>
  83. <div class="cart-body biz-custom-scrollbar ListCartItems">`;
  84. html += `<div class="cart-item discount li_OrderAddonItems li_OrderAddonItems_` + res.ItemId + ` Plan_OrderItem_` + res.ItemId + ` ">
  85. <div class="item-title-price-wrap">
  86. <span class="item-title text-truncate">` + res.ItemName + `</span><select id="select_period"><option>select</option></select>
  87. <div class="price-trash-wrap"><span class="item-price inr-sign planitem-price">` + res.SalesPrice + `</span>
  88. </div>
  89. </div>
  90. <div class="item-desc-quantity-wrap">`;
  91. if (res.Description != null && res.Description != "") {
  92. html += `<p class="item-desc text-truncate">${res.Description}</p>`;
  93. }
  94. else {
  95. html += `<p class="item-desc text-truncate"></p>`;
  96. }
  97. html += ` <span class="item-quantity setupfee">( ` + res.SalesPrice + ` - 0% ) = ₹` + res.SalesPrice + `</span>
  98. </div>
  99. <div class="item-plan-offer-wrap pt-10">
  100. `;
  101. if (res.IsOfferAvailable == true) {
  102. html += ` <a href="javascrpit:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().ShowOfferItems(` + 0 + `,` + res.ItemId + " ,`" + res.ItemName + "`," + 1 + `,` + `this)" class="item-offer-status btn btn-sm"><i class="fa fa-tag mr-1"></i><span>Offer applied</span></a>`;
  103. }
  104. html += `</div><input type="hidden" id="hf_Sku" value=` + res.SKU + ` /><input type="hidden" id="hf_ItemId" value=` + res.ItemId + ` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + res.SalesPrice + ` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + res.SalesPrice + ` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" />
  105. </div>`;
  106. html += `<div class="focitem offeritems"></div><div class="AddonItemsList"></div>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>`;
  112. $(".orderitemsdiv").html(html);
  113. $('#btn_Proceed1').hide();
  114. $('#select_period').on('change', function () {
  115. var periodTime = $('#select_period').val();
  116. var PlanId = itemid;
  117. var TenureId = tenureid;
  118. if (periodTime != undefined || PlanId != undefined || TenureId != undefined) {
  119. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().period_change(PlanId, TenureId, periodTime);
  120. }
  121. });
  122. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().bindTenure(itemid, tenureid);
  123. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().cartItemsList(res);
  124. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().setCartAddonHeight();
  125. var sf = $(".price").val().toString();
  126. $(".TotalPrice").text(sf);
  127. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  128. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().getAddons(res.ItemId, id, tenureid);
  129. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().LoadingOrderAddons();
  130. });
  131. });
  132. });
  133. OrderDetails.instance.organizationId = Number(id);
  134. var instance = this;
  135. var jsFiles = ["apps/crm/companies/managers/companymanager.js", "apps/crm/contacts/managers/contactmanager.js"];
  136. instance.fileCacheHelper.loadJsFiles(jsFiles, function () {
  137. if (id != 0) {
  138. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getOrganizationById(id).then(function (response) {
  139. var data = response.result;
  140. var contactid = data.DefaultOrgContactId;
  141. Bizgaze.Apps.CRM.Companies.Managers.CompanyManager.Instance().getUserBranches(contactid).then(function (orgresponse) {
  142. var branchId = orgresponse.result[0].BranchId;
  143. OrderDetails.instance.BranchId = branchId;
  144. });
  145. });
  146. }
  147. });
  148. }
  149. getAddons(itemid, id, tenureid) {
  150. let instance = this;
  151. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  152. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getAddonsItems(itemid, tenureid).then(function (response) {
  153. var res = response.result;
  154. var cartItemsList = [];
  155. $(".OrderAddonItems").find(".li_OrderAddonItems").each(function () {
  156. var addonItemId = Number($(this).find('#hf_ItemId').val());
  157. cartItemsList.push({
  158. ItemIds: addonItemId
  159. });
  160. });
  161. for (var i = 0; i < res.length; i++) {
  162. var imageurl = res[i].AddonImage;
  163. var image1;
  164. if (imageurl != null && imageurl != undefined && imageurl != "") {
  165. image1 = imageurl.split("~");
  166. instance.AddonImage = image1[0];
  167. }
  168. if (res[i].SalesPrice != 0) {
  169. var html = `<div class="col-md-3"><div class="product-card CartItems adoonsItems AddonValue-row" id="li_AddOnsItems_Details" data-search-term="${res[i].ItemName.toLowerCase()}"">
  170. <div class="product-card-body">
  171. <div class="product-img-wrap">
  172. <img src="${instance.AddonImage}" alt="" class="product-img">
  173. </div>
  174. <div class="product-title-desc-wrap addItemname">
  175. <p class="product-title" title="${res[i].ItemName}">${res[i].ItemName}</p>
  176. <p class="product-desc" title="Automation Evolved Evolved Evolved Evolved">
  177. ${res[i].Description || "&nbsp;"}
  178. </p>
  179. </div>
  180. </div>
  181. <div class="product-card-footer">
  182. <span class="product-price inr-sign">${res[i].SalesPrice}</span>
  183. <input type="hidden" class="addPrice" id="hf_addPrice" value=${res[i].SalesPrice} />
  184. <input type="hidden" class="Description" id = "hf_Description" value = ${res[i].Description} />`;
  185. var cartId = cartItemsList.filter(el => el.ItemIds === res[i].ItemId);
  186. if (cartId.length == 0) {
  187. html += `<a href="javascript:;" class="btn btnremove_${res[i].ItemId} cart-btn add-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().btnChange(\'btnremove_${res[i].ItemId}\',\'${tenureid}\');">Add</a>`;
  188. }
  189. else {
  190. html += `<a href="javascript:;" class="btn btnremove_${res[i].ItemId} cart-btn remove-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().btnChange(\'btnremove_${res[i].ItemId}\',\'${tenureid}\');">Remove</a>`;
  191. }
  192. html += `</div>
  193. <div class="offer-percentage">0%</div>
  194. <input type="hidden" id="hf_addonQuantity" value=${res[i].SubscriptionAddonsQuantity} /> <input type="hidden" id="hf_addonSku" value=${res[i].Sku} /> <input type="hidden" id="hf_addonItemId" value=${res[i].ItemId} />
  195. </div></div>`;
  196. $(".addonslist:first").append(html);
  197. instance.AddonImage = "";
  198. }
  199. }
  200. });
  201. });
  202. }
  203. btnChange(itemid, tenureid) {
  204. var BtnText = $("." + itemid + "").text();
  205. if (BtnText == "Add") {
  206. $("." + itemid + "").removeClass("add-cart-btn");
  207. $("." + itemid + "").addClass("remove-cart-btn");
  208. $("." + itemid + "").text("Remove");
  209. if ($('.SubsItems').find('.ListCartItems').height() < 260) {
  210. $('.SubsItems').find('.ListCartItems').css("min-height", "+=80px");
  211. }
  212. var itid = itemid.replace('btnremove_', '');
  213. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getItem(itid, tenureid).then(function (response) {
  214. var res = response.result;
  215. var html = `<div class="cart-item discount li_OrderAddonItems li_OrderAddonItems_` + res.ItemId + ` Plan_OrderItem_` + res.ItemId + ` ">
  216. <div class="item-title-price-wrap">
  217. <span class="item-title text-truncate">` + res.ItemName + `</span>
  218. <div class="price-trash-wrap"><span class="item-price inr-sign">` + res.SalesPrice + `</span>
  219. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().deleteItem(\'Plan_OrderItem_` + res.ItemId + `\')"
  220. class="btn btn-icon btn-icon-circle btn-info btn-icon-style-3 item-remove-btn"><span class="btn-icon-wrap"><i class="fa fa-trash"></i></span></a>
  221. </div>
  222. </div>
  223. <div class="item-desc-quantity-wrap">`;
  224. if (res.Description != null && res.Description != "") {
  225. html += `<p class="item-desc text-truncate">${res.Description}</p>`;
  226. }
  227. else {
  228. html += `<p class="item-desc text-truncate"></p>`;
  229. }
  230. html += ` <span class="item-quantity setupfee">( ` + res.SalesPrice + ` - 0% ) = ₹` + res.SalesPrice + `</span>
  231. </div>
  232. <div class="item-plan-offer-wrap pt-10">
  233. `;
  234. if (res.IsOfferAvailable == true) {
  235. html += ` <a href="javascrpit:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().ShowOfferItems(` + 0 + `,` + res.ItemId + " ,`" + res.ItemName + "`," + 1 + `,` + `this)" class="item-offer-status btn btn-sm"><i class="fa fa-percent mr-1"></i><span>Offer applied</span></a>`;
  236. }
  237. html += `</div><input type="hidden" id="hf_Sku" value=` + res.SKU + ` /><input type="hidden" id="hf_ItemId" value=` + res.ItemId + ` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + res.SalesPrice + ` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + res.SalesPrice + ` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" />
  238. </div>`;
  239. $(".ListCartItems:first").append(html);
  240. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().updateCartItems(res, 0);
  241. });
  242. }
  243. if (BtnText == "Remove") {
  244. $("." + itemid + "").addClass("add-cart-btn");
  245. $("." + itemid + "").removeClass("remove-cart-btn");
  246. $("." + itemid + "").text("Add");
  247. var addItemId = itemid.replace('btnremove_', '');
  248. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().deleteItem('Plan_OrderItem_' + addItemId);
  249. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().updateCartItems(0, addItemId);
  250. }
  251. }
  252. cartItemsList(res) {
  253. var addonQuantity = 1;
  254. var addonSku = res.SKU;
  255. var addonItemId = res.ItemId;
  256. var unitPrice = res.SalesPrice + res.SetupFee;
  257. var discountPercent = res.Discount;
  258. var discountValue = 0;
  259. var itemName = res.ItemName;
  260. var subscriptionItemType = res.SubscriptionItemType;
  261. OrderDetails.instance.CartItems.push({
  262. addonQuantity: addonQuantity,
  263. addonSku: addonSku,
  264. addonItemId: addonItemId,
  265. unitPrice: unitPrice,
  266. discountPercent: discountPercent,
  267. discountValue: discountValue,
  268. itemName: itemName,
  269. subscriptionItemType: subscriptionItemType
  270. });
  271. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  272. }
  273. updateCartItems(res, itemid) {
  274. if (res != 0) {
  275. let instance = this;
  276. var addonQuantity = 1;
  277. var addonSku = res.SKU;
  278. var addonItemId = res.ItemId;
  279. var unitPrice = res.SalesPrice;
  280. var discountPercent = 0;
  281. var discountValue = 0;
  282. var ItemName = res.ItemName;
  283. var subscriptionItemType = res.SubscriptionItemType;
  284. OrderDetails.instance.CartItems.push({
  285. addonQuantity: addonQuantity,
  286. addonSku: addonSku,
  287. addonItemId: addonItemId,
  288. unitPrice: unitPrice,
  289. discountPercent: discountPercent,
  290. discountValue: discountValue,
  291. AddOnItemName: ItemName,
  292. subscriptionItemType: subscriptionItemType
  293. });
  294. }
  295. else {
  296. let index = OrderDetails.instance.CartItems.findIndex(z => z.addonItemId == Number(itemid));
  297. if (index != -1) {
  298. OrderDetails.instance.CartItems.splice(index, 1);
  299. }
  300. }
  301. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  302. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout_cartAmount();
  303. }
  304. deleteItem(itemid) {
  305. var offerid = itemid;
  306. if (offerid.includes("Offer_OrderItem_")) {
  307. var offeritem = $("." + itemid + "").find("#hf_refItemId").val();
  308. $(".Plan_OrderItem_" + offeritem).find(".hf_discountPercent").val(0);
  309. var discount = $(".Plan_OrderItem_" + offeritem).find(".hf_discountPercent").val();
  310. let Price = $(".Plan_OrderItem_" + offeritem).find(".hf_itemprice").val();
  311. let DiscountAmount = Number(Price) * (Number(discount) / 100);
  312. var Total = Number(Price) - DiscountAmount;
  313. let RowTotal = "( " + Price + " - " + discount + " % ) = " + Total;
  314. $(".Plan_OrderItem_" + offeritem).find(".setupfee").text(RowTotal);
  315. let index = Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.instance.CartItems.findIndex(z => z.addonItemId == Number(offeritem));
  316. if (index != -1) {
  317. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.instance.CartItems[index].discountPercent = 0;
  318. }
  319. }
  320. if ($('.cart-item').length <= 3) {
  321. $('.SubsItems').find('.ListCartItems').css("min-height", "-=80px");
  322. }
  323. $("." + itemid + "").remove();
  324. if (offerid.includes("Offer_OrderItem_")) {
  325. var itid = itemid.replace('Offer_OrderItem_', '');
  326. }
  327. else {
  328. var itid = itemid.replace('Plan_OrderItem_', '');
  329. }
  330. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().updateCartItems(0, itid);
  331. var chkid = itemid;
  332. chkid = chkid.replace('Plan_OrderItem_', '');
  333. chkid = ("btnremove_" + chkid);
  334. $("." + chkid + "").addClass("add-cart-btn");
  335. $("." + chkid + "").removeClass("remove-cart-btn");
  336. $("." + chkid + "").text("Add");
  337. }
  338. setCartAddonHeight() {
  339. const instance = this;
  340. const formEl = $('[data-formuniquekey="bizgaze_extension_transact_subscription_createsubscriptionorderitems"]');
  341. const logoDivHeight = formEl.find('.subs-logo-wrap').outerHeight(true);
  342. const bodyPaddingTopHeight = parseInt(formEl.find('.modal-body.simple-scroll-bar').css('padding-top'));
  343. const bodyPaddingBottomHeight = parseInt(formEl.find('.modal-body.simple-scroll-bar').css('padding-bottom'));
  344. const modalBodyPaddingHeight = bodyPaddingTopHeight + bodyPaddingBottomHeight;
  345. formEl.find('.simple-scroll-bar.modal-body').css({ height: `calc(100vh - ${logoDivHeight}px)`, 'padding-top': '1rem 1.5rem' }).removeClass('bg-cyan-light-5 biz_grey_bg');
  346. let heightProperty = 'height';
  347. if ($(window).width() < 767) {
  348. heightProperty = 'max-height';
  349. }
  350. const cartHeaderHeight = formEl.find('.cart-header').outerHeight(true);
  351. const cartFooterHeight = formEl.find('.cart-footer').outerHeight(true);
  352. formEl.find('.cart-wrap .cart-body').css({ 'max-height': `calc(100% - ${cartHeaderHeight + cartFooterHeight}px)` });
  353. const addonHeaderHeight = formEl.find('.addon-heading-search-wrap').outerHeight(true);
  354. formEl.find('.addon-products-wrap').css('max-height', `calc(100% - ${addonHeaderHeight}px)`);
  355. instance.formId = Number(formEl.find('#hf_FormId').val());
  356. }
  357. searchAddons() {
  358. const searchTerm = $('#addonSearchInput').val().toString().trim().toLowerCase();
  359. if (searchTerm) {
  360. $('.addonslist .product-card').each(function (i) {
  361. if ($(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 || searchTerm.length < 1) {
  362. $(this).show();
  363. }
  364. else {
  365. $(this).hide();
  366. }
  367. if ((i == $('.addonslist .product-card').length - 1) && !$('.addonslist .product-card:visible').length) {
  368. $('.addonslist').find('.err-msg').removeClass('d-none');
  369. }
  370. else {
  371. $('.addonslist').find('.err-msg').addClass('d-none');
  372. }
  373. });
  374. }
  375. else {
  376. $('.addonslist .product-card:hidden').show();
  377. $('.addonslist').find('.err-msg').addClass('d-none');
  378. }
  379. }
  380. ShowOfferItems(OrganizationId, ItemId, ItemName, OrderType, element) {
  381. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/components/subscriptions/subscriptionitemofferselection.js", "apps/transact/controls/invoices/invoiceitem.component.js"], function () {
  382. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, "", Bizgaze.Apps.Transact.Components.Subscriptions.SubscriptionItemOfferSelection.Instance(), function () {
  383. Bizgaze.Apps.Transact.Components.Subscriptions.SubscriptionItemOfferSelection.Instance().LoadOfferItems(OrganizationId, ItemId, ItemName, OrderType, $(element), "Order");
  384. }, Unibase.Platform.Helpers.Size.Large);
  385. });
  386. }
  387. checkout() {
  388. $(".cartcount").text(OrderDetails.instance.CartItems.length);
  389. var orgId = Number(OrderDetails.instance.organizationId);
  390. var defaultaddressid = "";
  391. var instance = this;
  392. instance.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  393. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getCustomerDetails(orgId).then(function (response) {
  394. if (response.result != null) {
  395. var res = response.result;
  396. defaultaddressid = res.DefaultAddressId;
  397. OrderDetails.instance.OrderData = [];
  398. OrderDetails.instance.ItemData = [];
  399. var Organizationid = Number(OrderDetails.instance.organizationId);
  400. for (var i = 0; i < OrderDetails.instance.CartItems.length; ++i) {
  401. var addonQuantity = OrderDetails.instance.CartItems[i].addonQuantity;
  402. var addonSku = OrderDetails.instance.CartItems[i].addonSku;
  403. var addonItemId = OrderDetails.instance.CartItems[i].addonItemId;
  404. var unitPrice = OrderDetails.instance.CartItems[i].unitPrice;
  405. var discountPercent = OrderDetails.instance.CartItems[i].discountPercent;
  406. var discountValue = OrderDetails.instance.CartItems[i].discountValue;
  407. if (!isNaN(addonItemId)) {
  408. OrderDetails.instance.ItemData.push({
  409. SKU: addonSku,
  410. Quantity: 1,
  411. ItemId: addonItemId,
  412. UnitPrice: unitPrice,
  413. DiscountPercent: isNaN(discountPercent) ? 0 : discountPercent,
  414. DiscountValue: isNaN(discountValue) ? 0 : discountValue,
  415. ExchangeDC: false,
  416. PackCount: 1,
  417. PackSize: 1,
  418. Packs: 1,
  419. Pieces: 0,
  420. TaxGroupId: 0,
  421. });
  422. }
  423. }
  424. var orderobj = {
  425. BranchId: OrderDetails.instance.BranchId,
  426. InventoryApplyType: 1,
  427. IsCalculateTax: true,
  428. IsCompositePrice: false,
  429. IsPiecePrice: false,
  430. IsTaxInclusive: false,
  431. OrderTypeId: 1,
  432. BillingAddressId: Number(defaultaddressid),
  433. OrderItems: OrderDetails.instance.ItemData
  434. };
  435. instance.fileCacheHelper.loadJsFile('apps/transact/managers/orders/ordermanager.js', function () {
  436. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getTotals(orderobj).then(function (response) {
  437. var res = response.result;
  438. OrderDetails.instance.NetTotal = res.NetTotal;
  439. if (res != null) {
  440. let footerHtml = `<ul class="detail-list">
  441. <li class="detail-item">
  442. <span>Gross Amount</span>
  443. <span id="lblSummary_GrossAmount">₹${res.GrossAmount}/-</span>
  444. </li>
  445. <li class="detail-item">
  446. <span>Discount</span>
  447. <span id="lblSummary_TotalDiscount">₹${res.TotalDiscount}/-</span>
  448. </li>
  449. <li class="detail-item">
  450. <span>Assbl. Amount</span>
  451. <span id="lblSummary_AssessableTotal">₹${res.AssessableAmount}/-</span>
  452. </li>
  453. <li class="detail-item">
  454. <span>Total Tax</span>
  455. <span id="lblSummary_TaxTotal">₹${res.TotalTax}/-</span>
  456. </li>
  457. <li class="detail-item net-total-item border-top border-bottom py-3 mt-4">
  458. <span>Net Total</span>
  459. <span id="lblSummary_NetTotal">₹${res.NetTotal}/-</span>
  460. </li>
  461. </ul>`;
  462. $('.cart-price-details-wrap').html(footerHtml);
  463. }
  464. });
  465. });
  466. }
  467. });
  468. });
  469. }
  470. createOrder() {
  471. var instance = this;
  472. instance.navigationHelper.showLoading();
  473. var TotalAmt = OrderDetails.instance.NetTotal;
  474. OrderDetails.instance.OrderData = [];
  475. OrderDetails.instance.ItemData = [];
  476. var Organizationid = Number(OrderDetails.instance.organizationId);
  477. for (var i = 0; i < OrderDetails.instance.CartItems.length; ++i) {
  478. var addonQuantity = OrderDetails.instance.CartItems[i].addonQuantity;
  479. var addonSku = OrderDetails.instance.CartItems[i].addonSku;
  480. var addonItemId = OrderDetails.instance.CartItems[i].addonItemId;
  481. var unitPrice = OrderDetails.instance.CartItems[i].unitPrice;
  482. var discountPercent = OrderDetails.instance.CartItems[i].discountPercent;
  483. var discountValue = OrderDetails.instance.CartItems[i].discountValue;
  484. var refItemId = Number($(this).find("#hf_refItemId").val());
  485. OrderDetails.instance.ItemData.push({
  486. SKU: addonSku,
  487. Quantity: addonQuantity,
  488. ItemId: addonItemId,
  489. UnitPrice: unitPrice,
  490. DiscountPercent: isNaN(discountPercent) ? 0 : discountPercent,
  491. DiscountValue: isNaN(discountValue) ? 0 : discountValue,
  492. RefItemId: isNaN(refItemId) ? 0 : refItemId
  493. });
  494. }
  495. OrderDetails.instance.OrderData.push({
  496. OrganizationId: Organizationid,
  497. BranchId: OrderDetails.instance.BranchId,
  498. OrderItems: OrderDetails.instance.ItemData
  499. });
  500. OrderDetails.instance.OrderData;
  501. var instance = this;
  502. instance.fileCacheHelper.loadJsFile('apps/transact/enums/enum.js', function () {
  503. instance.fileCacheHelper.loadJsFile('apps/transact/managers/orders/ordermanager.js', function () {
  504. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().createOrderItems(instance.OrderData[0]).then(function (response) {
  505. var res = response.result;
  506. var orderid = response.result;
  507. if (response.status === Unibase.Data.Status.Error) {
  508. MessageHelper.Instance().showError(response.message, `div_ErrorMessage_${instance.formId}`);
  509. instance.navigationHelper.hideLoading();
  510. }
  511. else {
  512. OrderDetails.instance.arr = {
  513. BranchId: OrderDetails.instance.BranchId,
  514. BizOrderId: orderid,
  515. organizationId: OrderDetails.instance.organizationId
  516. };
  517. var OrderStatusId = Bizgaze.Apps.Transact.Enums.OrderStatus.Active;
  518. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().updateOrdersStage(res, OrderStatusId).then(function (response) {
  519. var res = response.result;
  520. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().paymentgateway(TotalAmt, 0, OrderDetails.instance.PaymentStatus);
  521. });
  522. }
  523. });
  524. });
  525. });
  526. }
  527. createOrder_Item(Id) {
  528. var instance = this;
  529. var jsFiles = ["apps/crm/companies/managers/companymanager.js", "apps/crm/contacts/managers/contactmanager.js",
  530. "apps/transact/enums/enum.js", "apps/transact/managers/orders/ordermanager.js"];
  531. instance.fileCacheHelper.loadJsFiles(jsFiles, function () {
  532. if (Id != 0) {
  533. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getOrganizationById(Id).then(function (response) {
  534. var data = response.result;
  535. var contactid = data.DefaultOrgContactId;
  536. Bizgaze.Apps.CRM.Companies.Managers.CompanyManager.Instance().getUserBranches(contactid).then(function (orgresponse) {
  537. var branchId = orgresponse.result[0].BranchId;
  538. OrderDetails.instance.BranchId = branchId;
  539. OrderDetails.instance.OrderData = [];
  540. OrderDetails.instance.ItemData = [];
  541. var Organizationid = Number(Id);
  542. for (var i = 0; i < OrderDetails.instance.CartItems.length; ++i) {
  543. var addonQuantity = OrderDetails.instance.CartItems[i].addonQuantity;
  544. var addonSku = OrderDetails.instance.CartItems[i].addonSku;
  545. var addonItemId = OrderDetails.instance.CartItems[i].addonItemId;
  546. var unitPrice = OrderDetails.instance.CartItems[i].unitPrice;
  547. var discountPercent = OrderDetails.instance.CartItems[i].discountPercent;
  548. var discountValue = OrderDetails.instance.CartItems[i].discountValue;
  549. var refItemId = Number($(this).find("#hf_refItemId").val());
  550. OrderDetails.instance.ItemData.push({
  551. SKU: addonSku,
  552. Quantity: addonQuantity,
  553. ItemId: addonItemId,
  554. UnitPrice: unitPrice,
  555. DiscountPercent: isNaN(discountPercent) ? 0 : discountPercent,
  556. DiscountValue: isNaN(discountValue) ? 0 : discountValue,
  557. RefItemId: isNaN(refItemId) ? 0 : refItemId
  558. });
  559. }
  560. OrderDetails.instance.OrderData.push({
  561. OrganizationId: Organizationid,
  562. BranchId: OrderDetails.instance.BranchId,
  563. OrderItems: OrderDetails.instance.ItemData
  564. });
  565. OrderDetails.instance.OrderData;
  566. instance.fileCacheHelper.loadJsFile('platform/core/infos/status.js', function () {
  567. instance.fileCacheHelper.loadJsFile('apps/transact/managers/orders/ordermanager.js', function () {
  568. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().createOrderItems(instance.OrderData[0]).then(function (response) {
  569. var res = response.result;
  570. var orderid = response.result;
  571. if (response.status === Unibase.Data.Status.Error) {
  572. MessageHelper.Instance().showError(response.message, `div_ErrorMessage_${instance.formId}`);
  573. instance.navigationHelper.hideLoading();
  574. }
  575. else {
  576. OrderDetails.instance.arr = {
  577. BranchId: OrderDetails.instance.BranchId,
  578. BizOrderId: orderid,
  579. organizationId: OrderDetails.instance.organizationId
  580. };
  581. var OrderStatusId = Bizgaze.Apps.Transact.Enums.OrderStatus.Active;
  582. var TotalAmt = OrderDetails.instance.NetTotal;
  583. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().updateOrdersStage(res, OrderStatusId).then(function (response) {
  584. var res = response.result;
  585. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().paymentgateway(TotalAmt, Organizationid, OrderDetails.instance.PaymentStatus);
  586. });
  587. }
  588. });
  589. });
  590. });
  591. });
  592. });
  593. }
  594. });
  595. }
  596. paymentgateway(invoiceamount, organizationId, PaymentStatus) {
  597. var customerdetails = {};
  598. OrderDetails.instance.data = [];
  599. var periodTime = $('#select_period').val();
  600. var tenure_id = OrderDetails.instance.TenureId;
  601. var tenure_Period = Number(periodTime);
  602. var orgId = OrderDetails.instance.organizationId;
  603. if (isNaN(orgId)) {
  604. orgId = organizationId;
  605. }
  606. for (var i = 0; i < OrderDetails.instance.CartItems.length; i++) {
  607. var SubscriptionItemType = 1;
  608. if (OrderDetails.instance.CartItems[i].subscriptionItemType == SubscriptionItemType) {
  609. var PlanItemId = OrderDetails.instance.CartItems[i].addonItemId;
  610. }
  611. }
  612. var instance = this;
  613. instance.fileCacheHelper.loadJsFiles(['apps/transact/managers/subscriptions/subscriptionmanager.js', 'settings/settings.js'], function () {
  614. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getCustomerDetails(orgId).then(function (response) {
  615. if (response.result != null) {
  616. var res = response.result;
  617. var retunrUrl = window.location.origin + '/#/paymentgateway/order_id ={order_id}/order_token={order_token}';
  618. var dt = new Date();
  619. dt.setDate(dt.getDate() + 5);
  620. customerdetails = {
  621. CustomerId: String(res.OrganizationId),
  622. CustomerEmail: res.EmailAddress,
  623. CustomerPhone: res.PhoneNumber,
  624. };
  625. OrderDetails.instance.data.push({
  626. OrderAmount: invoiceamount,
  627. OrderCurrency: "INR",
  628. customer_details: customerdetails,
  629. order_meta: {
  630. "ReturnUrl": retunrUrl
  631. },
  632. OrderExpiryTime: dt
  633. });
  634. OrderDetails.instance.data;
  635. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().createGateWayOrder(instance.data[0]).then(function (response) {
  636. var res = response.result;
  637. if (response.status === Unibase.Data.Status.Error) {
  638. MessageHelper.Instance().showError(response.message, `div_ErrorMessage_${instance.formId}`);
  639. instance.navigationHelper.hideLoading();
  640. }
  641. if (response.result != null) {
  642. var res = response.result;
  643. var url = res.payment_link;
  644. OrderDetails.instance.arr;
  645. var paymentDetails = {};
  646. paymentDetails = {
  647. OrderId: res.order_id,
  648. OrderToken: res.order_token,
  649. TenureId: Number(OrderDetails.instance.TenureId),
  650. Bizorderid: OrderDetails.instance.arr.BizOrderId,
  651. TotalAmount: invoiceamount,
  652. };
  653. var obj = {};
  654. if (PaymentStatus == true) {
  655. obj = {
  656. OrganizationId: OrderDetails.instance.arr.organizationId,
  657. BranchId: OrderDetails.instance.arr.BranchId,
  658. PlanItemId: PlanItemId,
  659. PaymentDetails: paymentDetails,
  660. TenurePeriod: tenure_Period,
  661. TenureId: tenure_id
  662. };
  663. }
  664. instance.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  665. if (PaymentStatus == true) {
  666. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().saveSubscriptionOrderData(obj).then(function (response) {
  667. var savinfo = response.result;
  668. instance.navigationHelper.hideLoading();
  669. window.open(url, "_self");
  670. });
  671. }
  672. });
  673. }
  674. });
  675. }
  676. });
  677. });
  678. }
  679. Orderdata(res) {
  680. OrderDetails.instance.arr = {
  681. InvoiceId: res.InvoiceId,
  682. BranchId: res.BranchId,
  683. RefDate: res.RefDate,
  684. BizOrderId: res.BizOrderId,
  685. organizationId: res.organizationId
  686. };
  687. }
  688. updateOfferCartItemsList(res) {
  689. for (var i = 0; i < res.length; i++) {
  690. var addonQuantity = 1;
  691. var addonSku = res[i].SKU;
  692. var addonItemId = res[i].ItemId;
  693. var unitPrice = res[i].SalesPrice;
  694. var discountPercent = res[i].Discount;
  695. var discountValue = 0;
  696. OrderDetails.instance.CartItems.push({
  697. addonQuantity: addonQuantity,
  698. addonSku: addonSku,
  699. addonItemId: addonItemId,
  700. unitPrice: unitPrice,
  701. discountPercent: discountPercent,
  702. discountValue: discountValue,
  703. });
  704. }
  705. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  706. }
  707. addOrderAddonItems() {
  708. this.fileCacheHelper.loadJsFile('apps/transact/controls/subscriptions/orderdetails.component.js', function () {
  709. var addonsList = [];
  710. $(".Uaddonitems").find(".AddonValue-row").each(function () {
  711. var addonItemName = $(this).find(".addItemname").text();
  712. var addonPrice = Number($(this).find(".addPrice").val());
  713. var addcheck = $(this).find('#addonchk').is(':checked');
  714. var addonQuantity = $(this).find('#hf_addonQuantity').val();
  715. var addonSku = $(this).find('#hf_addonSku').val();
  716. var addonItemId = $(this).find('#hf_addonItemId').val();
  717. var description = $(this).find('#hf_Description').val();
  718. if (addcheck == true) {
  719. addonsList.push({
  720. AddonItemName: addonItemName,
  721. AddonPrice: addonPrice,
  722. AddonQuantity: addonQuantity,
  723. AddonSku: addonSku,
  724. addonItemId: addonItemId,
  725. description: description
  726. });
  727. }
  728. });
  729. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().Orderaddonitems(addonsList);
  730. });
  731. }
  732. LoadingOrderAddons() {
  733. var array = Bizgaze.Apps.Transact.Components.Subscriptions.Userregistration.Instance().paymentOrderItemArray;
  734. var Instance = Bizgaze.Apps.Transact.Components.Subscriptions.Userregistration.Instance();
  735. var tenureId = this.TenureId;
  736. var AddOnsItem = [];
  737. if (array.length > 0) {
  738. for (var i = 0; i < array.length; i++) {
  739. var SubscriptionItemType = 2;
  740. if (array[i].SubscriptionItemType == SubscriptionItemType) {
  741. AddOnsItem.push(array[i].ItemId);
  742. }
  743. }
  744. if (array.length > 0) {
  745. for (var j = 0; j <= AddOnsItem.length; j++)
  746. if (AddOnsItem.length >= 0)
  747. if (AddOnsItem[j] != undefined) {
  748. this.mapAddonItem(AddOnsItem[j], tenureId);
  749. }
  750. }
  751. }
  752. }
  753. mapAddonItem(itemid, tenureid) {
  754. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getItem(itemid, tenureid).then(function (response) {
  755. var res = response.result;
  756. $(`.btnremove_${itemid}`).addClass("remove-cart-btn").text("Remove");
  757. var html = `<div class="cart-item discount li_OrderAddonItems li_OrderAddonItems_` + res.ItemId + ` Plan_OrderItem_` + res.ItemId + ` ">
  758. <div class="item-title-price-wrap">
  759. <span class="item-title text-truncate">` + res.ItemName + `</span>
  760. <div class="price-trash-wrap"><span class="item-price inr-sign">` + res.SalesPrice + `</span>
  761. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().deleteItem(\'Plan_OrderItem_` + res.ItemId + `\')"
  762. class="btn btn-icon btn-icon-circle btn-info btn-icon-style-3 item-remove-btn"><span class="btn-icon-wrap"><i class="fa fa-trash"></i></span></a>
  763. </div>
  764. </div>
  765. <div class="item-desc-quantity-wrap">`;
  766. if (res.Description != null && res.Description != "") {
  767. html += `<p class="item-desc text-truncate">${res.Description}</p>`;
  768. }
  769. else {
  770. html += `<p class="item-desc text-truncate"></p>`;
  771. }
  772. html += `<span class="item-quantity setupfee">( ` + res.SalesPrice + ` - 0% ) = ₹` + res.SalesPrice + `</span>
  773. </div>
  774. <div class="item-plan-offer-wrap pt-10">
  775. `;
  776. if (res.IsOfferAvailable == true) {
  777. html += ` <a href="javascrpit:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().ShowOfferItems(` + 0 + `,` + res.ItemId + " ,`" + res.ItemName + "`," + 1 + `,` + `this)" class="item-offer-status btn btn-sm"><i class="fa fa-percent mr-1"></i><span>Offer applied</span></a>`;
  778. }
  779. html += `</div><input type="hidden" id="hf_Sku" value=` + res.SKU + ` /><input type="hidden" id="hf_ItemId" value=` + res.ItemId + ` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + res.SalesPrice + ` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + res.SalesPrice + ` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" />
  780. </div>`;
  781. $(".ListCartItems:first").append(html);
  782. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().updateCartItems(res, 0);
  783. });
  784. Bizgaze.Apps.Transact.Components.Subscriptions.Userregistration.Instance().paymentOrderItemArray = [];
  785. }
  786. Orderaddonitems(addonsList) {
  787. $('.AddonItemsList').empty();
  788. for (var i = 0; i <= addonsList.length - 1; i++) {
  789. let html = `<div class="cart-item li_OrderAddonItems Addon_OrderItem_` + addonsList[i].addonItemId + `">
  790. <div class="item-title-price-wrap">
  791. <span class="item-title">` + addonsList[i].AddonItemName + `</span>
  792. <div class="price-trash-wrap"><span class="item-price"><i class="fa fa-inr"></i>` + addonsList[i].AddonPrice + `</span>
  793. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().deleteItem(\'Addon_OrderItem_` + addonsList[i].addonItemId + `\')"
  794. class="btn btn-icon btn-icon-circle btn-info btn-icon-style-3 item-remove-btn"><span class="btn-icon-wrap"><i class="fa fa-trash"></i></span></a>
  795. </div>
  796. </div>`;
  797. if (addonsList[i].Description != null) {
  798. html += `<div class="item-desc-quantity-wrap">
  799. <p class="item-desc">` + addonsList[i].Description + `</p>
  800. </div>`;
  801. }
  802. else {
  803. html += `<div class="item-desc-quantity-wrap">
  804. <p class="item-desc" >` + +`</p>
  805. </div>`;
  806. }
  807. html += `<div class="item-desc-quantity-wrap">
  808. <span class="item-quantity">( ` + addonsList[i].AddonPrice + ` - 0% ) = ₹` + addonsList[i].AddonPrice + `</span>
  809. </div>
  810. <div class="item-plan-offer-wrap pt-10">
  811. <input type="hidden" id="hf_Quantity" value=` + addonsList[i].AddonQuantity + ` /><input type="hidden" id="hf_Sku" value=` + addonsList[i].AddonSku + ` /><input type="hidden" id="hf_ItemId" value=` + addonsList[i].addonItemId + ` /><input type="hidden" class="hf_discountPercent" id="hf_discountPercent" value=0><input type="hidden" class="price" value=` + addonsList[i].AddonPrice + ` id="hf_price" /><input type="hidden" class="itemprice" value=` + addonsList[i].AddonPrice + ` id="hf_itemprice" />
  812. </div> </div>`;
  813. $(".AddonItemsList:first").append(html);
  814. }
  815. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  816. }
  817. loadingAddonItems(id, itemid, tenureid) {
  818. OrderDetails.instance.organizationId = Number(id);
  819. OrderDetails.instance.CartItems = [];
  820. OrderDetails.instance.TenureId = tenureid;
  821. this.fileCacheHelper.loadJsFiles(['apps/transact/managers/subscriptions/subscriptionmanager.js', 'platform/core/helpers/navigation/interfaces/inavigationhelper.js'], function () {
  822. var html = ``;
  823. html += `<div class="add-on-products-sec">
  824. <div class="row add-on-content-wrap biz-custom-scrollbar mx-0">
  825. <div class="Uaddonitems col-xl-8 col-md-6 px-0 pr-md-10 pr-lg-20 mb-30 mb-md-0 pr-xl-30">
  826. <div class="addons-wrap biz-custom-scrollbar">
  827. <div class="addon-heading-search-wrap mb-25" id="addonHeadingSearchWrap"><h2 class="addons-heading heading-underline">Add-ons</h2><div class="addon-search-wrap"><input type="text" id="addonSearchInput" class="form-control addon-search-input" oninput="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().searchAddons();" placeholder="Search Addons"><i class="fa fa-search search-icon"></i></div></div>
  828. <div class="addon-products-wrap biz-custom-scrollbar addonslist"><div class="alert alert-danger err-msg text-center w-100 d-none" role="alert">No Addons Found!</div></div>
  829. </div>
  830. </div>
  831. <div class="col-xl-4 col-md-6 px-0 pl-md-10 pl-lg-20 pl-xl-30 OrderAddonItems">
  832. <div class="cart-wrap biz-custom-scrollbar Uaddonitems SubsItems">
  833. <div class="cart-header px-15 pt-10">
  834. <h5 class="cart-heading heading-underline">Cart Summary(<span class="cartcount"></span>)</h5>
  835. </div>
  836. <div class="cart-body biz-custom-scrollbar ListCartItems">`;
  837. html += `<div class="cart-item discount li_OrderAddonItems li_OrderAddonItems_` + +` Plan_OrderItem_` + +` ">
  838. <div class="item-title-price-wrap">
  839. <span class="item-title text-truncate">` + +`</span>
  840. <div class="price-trash-wrap"><span class="item-price inr-sign">` + +`</span>
  841. </div>
  842. </div>
  843. <div class="item-desc-quantity-wrap">`;
  844. html += `<p class="item-desc text-truncate"></p>`;
  845. html += `</div><input type="hidden" id="hf_Sku" value=` + +` /><input type="hidden" id="hf_ItemId" value=` + +` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + +` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + +` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" />
  846. </div>`;
  847. html += `<div class="focitem offeritems"></div><div class="AddonItemsList"></div>`;
  848. html += `<div class="cart-footer">
  849. <div class="cart-price-details-wrap">`;
  850. html += `</div>
  851. <div class="cart-proceed-wrap">
  852. <a href="javascript:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().createOrder()" class="btn btn-success cart-proceed-btn ProceedtoPay">Proceed to
  853. Pay</a>
  854. </div>
  855. </div>
  856. </div>
  857. </div>
  858. </div>
  859. </div>`;
  860. $(".orderitemsdiv").html(html);
  861. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().setCartAddonHeight();
  862. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout();
  863. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().WithoutPurchaseAddonList(id, itemid, tenureid);
  864. });
  865. OrderDetails.instance.organizationId = Number(id);
  866. var instance = this;
  867. var jsFiles = ["apps/crm/companies/managers/companymanager.js", "apps/crm/contacts/managers/contactmanager.js"];
  868. instance.fileCacheHelper.loadJsFiles(jsFiles, function () {
  869. if (id != 0) {
  870. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getOrganizationById(id).then(function (response) {
  871. var data = response.result;
  872. var contactid = data.DefaultOrgContactId;
  873. Bizgaze.Apps.CRM.Companies.Managers.CompanyManager.Instance().getUserBranches(contactid).then(function (orgresponse) {
  874. var branchId = orgresponse.result[0].BranchId;
  875. OrderDetails.instance.BranchId = branchId;
  876. });
  877. });
  878. }
  879. });
  880. }
  881. WithoutPurchaseAddonList(id, itemid, tenureid) {
  882. let instance = this;
  883. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  884. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().WithoutPurchaseAddonsItems(id, itemid, tenureid).then(function (response) {
  885. var res = response.result;
  886. var cartItemsList = [];
  887. $(".OrderAddonItems").find(".li_OrderAddonItems").each(function () {
  888. var addonItemId = Number($(this).find('#hf_ItemId').val());
  889. cartItemsList.push({
  890. ItemIds: addonItemId
  891. });
  892. });
  893. for (var i = 0; i < res.length; i++) {
  894. if (res[i].SalesPrice != 0) {
  895. var html = `<div class="col-md-6"><div class="product-card mr-40 CartItems adoonsItems AddonValue-row" id="li_AddOnsItems_Details" data-search-term="${res[i].ItemName.toLowerCase()}"">
  896. <div class="product-card-body">
  897. <div class="product-img-wrap">
  898. <img src="https://www.pteinc.com/wp-content/uploads/2021/04/Process-Automation-Icon-Redn.png" alt="" class="product-img">
  899. </div>
  900. <div class="product-title-desc-wrap addItemname">
  901. <p class="product-title" title="${res[i].ItemName}">${res[i].ItemName}</p>
  902. <p class="product-desc" title="Automation Evolved Evolved Evolved Evolved">
  903. ${res[i].Description || "&nbsp;"}
  904. </p>
  905. </div>
  906. </div>
  907. <div class="product-card-footer">
  908. <span class="product-price inr-sign">${res[i].SalesPrice}</span>
  909. <input type="hidden" class="addPrice" id="hf_addPrice" value=${res[i].SalesPrice} />
  910. <input type="hidden" class="Description" id = "hf_Description" value = ${res[i].Description} />`;
  911. var cartId = cartItemsList.filter(el => el.ItemIds === res[i].ItemId);
  912. if (cartId.length == 0) {
  913. html += `<a href="javascript:;" class="btn btnremove_${res[i].ItemId} cart-btn add-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().btnChange(\'btnremove_${res[i].ItemId}\',\'${tenureid}\');">Add</a>`;
  914. }
  915. else {
  916. html += `<a href="javascript:;" class="btn btnremove_${res[i].ItemId} cart-btn remove-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().btnChange(\'btnremove_${res[i].ItemId}\',\'${tenureid}\');">Remove</a>`;
  917. }
  918. html += `</div>
  919. <div class="offer-percentage">0%</div>
  920. <input type="hidden" id="hf_addonQuantity" value=${res[i].SubscriptionAddonsQuantity} /> <input type="hidden" id="hf_addonSku" value=${res[i].Sku} /> <input type="hidden" id="hf_addonItemId" value=${res[i].ItemId} />
  921. </div></div>`;
  922. $(".addonslist:first").append(html);
  923. }
  924. }
  925. });
  926. });
  927. }
  928. getPlanItem_List(itemid, tenureid) {
  929. OrderDetails.instance.CartItems = [];
  930. OrderDetails.instance.TenureId = tenureid;
  931. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getItem(itemid, tenureid).then(function (response) {
  932. var res = response.result;
  933. var html = ``;
  934. html += `<div class="add-on-products-sec">
  935. <div class="add-on-content-wrap biz-custom-scrollbar mx-0">
  936. <div class="Uaddonitems px-0 pr-md-10 pr-lg-20 mb-30 mb-md-0 pr-xl-30">
  937. <div class="addons-wrap ">
  938. <div class="addon-heading-search-wrap mb-25" id="addonHeadingSearchWrap"><h2 class="addons-heading font-weight-700">Add Ons</h2><div class="addon-search-wrap"><input type="text" id="addonSearchInput" class="form-control addon-search-input" oninput="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().searchAddons();" placeholder="Search Addons"><i class="fa fa-search search-icon"></i></div></div>
  939. <div class="addon-products-wrap row biz-custom-scrollbar addonslist"><div class="alert alert-danger err-msg text-center w-100 d-none" role="alert">No Addons Found!</div></div>
  940. </div>
  941. </div>
  942. </div>
  943. </div>`;
  944. var carthtml = `
  945. <div class="w-100 OrderAddonItems add-on-products-sec orderitemsdiv mt-15">
  946. <div class="cart-wrap biz-custom-scrollbar Uaddonitems SubsItems p-3 rounded-20 bg-white">
  947. <div class="align-items-center border-bottom cart-header d-flex justify-content-between py-10">
  948. <h5 class="cart-heading font-weight-700">Cart Summary(<span class="cartcount"></span>)</h5><div><a href="javascript:;" id="btn_Proceed" class="btn btn-block btn-warning submit-btn">Proceed</a><a href="javascript:;" id="btn_Save" class="btn btn-warning submit-btn d-none" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.SubcribeUserRegistrations.Instance().proceedToPay()">Proceed To Pay</a></div>
  949. </div><div class="cart-footer bg-white px-0">
  950. <div class="cart-price-details-wrap pt-4" id="cartSummaryFooter"></div></div><div class="cart-body biz-custom-scrollbar ListCartItems mh-150p pl-0 pr-10">`;
  951. carthtml += `<div class="cart-item discount li_OrderAddonItems li_OrderAddonItems_` + res.ItemId + ` Plan_OrderItem_` + res.ItemId + ` ">
  952. <div class="item-title-price-wrap">
  953. <span class="item-title text-truncate">` + res.ItemName + `</span><select id="select_period"><option>select</option></select><div class="price-trash-wrap"><span class="planitem-price inr-sign">` + res.SalesPrice + `</span>
  954. </div>
  955. </div>
  956. <div class="item-desc-quantity-wrap">`;
  957. if (res.Description != null && res.Description != "") {
  958. carthtml += `<p class="item-desc text-truncate">${res.Description}</p>`;
  959. }
  960. else {
  961. carthtml += `<p class="item-desc text-truncate"></p>`;
  962. }
  963. carthtml += ` <span class="item-quantity setupfee">( ` + res.SalesPrice + ` - 0% ) = ₹` + res.SalesPrice + `</span>
  964. </div><div class="align-items-center d-flex justify-content-between py-10"><p class="font-weight-600">One Time Cost</p><div class="font-18 font-weight-700 inr-sign">` + res.SetupFee + `</div></div><div class="item-plan-offer-wrap pt-10">`;
  965. if (res.IsOfferAvailable == true) {
  966. carthtml += ` <a href="javascrpit:;" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().ShowOfferItems(` + 0 + `,` + res.ItemId + " ,`" + res.ItemName + "`," + 1 + `,` + `this)" class="item-offer-status btn btn-sm"><i class="fa fa-tag mr-1"></i><span>Offer applied</span></a>`;
  967. }
  968. carthtml += `</div><input type="hidden" id="hf_Sku" value=` + res.SKU + ` /><input type="hidden" id="hf_ItemId" value=` + res.ItemId + ` /><input type="hidden" id="hf_Quantity" value=1 /><input type="hidden" class="itemprice" value=` + res.SalesPrice + ` id="hf_itemprice" /><input type="hidden" class="price hf_itemprice" value=` + res.SalesPrice + ` id="hf_price" /><input type="hidden" class="hf_discountPercent" value=0 id="hf_discountPercent" />
  969. </div>`;
  970. carthtml += `<div class="focitem offeritems"></div><div class="AddonItemsList"></div>
  971. </div>`;
  972. $("#addon-list").html(html);
  973. $("#cart_items_list").html(carthtml);
  974. $("#btn_Proceed").click(function () {
  975. $(this).addClass('d-none');
  976. $(this).parent().find('#btn_Save').removeClass('d-none');
  977. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().proceed_Subscription();
  978. });
  979. $('#select_period').on('change', function () {
  980. var period = $('#select_period').val();
  981. var PlanId = Subscriptions.SubcribeUserRegistrations.instance.PlanItemId;
  982. var TenureId = Subscriptions.SubcribeUserRegistrations.instance.Tenureid;
  983. if (period != undefined || PlanId != undefined || period != undefined) {
  984. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().period_change(PlanId, TenureId, period);
  985. }
  986. });
  987. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().cartItemsList(res);
  988. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().setCartAddonHeight();
  989. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout_cartAmount();
  990. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().getAddonsItemsList(res.ItemId, tenureid);
  991. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().bindTenure(itemid, tenureid);
  992. });
  993. }
  994. proceedToPayHtml() {
  995. $('#addon-list').addClass('d-none');
  996. $('.registration_form').removeClass('d-none');
  997. $('#btn_Proceed').addClass('d-none');
  998. $('#btn_Save').removeClass('d-none');
  999. $('.registration_back_btn').addClass('d-none');
  1000. }
  1001. backProceedHtml() {
  1002. $('#addon-list').removeClass('d-none');
  1003. $('.registration_form').addClass('d-none');
  1004. $('#btn_Proceed').removeClass('d-none');
  1005. $('#btn_Save').addClass('d-none');
  1006. }
  1007. getAddonsItemsList(itemid, tenureid) {
  1008. let instance = this;
  1009. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  1010. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getAddonsItems(itemid, tenureid).then(function (response) {
  1011. var res = response.result;
  1012. if (res.length == 0) {
  1013. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().proceedToPayHtml();
  1014. }
  1015. if (res.length > 0) {
  1016. $('.registration_form').addClass('d-none');
  1017. }
  1018. var cartItemsList = [];
  1019. let addonImage = "";
  1020. $(".OrderAddonItems").find(".li_OrderAddonItems").each(function () {
  1021. var addonItemId = Number($(this).find('#hf_ItemId').val());
  1022. cartItemsList.push({
  1023. ItemIds: addonItemId
  1024. });
  1025. });
  1026. for (var i = 0; i < res.length; i++) {
  1027. var imageurl = res[i].AddonImage;
  1028. var image1;
  1029. if (imageurl != null && imageurl != undefined && imageurl != "") {
  1030. image1 = imageurl.split("~");
  1031. addonImage = image1[0];
  1032. }
  1033. if (res[i].SalesPrice != 0) {
  1034. OrderDetails.instance.AddonItems.push({ salesPrice: res[i].SalesPrice });
  1035. }
  1036. if (OrderDetails.instance.AddonItems.length == 0) {
  1037. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().proceedToPayHtml();
  1038. }
  1039. if (res[i].SalesPrice != 0) {
  1040. if ($('#addon-list').hasClass('d-none')) {
  1041. $('#addon-list').removeClass('d-none');
  1042. $('#btn_Proceed').removeClass('d-none');
  1043. $('#btn_Save').addClass('d-none');
  1044. $('.registration_form').addClass('d-none');
  1045. }
  1046. var html = `<div class="col-md-3"><div class="product-card CartItems adoonsItems AddonValue-row" id="li_AddOnsItems_Details" data-search-term="${res[i].ItemName.toLowerCase()}"">
  1047. <div class="product-card-body">
  1048. <div class="product-img-wrap">
  1049. <img src="${addonImage}" alt="" class="product-img">
  1050. </div>
  1051. <div class="product-title-desc-wrap addItemname">
  1052. <p class="product-title" title="${res[i].ItemName}">${res[i].ItemName}</p>
  1053. <p class="product-desc" title="Automation Evolved Evolved Evolved Evolved">
  1054. ${res[i].Description || "&nbsp;"}
  1055. </p>
  1056. </div>
  1057. </div>
  1058. <div class="product-card-footer">
  1059. <span class="product-price inr-sign">${res[i].SalesPrice}</span>
  1060. <input type="hidden" class="addPrice" id="hf_addPrice" value=${res[i].SalesPrice} />
  1061. <input type="hidden" class="Description" id = "hf_Description" value = ${res[i].Description} />`;
  1062. var cartId = cartItemsList.filter(el => el.ItemIds === res[i].ItemId);
  1063. if (cartId.length == 0) {
  1064. html += `<a href="javascript:;" class="btn btnremove_${res[i].ItemId} cart-btn add-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().btnChange(\'btnremove_${res[i].ItemId}\',\'${tenureid}\');">Add</a>`;
  1065. }
  1066. else {
  1067. html += `<a href="javascript:;" class="btn btnremove_${res[i].ItemId} cart-btn remove-cart-btn btnTxt" onclick="Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().btnChange(\'btnremove_${res[i].ItemId}\',\'${tenureid}\');">Remove</a>`;
  1068. }
  1069. html += `</div>
  1070. <div class="offer-percentage">0%</div>
  1071. <input type="hidden" id="hf_addonQuantity" value=${res[i].SubscriptionAddonsQuantity} /> <input type="hidden" id="hf_addonSku" value=${res[i].Sku} /> <input type="hidden" id="hf_addonItemId" value=${res[i].ItemId} />
  1072. </div></div>`;
  1073. $(".addonslist:first").append(html);
  1074. addonImage = "";
  1075. }
  1076. }
  1077. });
  1078. });
  1079. }
  1080. proceed_Subscription() {
  1081. $('.registration_form').removeClass('d-none');
  1082. if ($('#addon-list').hasClass('d-none') == false) {
  1083. $('#addon-list').addClass('d-none');
  1084. }
  1085. }
  1086. checkout_PayAmount(Id) {
  1087. var instance = this;
  1088. $(".cartcount").text(OrderDetails.instance.CartItems.length);
  1089. var orgId = Number(Id);
  1090. OrderDetails.instance.organizationId = Number(Id);
  1091. var defaultaddressid = "";
  1092. OrderDetails.instance.OrderData = [];
  1093. OrderDetails.instance.ItemData = [];
  1094. var Organizationid = Number(OrderDetails.instance.organizationId);
  1095. for (var i = 0; i < OrderDetails.instance.CartItems.length; ++i) {
  1096. var addonQuantity = OrderDetails.instance.CartItems[i].addonQuantity;
  1097. var addonSku = OrderDetails.instance.CartItems[i].addonSku;
  1098. var addonItemId = OrderDetails.instance.CartItems[i].addonItemId;
  1099. var unitPrice = OrderDetails.instance.CartItems[i].unitPrice;
  1100. var discountPercent = OrderDetails.instance.CartItems[i].discountPercent;
  1101. var discountValue = OrderDetails.instance.CartItems[i].discountValue;
  1102. if (!isNaN(addonItemId)) {
  1103. OrderDetails.instance.ItemData.push({
  1104. SKU: addonSku,
  1105. Quantity: 1,
  1106. ItemId: addonItemId,
  1107. UnitPrice: unitPrice,
  1108. DiscountPercent: isNaN(discountPercent) ? 0 : discountPercent,
  1109. DiscountValue: isNaN(discountValue) ? 0 : discountValue,
  1110. ExchangeDC: false,
  1111. PackCount: 1,
  1112. PackSize: 1,
  1113. Packs: 1,
  1114. Pieces: 0,
  1115. TaxGroupId: 0,
  1116. });
  1117. }
  1118. }
  1119. var orderobj = {
  1120. BranchId: 0,
  1121. InventoryApplyType: 1,
  1122. IsCalculateTax: true,
  1123. IsCompositePrice: false,
  1124. IsPiecePrice: false,
  1125. IsTaxInclusive: false,
  1126. OrderTypeId: 1,
  1127. BillingAddressId: Number(0),
  1128. OrderItems: OrderDetails.instance.ItemData
  1129. };
  1130. instance.fileCacheHelper.loadJsFile('apps/transact/managers/orders/ordermanager.js', function () {
  1131. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getTotals(orderobj).then(function (response) {
  1132. return __awaiter(this, void 0, void 0, function* () {
  1133. var res = response.result;
  1134. OrderDetails.instance.NetTotal = res.NetTotal;
  1135. if (res != null) {
  1136. let footerHtml = `<hr><ul class="detail-list">
  1137. <li class="detail-item">
  1138. <span>Gross Amount</span>
  1139. <span id="lblSummary_GrossAmount">₹${res.GrossAmount}/-</span>
  1140. </li>
  1141. <li class="detail-item">
  1142. <span>Discount</span>
  1143. <span id="lblSummary_TotalDiscount">₹${res.TotalDiscount}/-</span>
  1144. </li>
  1145. <li class="detail-item">
  1146. <span>Assbl. Amount</span>
  1147. <span id="lblSummary_AssessableTotal">₹${res.AssessableAmount}/-</span>
  1148. </li>
  1149. <li class="detail-item">
  1150. <span>Total Tax</span>
  1151. <span id="lblSummary_TaxTotal">₹${res.TotalTax}/-</span>
  1152. </li>
  1153. <li class="detail-item net-total-item border-top border-bottom py-3 mt-4">
  1154. <span>Net Total</span>
  1155. <span id="lblSummary_NetTotal">₹${res.NetTotal}/-</span>
  1156. </li>
  1157. </ul>`;
  1158. $('#cartSummaryFooter').html(footerHtml);
  1159. }
  1160. yield Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().createOrder_Item(instance.organizationId);
  1161. });
  1162. });
  1163. });
  1164. }
  1165. bindTenure(itemid, tenureid) {
  1166. let instance = this;
  1167. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  1168. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getTenureList(itemid, tenureid).then(function (response) {
  1169. var res = response.result;
  1170. if (res)
  1171. var tenureName;
  1172. for (var i = 0; i < res.length; i++) {
  1173. if (res[i].Price != 0) {
  1174. if (tenureid == 2) {
  1175. tenureName = 'M';
  1176. }
  1177. else {
  1178. tenureName = 'Y';
  1179. }
  1180. let html;
  1181. if (i == 0) {
  1182. html = '<option value="' + response.result[i].TenurePeriod + '" selected>' + response.result[i].TenurePeriod + tenureName + '</option>';
  1183. }
  1184. else {
  1185. html = '<option value="' + response.result[i].TenurePeriod + '"> ' + response.result[i].TenurePeriod + tenureName + '</option>';
  1186. }
  1187. $('#select_period').append(html);
  1188. }
  1189. }
  1190. });
  1191. });
  1192. }
  1193. period_change(PlanId, TenureId, Periode) {
  1194. let instance = this;
  1195. var data = Periode.split("M")[0];
  1196. var Period_Duration = Number(Periode);
  1197. this.fileCacheHelper.loadJsFile('apps/transact/managers/subscriptions/subscriptionmanager.js', function () {
  1198. Bizgaze.Apps.Transact.Managers.Subscriptions.SubscriptionManager.Instance().getTenurePeriodAndPrice(PlanId, TenureId, Period_Duration).then(function (response) {
  1199. var res = response.result;
  1200. OrderDetails.instance.planItemPrice = response.result.Price;
  1201. if (OrderDetails.instance.CartItems[0].subscriptionItemType == 1) {
  1202. OrderDetails.instance.CartItems[0].unitPrice = OrderDetails.instance.planItemPrice;
  1203. }
  1204. Bizgaze.Apps.Transact.Controls.Subscriptions.OrderDetails.Instance().checkout_cartAmount();
  1205. });
  1206. });
  1207. }
  1208. checkout_cartAmount() {
  1209. var instance = this;
  1210. $(".cartcount").text(OrderDetails.instance.CartItems.length);
  1211. var defaultaddressid = "";
  1212. OrderDetails.instance.OrderData = [];
  1213. OrderDetails.instance.ItemData = [];
  1214. var Organizationid = Number(OrderDetails.instance.organizationId);
  1215. for (var i = 0; i < OrderDetails.instance.CartItems.length; ++i) {
  1216. var addonQuantity = OrderDetails.instance.CartItems[i].addonQuantity;
  1217. var addonSku = OrderDetails.instance.CartItems[i].addonSku;
  1218. var addonItemId = OrderDetails.instance.CartItems[i].addonItemId;
  1219. var unitPrice = OrderDetails.instance.CartItems[i].unitPrice;
  1220. var discountPercent = OrderDetails.instance.CartItems[i].discountPercent;
  1221. var discountValue = OrderDetails.instance.CartItems[i].discountValue;
  1222. if (!isNaN(addonItemId)) {
  1223. OrderDetails.instance.ItemData.push({
  1224. SKU: addonSku,
  1225. Quantity: 1,
  1226. ItemId: addonItemId,
  1227. UnitPrice: unitPrice,
  1228. DiscountPercent: isNaN(discountPercent) ? 0 : discountPercent,
  1229. DiscountValue: isNaN(discountValue) ? 0 : discountValue,
  1230. ExchangeDC: false,
  1231. PackCount: 1,
  1232. PackSize: 1,
  1233. Packs: 1,
  1234. Pieces: 0,
  1235. TaxGroupId: 0,
  1236. });
  1237. }
  1238. }
  1239. var orderobj = {
  1240. BranchId: 0,
  1241. InventoryApplyType: 1,
  1242. IsCalculateTax: true,
  1243. IsCompositePrice: false,
  1244. IsPiecePrice: false,
  1245. IsTaxInclusive: false,
  1246. OrderTypeId: 1,
  1247. BillingAddressId: Number(0),
  1248. OrderItems: OrderDetails.instance.ItemData
  1249. };
  1250. instance.fileCacheHelper.loadJsFile('apps/transact/managers/orders/ordermanager.js', function () {
  1251. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getTotals(orderobj).then(function (response) {
  1252. var res = response.result;
  1253. OrderDetails.instance.NetTotal = res.NetTotal;
  1254. if (res != null) {
  1255. let footerHtml = `<ul class="detail-list">
  1256. <li class="detail-item">
  1257. <span>Gross Amount</span>
  1258. <span id="lblSummary_GrossAmount">₹${res.GrossAmount}/-</span>
  1259. </li>
  1260. <li class="detail-item">
  1261. <span>Discount</span>
  1262. <span id="lblSummary_TotalDiscount">₹${res.TotalDiscount}/-</span>
  1263. </li>
  1264. <li class="detail-item">
  1265. <span>Assbl. Amount</span>
  1266. <span id="lblSummary_AssessableTotal">₹${res.AssessableAmount}/-</span>
  1267. </li>
  1268. <li class="detail-item">
  1269. <span>Total Tax</span>
  1270. <span id="lblSummary_TaxTotal">₹${res.TotalTax}/-</span>
  1271. </li>
  1272. <li class="detail-item net-total-item border-top border-bottom py-3 mt-4">
  1273. <span>Net Total</span>
  1274. <span id="lblSummary_NetTotal">₹${res.NetTotal}/-</span>
  1275. </li>
  1276. </ul>`;
  1277. $('.planitem-price').text(OrderDetails.instance.planItemPrice);
  1278. $('#cartSummaryFooter').html(footerHtml);
  1279. }
  1280. });
  1281. });
  1282. }
  1283. loadControlSettings(controlsettingjson, formpropertyid) {
  1284. }
  1285. loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) {
  1286. }
  1287. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  1288. }
  1289. static Instance() {
  1290. if (this.instance === undefined) {
  1291. this.instance = new OrderDetails();
  1292. }
  1293. return this.instance;
  1294. }
  1295. }
  1296. Subscriptions.OrderDetails = OrderDetails;
  1297. })(Subscriptions = Controls.Subscriptions || (Controls.Subscriptions = {}));
  1298. })(Controls = Transact.Controls || (Transact.Controls = {}));
  1299. })(Transact = Apps.Transact || (Apps.Transact = {}));
  1300. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  1301. })(Bizgaze || (Bizgaze = {}));