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 = `
No Data Available
Add Item
`;
$("#" + 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 = `
`;
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 = {}));