123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var Bizgaze;
- (function (Bizgaze) {
- let Apps;
- (function (Apps) {
- let Transact;
- (function (Transact) {
- let Controls;
- (function (Controls) {
- class IndentItems extends Unibase.Platform.Core.BaseComponent {
- constructor() {
- super(...arguments);
- this.g_IsFromWorkOrder = false;
- this.g_VisibleContainerId = "";
- this.g_WorkOrderItemsArray = [];
- this.g_IndentItemsArray = [];
- this.g_WorkOrderBranchId = 0;
- }
- init(formpropertyid, prop, callback) {
- var instance = this;
- let jsFiles = ["apps/transact/infos/orders/orderitem.js", "apps/transact/controls/orders/orderitems.component.js", "apps/transact/controls/pricelist/managers/pricelistmanager.js", "apps/transact/managers/payments/paymentmanager.js", "apps/crm/contacts/managers/contactmanager.js", "apps/crm/lobs/managers/lobmanager.js", "apps/transact/managers/paymentterms/paymenttermmanager.js", "platform/apps/managers/stagemanager.js", "apps/transact/managers/orders/ordermanager.js", "apps/transact/enums/enum.js", "platform/permission/enums/permission.js", "apps/transact/managers/invoicemanager.js", "apps/transact/managers/offers/offermanager.js", "platform/core/helpers/numberhelper/numberhelper.js", "libs/jquery/pagination/jquery.pagination.js", "apps/transact/components/orders/orderfilter.js", "platform/core/helpers/printhelper/printhelper.js", "apps/transact/components/invoices/itemofferselection.js", "apps/transact/controls/invoices/invoiceitem.component.js", "apps/transact/controls/orders/customercredithealth.component.js", "apps/transact/managers/inventory/itemmanager.js"];
- instance.fileCacheHelper.loadJsFiles(jsFiles, function () {
- instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
- instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
- });
- }
- loadControl(containerid, prop) {
- let instance = this;
- var html = `<input type = "hidden" id = "hdn_customcontrol" class="value-control" value = "Bizgaze.Apps.Transact.Controls.IndentItems.Instance().getIndentItems();"
- <div class="PurchaseIndentItems">
- <div class="row div_titledetails">
- <div class="col-sm-8 ItemDetails pl-55">Item</div>
- <div class="col-sm-4 Inventory_Title InventoryTypesTextboxes text-center">
- <div class="row">
- <span id="spn_InventoryTitle" class="col-sm-12">Quantity</span>
- </div>
- </div>
- </div>
- <ul class="indent-list list-group" id="IndentItemsList" style="margin:0px -21px">
- <li class="indent-item hidden"></li>
- </ul>
-
- <br/>
- <div class="alert alert-primary text-center mb-0 border-0 rounded-0 w-100 font-14 font-weight-500 div_NoDataAvailable hidden"> No Data Available </div>
- <br/>
-
- <div class="btn btn-success btn-xs ml-40" id="div_AddItem"> <i class="fa fa-plus"> </i> Add Item </div>
- </div>`;
- $("#" + containerid).html(html);
- instance.g_VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
- instance.g_WorkOrderBranchId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_branchid").Value);
- }
- getIndentItemDesign(res, RowId) {
- let ItemId = 0;
- let Qty = 0;
- let ItemName = "";
- if (res != null) {
- ItemId = res.ItemId;
- Qty = res.Quantity;
- ItemName = res.ItemName;
- }
- let html = `<li id="` + RowId + `" class="list-group-item indent-item indent-addeditem indent-addeditem-` + RowId + ` li no-border">
- <input type="hidden" id="hf_ItemId" value="` + ItemId + `"/>
- <input type="hidden" id="hf_RowId" value="` + RowId + `"/>
- <div class="row position-relative">
- <div class="ItemDetails col-sm-8 pl-20 mt-20" id="ItemDetails">
- <a class="fa fa-trash-o m-t fa-md text-danger fa-lg pull-left mt-1 div_DeleteIndentItem" id="div_DeleteIndentItem_` + RowId + `" title="Delete Item"></a>
- <div class="col-sm-11">
- <div class="d-flex">
- <div class="block text-sm mouseHoverClass CartItemName" style="color: rgb(91, 168, 251);">` + ItemName + `</div>
- </div>
- </div>
- </div>
-
- <div class="bg-white col-sm-8 div_IndentItemAutoComplete pa-0 col-sm-8 pl-20 mt-20 hidden">
- <a class="fa fa-trash-o m-t fa-md text-danger fa-lg pull-left mt-10 div_DeleteIndentItem" id="div_DeleteIndentItem_` + RowId + `" title="Delete Item"></a>
- <div class="col-sm-11 biz-select2-wrap">
- <input type="hidden" id = "hdn_Indent_Item_` + RowId + `" class="value-control" value="">
- <select class="slct_Indent_Item_` + RowId + ` slct_Indent_Item ui-autocomplete form-control w-100 col-sm-12" data-placeholder="Select" placeholder="Operations" value=""> </select>
- </div>
- </div>
-
- <div id="InventoryTypesTextboxes" class="InventoryTypesTextboxes col-sm-4">
- <div class="col-sm-12">
- <div class="floating-label-form-group defaultSelectedQuantity divOrders_ItemCount">
- <label class="text-center">Quantity</label>
- <div class="input-group" id="div_Quantity">
- <span class="input-group-prepend">
- <a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i>
- </a>
- </span>
- <input type="text" id="txt_Quantity" class="form-control text-center txtOrder_ItemCount floating-label-control" inputmode="numeric" onpaste="return Bizgaze.Apps.Transact.Controls.IndentItems.Instance().isNumberKey(event)" oninput="return Bizgaze.Apps.Transact.Controls.IndentItems.Instance().isNumberKey(event)" data-isdynamic="false" placeholder="Quantity" data-placeholder="Quantity" data-label="Quantity" value="` + Qty + `">
- <span class="input-group-append">
- <a href="javascript:;" class="quantity-plus input-group-addon btn " draggable="false"><i class="fa fa-plus"></i>
- </a>
- </span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </li>`;
- return html;
- }
- loadControlSettings(controlsettingjson, formpropertyid) {
- let instance = this;
- let OrderId = Number(Unibase.Themes.Providers.DetailHelper.recordId);
- if (instance.g_IsFromWorkOrder) {
- instance.g_WorkOrderItemsArray = [];
- instance.g_IndentItemsArray = [];
- $("#" + instance.g_VisibleContainerId).find("[data-formpropertyname='PurchaseIndentItems']").remove();
- $("#" + instance.g_VisibleContainerId).find("[data-formpropertyname='IndentItems']").attr("data-formpropertyname", "PurchaseIndentItems");
- Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getOrderItems(OrderId, 0).then(function (rm_resp) {
- return __awaiter(this, void 0, void 0, function* () {
- if (rm_resp.result != null) {
- let res = rm_resp.result.filter(x => x.ParentBOMItemId != 0);
- let ItemIds = "";
- res.forEach(function (x) {
- ItemIds += x.ItemId + ",";
- });
- Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsAvailableQty(ItemIds, instance.g_WorkOrderBranchId.toString(), false).then(function (res_avail) {
- for (let i = 0; i < res.length; i++) {
- let RowId = instance.getNewRowId();
- let html = instance.getIndentItemDesign(res[i], RowId);
- let Avail = res_avail.result.find(x => x.ItemId == res[i].ItemId);
- instance.g_WorkOrderItemsArray.push({
- ItemName: res[i].ItemName,
- WorkOrderId: res[i].OrderId,
- ItemId: res[i].ItemId,
- Quantity: res[i].Quantity,
- AvailQty: Avail.Quantity,
- RowId: RowId
- });
- if (Avail.Quantity < res[i].Quantity) {
- instance.g_IndentItemsArray.push({
- ItemName: res[i].ItemName,
- WorkOrderId: res[i].OrderId,
- OrderItemId: res[i].OrderItemId,
- ItemId: res[i].ItemId,
- Quantity: res[i].Quantity,
- AvailQty: Avail.Quantity,
- RowId: RowId
- });
- $("#" + instance.g_VisibleContainerId).find(".indent-item:last").after(html);
- let elem = $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId);
- $("#" + instance.g_VisibleContainerId).find("#div_AddItem").off().click(function () {
- let IsError = false;
- $(".slct_Indent_Item:visible").each(function () {
- let slct_RowId = $(this).parentsUntil("ul").find("#hf_RowId").val();
- let Index = instance.g_IndentItemsArray.findIndex(x => x.RowId == slct_RowId);
- if (!IsError && Index == -1) {
- let val = Number($(this).val());
- if (val == 0 || isNaN(val)) {
- IsError = true;
- }
- }
- });
- if (!IsError) {
- let RowId = instance.getNewRowId();
- let html = instance.getIndentItemDesign(null, RowId);
- $("#" + instance.g_VisibleContainerId).find(".indent-item:last").after(html);
- let OrderItemIds = instance.getIndentOrderItemIds(instance.g_IndentItemsArray);
- let url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/orders/getorderitemsbyorderidautocomplete/orderid/' + res[i].OrderId + '/orderitemids/' + OrderItemIds;
- let txtAutoSearchCtrl = $(".slct_Indent_Item_" + RowId);
- let hdnSelectedItemId = $("#hdn_Indent_Item_" + RowId);
- AutoCompleteHelper.getHelper().Create(txtAutoSearchCtrl, hdnSelectedItemId, url, null);
- let added_elem = $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId);
- $(added_elem).find(".div_IndentItemAutoComplete").removeClass("hidden");
- $(added_elem).find(".ItemDetails, .InventoryTypesTextboxes").addClass("hidden");
- instance.allIndentItemEvents(added_elem);
- }
- else {
- Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Please Select Item");
- return false;
- }
- });
- instance.allIndentItemEvents(elem);
- instance.ShowOrHideNoDataAvailable();
- }
- }
- });
- }
- else {
- instance.ShowOrHideNoDataAvailable();
- }
- });
- });
- }
- }
- loadPropertySettings(propertysettings, formpropertyid) {
- return null;
- }
- bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
- return null;
- }
- getNewRowId() {
- let text = "";
- let possible = "0123456789";
- for (let i = 0; i < 5; i++)
- text += possible.charAt(Math.floor(Math.random() * possible.length));
- return Number(text);
- }
- getIndentItemIds(res) {
- let ItemIds = "";
- res.forEach(function (x) {
- ItemIds += x.ItemId + ",";
- });
- if (res.length == 0) {
- ItemIds = "null";
- }
- return ItemIds;
- }
- getIndentOrderItemIds(res) {
- let OrderItemIds = "";
- res.forEach(function (x) {
- OrderItemIds += x.OrderItemId + ",";
- });
- if (res.length == 0) {
- OrderItemIds = "null";
- }
- return OrderItemIds;
- }
- allIndentItemEvents(elem) {
- let instance = this;
- let RowId = elem.find("#hf_RowId").val();
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".div_DeleteIndentItem").click(function () {
- let RowId = elem.find("#hf_RowId").val();
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).remove();
- let ItemId = elem.find("#hf_ItemId").val();
- let IndentItemIndex = instance.g_IndentItemsArray.findIndex(x => x.ItemId == ItemId);
- instance.g_IndentItemsArray.splice(IndentItemIndex, 1);
- instance.ShowOrHideNoDataAvailable();
- });
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".slct_Indent_Item").click(function () {
- instance.bindAutoCompleteEvent(RowId);
- });
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".slct_Indent_Item").change(function () {
- let RowId = $(this).parentsUntil("ul").find("#hf_RowId").val();
- let OrderItemId = Number($(this).val());
- let ItemId = Number($(this).attr("data-addldata"));
- let ItemName = $(this).text();
- let IndentItemId = Number($("#" + instance.g_VisibleContainerId).find(".slct_Indent_Item_" + RowId).val());
- if (IndentItemId == 0 || isNaN(IndentItemId)) {
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".InventoryTypesTextboxes").addClass("hidden");
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".InventoryTypesTextboxes").find("#txt_Quantity").val("");
- }
- else {
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".InventoryTypesTextboxes").removeClass("hidden");
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find(".InventoryTypesTextboxes").find("#txt_Quantity").val("1");
- let OrderId = Number(Unibase.Themes.Providers.DetailHelper.recordId);
- instance.g_IndentItemsArray.push({
- ItemName: ItemName,
- WorkOrderId: OrderId,
- OrderItemId: OrderItemId,
- ItemId: ItemId,
- Quantity: 1,
- AvailQty: 1,
- RowId: RowId
- });
- }
- instance.ShowOrHideNoDataAvailable();
- });
- $("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find("#txt_Quantity").change(function () {
- let RowId = $(this).parentsUntil("ul").find("#hf_RowId").val();
- let Index = instance.g_IndentItemsArray.findIndex(x => x.RowId == RowId);
- if (Index != -1) {
- let Qty = Number($("#" + instance.g_VisibleContainerId).find(".indent-addeditem-" + RowId).find("#txt_Quantity").val());
- instance.g_IndentItemsArray[Index].Quantity = Qty;
- }
- });
- }
- isNumberKey(evt) {
- let instance = this;
- if (evt.type == "paste") {
- let pastedData = evt.clipboardData.getData('text');
- let regExp = /[a-zA-Z]/g;
- if (regExp.test(pastedData)) {
- evt.preventDefault();
- return false;
- }
- }
- else if (evt.type == "input") {
- const inputVal = $("#" + instance.g_VisibleContainerId).find(evt.currentTarget).val();
- $("#" + instance.g_VisibleContainerId).find(evt.currentTarget).val(inputVal.replace(/\D/g, ''));
- }
- else {
- if (evt.which != 8 && evt.which != 0 && (evt.which < 48 || evt.which > 57)) {
- return false;
- }
- }
- return true;
- }
- ShowOrHideNoDataAvailable() {
- let instance = this;
- if ($("#" + instance.g_VisibleContainerId).find(".indent-item").length == 1) {
- $("#" + instance.g_VisibleContainerId).find(".div_NoDataAvailable").removeClass("hidden");
- }
- else {
- $("#" + instance.g_VisibleContainerId).find(".div_NoDataAvailable").addClass("hidden");
- }
- }
- getIndentItems() {
- let instance = this;
- let IndentItemList = new Array();
- for (let i = 0; i < instance.g_IndentItemsArray.length; i++) {
- let IndentItem = instance.g_IndentItemsArray[i];
- IndentItemList.push({
- "itemid_itemname": "0",
- "purchaseindentitemid": "0",
- "purchaseindentid": "0",
- "itemid": IndentItem.ItemId,
- "qty": IndentItem.Quantity
- });
- }
- return IndentItemList;
- }
- bindAutoCompleteEvent(RowId) {
- let instance = this;
- let OrderItemIds = instance.getIndentOrderItemIds(instance.g_IndentItemsArray);
- let OrderId = Number(Unibase.Themes.Providers.DetailHelper.recordId);
- let url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/orders/getorderitemsbyorderidautocomplete/orderid/' + OrderId + '/orderitemids/' + OrderItemIds;
- let txtAutoSearchCtrl = $(".slct_Indent_Item_" + RowId);
- let hdnSelectedItemId = $("#hdn_Indent_Item_" + RowId);
- AutoCompleteHelper.getHelper().Create(txtAutoSearchCtrl, hdnSelectedItemId, url, null);
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new IndentItems();
- }
- return this.instance;
- }
- }
- Controls.IndentItems = IndentItems;
- })(Controls = Transact.Controls || (Transact.Controls = {}));
- })(Transact = Apps.Transact || (Apps.Transact = {}));
- })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
- })(Bizgaze || (Bizgaze = {}));
|