var Bizgaze;
(function (Bizgaze) {
let Apps;
(function (Apps) {
let Transact;
(function (Transact) {
let Controls;
(function (Controls) {
class ManagePrice extends Unibase.Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.EstimateId = 0;
this.EstimateTypeId = Bizgaze.Apps.Transact.Controls.Estimate.Instance().g_EstimateTypeId;
this.containerid = "";
}
init() {
var instance = this;
instance.navigationHelper.popup(0, "", Bizgaze.Apps.Transact.Controls.ManagePrice.Instance(), null, Unibase.Platform.Helpers.Size.DockLeft);
}
jsFiles() {
return ["apps/transact/managers/estimates/estimatemanager.js", "apps/transact/managers/orders/ordermanager.js", "apps/transact/enums/enum.js"];
}
cssFiles() {
return [];
}
html(id, containerid) {
let instance = this;
instance.EstimateTypeId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_estimatetypeid").Value);
let html;
if (instance.EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesContract || instance.EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseContract) {
html = '' +
'
' +
'';
}
else {
html = '' +
'' +
'';
}
return html;
}
load(id, containerid, callback) {
var instance = this;
instance.containerid = containerid;
instance.EstimateTypeId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_estimatetypeid").Value);
$("#btn_manageprice_Close").click(function () {
$('#' + containerid).modal('hide');
$('#' + containerid).remove();
});
$("#btn_Manageprice_Save").click(function () {
Bizgaze.Apps.Transact.Controls.ManagePrice.Instance().save();
});
instance.getEstimateItems();
}
getEstimateItems() {
var instance = this;
instance.EstimateId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_estimateid").Value);
Bizgaze.Apps.Transact.Managers.EstimateManager.Instance().getEstimateItems(instance.EstimateId).then(function (response) {
var html = '';
let TextBox;
if (instance.EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesContract || instance.EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseContract) {
TextBox;
}
else {
TextBox = '' +
' | ' + data.ItemName + '-' + data.SKU +
'' +
'' +
'' +
'' +
' | ' +
' | ' +
'' +
'' +
' | ' +
TextBox + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(data.ExpectedPrice, 2) + '>' +
' | ';
$("#tblbody").append(html);
$("#Ord_txtdiscount").on("keyup", function () {
if ($(".btnOrder_DiscType").val() == 1 && $("#Ord_txtdiscount").val() > 100) {
instance.PercentAlert();
}
});
}
});
}
isNumberKey(evt) {
if (evt.which != 8 && evt.which != 0 && (evt.which < 48 || evt.which > 57)) {
return false;
}
return true;
}
RefreshValueSummary(element) {
var instance = this;
var disc = Number(element.find("#Ord_txtdiscount").val());
var ItemId = Number(element.find("#hf_ItemId").val());
var discType = Number(element.find(".btnOrder_DiscType").val());
var Qty = Number(element.find(".editQuantity").val());
var Unitprice = Number(element.find(".editQuotedPrice").val());
var rowTotal = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber((Qty * Unitprice), 2);
element.find("#hf_RowTotal").val(rowTotal);
var aftrdiscamnt = rowTotal;
if (disc > 0) {
if (discType == 1) {
var discperAmnt = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number(Unitprice * (disc / 100)), 2);
Unitprice -= discperAmnt;
aftrdiscamnt = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber((Qty * Unitprice), 2);
}
else {
Unitprice -= disc;
aftrdiscamnt = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber((Qty * Unitprice), 2);
}
}
var estimateType = Bizgaze.Apps.Transact.Enums.OrderType[instance.EstimateTypeId];
var billingAddressId = Unibase.Platform.Membership.Infos.Identity.getSetting("branchid");
var BillToAddressId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_billingaddressid").Value);
Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getItemTaxDetails(ItemId, aftrdiscamnt, estimateType, billingAddressId, BillToAddressId, $('#chkCFormNoRequired').is(':checked'), false).then(function (response) {
if (response.result != null) {
element.find("#hf_TaxTotal").val(response.result.TaxAmount);
}
});
}
GetPriceDetails() {
var instance = this;
var ManagedPrices = new Array();
$("#tblbody").find(".value-row").each(function () {
var a = this;
if ($('.Estimate-Item').find("#hf_EstimateItemId").val() != undefined) {
var hf_ExpectedPrice = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(a).find("#hf_ExpectedPrice").val()), 2);
var hf_UnitPrice = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#hf_UnitPrice").val()), 2);
var QuotedPrice = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#QuotedPrice").val()), 2);
var discval = 0.00;
var discper = 0.00;
if ($(this).find(".btnOrder_DiscType").val() == 1) {
discval = 0;
discper = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#Ord_txtdiscount").val()), 2);
}
else {
discper = 0;
discval = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#Ord_txtdiscount").val()), 2);
}
var expprice = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#expprice").val()), 2);
var hf_Quantity = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#hf_Quantity").val()), 2);
var Quantity = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#Quantity").val()), 2);
var Taxamnt = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find("#hf_TaxTotal").val()), 2);
ManagedPrices.push({
EstimateItemId: Number($(this).find("#hf_EstimateItemId").val()), ItemId: Number($(this).find("#hf_ItemId").val()),
DiscountValue: Number(discval), DiscountPercent: Number(discper), ExpectedPrice: Number(expprice), UnitPrice: Number(QuotedPrice), Quantity: Number(Quantity), RowTotal: Number($(this).find("#hf_RowTotal").val()), TaxTotal: Number(Taxamnt)
});
}
});
return ManagedPrices;
}
Amounts() {
var TotalAmount = 0.0;
var TaxAmount = 0.0;
var Amounts = new Array();
$("#estimateItems").find(".Estimate-Item").each(function () {
TotalAmount += Number($(this).find("#hf_RowTotal").val());
TaxAmount += Number($(this).find("#hf_TaxTotal").val());
});
Amounts.push({ TotalAmount: TotalAmount, TaxAmount: TaxAmount });
return Amounts;
}
save() {
var instance = this;
if ($(".btnOrder_DiscType").val() == 1 && $("#Ord_txtdiscount").val() > 100) {
instance.PercentAlert();
}
else {
var EstimateItems = instance.GetPriceDetails();
if (instance.EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesContract || instance.EstimateTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseContract) {
for (var i = 0; i < EstimateItems.length; i++) {
EstimateItems[i].ExpectedPrice = 0;
}
;
}
var Amounts = instance.Amounts();
var TotalAmount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Amounts[0].TotalAmount, 2);
var TaxAmount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Amounts[0].TaxAmount, 2);
var postData = {
EstimateId: instance.EstimateId,
TotalAmount: Number(TotalAmount),
TaxAmount: Number(TaxAmount),
EstimateItems: EstimateItems,
IsManagePrice: true,
RefNo: "",
};
Bizgaze.Apps.Transact.Managers.EstimateManager.Instance().managePrice(postData).then(function (response) {
let result = response.result;
if (result != null) {
$('#' + instance.containerid).modal('hide');
$('#' + instance.containerid).remove();
var detailInstance = Unibase.Themes.Compact.Components.Details.Instance();
var panel = "#" + detailInstance._containerId;
var obj = Unibase.Themes.Compact.Components.Details.Instance();
obj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
obj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
detailInstance.loadAppDefaultWidget(obj, panel, detailInstance._containerId, function () {
detailInstance.loadDefaultWidgets(obj._installedAppId, panel);
detailInstance.LoadApprovals(obj._recordId, obj._installedAppId);
});
MessageHelper.Instance().showSuccess(response.message, '');
}
else {
MessageHelper.Instance().showError(response.message, 'estimateitem_errormessage');
}
});
}
}
PercentAlert() {
bootbox.alert("Discount percentage must be less then 100");
}
static Instance() {
if (this.instance === undefined) {
this.instance = new ManagePrice();
}
return this.instance;
}
}
Controls.ManagePrice = ManagePrice;
})(Controls = Transact.Controls || (Transact.Controls = {}));
})(Transact = Apps.Transact || (Apps.Transact = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));