private void SaveRecord() { DebitMemoItemDetails clsDetails = new DebitMemoItemDetails(); Products clsProducts = new Products(); ProductDetails clsProductDetails = clsProducts.Details1(Constants.BRANCH_ID_MAIN, Convert.ToInt64(cboProductCode.SelectedItem.Value)); Terminal clsTerminal = new Terminal(clsProducts.Connection, clsProducts.Transaction); TerminalDetails clsTerminalDetails = clsTerminal.Details(Int32.Parse(Session["BranchID"].ToString()), Session["TerminalNo"].ToString()); clsProducts.CommitAndDispose(); clsDetails.DebitMemoID = Convert.ToInt64(lblDebitMemoID.Text); clsDetails.ProductID = Convert.ToInt64(cboProductCode.SelectedItem.Value); clsDetails.ProductCode = clsProductDetails.ProductCode; clsDetails.BarCode = clsProductDetails.BarCode; clsDetails.Description = clsProductDetails.ProductDesc; clsDetails.ProductUnitID = Convert.ToInt32(cboProductUnit.SelectedItem.Value); clsDetails.ProductUnitCode = cboProductUnit.SelectedItem.Text; clsDetails.Quantity = Convert.ToDecimal(txtQuantity.Text); clsDetails.PrevUnitCost = Convert.ToDecimal(txtPrevPrice.Text); clsDetails.UnitCost = Convert.ToDecimal(txtPrice.Text); clsDetails.Discount = getItemTotalDiscount(); clsDetails.DiscountApplied = Convert.ToDecimal(txtDiscount.Text); if (clsDetails.DiscountApplied == 0) { if (chkInPercent.Checked == true) clsDetails.DiscountType = DiscountTypes.Percentage; else clsDetails.DiscountType = DiscountTypes.FixedValue; } else { clsDetails.DiscountType = DiscountTypes.NotApplicable; } clsDetails.IsVatable = chkIsTaxable.Checked; clsDetails.Amount = ComputeItemAmount(); if (clsDetails.IsVatable) { clsDetails.VatableAmount = clsDetails.Amount; clsDetails.EVatableAmount = clsDetails.Amount; clsDetails.LocalTax = clsDetails.Amount; if (clsTerminalDetails.IsVATInclusive == false) { if (clsDetails.VatableAmount < clsDetails.Discount) clsDetails.VatableAmount = 0; if (clsDetails.EVatableAmount < clsDetails.Discount) clsDetails.EVatableAmount = 0; if (clsDetails.LocalTax < clsDetails.Discount) clsDetails.LocalTax = 0; } else { if (clsDetails.VatableAmount >= clsDetails.Discount) clsDetails.VatableAmount = (clsDetails.VatableAmount) / (1 + (clsTerminalDetails.VAT / 100)); else clsDetails.VatableAmount = 0; if (clsDetails.EVatableAmount >= clsDetails.Discount) clsDetails.EVatableAmount = (clsDetails.EVatableAmount) / (1 + (clsTerminalDetails.VAT / 100)); else clsDetails.EVatableAmount = 0; if (clsDetails.LocalTax >= clsDetails.Discount) clsDetails.LocalTax = (clsDetails.LocalTax) / (1 + (clsTerminalDetails.LocalTax / 100)); else clsDetails.LocalTax = 0; } clsDetails.VAT = clsDetails.VatableAmount * (clsTerminalDetails.VAT / 100); clsDetails.EVAT = clsDetails.EVatableAmount * (clsTerminalDetails.EVAT / 100); clsDetails.LocalTax = clsDetails.LocalTax * (clsTerminalDetails.LocalTax / 100); } else { clsDetails.VAT = 0; clsDetails.VatableAmount = 0; clsDetails.EVAT = 0; clsDetails.EVatableAmount = 0; clsDetails.LocalTax = 0; } clsDetails.isVATInclusive = clsTerminalDetails.IsVATInclusive; clsDetails.VariationMatrixID = Convert.ToInt64(cboVariation.SelectedItem.Value); if (clsDetails.VariationMatrixID != 0) clsDetails.MatrixDescription = cboVariation.SelectedItem.Text; clsDetails.ProductGroup = clsProductDetails.ProductGroupCode; clsDetails.ProductSubGroup = clsProductDetails.ProductSubGroupCode; clsDetails.Remarks = txtRemarks.Text; DebitMemoItems clsDebitMemoItems = new DebitMemoItems(); if (lblDebitMemoItemID.Text != "0") { clsDetails.DebitMemoItemID = Convert.ToInt64(lblDebitMemoItemID.Text); clsDebitMemoItems.Update(clsDetails); } else clsDebitMemoItems.Insert(clsDetails); DebitMemoDetails clsDebitMemoDetails = new DebitMemoDetails(); clsDebitMemoDetails.DebitMemoID = clsDetails.DebitMemoID; clsDebitMemoDetails.DiscountApplied = Convert.ToDecimal(txtPODebitMemoDiscountApplied.Text); clsDebitMemoDetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboPODebitMemoDiscountType.SelectedItem.Value); clsDebitMemoDetails.Discount2Applied = Convert.ToDecimal(txtPODebitMemoDiscount2Applied.Text); clsDebitMemoDetails.Discount2Type = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboPODebitMemoDiscount2Type.SelectedItem.Value); clsDebitMemoDetails.Discount3Applied = Convert.ToDecimal(txtPODebitMemoDiscount3Applied.Text); clsDebitMemoDetails.Discount3Type = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboPODebitMemoDiscount3Type.SelectedItem.Value); DebitMemos clsDebitMemos = new DebitMemos(clsDebitMemoItems.Connection, clsDebitMemoItems.Transaction); clsDebitMemos.UpdateDiscount(clsDetails.DebitMemoID, clsDebitMemoDetails.DiscountApplied, clsDebitMemoDetails.DiscountType, clsDebitMemoDetails.Discount2Applied, clsDebitMemoDetails.Discount2Type, clsDebitMemoDetails.Discount3Applied, clsDebitMemoDetails.Discount3Type); clsDebitMemoDetails = clsDebitMemos.Details(clsDetails.DebitMemoID); clsDebitMemoItems.CommitAndDispose(); UpdateFooter(clsDebitMemoDetails); }
private void SaveRecord() { SOItemDetails clsDetails = new SOItemDetails(); Products clsProducts = new Products(); ProductDetails clsProductDetails = clsProducts.Details1(Constants.BRANCH_ID_MAIN, Convert.ToInt64(cboProductCode.SelectedItem.Value)); Terminal clsTerminal = new Terminal(clsProducts.Connection, clsProducts.Transaction); TerminalDetails clsTerminalDetails = clsTerminal.Details(Int32.Parse(Session["BranchID"].ToString()), Session["TerminalNo"].ToString()); clsProducts.CommitAndDispose(); clsDetails.SOID = Convert.ToInt64(lblSOID.Text); clsDetails.ProductID = Convert.ToInt64(cboProductCode.SelectedItem.Value); clsDetails.ProductCode = clsProductDetails.ProductCode; clsDetails.BarCode = clsProductDetails.BarCode; clsDetails.Description = clsProductDetails.ProductDesc; clsDetails.ProductUnitID = Convert.ToInt32(cboProductUnit.SelectedItem.Value); clsDetails.ProductUnitCode = cboProductUnit.SelectedItem.Text; clsDetails.Quantity = Convert.ToDecimal(txtQuantity.Text); clsDetails.UnitCost = Convert.ToDecimal(txtPrice.Text); clsDetails.Discount = getItemTotalDiscount(); clsDetails.DiscountApplied = Convert.ToDecimal(txtDiscount.Text); if (clsDetails.DiscountApplied == 0) { if (chkInPercent.Checked == true) clsDetails.DiscountType = DiscountTypes.Percentage; else clsDetails.DiscountType = DiscountTypes.FixedValue; } else { clsDetails.DiscountType = DiscountTypes.NotApplicable; } clsDetails.IsVatable = chkIsTaxable.Checked; clsDetails.Amount = ComputeItemAmount(); if (clsDetails.IsVatable) { clsDetails.VatableAmount = clsDetails.Amount; clsDetails.EVatableAmount = clsDetails.Amount; clsDetails.LocalTax = clsDetails.Amount; if (clsTerminalDetails.IsVATInclusive == false) { if (clsDetails.VatableAmount < clsDetails.Discount) clsDetails.VatableAmount = 0; if (clsDetails.EVatableAmount < clsDetails.Discount) clsDetails.EVatableAmount = 0; if (clsDetails.LocalTax < clsDetails.Discount) clsDetails.LocalTax = 0; } else { if (clsDetails.VatableAmount >= clsDetails.Discount) clsDetails.VatableAmount = (clsDetails.VatableAmount) / (1 + (clsTerminalDetails.VAT / 100)); else clsDetails.VatableAmount = 0; if (clsDetails.EVatableAmount >= clsDetails.Discount) clsDetails.EVatableAmount = (clsDetails.EVatableAmount) / (1 + (clsTerminalDetails.VAT / 100)); else clsDetails.EVatableAmount = 0; if (clsDetails.LocalTax >= clsDetails.Discount) clsDetails.LocalTax = (clsDetails.LocalTax) / (1 + (clsTerminalDetails.LocalTax / 100)); else clsDetails.LocalTax = 0; } clsDetails.VAT = clsDetails.VatableAmount * (clsTerminalDetails.VAT / 100); clsDetails.EVAT = clsDetails.EVatableAmount * (clsTerminalDetails.EVAT / 100); clsDetails.LocalTax = clsDetails.LocalTax * (clsTerminalDetails.LocalTax / 100); //if (!clsTerminalDetails.IsVATInclusive) clsDetails.Amount += (clsDetails.VAT + clsDetails.LocalTax); //if (!clsTerminalDetails.EnableEVAT) clsDetails.Amount += clsDetails.EVAT; } else { clsDetails.VAT = 0; clsDetails.VatableAmount = 0; clsDetails.EVAT = 0; clsDetails.EVatableAmount = 0; clsDetails.LocalTax = 0; } clsDetails.isVATInclusive = clsTerminalDetails.IsVATInclusive; clsDetails.VariationMatrixID = Convert.ToInt64(cboVariation.SelectedItem.Value); if (clsDetails.VariationMatrixID != 0) clsDetails.MatrixDescription = cboVariation.SelectedItem.Text; clsDetails.ProductGroup = clsProductDetails.ProductGroupCode; clsDetails.ProductSubGroup = clsProductDetails.ProductSubGroupCode; clsDetails.Remarks = txtRemarks.Text; // Added Jul 1, 2010 4:20PM : for suggested selling information clsDetails.SellingPrice = decimal.Parse(txtSellingPrice.Text); clsDetails.SellingVAT = decimal.Parse(txtVAT.Text); clsDetails.SellingEVAT = decimal.Parse(txtEVAT.Text); clsDetails.SellingLocalTax = decimal.Parse(txtLocalTax.Text); SOItem clsSOItem = new SOItem(); if (lblSOItemID.Text != "0") { clsDetails.SOItemID = Convert.ToInt64(lblSOItemID.Text); clsSOItem.Update(clsDetails); } else clsSOItem.Insert(clsDetails); SODetails clsSODetails = new SODetails(); clsSODetails.SOID = clsDetails.SOID; clsSODetails.DiscountApplied = Convert.ToDecimal(txtSODiscountApplied.Text); clsSODetails.DiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), cboSODiscountType.SelectedItem.Value); SO clsSO = new SO(clsSOItem.Connection, clsSOItem.Transaction); clsSO.UpdateDiscount(clsDetails.SOID, clsSODetails.DiscountApplied, clsSODetails.DiscountType); clsSODetails = clsSO.Details(clsDetails.SOID); clsSOItem.CommitAndDispose(); UpdateFooter(clsSODetails); }
private void AddItemToInventory(long pvtDebitMemoID) { DebitMemoDetails clsDebitMemoDetails = Details(pvtDebitMemoID); ERPConfig clsERPConfig = new ERPConfig(base.Connection, base.Transaction); ERPConfigDetails clsERPConfigDetails = clsERPConfig.Details(); DebitMemoItems clsDebitMemoItems = new DebitMemoItems(base.Connection, base.Transaction); ProductUnit clsProductUnit = new ProductUnit(base.Connection, base.Transaction); ProductDetails clsProductDetails = new ProductDetails(); Products clsProduct = new Products(base.Connection, base.Transaction); ProductVariationsMatrix clsProductVariationsMatrix = new ProductVariationsMatrix(base.Connection, base.Transaction); ProductPackage clsProductPackage = new ProductPackage(base.Connection, base.Transaction); MatrixPackage clsMatrixPackage = new MatrixPackage(base.Connection, base.Transaction); Inventory clsInventory = new Inventory(base.Connection, base.Transaction); ProductPackagePriceHistoryDetails clsProductPackagePriceHistoryDetails; ProductPackagePriceHistory clsProductPackagePriceHistory = new ProductPackagePriceHistory(base.Connection, base.Transaction); System.Data.DataTable dt = clsDebitMemoItems.ListAsDataTable(pvtDebitMemoID, SortField: "DebitMemoItemID", SortOrder: SortOption.Ascending); foreach (System.Data.DataRow dr in dt.Rows) { long lngProductID = Convert.ToInt64(dr["ProductID"]); int intProductUnitID = Convert.ToInt16(dr["ProductUnitID"]); decimal decItemQuantity = Convert.ToDecimal(dr["Quantity"]); decimal decQuantity = clsProductUnit.GetBaseUnitValue(lngProductID, intProductUnitID, decItemQuantity); long lngVariationMatrixID = Convert.ToInt64(dr["VariationMatrixID"]); string strMatrixDescription = dr["MatrixDescription"].ToString(); string strProductCode = dr["ProductCode"].ToString(); string strProductUnitCode = dr["ProductUnitCode"].ToString(); decimal decNewUnitCost = Convert.ToDecimal(dr["UnitCost"]); decimal decAmount = Convert.ToDecimal(dr["Amount"]); //decimal decSellingPrice = Convert.ToDecimal(dr["SellingPrice"]); decimal decVAT = Convert.ToDecimal(dr["VAT"]); //decimal decEVAT = Convert.ToDecimal(dr["EVAT"]); //decimal decLocalTax = Convert.ToDecimal(dr["LocalTax"]); clsProductDetails = clsProduct.Details1(clsDebitMemoDetails.BranchID, lngProductID); /******************************************* * Add in the Purchase Price History based on Debit Memo * ****************************************/ // Update ProductPackagePriceHistory first to get the history clsProductPackagePriceHistoryDetails = new ProductPackagePriceHistoryDetails(); clsProductPackagePriceHistoryDetails.UID = clsDebitMemoDetails.PurchaserID; clsProductPackagePriceHistoryDetails.PackageID = clsProductPackage.GetPackageID(lngProductID, intProductUnitID); clsProductPackagePriceHistoryDetails.ChangeDate = DateTime.Now; clsProductPackagePriceHistoryDetails.PurchasePrice = decNewUnitCost * (decItemQuantity / decQuantity); clsProductPackagePriceHistoryDetails.Price = -1; clsProductPackagePriceHistoryDetails.VAT = -1; clsProductPackagePriceHistoryDetails.EVAT = -1; clsProductPackagePriceHistoryDetails.LocalTax = -1; clsProductPackagePriceHistoryDetails.Remarks = "Based on DebitMemo #: " + clsDebitMemoDetails.MemoNo; clsProductPackagePriceHistory.Insert(clsProductPackagePriceHistoryDetails); /******************************************* * Subtract from Inventory : Remove this since this is a Debit Memo * ****************************************/ //clsProduct.SubtractQuantity(lngProductID, decQuantity); //if (lngVariationMatrixID != 0) //{ // clsProductVariationsMatrix.SubtractQuantity(lngVariationMatrixID, decQuantity); //} /******************************************* * Update Purchasing Information * ****************************************/ int iBaseUnitID = clsProduct.get_BaseUnitID(lngProductID); if (iBaseUnitID != intProductUnitID) { clsProduct.UpdatePurchasing(lngProductID, lngVariationMatrixID, clsDebitMemoDetails.SupplierID, iBaseUnitID, (decItemQuantity * decNewUnitCost) / decQuantity); } clsProduct.UpdatePurchasing(lngProductID, lngVariationMatrixID, clsDebitMemoDetails.SupplierID, intProductUnitID, decNewUnitCost); /******************************************* * Add to Inventory Analysis * ****************************************/ InventoryDetails clsInventoryDetails = new InventoryDetails(); clsInventoryDetails.PostingDateFrom = clsERPConfigDetails.PostingDateFrom; clsInventoryDetails.PostingDateTo = clsERPConfigDetails.PostingDateTo; clsInventoryDetails.PostingDate = clsDebitMemoDetails.PostingDate; clsInventoryDetails.ReferenceNo = clsDebitMemoDetails.MemoNo; clsInventoryDetails.ContactID = clsDebitMemoDetails.SupplierID; clsInventoryDetails.ContactCode = clsDebitMemoDetails.SupplierCode; clsInventoryDetails.ProductID = lngProductID; clsInventoryDetails.ProductCode = strProductCode; clsInventoryDetails.VariationMatrixID = lngVariationMatrixID; clsInventoryDetails.MatrixDescription = strMatrixDescription; clsInventoryDetails.PDebitQuantity = decQuantity; clsInventoryDetails.PDebitCost = decAmount - decVAT; clsInventoryDetails.PDebitVAT = decAmount; clsInventory.Insert(clsInventoryDetails); } }
private ProductPurchasePriceHistoryDetails SetDetails(System.Data.DataTable dt, Int32 BranchID = 0) { try { ProductPurchasePriceHistoryDetails Details = new ProductPurchasePriceHistoryDetails(); Details.ProductPurchasePriceHistoryID = 0; foreach (System.Data.DataRow dr in dt.Rows) { Details.ProductPurchasePriceHistoryID = Int64.Parse(dr["ProductPurchasePriceHistoryID"].ToString()); Details.MatrixID = Int64.Parse(dr["MatrixID"].ToString()); Details.SupplierID = Int64.Parse(dr["SupplierID"].ToString()); Details.PurchasePrice = Decimal.Parse(dr["PurchasePrice"].ToString()); Details.PurchaseDate = DateTime.Parse(dr["PurchaseDate"].ToString()); Details.Remarks = "" + dr["Remarks"].ToString(); Products clsProduct = new Products(base.Connection, base.Transaction); Details.ProductDetails = clsProduct.Details1(BranchID, Details.ProductID); Contacts clsContact = new Contacts(base.Connection, base.Transaction); Details.SupplierDetails = clsContact.Details(Details.SupplierID); } return Details; } catch (Exception ex) { throw base.ThrowException(ex); } }
protected void cboProductCode_SelectedIndexChanged(object sender, System.EventArgs e) { if (cboProductCode.SelectedItem.Text == "No product" || cboProductCode.SelectedItem.Text == "No Product; Enter product to search.") { lblVariationMatrix.Visible = false; lnkVariationMatrixAdd.Visible = false; lstVariationMatrix.Visible = false; lblUnitName.Visible = false; txtQuantityBefore.Visible = false; txtDifference.Visible = false; txtQuantityNow.Visible = false; txtMinThreshold.Visible = false; txtMaxThreshold.Visible = false; imgProductHistory.Visible = false; imgProductPriceHistory.Visible = false; imgChangePrice.Visible = false; imgEditNow.Visible = false; } else { lblVariationMatrix.Visible = true; lnkVariationMatrixAdd.Visible = true; lnkVariationMatrixAdd.ToolTip = "Add new variation matrix for " + cboProductCode.SelectedItem.Text; lnkVariationMatrixAdd.NavigateUrl = Constants.ROOT_DIRECTORY + "/MasterFiles/_Product/_VariationsMatrix/Default.aspx?task=" + Common.Encrypt("add", Session.SessionID) + "&prodid=" + Common.Encrypt(cboProductCode.SelectedValue, Session.SessionID); lblUnitName.Visible = true; txtQuantityBefore.Visible = true; txtDifference.Visible = true; txtQuantityNow.Visible = true; txtMinThreshold.Visible = true; txtMaxThreshold.Visible = true; imgProductHistory.Visible = true; imgProductPriceHistory.Visible = true; imgChangePrice.Visible = true; imgEditNow.Visible = true; Products clsProduct = new Products(); ProductDetails clsProductDetails = clsProduct.Details1(int.Parse(cboBranch.SelectedItem.Value), Convert.ToInt64(cboProductCode.SelectedValue)); txtProductCode.Text = cboProductCode.SelectedItem.Text; lblProductDesc.Text = clsProductDetails.ProductDesc; lblUnitName.ToolTip = clsProductDetails.BaseUnitID.ToString(); lblUnitName.Text = clsProductDetails.BaseUnitCode; txtQuantityBefore.Text = clsProductDetails.Quantity.ToString("#,##0.#0"); txtDifference.Text = "0"; txtQuantityNow.Text = txtQuantityBefore.Text; txtMinThreshold.ToolTip = clsProductDetails.MinThreshold.ToString("#,##0.#0"); txtMinThreshold.Text = clsProductDetails.MinThreshold.ToString("#,##0.#0"); txtMaxThreshold.ToolTip = clsProductDetails.MaxThreshold.ToString("#,##0.#0"); txtMaxThreshold.Text = clsProductDetails.MaxThreshold.ToString("#,##0.#0"); ProductInventories clsProductInventory = new ProductInventories(clsProduct.Connection, clsProduct.Transaction); lstVariationMatrix.DataSource = clsProductInventory.ListAsDataTable(int.Parse(cboBranch.SelectedItem.Value), Convert.ToInt64(cboProductCode.SelectedValue)).DefaultView; lstVariationMatrix.DataBind(); clsProduct.CommitAndDispose(); lstVariationMatrix.Visible = true; txtDifference.Enabled = false; txtQuantityNow.Enabled = false; txtMinThreshold.Enabled = false; txtMaxThreshold.Enabled = false; } }