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.

additems.component.js 49KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  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. class AddOrderItems extends Unibase.Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this._order = Bizgaze.Apps.Transact.Controls.Order.Instance();
  22. this.g_ContactId = 0;
  23. this.g_CountryId = 0;
  24. this.g_LobId = 0;
  25. this.g_Tags = "";
  26. this.g_PageIndex = 0;
  27. this.g_BranchId = 0;
  28. this.g_BillingAddressId = 0;
  29. this.g_ShippingAddressId = 0;
  30. this.g_ShipFromAddressId = 0;
  31. this.g_BillFromAddressId = 0;
  32. this.g_Edit_OrderItemId = 0;
  33. this.g_Edit_OrderItemData = [];
  34. this.g_RefStatusId = 0;
  35. this.g_FocItems = [];
  36. this.g_VisibleContainerId = "";
  37. }
  38. init(formpropertyid, prop, callback) {
  39. let instance = this;
  40. instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
  41. instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
  42. }
  43. loadControl(containerid, prop) {
  44. let instance = this;
  45. instance.g_VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  46. let html = '<div class="col-sm-12 ItemsDiv">' +
  47. '<input type = "hidden" id = "hdn_customcontrol" class="value-control" value = "Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().getOrderItems();"' +
  48. '<div class="floating-label-form-group div_SearchItem">' +
  49. '<label for="lbl" id="lbl_ItemId" style="color:grey">Item Name</label>' +
  50. '<select id="txtAutoComplete_ItemId" class="form-control text-control txtAutoComplete_ItemId">Select</select>' +
  51. '<input type="hidden" id="hfAutoComplete_ItemId" class="form-control value-control" data-isdynamic="true"/>' +
  52. '</div>' +
  53. '</div>' +
  54. '<br/><div class="row" id="div_chkpieces"><div class="col-sm-3 hidden divselectall"><div class="custom-control custom-checkbox divselectall checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_AllItems"><label class="custom-control-label" for="chk_AllItems">Select All</label></div></div><div class="col-sm-4 div_chk_Packs hidden"><div class="custom-control custom-checkbox divEnablePacks checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_Packs"><label class="custom-control-label" for="chk_Packs">Enable Packs</label></div></div><div class="col-sm-4 div_chk_Pieces hidden"><div class="custom-control custom-checkbox divEnablePieces checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_Pieces"><label class="custom-control-label" for="chk_Pieces">Enable Pieces</label></div></div><div class="col-sm-4 hidden div_chk_CompositePrice"><div class="custom-control custom-checkbox checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_CompositePrice"><label class="custom-control-label" for="chk_CompositePrice">Enable Composite Price</label></div></div><div class="col-sm-4 hidden div_chk_PiecePrice"><div class="custom-control custom-checkbox checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_PiecePrice"><label class="custom-control-label" for="chk_PiecePrice">Enable Piece Price</label></div></div></div><br />';
  55. html += `<div class="row mt-20 div_chk_Qty" id="div_chk_Qty">
  56. <div class="col-sm-12">
  57. <div class="custom-control custom-checkbox divEnableQty checkbox-primary col-sm-3">
  58. <input type="checkbox" class="custom-control-input" id="chk_Qty">
  59. <label class="custom-control-label" for="chk_Qty"> Quantity </label>
  60. </div>
  61. </div>
  62. </div>`;
  63. html += '<div class="d-none d-md-block"><div class="row div_titledetails"><div class="col-sm-7 pl-80">Item Details</div><div class="col-sm-5 Inventory_Title text-center"><span id="spn_InventoryTitle" class="col-sm-5 ml-35">Quantity</span><span id="spn_picesTitle" class="col-sm-5 pull-right hidden"> Pieces</span></div></div></div><div class="mt-2" id="div_ItemList"></div>';
  64. $("#" + containerid).html(html);
  65. $("#" + containerid).find("#div_chkpieces").addClass("hidden");
  66. let jsFiles = ["apps/transact/enums/enum.js", "apps/transact/managers/orders/ordermanager.js", "apps/transact/controls/pricelist/managers/pricelistmanager.js", "apps/transact/controls/orders/order.component.js", "apps/transact/controls/orders/orderitems.component.js", "libs/jquery/pagination/jquery.pagination.js", "apps/transact/managers/offers/offermanager.js", "apps/transact/components/orders/orderfilter.js", "apps/transact/components/invoices/itemofferselection.js", "platform/core/helpers/numberhelper/numberhelper.js", "apps/transact/components/invoices/itemofferselection.js", "apps/transact/controls/invoices/invoiceitem.component.js", "apps/paybacks/managers/schememanager.js"];
  67. instance.fileCacheHelper.loadJsFiles(jsFiles, function () {
  68. instance._order.g_VisibleContainerId = instance.g_VisibleContainerId;
  69. let orderItemId = Number($("#" + instance.g_VisibleContainerId).find(".hdn_orderitemid").val());
  70. instance.setVariables();
  71. instance._order.checkPermissions();
  72. instance._order.getInventoryApplyType(instance.g_LobId, instance.g_BillingAddressId, instance.g_BranchId);
  73. instance._order.getOrderSettings(instance.g_LobId, instance.g_BillingAddressId, instance.g_BranchId);
  74. instance._orderItems.g_VisibleContainerId = instance.g_VisibleContainerId;
  75. instance._orderItems.itemSettings(true);
  76. if (orderItemId == 0) {
  77. instance.itemsAutoComplete();
  78. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").addClass("hidden");
  79. }
  80. instance.searchItemDesign();
  81. let orgId = instance._order.g_OrganizationId;
  82. instance._order.getPriceCodeDetails(orgId, instance._order.g_OrgContactId, instance.g_LobId);
  83. instance.itemChangeEvent();
  84. if (orderItemId != 0) {
  85. instance.edit(orderItemId);
  86. }
  87. });
  88. }
  89. loadControlSettings(controlsettingjson, formpropertyid) {
  90. return null;
  91. }
  92. loadPropertySettings(propertysettings, formpropertyid) {
  93. return null;
  94. }
  95. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  96. return null;
  97. }
  98. setVariables() {
  99. var instance = this;
  100. instance._orderItems = Bizgaze.Apps.Transact.Controls.OrderItems.Instance();
  101. instance._order._orderItems = Bizgaze.Apps.Transact.Controls.OrderItems.Instance();
  102. instance._orderItems.g_CartItems_New = [];
  103. instance._orderItems.g_SelectedItems = [];
  104. instance._orderItems.g_LoadedItems = [];
  105. instance._orderItems.g_ItemsUnitPrice_New = [];
  106. instance._orderItems.g_AppliedTaxGroups = [];
  107. instance._orderItems.g_ValidFocItems = [];
  108. instance.g_Edit_OrderItemId = 0;
  109. instance._orderItems.g_IsEnablePieces = false;
  110. instance._orderItems.g_IsEnablePiecePrice = false;
  111. instance._orderItems.g_IsEnableCompositePrice = false;
  112. instance._orderItems.g_IsEnableCompositePiecePrice = false;
  113. instance._order.g_IsSC_to_PC = false;
  114. instance.g_FocItems = [];
  115. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  116. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  117. instance.g_LobId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_lobid").Value);
  118. instance.g_ShipFromAddressId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_shipfromaddressid").Value);
  119. instance.g_ShippingAddressId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_shippingaddressid").Value);
  120. instance._order.g_OrganizationId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_organizationid").Value);
  121. instance._order.g_OrgContactId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_orgcontactid").Value);
  122. instance.g_BillingAddressId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_billingaddressid").Value);
  123. instance._order.g_OrderTypeId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_ordertypeid").Value);
  124. instance._order.g_OrderType = Bizgaze.Apps.Transact.Enums.OrderType[instance._order.g_OrderTypeId];
  125. instance._order.g_OrderId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_orderid").Value);
  126. instance.g_BranchId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_branchid").Value);
  127. var OrderDate = InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_orderdate").Value.toString();
  128. instance._orderItems.g_OfferApplyDate = $.datepicker.parseDate('dd/mm/yy', OrderDate);
  129. instance._orderItems.g_FromWidget = true;
  130. instance._orderItems.g_FromWidgetEditOrderItemId = 0;
  131. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getOrderDetails(instance._order.g_OrderId).then(function (ord_res) {
  132. if (ord_res.result != null) {
  133. instance._order.g_IsPointsOrder = ord_res.result.IsPointsOrder;
  134. if (instance._order.g_IsPointsOrder) {
  135. Bizgaze.Apps.Paybacks.Managers.SchemeManager.Instance().getloyaltypointsbycontactid(instance._order.g_OrganizationId).then(function (loy_res) {
  136. if (loy_res.result != null) {
  137. instance._order.g_LoyaltyPoints = loy_res.result.Points;
  138. }
  139. });
  140. }
  141. let UserId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  142. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getEmployeeLeverage(UserId, instance.g_LobId).then(function (emplev_res) {
  143. if (emplev_res.result != null) {
  144. instance._order.g_LeveragePercent = emplev_res.result.LeveragePercent;
  145. instance._order.g_IsLeverageApplied = true;
  146. }
  147. instance.g_BranchId = ord_res.result.BranchId;
  148. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim) {
  149. instance._orderItems.g_WarehouseId = instance.g_ShipFromAddressId;
  150. }
  151. else if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Purchase || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  152. instance._orderItems.g_WarehouseId = instance.g_ShippingAddressId;
  153. }
  154. if (instance._orderItems.g_WarehouseId == "null" || instance._orderItems.g_WarehouseId == null) {
  155. instance._orderItems.g_WarehouseId = Number(instance.g_BranchId);
  156. }
  157. });
  158. }
  159. });
  160. }
  161. searchItemDesign() {
  162. let instance = this;
  163. $("#" + instance.g_VisibleContainerId).find(".section_Item").after('<input type="hidden" id="hfInventoryApplyType" value="1" /> <input type="hidden" id="hfOrder_PriceCodeId" value="0" /><div class="hidden" id="div_ItemList"><ul class="variant-list list-group card" style="margin:0px -21px"><li class="row card-body"><div class="col-sm-12"><div class="row" id="div_chkpieces"><div class="col-sm-4 div_chk_Packs hidden"><div class="custom-control custom-checkbox divEnablePacks checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_Packs"><label class="custom-control-label" for="chk_Packs">Enable Packs</label></div></div><div class="col-sm-4 hidden"><div class="custom-control custom-checkbox divEnablePieces hidden checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_Pieces"><label class="custom-control-label" for="chk_Pieces">Enable Pieces</label></div></div><div class="col-sm-4 hidden"><div class="custom-control custom-checkbox checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_CompositePrice"><label class="custom-control-label" for="chk_CompositePrice">Enable Composite Price</label></div></div><div class="col-sm-4 hidden"><div class="custom-control custom-checkbox checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_PiecePrice"><label class="custom-control-label" for="chk_PiecePrice">Enable Piece Price</label></div></div></div></div></li><li class="variant-item hidden"></li></ul></div>');
  164. }
  165. getTags() {
  166. return __awaiter(this, void 0, void 0, function* () {
  167. let instance = this;
  168. let TagGroupId = Bizgaze.Apps.Transact.Controls.Order.Instance().g_TagGroupId;
  169. let OrganizationId = Bizgaze.Apps.Transact.Controls.Order.Instance().g_OrganizationId;
  170. Unibase.Platform.Forms.Managers.TagManager.Instance().GetTagsByRefId(OrganizationId, TagGroupId).then(function (response) {
  171. let data = response.result;
  172. let options = '';
  173. let tags = '';
  174. for (let i = 0; i < data.length; i++) {
  175. if (data[i] != undefined) {
  176. options += data[i].TagId + "|";
  177. }
  178. }
  179. if (options != '') {
  180. options = options.replace(/\|$/, '');
  181. tags = options;
  182. }
  183. if (tags != '') {
  184. tags = tags.replace(/\:$/, '');
  185. }
  186. instance.g_Tags = tags;
  187. });
  188. });
  189. }
  190. itemsAutoComplete() {
  191. return __awaiter(this, void 0, void 0, function* () {
  192. var instance = this;
  193. yield instance.getTags().then(function () {
  194. let userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  195. let sessionid = userinfo.sessionId;
  196. let postData = null;
  197. $("#" + instance.g_VisibleContainerId).find("#txtAutoComplete_ItemId").select2({
  198. placeholder: "Select",
  199. tags: false,
  200. allowClear: true,
  201. theme: "default select2ErrorClass",
  202. data: [],
  203. ajax: {
  204. url: function (request) {
  205. let reqUrl = _appsettings.server_url() + "/apis/v4/bizgaze/transact/items/itemsautocompletefororder";
  206. return reqUrl;
  207. },
  208. type: "POST",
  209. contentType: 'application/json',
  210. dataType: 'json',
  211. data: function (params) {
  212. let Term = params.term;
  213. sessionid = sessionid.replace('#', '');
  214. postData = {
  215. PriceCodeId: Number(instance._order.g_PriceCodeId),
  216. ContactId: instance.g_ContactId,
  217. ShippingAddressId: Number(instance.g_ShippingAddressId),
  218. BranchId: Number(instance.g_BranchId),
  219. WareHouseId: Number(instance._orderItems.g_WarehouseId),
  220. LobId: Number(instance.g_LobId),
  221. OrderType: instance._order.g_OrderTypeId,
  222. OfferOnly: false,
  223. IsExcise: false,
  224. SearchTerm: Term,
  225. Page: 0,
  226. IsCompositePrice: false,
  227. Rows: 10,
  228. ItemId: "0",
  229. CountryId: instance.g_CountryId,
  230. ItemGroupId: 0,
  231. Tags: instance.g_Tags,
  232. authToken: sessionid,
  233. term: Term,
  234. IsPoints: instance._order.g_IsPointsOrder
  235. };
  236. return JSON.stringify(postData);
  237. },
  238. beforeSend: function (xhr) {
  239. if (userinfo !== undefined && userinfo !== null) {
  240. xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId);
  241. xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId);
  242. }
  243. },
  244. processResults: function (data) {
  245. return {
  246. results: jQuery.map(JSON.parse(data.result), function (item) {
  247. return {
  248. id: item.Value,
  249. text: item.SelectText,
  250. addlInfo: item.addlData
  251. };
  252. })
  253. };
  254. },
  255. },
  256. });
  257. });
  258. });
  259. }
  260. itemChangeEvent() {
  261. var instance = this;
  262. $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_ItemId").change(function () {
  263. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").removeClass('hidden');
  264. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").removeClass('hidden');
  265. let SelectedItemId = $("#" + instance.g_VisibleContainerId).find(this).val();
  266. let ItemFound = false;
  267. const ItemIndex = instance._orderItems.g_CartItems_New.findIndex(x => x.ItemId == SelectedItemId);
  268. if (ItemIndex != -1) {
  269. ItemFound = true;
  270. }
  271. if (!ItemFound) {
  272. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#bulk_txt_SearchItem").val(), SelectedItemId, null);
  273. }
  274. $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_ItemId").text('');
  275. });
  276. }
  277. loadItems(searchtext, ItemId, OrderItems_res, OrderItemsEdit = false) {
  278. let instance = this;
  279. if (instance._orderItems.g_CartItems_New.length == 0) {
  280. instance._order.getInventoryApplyType(instance.g_LobId, instance.g_BillingAddressId, instance.g_BranchId, true);
  281. instance._order.getOrderSettings(instance.g_LobId, instance.g_BillingAddressId, instance.g_BranchId);
  282. }
  283. if (instance.g_ContactId == 0) {
  284. instance.g_ContactId = instance._order.g_OrganizationId;
  285. }
  286. if (ItemId == undefined || ItemId == "")
  287. ItemId = "undefined";
  288. if (searchtext == undefined || searchtext == "")
  289. searchtext = "null";
  290. let varianturl;
  291. instance.fileCacheHelper.loadJsFile("apps/transact/managers/inventory/itemmanager.js", function () {
  292. let postdata = {
  293. priceCodeId: Number(instance._order.g_PriceCodeId),
  294. contactId: instance.g_ContactId,
  295. ShippingAddressId: Number(instance.g_ShippingAddressId),
  296. BranchId: Number(instance.g_BranchId),
  297. WareHouseId: Number(instance._orderItems.g_WarehouseId),
  298. LobId: Number(instance.g_LobId),
  299. orderType: Bizgaze.Apps.Transact.Controls.Order.Instance().g_OrderTypeId,
  300. offerOnly: false,
  301. isExcise: false,
  302. query: searchtext,
  303. page: instance.g_PageIndex,
  304. IsCompositePrice: instance._orderItems.g_IsEnableCompositePrice,
  305. rows: 10,
  306. ItemId: ItemId.toString(),
  307. IsPoints: instance._order.g_IsPointsOrder,
  308. };
  309. varianturl = Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsForOrder(postdata);
  310. varianturl.then(function (response) {
  311. if (response.result.length > 0) {
  312. response.result.forEach(x => {
  313. let LoadedItem_Index = instance._orderItems.g_LoadedItems.findIndex(z => z.ItemId == x.ItemId);
  314. if (LoadedItem_Index == -1) {
  315. instance._orderItems.g_LoadedItems.push(x);
  316. }
  317. else {
  318. instance._orderItems.g_LoadedItems[LoadedItem_Index].TaxPercentList = x.TaxPercentList;
  319. }
  320. });
  321. instance.bindItemList(OrderItems_res, ItemId);
  322. $("#" + instance.g_VisibleContainerId).find('#lblItemTotalRecords').text(response.result.length);
  323. if (instance._orderItems.g_CartItems_New.length > 10) {
  324. let elem = $("#" + instance.g_VisibleContainerId).find('#ItemsListPagination');
  325. elem.pagination(response.result.length, 10, {
  326. items_per_page: 10,
  327. callback: function (page, component) {
  328. instance.g_PageIndex = page;
  329. instance.loadItems(searchtext, response.result.ItemId, response.result);
  330. }, current_page: instance.g_PageIndex
  331. });
  332. }
  333. }
  334. else
  335. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="margin:0px -21px"><li class="variant-item"><div class="text-center">Items not found.</div></li></ul>');
  336. });
  337. });
  338. }
  339. bindItemList(OrderItems_res, ItemId) {
  340. let instance = this;
  341. $("#" + instance.g_VisibleContainerId).find(".orderItemspage").removeClass("hidden");
  342. $("#" + instance.g_VisibleContainerId).find("#div_chkpieces").removeClass("hidden");
  343. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").append('<ul class="variant-list list-group" style="margin:0px -21px"><li class="variant-item hidden"></li>');
  344. if (OrderItems_res != null) {
  345. if (ItemId == "" || ItemId == "undefined" || ItemId == null) {
  346. ItemId = OrderItems_res.ItemId;
  347. }
  348. instance._order.setInventorySettings(instance._order.g_InventoryApplyType, false, true);
  349. if (OrderItems_res.Pieces > 0 && instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  350. instance._orderItems.g_IsEnablePieces = true;
  351. $("#" + instance.g_VisibleContainerId).find("#chk_Pieces").prop("checked", true);
  352. $("#" + instance.g_VisibleContainerId).find("#chk_Pieces").prop("disabled", true);
  353. }
  354. if (OrderItems_res.Packs > 0 && instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
  355. instance._orderItems.g_IsEnablePacks = true;
  356. $("#" + instance.g_VisibleContainerId).find("#chk_Packs").prop("checked", true);
  357. $("#" + instance.g_VisibleContainerId).find("#chk_Packs").prop("disabled", true);
  358. }
  359. }
  360. let SelectedItem = instance._orderItems.g_LoadedItems.find(x => x.ItemId == ItemId);
  361. let html = instance._orderItems.getItemDesign(SelectedItem, true);
  362. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(html);
  363. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  364. if (instance.g_Edit_OrderItemId != 0) {
  365. instance.editOrderItem(OrderItems_res);
  366. instance._orderItems.checkOffers(true, "FromWidget");
  367. $("#" + instance.g_VisibleContainerId).find(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
  368. }
  369. else {
  370. instance._orderItems.allItemEvents(elem);
  371. }
  372. }
  373. edit(orderItemId) {
  374. var instance = this;
  375. instance.g_Edit_OrderItemId = orderItemId;
  376. instance._orderItems.g_FromWidgetEditOrderItemId = orderItemId;
  377. if (instance.g_Edit_OrderItemId > 0) {
  378. $(".section_Items").after(`<div class="card"><div class="card-header"> Description </div> <div class="col-sm-12 ma-10 mt-20 mb-50"><div class="input-group descriptionFloatLabels"><textarea id="txt_Description" class="type-control value-control floating-label-control" rows="5" style="width:100%;" placeholder="Enter Description" data-placeholder="Enter Description" data-label="Enter Description" data-regularexp="" data-validatemsg=""></textarea></div></div> </div>`);
  379. }
  380. $("#" + instance.g_VisibleContainerId).find(".ItemsDiv").addClass("hidden");
  381. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  382. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getOrderItemsDetails(orderItemId).then(function (response) {
  383. let data = response.result;
  384. instance.g_Edit_OrderItemData = data;
  385. instance._order.g_IsTaxInclusive = data.IsTaxInclusive;
  386. if (response.result.FocItems != null && response.result.FocItems != "") {
  387. let FocItems = response.result.FocItems.split(",");
  388. for (let f = 0; f < FocItems.length; f++) {
  389. let FocInfo = FocItems[f].split(":");
  390. let OrderItemId = Number(FocInfo[0]);
  391. let ItemId = Number(FocInfo[1]);
  392. instance.g_FocItems.push({ OrderItemId: OrderItemId, ItemId: ItemId });
  393. instance._orderItems.g_ValidFocItems.push({ ItemId: ItemId, RefItemIds: data.ItemId });
  394. }
  395. }
  396. if (data.PriceTypeId == Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice) {
  397. instance._orderItems.g_IsEnablePiecePrice = true;
  398. instance._orderItems.g_IsEnableCompositePiecePrice = false;
  399. instance._orderItems.g_IsEnableCompositePrice = false;
  400. }
  401. else if (data.PriceTypeId == Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice) {
  402. instance._orderItems.g_IsEnablePiecePrice = false;
  403. instance._orderItems.g_IsEnableCompositePiecePrice = false;
  404. instance._orderItems.g_IsEnableCompositePrice = true;
  405. }
  406. else if (data.PriceTypeId == Bizgaze.Apps.Transact.Enums.PriceType.Both) {
  407. instance._orderItems.g_IsEnablePiecePrice = false;
  408. instance._orderItems.g_IsEnableCompositePiecePrice = true;
  409. instance._orderItems.g_IsEnableCompositePrice = false;
  410. }
  411. else {
  412. instance._orderItems.g_IsEnablePiecePrice = false;
  413. instance._orderItems.g_IsEnableCompositePiecePrice = false;
  414. instance._orderItems.g_IsEnableCompositePrice = false;
  415. }
  416. instance.loadItems(null, data.ItemId, data, true);
  417. });
  418. });
  419. }
  420. editOrderItem(OrderItems_res) {
  421. let instance = this;
  422. let data = OrderItems_res;
  423. let LoadedItem = instance._orderItems.g_LoadedItems.find(x => x.ItemId == data.ItemId);
  424. LoadedItem.UnitPrice = data.UnitPrice;
  425. let Amount = 0, UnitPrice = data.UnitPrice, BaseQty = 0, DiscountAmount = 0, AfterDiscountValue = 0, TaxRateAmount = 0, IsTaxError = false, optoutAmount = 0, TaxAmount = 0;
  426. let DiscountType = data.DiscountPercent != 0 ? 1 : 2;
  427. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + data.ItemId);
  428. if (DiscountType == 1) {
  429. DiscountAmount = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) * Number(LoadedItem.DiscountPercent / 100);
  430. AfterDiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) - Number(DiscountAmount);
  431. }
  432. else if (DiscountType == 2) {
  433. DiscountAmount = LoadedItem.DiscountValue;
  434. AfterDiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) - LoadedItem.DiscountValue;
  435. }
  436. let Items_up = instance._orderItems.g_ItemsUnitPrice_New.find(x => x.ItemId == data.ItemId);
  437. Items_up.UnitPrice = UnitPrice;
  438. if (Items_up.length == 0) {
  439. instance._orderItems.g_ItemsUnitPrice_New.push({
  440. ItemId: data.ItemId,
  441. UnitPrice: UnitPrice,
  442. TaxRateAmount: 0
  443. });
  444. }
  445. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  446. BaseQty = Number(data.Quantity);
  447. }
  448. else {
  449. if (instance._orderItems.g_IsEnablePiecePrice) {
  450. BaseQty = Number(LoadedItem.PackCount) * Number(data.Packs);
  451. }
  452. else {
  453. BaseQty = Number(LoadedItem.PackCount) * Number(LoadedItem.PackSize) * Number(data.Packs) + (data.Pieces * LoadedItem.PackSize);
  454. }
  455. }
  456. if (instance._orderItems.g_IsEnableCompositePiecePrice) {
  457. Amount = (UnitPrice * Number(BaseQty)) + Number(LoadedItem.TaxRate);
  458. if (Number(BaseQty) == 0)
  459. Amount = 0;
  460. UnitPrice = LoadedItem.CompositePiecePrice;
  461. $("#" + instance.g_VisibleContainerId).find("#chk_PiecePrice").prop("checked", true);
  462. $("#" + instance.g_VisibleContainerId).find("#chk_CompositePrice").prop("checked", true);
  463. }
  464. else if (instance._orderItems.g_IsEnableCompositePrice) {
  465. let amnt = Number(UnitPrice) * Number(LoadedItem.TaxPercentage) / 100;
  466. TaxRateAmount = Number(UnitPrice) + Number(amnt);
  467. Amount = Number(BaseQty) * TaxRateAmount;
  468. UnitPrice = LoadedItem.CompositePrice;
  469. $("#" + instance.g_VisibleContainerId).find("#chk_PiecePrice").prop("checked", false);
  470. $("#" + instance.g_VisibleContainerId).find("#chk_CompositePrice").prop("checked", true);
  471. }
  472. else if (instance._orderItems.g_IsEnablePiecePrice) {
  473. Amount = Number(BaseQty) * UnitPrice;
  474. UnitPrice = LoadedItem.PiecePrice;
  475. $("#" + instance.g_VisibleContainerId).find("#chk_PiecePrice").prop("checked", true);
  476. $("#" + instance.g_VisibleContainerId).find("#chk_CompositePrice").prop("checked", false);
  477. }
  478. else {
  479. Amount = Number(BaseQty) * UnitPrice;
  480. }
  481. Items_up.TaxRateAmount = TaxRateAmount;
  482. let AssessableAmount = Number(Amount);
  483. let DiscAmount = Number((Amount * data.DiscountPercent) / 100) + (Number(data.DiscountValue) * Number(BaseQty));
  484. let discAmt = DiscAmount + Number(optoutAmount);
  485. AssessableAmount = Number(AssessableAmount) - Number(discAmt);
  486. let AmountWithDiscount = Number(Amount) - Number(DiscAmount);
  487. let StrTaxPercents = "";
  488. if (instance._order.g_IsCalculateTax) {
  489. if (LoadedItem.TaxGroupId == 0) {
  490. IsTaxError = true;
  491. }
  492. else {
  493. for (let p = 0; p < LoadedItem.TaxPercentList.length; p++) {
  494. let percen = LoadedItem.TaxPercentList[p];
  495. let tax = AssessableAmount * percen.Percentage / 100;
  496. TaxAmount += tax;
  497. }
  498. StrTaxPercents = LoadedItem.strTaxPercents;
  499. instance._orderItems.getPriceTypeValues(data.ItemId);
  500. if (instance._orderItems.g_IsEnablePiecePrice) {
  501. UnitPrice = LoadedItem.PiecePrice;
  502. }
  503. if (instance._orderItems.g_IsEnableCompositePrice) {
  504. UnitPrice = LoadedItem.CompositePrice;
  505. }
  506. if (instance._orderItems.g_IsEnableCompositePiecePrice) {
  507. UnitPrice = LoadedItem.CompositePiecePrice;
  508. }
  509. }
  510. }
  511. let Quantity = 0;
  512. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  513. Quantity = data.Quantity;
  514. data.Packs = Quantity;
  515. }
  516. else {
  517. Quantity = ((LoadedItem.PackCount * LoadedItem.PackSize) * data.Packs) + (data.Pieces * LoadedItem.PackSize);
  518. }
  519. let IsPacksFocus = false, IsPiecesFocus = false;
  520. let FocusTxt = instance._orderItems.getDefaultFocusbyInventory(instance._order.g_InventoryApplyType, false);
  521. if (FocusTxt == "Packs") {
  522. IsPacksFocus = true;
  523. }
  524. else {
  525. IsPiecesFocus = true;
  526. }
  527. if (data.Packs == 0 && data.Pieces > 0) {
  528. IsPacksFocus = false;
  529. IsPiecesFocus = true;
  530. }
  531. let ItemIndex = instance._orderItems.g_CartItems_New.length + 1;
  532. instance._orderItems.g_CartItems_New.push({
  533. OrderItemId: data.OrderItemId,
  534. ItemIndex: ItemIndex,
  535. ItemId: data.ItemId,
  536. ParentItemId: 0,
  537. ItemName: LoadedItem.ItemName,
  538. Packs: data.Packs,
  539. Pieces: data.Pieces,
  540. PriceListId: data.PriceListId,
  541. PriceListName: data.PriceListName,
  542. UnitPrice: UnitPrice,
  543. UnitPriceWithOutTax: data.UnitPrice,
  544. ExpectedPrice: data.UnitPrice,
  545. ActualPrice: data.UnitPrice,
  546. PackCount: LoadedItem.PackCount,
  547. PackSize: LoadedItem.PackSize,
  548. UnitName: LoadedItem.UnitName,
  549. Quantity: Quantity,
  550. SKU: LoadedItem.SKU,
  551. PartNo: LoadedItem.PartNo,
  552. Amount: Amount,
  553. AmountWithDiscount: AmountWithDiscount,
  554. DiscountPercent: data.DiscountPercent,
  555. DiscountValue: data.DiscountValue,
  556. DiscountType: DiscountType,
  557. DiscountAmount: DiscountAmount,
  558. ItemValueAfterDiscount: AfterDiscountValue,
  559. StrTaxPercents: StrTaxPercents,
  560. AvailableQuantity: LoadedItem.AvailableQuantity,
  561. AvailablePacks: LoadedItem.AvailablePacks,
  562. AvailablePieces: LoadedItem.AvailablePieces,
  563. TotalAvailablePieces: LoadedItem.TotalAvailablePieces,
  564. ExchangeDC: data.ExchangeDC,
  565. IsAfterTax: data.IsAfterTax,
  566. BaseQty: data.Quantity,
  567. IsFocItem: data.IsFoc,
  568. optoutAmount: optoutAmount,
  569. TaxGroupId: LoadedItem.TaxGroupId,
  570. TaxGroupName: LoadedItem.TaxGroupName,
  571. TaxAmount: TaxAmount,
  572. TaxRateAmount: LoadedItem.TaxRateAmount,
  573. TaxRate: LoadedItem.TaxRate,
  574. TaxPercentage: LoadedItem.TaxPercentage,
  575. IsOfferAvailable: LoadedItem.IsOfferAvailable,
  576. Description: data.Description == undefined ? "" : data.Description,
  577. Discountable: LoadedItem.Discountable,
  578. PiecePrice: LoadedItem.PiecePrice,
  579. CompositePrice: LoadedItem.CompositePrice,
  580. CompositePiecePrice: LoadedItem.CompositePiecePrice,
  581. IsCheckPendingItems: true,
  582. IsError: false,
  583. ErrorMsg: "",
  584. ErrorClass: "text-danger",
  585. IsTaxError: IsTaxError,
  586. IsLeverageError: false,
  587. IsFocAdded: false,
  588. RefOrderItemId: 0,
  589. RefItemIds: "",
  590. RefItemSKUs: "",
  591. FocItemIds: "",
  592. DiscountGroupId: 0,
  593. IsOfferDiscountApplied: false,
  594. AppliedOfferVolume: 0,
  595. AppliedPlanVolumeId: 0,
  596. AppliedOfferId: 0,
  597. optoutOfferGroupId: 0,
  598. SuggestedPacks: 0,
  599. MinPacks: 0,
  600. AvgPacks: 0,
  601. InwardOrderPacks: 0,
  602. OutwardOrderPacks: 0,
  603. UOMs: LoadedItem.UOMs,
  604. IsManualUOM: LoadedItem.IsManualUOM,
  605. IsMultipleUOMs: LoadedItem.IsMultipleUOMs,
  606. UOMSchemaId: LoadedItem.UOMSchemaId,
  607. MultipleUOMs: LoadedItem.MultipleUOMs,
  608. SelectedUnitId: data.AlternateUnitId,
  609. SelectedUnitName: LoadedItem.UnitName,
  610. DefaultSize: data.DefaultSize,
  611. IsBoMAvailable: LoadedItem.IsBoMAvailable,
  612. IsSpecialPrice: LoadedItem.IsSpecialPrice,
  613. ConversionQuantity: data.ConversionQuantity,
  614. HSNId: data.HSNId,
  615. RowTotal: 0,
  616. RowDiscount: 0,
  617. TaxTotal: 0,
  618. IsPacksFocus: IsPacksFocus,
  619. IsPiecesFocus: IsPiecesFocus,
  620. CategoryName: ""
  621. });
  622. instance._orderItems.g_SelectedItems = [...instance._orderItems.g_CartItems_New];
  623. instance._orderItems.updateItemsDesign(elem, "FromWidget");
  624. instance._orderItems.updateItemsArray(elem, "FromWidget", true);
  625. }
  626. getOrderItems() {
  627. let instance = this;
  628. let ItemList = instance._orderItems.getOrderItems(instance._order.g_OrderId);
  629. if (instance._orderItems.g_CartItems_New.length == 0 && $("#" + instance.g_VisibleContainerId).find(".variant-addeditem").length
  630. == 0) {
  631. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Please Select Item");
  632. return false;
  633. }
  634. let cartItem_WithZeroQuantity = instance._orderItems.g_CartItems_New.filter(x => x.Quantity == 0);
  635. let InventoryTitle = $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text();
  636. if ($("#" + instance.g_VisibleContainerId).find(".variant-list").find(".list-group-item").length > instance._orderItems.g_CartItems_New.length) {
  637. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Please Select " + InventoryTitle);
  638. return false;
  639. }
  640. else if (cartItem_WithZeroQuantity.length > 0) {
  641. Unibase.Platform.Forms.Components.FormViewer.Instance().showError(InventoryTitle + " can't be zero");
  642. return false;
  643. }
  644. else {
  645. return ItemList;
  646. }
  647. }
  648. static Instance() {
  649. if (this.instance === undefined) {
  650. this.instance = new AddOrderItems();
  651. }
  652. return this.instance;
  653. }
  654. }
  655. Controls.AddOrderItems = AddOrderItems;
  656. })(Controls = Transact.Controls || (Transact.Controls = {}));
  657. })(Transact = Apps.Transact || (Apps.Transact = {}));
  658. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  659. })(Bizgaze || (Bizgaze = {}));