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.

w_generatepurchaseplan.js 77KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998
  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 Components;
  17. (function (Components) {
  18. class PurchasePlan extends Unibase.Platform.Core.BaseComponent {
  19. constructor() {
  20. super();
  21. this.orderid = 0;
  22. this.EstimateId = 0;
  23. this.VisibleContainerId = "";
  24. this.IsLoadDetailsFromList = false;
  25. }
  26. cssFiles() {
  27. return [];
  28. }
  29. jsFiles() {
  30. return ['apps/transact/managers/orders/ordermanager.js', 'apps/transact/controls/orders/order.component.js', 'apps/transact/controls/orders/orderitems.component.js', 'platform/forms/components/formviewer/formviewer.js'
  31. ];
  32. }
  33. html(id, containerid) {
  34. let instance = this;
  35. instance.VisibleContainerId = containerid;
  36. var html = `<div class="col-sm-12 card-body card"> <div class="row">
  37. <div id="divSectionProperties_GenerateForAllBranches" class="divSectionProperties col-sm-6 mb-10">
  38. <div class="custom-control custom-checkbox">
  39. <input type="checkbox" class="custom-control-input" id="chkSection_GenerateForAllBranches_` + instance.VisibleContainerId + `" name="Generate For All Branches">
  40. <label class="custom-control-label" for="chkSection_GenerateForAllBranches_` + instance.VisibleContainerId + `" id="lblCheckBoxSection_GenerateForAllBranches">Generate For All Branches</label>
  41. </div>
  42. </div>
  43. <div id="divSectionProperties_Apply" class="divSectionProperties col-sm-6 mt-10" data-size="6" data-propertyname="Apply">
  44. <a id="btnSection_Apply" class="btn btn-primary mt-20 text-white pull-right Apply btn-sm disabled" style="pointer-events: none;">Apply</a>
  45. </div>
  46. <div id="divCustomProperties_CompanyId" class="control-group divCustomProperties divCustomProperties_CompanyId col-sm-6">
  47. <div id="div_CompanyId" class="floating-label-form-group-with-value floating-validate" style="border-bottom:0;">
  48. <label for="lbl" id="lbl_CompanyId">Company Name<span class="text-danger hide hidden" id="spnIsRequired_CompanyId"> *</span></label>
  49. <select id="select2_CompanyId_` + instance.VisibleContainerId + `" class="value-control form-control text-control select2_CompanyId_` + instance.VisibleContainerId + `" multiple="" style="width: 100%; border-color: rgb(255, 255, 255);"> </select>
  50. <input type="hidden" id="hfAutoComplete_Company_` + instance.VisibleContainerId + `" class="hfAutoComplete_Company_` + instance.VisibleContainerId + `' form-control value-control" data-isdynamic="true"/>
  51. </div>
  52. </div>
  53. <div id="divCustomProperties_BranchId" class="control-group divCustomProperties divCustomProperties_BranchId col-sm-6">
  54. <div id="div_BranchId" class="floating-label-form-group-with-value floating-validate" style="border-bottom:0;">
  55. <label for="lbl" id="lbl_BranchId">Branch Name<span class="text-danger hide hidden" id="spnIsRequired_BranchId"> *</span></label>
  56. <select id="select2_BranchId_` + instance.VisibleContainerId + `" class="value-control form-control text-control select2_BranchId_` + instance.VisibleContainerId + `" multiple="" style="width: 100%; border-color: rgb(255, 255, 255);"> </select>
  57. <input type="hidden" id="hfAutoComplete_Branch_` + instance.VisibleContainerId + `" class="hfAutoComplete_Branch_` + instance.VisibleContainerId + ` form-control value-control" data-isdynamic="true"/>
  58. </div>
  59. </div>
  60. </div>
  61. </div>`;
  62. $("." + containerid).html(html);
  63. return "";
  64. }
  65. init(containerid) {
  66. var instance = this;
  67. var id = 0;
  68. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  69. for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
  70. if (obj.Key === "hf_" + InstalledAppId + "_recordid") {
  71. id = Number(obj.Value.toString());
  72. }
  73. }
  74. instance.load(id, containerid, null);
  75. if (instance.VisibleContainerId == "") {
  76. instance.VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  77. }
  78. }
  79. load(id, containerid, callback) {
  80. var instance = this;
  81. instance.fileCacheHelper.loadJsFiles(['apps/transact/managers/orders/ordermanager.js', 'apps/transact/controls/orders/order.component.js', 'apps/transact/controls/orders/orderitems.component.js', 'platform/forms/components/formviewer/formviewer.js', 'apps/transact/managers/estimates/estimatemanager.js', "platform/core/helpers/numberhelper/numberhelper.js"], function () {
  82. instance._orderManager = Bizgaze.Apps.Transact.Managers.OrderManager.Instance();
  83. instance._orderItems = Bizgaze.Apps.Transact.Controls.OrderItems.Instance();
  84. instance._order = Bizgaze.Apps.Transact.Controls.Order.Instance();
  85. instance.html(id, containerid);
  86. instance.orderid = Number(id);
  87. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  88. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  89. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  90. instance.EstimateId = EstimateId;
  91. instance.fileCacheHelper.loadJsFile("apps/transact/managers/estimates/estimatemanager.js", function () {
  92. Bizgaze.Apps.Transact.Managers.EstimateManager.Instance().getEstimate(EstimateId).then(function (response) {
  93. return __awaiter(this, void 0, void 0, function* () {
  94. let data = response.result;
  95. let BranchIds = data.BranchIds;
  96. let BranchNames = data.BranchIds_Text;
  97. let CompanyIds = data.CompanyIds;
  98. let CompanyNames = data.CompanyIds_Text;
  99. let IsGenerateForAllBranches = data.IsGenerateForAllBranches;
  100. let VisibleContainerId = instance.VisibleContainerId;
  101. $("#" + VisibleContainerId).find("#btnSection_Apply").addClass("text-white");
  102. $("#" + VisibleContainerId).find(".btnSection_GeneratePurchasePlan").removeClass("mt-20").addClass('btn text-white');
  103. $("#" + VisibleContainerId).find("#divSectionProperties_MoreOptions").removeClass('mt-10').addClass("mt-30");
  104. let url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/companies/getcompaniesAutoComplete';
  105. AutoCompleteHelper.getHelper().Create("#select2_CompanyId_" + instance.VisibleContainerId, "#hfAutoComplete_Company_" + instance.VisibleContainerId, url, null);
  106. let Comp_Ids = "0";
  107. var Company_Ids = [];
  108. var Company_Names = [];
  109. var Branch_Ids = [];
  110. var Branch_Names = [];
  111. if (CompanyIds != "" && CompanyIds != null && CompanyIds != "0") {
  112. Comp_Ids = CompanyIds.replace("|", ",");
  113. Company_Ids = CompanyIds.split("|");
  114. Company_Names = CompanyNames.split("|");
  115. }
  116. url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/companies/getbranchesbycompaniesAutoComplete/companyids/' + Comp_Ids;
  117. AutoCompleteHelper.getHelper().Create("#select2_BranchId_" + instance.VisibleContainerId, "#hfAutoComplete_Branch_" + instance.VisibleContainerId, url, null);
  118. if (BranchIds != "" && BranchIds != null && BranchIds != "0") {
  119. Branch_Ids = BranchIds.split("|");
  120. Branch_Names = BranchNames.split("|");
  121. }
  122. if (CompanyIds == "" || CompanyIds == null && CompanyIds != "0") {
  123. $("#" + VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).val(null).trigger('change');
  124. }
  125. else {
  126. for (let c = 0; c < Company_Ids.length; c++) {
  127. var company_option = new Option(Company_Names[c], Company_Ids[c], true, true);
  128. $("#" + VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).append(company_option).trigger('change');
  129. }
  130. }
  131. if (BranchIds == "" || BranchIds == null && BranchIds != "0") {
  132. $("#" + VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).val(null).trigger('change');
  133. }
  134. else {
  135. for (let b = 0; b < Branch_Ids.length; b++) {
  136. var branch_option = new Option(Branch_Names[b], Branch_Ids[b], true, true);
  137. $("#" + VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).append(branch_option).trigger('change');
  138. }
  139. }
  140. if (IsGenerateForAllBranches) {
  141. $("#" + VisibleContainerId).find("#chkSection_GenerateForAllBranches_" + instance.VisibleContainerId).prop("checked", true);
  142. $("#" + VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).val(null).trigger('change');
  143. $("#" + VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).val(null).trigger('change');
  144. $("#" + VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).prop('disabled', true);
  145. $("#" + VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).prop('disabled', true);
  146. }
  147. instance.DisableOrEnableApplyButton();
  148. instance.purchasePlanEvents();
  149. });
  150. });
  151. });
  152. });
  153. }
  154. purchasePlanEvents() {
  155. var instance = this;
  156. $("#" + instance.VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).change(function () {
  157. let Ids = instance.getCompanyIds();
  158. if (Ids == "") {
  159. Ids = "0";
  160. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).prop('disabled', true);
  161. }
  162. else {
  163. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).removeAttr('disabled');
  164. }
  165. let url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/companies/getbranchesbycompaniesAutoComplete/companyids/' + Ids;
  166. AutoCompleteHelper.getHelper().Create("#select2_BranchId_" + instance.VisibleContainerId, "#hfAutoComplete_Branch_" + instance.VisibleContainerId, url, null);
  167. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).val('').trigger("change");
  168. instance.DisableOrEnableApplyButton();
  169. });
  170. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).change(function () {
  171. instance.DisableOrEnableApplyButton();
  172. });
  173. $("#" + instance.VisibleContainerId).find("#btnSection_Apply").unbind().click(function () {
  174. let IsGenerateForAllBranches = $('#chkSection_GenerateForAllBranches_' + instance.VisibleContainerId).prop("checked");
  175. let CompanyIds = "";
  176. let CompanyNames = "";
  177. let Company_Ids = $("#select2_CompanyId_" + instance.VisibleContainerId).select2('data');
  178. for (let c = 0; c < Company_Ids.length; c++) {
  179. CompanyIds = CompanyIds.concat(Company_Ids[c].id, "|");
  180. CompanyNames = CompanyNames.concat(Company_Ids[c].text, "|");
  181. }
  182. let BranchIds = "";
  183. let BranchNames = "";
  184. let Branch_Ids = $("#select2_BranchId_" + instance.VisibleContainerId).select2('data');
  185. for (let c = 0; c < Branch_Ids.length; c++) {
  186. BranchIds = BranchIds.concat(Branch_Ids[c].id, "|");
  187. BranchNames = BranchNames.concat(Branch_Ids[c].text, "|");
  188. }
  189. BranchIds = BranchIds.substring(0, BranchIds.length - 1);
  190. BranchNames = BranchNames.substring(0, BranchNames.length - 1);
  191. CompanyIds = CompanyIds.substring(0, CompanyIds.length - 1);
  192. CompanyNames = CompanyNames.substring(0, CompanyNames.length - 1);
  193. let postData = {
  194. EstimateId: instance.EstimateId,
  195. BranchIds: BranchIds,
  196. CompanyIds: CompanyIds,
  197. BranchNames: BranchNames,
  198. CompanyNames: CompanyNames,
  199. IsGenerateForAllBranches: IsGenerateForAllBranches
  200. };
  201. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  202. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().updatePurchasePlanDetails(postData).then(function (response) {
  203. return __awaiter(this, void 0, void 0, function* () {
  204. if (response.errors == null) {
  205. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  206. var panel = "#" + detailInstance._containerId;
  207. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  208. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  209. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  210. instance.IsLoadDetailsFromList = false;
  211. detailInstance.loadAppDefaultWidget(obj, panel, detailInstance._containerId, function () {
  212. detailInstance.loadDefaultWidgets(obj._installedAppId, panel);
  213. detailInstance.LoadApprovals(obj._recordId, obj._installedAppId);
  214. });
  215. MessageHelper.Instance().showSuccess(response.message, "");
  216. }
  217. else {
  218. MessageHelper.Instance().showError(response.message, "div_message");
  219. }
  220. });
  221. });
  222. });
  223. });
  224. $("#" + instance.VisibleContainerId).find('#chkSection_GenerateForAllBranches_' + instance.VisibleContainerId).click(function () {
  225. if ($("#" + instance.VisibleContainerId).find('#chkSection_GenerateForAllBranches_' + instance.VisibleContainerId).is(':checked')) {
  226. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).val(null).trigger('change');
  227. $("#" + instance.VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).val(null).trigger('change');
  228. $("#" + instance.VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).prop('disabled', true);
  229. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).prop('disabled', true);
  230. }
  231. else {
  232. $("#" + instance.VisibleContainerId).find("#select2_CompanyId_" + instance.VisibleContainerId).removeAttr('disabled');
  233. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).removeAttr('disabled');
  234. }
  235. let CompanyIds = instance.getCompanyIds();
  236. if (CompanyIds == "") {
  237. $("#" + instance.VisibleContainerId).find("#select2_BranchId_" + instance.VisibleContainerId).prop('disabled', true);
  238. }
  239. instance.DisableOrEnableApplyButton();
  240. });
  241. }
  242. DisableOrEnableApplyButton() {
  243. let instance = this;
  244. let CompanyIds = instance.getCompanyIds();
  245. let BranchIds = instance.getBranchIds();
  246. if ((CompanyIds == "" || BranchIds == "") && !$("#" + instance.VisibleContainerId).find('#chkSection_GenerateForAllBranches_' + instance.VisibleContainerId).is(':checked')) {
  247. $("#" + instance.VisibleContainerId).find("#btnSection_Apply").addClass("disabled").css("cursor", "not-allowed");
  248. }
  249. else {
  250. $("#" + instance.VisibleContainerId).find("#btnSection_Apply").removeClass("disabled").removeAttr("style");
  251. }
  252. }
  253. savePurchasePlanItems(searchtext) {
  254. let instance = this;
  255. instance._order.g_PendingItemsSortBy = 0;
  256. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  257. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  258. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  259. instance.fileCacheHelper.loadJsFile("apps/transact/managers/estimates/estimatemanager.js", function () {
  260. Bizgaze.Apps.Transact.Managers.EstimateManager.Instance().getEstimate(EstimateId).then(function (response) {
  261. return __awaiter(this, void 0, void 0, function* () {
  262. let data = response.result;
  263. let BranchIds = Bizgaze.Apps.Transact.Components.PurchasePlan.Instance().getBranchIds();
  264. let CompanyIds = Bizgaze.Apps.Transact.Components.PurchasePlan.Instance().getCompanyIds();
  265. let LobId = Number(data.LobId);
  266. let ShippingAddressId = Number(data.ShippingAddressId);
  267. let ShipFromAddressId = Number(data.ShipFromAddressId);
  268. let BillingAddressId = Number(data.BillingAddressId);
  269. let OrganizationId = Number(data.OrganizationId);
  270. let contactId = OrganizationId;
  271. if (contactId == undefined || contactId == 0)
  272. contactId = 0;
  273. let CompositePrice = false;
  274. if ($('#chk_CompositePrice').is(':checked')) {
  275. CompositePrice = true;
  276. }
  277. let Postdata = {
  278. BranchIds: BranchIds,
  279. ContactId: Number(OrganizationId),
  280. LobId: LobId,
  281. CompanyIds: CompanyIds,
  282. SortBy: Number(instance._order.g_PendingItemsSortBy),
  283. Page: Number(0),
  284. Rows: 0,
  285. InventoryApplyType: instance._order.g_InventoryApplyType,
  286. Query: searchtext,
  287. OfferOnly: instance._order.g_LoadOffersOnly,
  288. IsComposite: CompositePrice,
  289. BranchId: Number(BillingAddressId),
  290. ShippingAddressId: Number(ShipFromAddressId),
  291. WareHouseId: Number(ShippingAddressId),
  292. EstimateId: EstimateId,
  293. OrderTypeId: data.EstimateTypeId
  294. };
  295. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().predictPurchasePlan(Postdata).then(function (response) {
  296. var data = response;
  297. if (response.errors == null) {
  298. MessageHelper.Instance().showSuccess(data.message, "");
  299. }
  300. else {
  301. MessageHelper.Instance().showError(response.message, "div_message");
  302. }
  303. });
  304. });
  305. });
  306. });
  307. }
  308. preditPurchasePlan_proc() {
  309. let instance = this;
  310. instance._order.g_PendingItemsSortBy = 0;
  311. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  312. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  313. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  314. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  315. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().predictPurchasePlan_proc(EstimateId).then(function (response) {
  316. var data = response;
  317. if (response.errors == null) {
  318. MessageHelper.Instance().showSuccess(data.message, "");
  319. }
  320. else {
  321. MessageHelper.Instance().showError(response.message, "div_message");
  322. }
  323. });
  324. });
  325. }
  326. refreshPurchasePlanCalculations_proc() {
  327. let instance = this;
  328. instance._order.g_PendingItemsSortBy = 0;
  329. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  330. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  331. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  332. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  333. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().refreshPurchasePlanCalculations_proc(EstimateId, 0).then(function (response) {
  334. var data = response;
  335. if (response.errors == null) {
  336. MessageHelper.Instance().showSuccess(data.message, "");
  337. }
  338. else {
  339. MessageHelper.Instance().showError(response.message, "div_message");
  340. }
  341. });
  342. });
  343. }
  344. ShowPurchasePlanCalculations(ItemId, Tenant_Id, Branch_Id) {
  345. let instance = this;
  346. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  347. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  348. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  349. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  350. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getPurchasePlanCalculations(EstimateId, ItemId, Tenant_Id, Branch_Id).then(function (response) {
  351. var data = response;
  352. if (response.errors == null) {
  353. if (data.result != 0 && data.result.length > 0) {
  354. let ModalHtml = `<div class="cals-modal-container">
  355. <div class="modal fade" id="PurchasePlanCalculationsModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  356. <div class="modal-dialog modal-dialog-centered" role="document">
  357. <div class="modal-content rounded-10">
  358. <div class="modal-header" style="border-style: dashed;">
  359. <h5 class="modal-title ml-auto"> ` + data.result[0].SKU + ` </h5>
  360. <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true" class="badge badge-soft-danger font-20 rounded-circle pb-2 px-2">×</span> </button>
  361. </div>
  362. <div class="modal-body">
  363. <div class="div_PurchasePlanCalculations biz-custom-scrollbar" style="height:500px; overflow:auto">` + data.result[0].Calculations.replaceAll("\n", "<br/>").replaceAll("<br/>", "</span><br/><span>").replaceAll(" ", "&nbsp;") + ` </div>
  364. </div>
  365. </div>
  366. </div>
  367. </div>
  368. </div>`;
  369. $("#_bizgaze_modal").html(ModalHtml);
  370. $('#PurchasePlanCalculationsModal').modal();
  371. }
  372. }
  373. else {
  374. MessageHelper.Instance().showError(response.message, "div_message");
  375. }
  376. });
  377. });
  378. }
  379. ShowTenantWisePurchasePlanCalculations(ItemId, TenantId) {
  380. let instance = this;
  381. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  382. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  383. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  384. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  385. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getTenantWisePurchasePlanCalculations(EstimateId, ItemId, TenantId).then(function (response) {
  386. var data = response;
  387. if (response.errors == null) {
  388. if (data.result != 0 && data.result.length > 0) {
  389. let ModalHtml = `<div class="cals-modal-container">
  390. <div class="modal fade" id="PurchasePlanCalculationsModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  391. <div class="modal-dialog modal-dialog-centered" role="document">
  392. <div class="modal-content rounded-10">
  393. <div class="modal-header" style="border-style: dashed;">
  394. <h5 class="modal-title ml-auto"> ` + data.result[0].SKU + ` </h5>
  395. <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true" class="badge badge-soft-danger font-20 rounded-circle pb-2 px-2">×</span> </button>
  396. </div>
  397. <div class="modal-body">
  398. <div class="div_PurchasePlanCalculations biz-custom-scrollbar" style="height:500px; overflow:auto">` + data.result[0].Calculations.replaceAll("\n", "<br/>").replaceAll("<br/>", "</span><br/><span>").replaceAll(" ", "&nbsp;") + ` </div>
  399. </div>
  400. </div>
  401. </div>
  402. </div>
  403. </div>`;
  404. $("#_bizgaze_modal").html(ModalHtml);
  405. $('#PurchasePlanCalculationsModal').modal();
  406. }
  407. }
  408. else {
  409. MessageHelper.Instance().showError(response.message, "div_message");
  410. }
  411. });
  412. });
  413. }
  414. closeCalculationsModal() {
  415. $('#PurchasePlanCalculationsModal').modal("hide");
  416. }
  417. ShoworHidePredictButton(IsShowPredictPopup = true) {
  418. let instance = this;
  419. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  420. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  421. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Predict").removeClass("btn-undefined").addClass("btn-warning");
  422. let RefStatusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  423. let ClosedDate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_closedate").Value;
  424. if (RefStatusId != 1 && RefStatusId != 4 && RefStatusId != 6) {
  425. if (ClosedDate.indexOf("01/01/0001") == -1) {
  426. $(detailContainer).find(".li_DetailSetting_" + InstalledAppId + "_PredictDate").remove();
  427. $(detailContainer).find('#div_App_DefaultWidgetSettings').append(`<div><div class="ActionsApprovalError mx-20 mb-2 rounded py-10 px-0 li_DetailSetting_` + InstalledAppId + `_PredictDate" id="li_DetailSetting_` + InstalledAppId + `_PredictDate" style="background-color:rgb(252 250 247);border-left: 3px solid #ff6060;padding:0.5rem 1rem 1rem;"> <p class="font-14 text-danger col-sm-12"> Values shown below are generated on ` + ClosedDate + `, click on 'Predict' to get latest values. </p> </div>`);
  428. $(detailContainer).find('#div_App_DefaultWidgetSettings').addClass('pb-0');
  429. }
  430. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Predict').removeClass("hidden");
  431. if (IsShowPredictPopup && RefStatusId != 6 && RefStatusId != 7 && instance.IsLoadDetailsFromList && ClosedDate.indexOf("01/01/0001") == -1) {
  432. instance.fileCacheHelper.loadJsFile("platform/core/helpers/datetimehelper/datetimehelper.js", function () {
  433. let DaysFromNow = Unibase.Platform.Helpers.DateTimeHelper.Instance().daysFromNow(moment(ClosedDate, "DD/MM/YYYY").format("YYYY-MM-DD"));
  434. if (DaysFromNow > 1) {
  435. bootbox.confirm({
  436. message: "Values shown are generated on " + ClosedDate + ", Do you want get latest values ?",
  437. closeButton: false,
  438. buttons: {
  439. confirm: {
  440. label: 'Yes',
  441. className: 'btn-success'
  442. },
  443. cancel: {
  444. label: 'No',
  445. className: 'btn-danger'
  446. }
  447. },
  448. callback: function (result) {
  449. if (result) {
  450. instance.DisableAllButtons();
  451. instance.savePurchasePlanItems('');
  452. }
  453. }
  454. });
  455. }
  456. });
  457. }
  458. }
  459. else {
  460. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Predict').addClass("hidden");
  461. }
  462. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Predict").unbind().click(function () {
  463. if (RefStatusId >= 3) {
  464. bootbox.confirm({
  465. message: "You are about to Reset Predicted Data. Are You Sure ?",
  466. closeButton: false,
  467. buttons: {
  468. confirm: {
  469. label: 'Yes',
  470. className: 'btn-success'
  471. },
  472. cancel: {
  473. label: 'No',
  474. className: 'btn-danger'
  475. }
  476. },
  477. callback: function (result) {
  478. if (result) {
  479. instance.DisableAllButtons();
  480. instance.savePurchasePlanItems('');
  481. }
  482. }
  483. });
  484. }
  485. else {
  486. instance.DisableAllButtons();
  487. instance.savePurchasePlanItems('');
  488. }
  489. });
  490. }
  491. ShoworHidePredictButton_proc(IsShowPredictPopup = true) {
  492. let instance = this;
  493. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  494. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  495. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Predict").removeClass("btn-undefined").addClass("btn-warning");
  496. let RefStatusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  497. let ClosedDate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_closedate").Value;
  498. if (RefStatusId != 1 && RefStatusId != 4 && RefStatusId != 6) {
  499. if (ClosedDate.indexOf("01/01/0001") == -1) {
  500. $(detailContainer).find(".li_DetailSetting_" + InstalledAppId + "_PredictDate").remove();
  501. $(detailContainer).find('#div_App_DefaultWidgetSettings').append(`<div><div class="ActionsApprovalError mx-20 mb-2 rounded py-10 px-0 li_DetailSetting_` + InstalledAppId + `_PredictDate" id="li_DetailSetting_` + InstalledAppId + `_PredictDate" style="background-color:rgb(252 250 247);border-left: 3px solid #ff6060;padding:0.5rem 1rem 1rem;"> <p class="font-14 text-danger col-sm-12"> Values shown below are generated on ` + ClosedDate + `, click on 'Predict' to get latest values. </p> </div>`);
  502. $(detailContainer).find('#div_App_DefaultWidgetSettings').addClass('pb-0');
  503. }
  504. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Predict').removeClass("hidden");
  505. if (IsShowPredictPopup && RefStatusId != 6 && RefStatusId != 7 && instance.IsLoadDetailsFromList && ClosedDate.indexOf("01/01/0001") == -1) {
  506. instance.fileCacheHelper.loadJsFile("platform/core/helpers/datetimehelper/datetimehelper.js", function () {
  507. let DaysFromNow = Unibase.Platform.Helpers.DateTimeHelper.Instance().daysFromNow(moment(ClosedDate, "DD/MM/YYYY").format("YYYY-MM-DD"));
  508. if (DaysFromNow > 1) {
  509. bootbox.confirm({
  510. message: "Values shown are generated on " + ClosedDate + ", Do you want get latest values ?",
  511. closeButton: false,
  512. buttons: {
  513. confirm: {
  514. label: 'Yes',
  515. className: 'btn-success'
  516. },
  517. cancel: {
  518. label: 'No',
  519. className: 'btn-danger'
  520. }
  521. },
  522. callback: function (result) {
  523. if (result) {
  524. instance.DisableAllButtons();
  525. instance.preditPurchasePlan_proc();
  526. }
  527. }
  528. });
  529. }
  530. });
  531. }
  532. }
  533. else {
  534. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Predict').addClass("hidden");
  535. }
  536. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Predict").unbind().click(function () {
  537. if (RefStatusId >= 3) {
  538. bootbox.confirm({
  539. message: "You are about to Reset Predicted Data. Are You Sure ?",
  540. closeButton: false,
  541. buttons: {
  542. confirm: {
  543. label: 'Yes',
  544. className: 'btn-success'
  545. },
  546. cancel: {
  547. label: 'No',
  548. className: 'btn-danger'
  549. }
  550. },
  551. callback: function (result) {
  552. if (result) {
  553. instance.DisableAllButtons();
  554. instance.preditPurchasePlan_proc();
  555. }
  556. }
  557. });
  558. }
  559. else {
  560. instance.DisableAllButtons();
  561. instance.preditPurchasePlan_proc();
  562. }
  563. });
  564. }
  565. ShoworHideConfirmButton(IsShowPopup = true) {
  566. let instance = this;
  567. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  568. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  569. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Confirm").removeClass("btn-undefined").addClass("btn-warning");
  570. let RefStatusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  571. if (RefStatusId == 3) {
  572. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Confirm').removeClass("hidden");
  573. }
  574. else {
  575. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Confirm').addClass("hidden");
  576. }
  577. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Confirm").unbind().click(function () {
  578. if (IsShowPopup) {
  579. let ClosedDate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_closedate").Value;
  580. instance.fileCacheHelper.loadJsFile("platform/core/helpers/datetimehelper/datetimehelper.js", function () {
  581. let DaysFromNow = moment(moment(ClosedDate, "DD/MM/YYYY hh:mm:ss A").format("YYYY-MM-DD hh:mm:ss A")).fromNow();
  582. bootbox.confirm({
  583. message: "Values are generated <strong> " + DaysFromNow + "</strong>. Do you want to go ahead ?",
  584. closeButton: false,
  585. buttons: {
  586. confirm: {
  587. label: 'Yes',
  588. className: 'btn-success'
  589. },
  590. cancel: {
  591. label: 'No',
  592. className: 'btn-danger'
  593. }
  594. },
  595. callback: function (result) {
  596. if (result) {
  597. instance.DisableAllButtons();
  598. MessageHelper.Instance().showSuccess("You will receive a notification once Purchase Order is saved", "");
  599. instance.savePurchasePlanOrder();
  600. }
  601. }
  602. });
  603. });
  604. }
  605. });
  606. }
  607. savePurchasePlanOrder() {
  608. let instance = this;
  609. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  610. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  611. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  612. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  613. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().savePurchasePlanOrder(EstimateId).then(function (response) {
  614. return __awaiter(this, void 0, void 0, function* () {
  615. if (response.errors == null) {
  616. }
  617. else {
  618. MessageHelper.Instance().showError(response.message, "div_message");
  619. }
  620. });
  621. });
  622. });
  623. }
  624. ShoworHideEditButton() {
  625. let instance = this;
  626. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  627. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  628. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Edit").removeClass("btn-undefined").addClass("btn-warning");
  629. let RefStatusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  630. if (RefStatusId == 3) {
  631. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Edit').removeClass("hidden");
  632. $(detailContainer).find('.CheckPlusIcon').removeClass("hidden");
  633. }
  634. else {
  635. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_Edit').addClass("hidden");
  636. $(detailContainer).find('.CheckPlusIcon').addClass("hidden");
  637. }
  638. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_Edit").unbind().click(function () {
  639. instance.loadPurchaseOrderForm();
  640. });
  641. }
  642. DisableAllButtons() {
  643. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("tenants/themes/compact/components/details/details.js", function () {
  644. Unibase.Themes.Compact.Components.Details.Instance().changeStage(0, Unibase.Themes.Providers.DetailHelper.installedAppId, 0, '', 4);
  645. });
  646. }
  647. loadEditROQ(ItemId) {
  648. let instance = this;
  649. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  650. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  651. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  652. var uniqueid = 'Bizgaze_Extensions_Transact_Form_EditItemROQ';
  653. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) {
  654. var successCallBack = {
  655. CallBack: function (id) {
  656. if ($(".variant-list").is(":visible")) {
  657. instance._orderItems.loadPurchasePlanItems($("#txt_SearchItem").val());
  658. }
  659. else {
  660. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  661. var panel = "#" + detailInstance._containerId;
  662. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  663. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  664. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  665. instance.IsLoadDetailsFromList = false;
  666. detailInstance.loadAppDefaultWidget(obj, panel, detailInstance._containerId, function () {
  667. detailInstance.loadDefaultWidgets(obj._installedAppId, panel);
  668. detailInstance.LoadApprovals(obj._recordId, obj._installedAppId);
  669. });
  670. }
  671. },
  672. Parameters: null,
  673. };
  674. var formviewerObj = {
  675. FormId: response.result.FormId,
  676. AppConfigurationId: 0,
  677. Pk_Value: 0,
  678. PortletWidgetId: 0,
  679. OnSuccess: successCallBack,
  680. OnFail: null,
  681. OnLoad: null,
  682. };
  683. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  684. instance.navigationHelper.hideLoading();
  685. setTimeout(function () {
  686. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getPurchasePlanItems(EstimateId, 0, null, ItemId).then(function (response) {
  687. $(".number_minqty, .number_roq, .number_avg").attr("disabled", "true").css("cursor", "not-allowed");
  688. let data = response.result[0];
  689. let MinQty = data.MinPacks;
  690. let ROQ = data.ReorderPacks;
  691. let AVG = data.AvgPacks;
  692. let LeadTime = data.LeadTime;
  693. let SDLeadTime = data.SDLeadTime;
  694. let ServiceLevel = data.ServiceLevel;
  695. let IsManualEntry = data.IsManualEntry;
  696. if (IsManualEntry == true) {
  697. $('.chk_ismanualentry').prop('checked', 'checked').trigger("change");
  698. $('#hdnchk_ismanualentry').val('true');
  699. }
  700. else {
  701. $('.chk_ismanualentry').prop('checked', '').trigger("change");
  702. $('#hdnchk_ismanualentry').val('false');
  703. }
  704. $(".hdn_estimateid").val(EstimateId);
  705. $(".hdn_itemid").val(ItemId);
  706. $(".number_minqty").val(MinQty);
  707. $(".number_roq").val(ROQ);
  708. $(".number_avg").val(AVG);
  709. $(".number_leadtime").val(LeadTime);
  710. $(".number_sdleadtime").val(SDLeadTime);
  711. $(".number_servicelevel").val(ServiceLevel);
  712. $("#div_leadtime, #div_sdleadtime, #div_servicelevel, #div_minqty, #div_roq, #div_avg").addClass("floating-label-form-group-with-value");
  713. instance.enableorDisableManualEntry();
  714. $(".chk_ismanualentry").change(function () {
  715. instance.enableorDisableManualEntry();
  716. });
  717. });
  718. }, 1000);
  719. });
  720. }
  721. enableorDisableManualEntry() {
  722. let IsEnableManualEntry = $(".chk_ismanualentry").prop("checked");
  723. if (IsEnableManualEntry) {
  724. $(".number_minqty").removeAttr("disabled").css("cursor", "auto");
  725. $(".number_roq").removeAttr("disabled").css("cursor", "auto");
  726. $(".number_avg").removeAttr("disabled").css("cursor", "auto");
  727. }
  728. else {
  729. $(".number_minqty").attr("disabled", "true").css("cursor", "not-allowed");
  730. $(".number_roq").attr("disabled", "true").css("cursor", "not-allowed");
  731. $(".number_avg").attr("disabled", "true").css("cursor", "not-allowed");
  732. }
  733. }
  734. ResetMOQ() {
  735. let instance = this;
  736. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  737. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  738. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  739. let LobId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_lobid").Value);
  740. let BillingAddressId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_billingaddressid").Value);
  741. let OrganizationId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_organizationid").Value);
  742. let RefStatusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  743. let EstimateId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  744. if (RefStatusId != 4) {
  745. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_ResetMOQ').removeClass("hidden");
  746. }
  747. else {
  748. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_ResetMOQ').addClass("hidden");
  749. }
  750. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_ResetMOQ").unbind().click(function () {
  751. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  752. bootbox.confirm({
  753. message: "You are about to Reset MoQ. Are you sure ?",
  754. closeButton: false,
  755. buttons: {
  756. confirm: {
  757. label: 'Yes',
  758. className: 'btn-success'
  759. },
  760. cancel: {
  761. label: 'No',
  762. className: 'btn-danger'
  763. }
  764. },
  765. callback: function (result) {
  766. if (result) {
  767. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().resetMoQ(LobId, BillingAddressId, OrganizationId, EstimateId).then(function (response) {
  768. if (response.errors == null) {
  769. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  770. var panel = "#" + detailInstance._containerId;
  771. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  772. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  773. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  774. instance.IsLoadDetailsFromList = false;
  775. detailInstance.loadAppDefaultWidget(obj, panel, detailInstance._containerId, function () {
  776. detailInstance.loadDefaultWidgets(obj._installedAppId, panel);
  777. detailInstance.LoadApprovals(obj._recordId, obj._installedAppId);
  778. });
  779. MessageHelper.Instance().showSuccess(response.message, "");
  780. }
  781. else {
  782. MessageHelper.Instance().showError(response.message, "div_message");
  783. }
  784. });
  785. }
  786. }
  787. });
  788. });
  789. });
  790. }
  791. ResetMOQ_proc() {
  792. let instance = this;
  793. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  794. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  795. let RefStatusId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  796. let EstimateId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  797. if (RefStatusId != 4) {
  798. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_ResetMOQ').removeClass("hidden");
  799. }
  800. else {
  801. $(detailContainer).find('.li_DetailSetting_' + InstalledAppId + '_ResetMOQ').addClass("hidden");
  802. }
  803. $(detailContainer).find(".DetailSetting_" + InstalledAppId + "_ResetMOQ").unbind().click(function () {
  804. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  805. bootbox.confirm({
  806. message: "You are about to Reset MoQ. Are you sure ?",
  807. closeButton: false,
  808. buttons: {
  809. confirm: {
  810. label: 'Yes',
  811. className: 'btn-success'
  812. },
  813. cancel: {
  814. label: 'No',
  815. className: 'btn-danger'
  816. }
  817. },
  818. callback: function (result) {
  819. if (result) {
  820. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().resetMoQ_Proc(EstimateId).then(function (response) {
  821. if (response.errors == null) {
  822. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  823. var panel = "#" + detailInstance._containerId;
  824. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  825. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  826. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  827. instance.IsLoadDetailsFromList = false;
  828. detailInstance.loadAppDefaultWidget(obj, panel, detailInstance._containerId, function () {
  829. detailInstance.loadDefaultWidgets(obj._installedAppId, panel);
  830. detailInstance.LoadApprovals(obj._recordId, obj._installedAppId);
  831. });
  832. MessageHelper.Instance().showSuccess(response.message, "");
  833. }
  834. else {
  835. MessageHelper.Instance().showError(response.message, "div_message");
  836. }
  837. });
  838. }
  839. }
  840. });
  841. });
  842. });
  843. }
  844. loadPurchaseOrderForm() {
  845. let instance = this;
  846. var uniqueid = 'Bizgaze_Extension_Transact_PurchaseOrder_App_PurchaseOrder_CreatePurchaseOrder';
  847. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) {
  848. var successCallBack = {
  849. CallBack: function (id) {
  850. },
  851. Parameters: null,
  852. };
  853. var formviewerObj = {
  854. FormId: response.result.FormId,
  855. AppConfigurationId: 0,
  856. Pk_Value: 0,
  857. PortletWidgetId: 0,
  858. OnSuccess: successCallBack,
  859. OnFail: null,
  860. OnLoad: null,
  861. };
  862. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  863. setTimeout(function () {
  864. instance.navigationHelper.hideLoading();
  865. instance.bindPODetails();
  866. }, 1500);
  867. });
  868. }
  869. bindPODetails() {
  870. let instance = this;
  871. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  872. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  873. let OrganizationName = InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_organizationname").Value;
  874. let OrganizationId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_organizationid").Value);
  875. let Organization = new Option(OrganizationName, OrganizationId.toString(), true);
  876. $(".txtAutoComplete_organizationid").append(Organization).val(OrganizationId).trigger("change");
  877. instance._order.g_IsPurchasePlanning = true;
  878. $("#ItemLoadType").empty();
  879. instance._order.g_ItemLoadTypes = ["Immediate", "Extra"];
  880. for (let i = 0; i < instance._order.g_ItemLoadTypes.length; i++) {
  881. let j = i + 1;
  882. $("#ItemLoadType").append('<option value="' + j + '">' + instance._order.g_ItemLoadTypes[i] + '</option>');
  883. }
  884. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  885. let EstimateTypeId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimatetypeid").Value);
  886. let FormName = "Purchase Plan Items";
  887. if (EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.ProductionPlanning) {
  888. FormName = "Production Plan Items";
  889. }
  890. $("#" + VisibleContainerId).find("#div_FormName").text(FormName);
  891. $("#" + VisibleContainerId).find(".Section").addClass("hidden");
  892. $("#" + VisibleContainerId).find(".section_Items,.section_Calculations").removeClass("hidden");
  893. $("#" + VisibleContainerId).find(".section_Calculations").find(".card-header").addClass("hidden");
  894. $("#" + VisibleContainerId).find(".section_Calculations").css("position", "sticky").css("top", 0).css("z-index", "1");
  895. $("#" + VisibleContainerId).find(".section_Items").css("z-index", "0");
  896. $("#" + VisibleContainerId).find("#btn_Checkout").addClass("hidden");
  897. $(".divselectall").removeClass('hidden');
  898. $(".labelSection_Gross_Value, .labelSection_Discount_Value, .labelSection_Total_Value").text("0.00");
  899. $(".labelSection_Gross_Value, .labelSection_Discount_Value, .labelSection_Total_Value, .labelSection_GrossAmount, .labelSection_DiscountAmount, .labelSection_NetTotal").addClass("font-weight-bold").addClass("col-sm-12").addClass("text-center");
  900. $("#btn_CloseForm_" + $("#hf_FormId").val()).click(function () {
  901. var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
  902. var panel = "#" + detailInstance._containerId;
  903. var obj = Unibase.Themes.Compact.Components.Details.Instance();
  904. obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  905. obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  906. instance.IsLoadDetailsFromList = false;
  907. detailInstance.loadAppDefaultWidget(obj, panel, detailInstance._containerId, function () {
  908. detailInstance.loadDefaultWidgets(obj._installedAppId, panel);
  909. detailInstance.LoadApprovals(obj._recordId, obj._installedAppId);
  910. });
  911. });
  912. }
  913. getCompanyIds() {
  914. let instance = this;
  915. let CompanyIds = '';
  916. let data = $("#" + instance.VisibleContainerId).find('#select2_CompanyId_' + instance.VisibleContainerId).select2('data');
  917. if (data.length > 0) {
  918. let options = '';
  919. for (let i = 0; i < data.length; i++) {
  920. if (data[i].toString() != '000' && data[i] != undefined)
  921. options += data[i].id + ",";
  922. }
  923. if (options != '') {
  924. options = options.replace(/\|$/, '');
  925. CompanyIds = options;
  926. }
  927. }
  928. if (CompanyIds != '') {
  929. CompanyIds = CompanyIds.replace(/\:$/, '');
  930. }
  931. else
  932. CompanyIds = '0';
  933. CompanyIds = CompanyIds.slice(0, -1);
  934. return CompanyIds;
  935. }
  936. getBranchIds() {
  937. let instance = this;
  938. let BranchIds = '';
  939. let data = $("#" + instance.VisibleContainerId).find('#select2_BranchId_' + instance.VisibleContainerId).select2('data');
  940. if (data.length > 0) {
  941. let options = '';
  942. for (let i = 0; i < data.length; i++) {
  943. if (data[i].toString() != '000' && data[i] != undefined)
  944. options += data[i].id + ",";
  945. }
  946. if (options != '') {
  947. options = options.replace(/\|$/, '');
  948. BranchIds = options;
  949. }
  950. }
  951. if (BranchIds != '')
  952. BranchIds = BranchIds.replace(/\:$/, '');
  953. BranchIds = BranchIds.slice(0, -1);
  954. return BranchIds;
  955. }
  956. numberhelper_Inverse(p) {
  957. var a = [-3.969683028665376e+01, 2.209460984245205e+02,
  958. -2.759285104469687e+02, 1.383577518672690e+02,
  959. -3.066479806614716e+01, 2.506628277459239e+00
  960. ];
  961. var b = [-5.447609879822406e+01, 1.615858368580409e+02,
  962. -1.556989798598866e+02, 6.680131188771972e+01,
  963. -1.328068155288572e+01
  964. ];
  965. var c = [-7.784894002430293e-03, -3.223964580411365e-01,
  966. -2.400758277161838e+00, -2.549732539343734e+00,
  967. 4.374664141464968e+00, 2.938163982698783e+00
  968. ];
  969. var d = [7.784695709041462e-03, 3.224671290700398e-01,
  970. 2.445134137142996e+00, 3.754408661907416e+00];
  971. var plow = 0.02425;
  972. var phigh = 1 - plow;
  973. if (p < plow) {
  974. var q = Math.sqrt(-2 * Math.log(p));
  975. return (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) /
  976. ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
  977. }
  978. if (phigh < p) {
  979. var q = Math.sqrt(-2 * Math.log(1 - p));
  980. return -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) /
  981. ((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1);
  982. }
  983. var q1 = p - 0.5;
  984. var r = q1 * q1;
  985. return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q1 /
  986. (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1);
  987. }
  988. static Instance() {
  989. if (this._instance === undefined)
  990. this._instance = new PurchasePlan();
  991. return this._instance;
  992. }
  993. }
  994. Components.PurchasePlan = PurchasePlan;
  995. })(Components = Transact.Components || (Transact.Components = {}));
  996. })(Transact = Apps.Transact || (Apps.Transact = {}));
  997. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  998. })(Bizgaze || (Bizgaze = {}));