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); } }
public void AddToList(ProductPurchasePriceHistoryDetails Details) { try { System.Data.DataTable dt = ListAsDataTable(Details.ProductID, DateTime.Now.AddMonths(-6), "PurchasePrice", SortOption.Desscending); if (dt.Rows.Count < DataConstants.MAX_PURCHASE_PRICE_SUPPLIER) { //insert new purchase price if price levels are lower than max Insert(Details); } else { long lngCtr = 0; //update purchase price foreach (System.Data.DataRow dr in dt.Rows) { decimal decPurchasePrice = decimal.Parse(dr["PurchasePrice"].ToString()); long lngProductPurchasePriceHistoryID = long.Parse(dr["ProductPurchasePriceHistoryID"].ToString()); Details.ProductPurchasePriceHistoryID = lngProductPurchasePriceHistoryID; lngCtr += 1; if (decPurchasePrice >= Details.PurchasePrice ) break; else if(dt.Rows.Count == lngCtr && decPurchasePrice == 0) break; } //if it comes here then update the most oldest with the latest Update(Details); } } catch (Exception ex) { throw base.ThrowException(ex); } }
private void Update(ProductPurchasePriceHistoryDetails Details) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "UPDATE tblProductPurchasePriceHistory SET " + "SupplierID = @SupplierID, " + "PurchasePrice = @PurchasePrice, " + "PurchaseDate = @PurchaseDate, "+ "Remarks = @Remarks, " + "PurchaserName = @PurchaserName " + "WHERE ProductPurchasePriceHistoryID = @ProductPurchasePriceHistoryID;"; cmd.Parameters.AddWithValue("@ProductPurchasePriceHistoryID", Details.ProductPurchasePriceHistoryID); cmd.Parameters.AddWithValue("@SupplierID", Details.SupplierID); cmd.Parameters.AddWithValue("@PurchasePrice", Details.PurchasePrice); cmd.Parameters.AddWithValue("@PurchaseDate", Details.PurchaseDate.ToString("yyyy-MM-dd HH:mm:ss")); cmd.Parameters.AddWithValue("@Remarks", Details.Remarks); cmd.Parameters.AddWithValue("@PurchaserName", Details.PurchaserName); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); } catch (Exception ex) { throw base.ThrowException(ex); } }
private Int64 Insert(ProductPurchasePriceHistoryDetails Details) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "INSERT INTO tblProductPurchasePriceHistory (" + "ProductID, " + "MatrixID, " + "SupplierID, " + "PurchasePrice, " + "PurchaseDate, " + "Remarks," + "PurchaserName," + "DateCreated" + ") VALUES (" + "@ProductID, " + "@MatrixID, " + "@SupplierID, " + "@PurchasePrice, " + "@PurchaseDate, " + "@Remarks," + "@PurchaserName," + "now());"; cmd.Parameters.AddWithValue("@ProductID", Details.ProductID); cmd.Parameters.AddWithValue("@MatrixID", Details.MatrixID); cmd.Parameters.AddWithValue("@SupplierID", Details.SupplierID); cmd.Parameters.AddWithValue("@PurchasePrice", Details.PurchasePrice); cmd.Parameters.AddWithValue("@PurchaseDate", Details.PurchaseDate.ToString("yyyy-MM-dd HH:mm:ss")); cmd.Parameters.AddWithValue("@Remarks", Details.Remarks); cmd.Parameters.AddWithValue("@PurchaserName", Details.PurchaserName); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); return(Int64.Parse(base.getLAST_INSERT_ID(this))); } catch (Exception ex) { throw base.ThrowException(ex); } }
public void AddToList(ProductPurchasePriceHistoryDetails Details) { try { System.Data.DataTable dt = ListAsDataTable(Details.ProductID, DateTime.Now.AddMonths(-6), "PurchasePrice", SortOption.Desscending); if (dt.Rows.Count < DataConstants.MAX_PURCHASE_PRICE_SUPPLIER) { //insert new purchase price if price levels are lower than max Insert(Details); } else { long lngCtr = 0; //update purchase price foreach (System.Data.DataRow dr in dt.Rows) { decimal decPurchasePrice = decimal.Parse(dr["PurchasePrice"].ToString()); long lngProductPurchasePriceHistoryID = long.Parse(dr["ProductPurchasePriceHistoryID"].ToString()); Details.ProductPurchasePriceHistoryID = lngProductPurchasePriceHistoryID; lngCtr += 1; if (decPurchasePrice >= Details.PurchasePrice) { break; } else if (dt.Rows.Count == lngCtr && decPurchasePrice == 0) { break; } } //if it comes here then update the most oldest with the latest Update(Details); } } catch (Exception ex) { throw base.ThrowException(ex); } }
private Int64 Insert(ProductPurchasePriceHistoryDetails Details) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "INSERT INTO tblProductPurchasePriceHistory (" + "ProductID, " + "MatrixID, " + "SupplierID, " + "PurchasePrice, " + "PurchaseDate, " + "Remarks," + "PurchaserName," + "DateCreated" + ") VALUES (" + "@ProductID, " + "@MatrixID, " + "@SupplierID, " + "@PurchasePrice, " + "@PurchaseDate, " + "@Remarks," + "@PurchaserName," + "now());"; cmd.Parameters.AddWithValue("@ProductID",Details.ProductID); cmd.Parameters.AddWithValue("@MatrixID", Details.MatrixID); cmd.Parameters.AddWithValue("@SupplierID", Details.SupplierID); cmd.Parameters.AddWithValue("@PurchasePrice", Details.PurchasePrice); cmd.Parameters.AddWithValue("@PurchaseDate", Details.PurchaseDate.ToString("yyyy-MM-dd HH:mm:ss")); cmd.Parameters.AddWithValue("@Remarks", Details.Remarks); cmd.Parameters.AddWithValue("@PurchaserName", Details.PurchaserName); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); return Int64.Parse(base.getLAST_INSERT_ID(this)); } catch (Exception ex) { throw base.ThrowException(ex); } }
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); } }
private void Update(ProductPurchasePriceHistoryDetails Details) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "UPDATE tblProductPurchasePriceHistory SET " + "SupplierID = @SupplierID, " + "PurchasePrice = @PurchasePrice, " + "PurchaseDate = @PurchaseDate, " + "Remarks = @Remarks, " + "PurchaserName = @PurchaserName " + "WHERE ProductPurchasePriceHistoryID = @ProductPurchasePriceHistoryID;"; cmd.Parameters.AddWithValue("@ProductPurchasePriceHistoryID", Details.ProductPurchasePriceHistoryID); cmd.Parameters.AddWithValue("@SupplierID", Details.SupplierID); cmd.Parameters.AddWithValue("@PurchasePrice", Details.PurchasePrice); cmd.Parameters.AddWithValue("@PurchaseDate", Details.PurchaseDate.ToString("yyyy-MM-dd HH:mm:ss")); cmd.Parameters.AddWithValue("@Remarks", Details.Remarks); cmd.Parameters.AddWithValue("@PurchaserName", Details.PurchaserName); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); } catch (Exception ex) { throw base.ThrowException(ex); } }
private void AddItemToInventory(long POID) { PODetails clsPODetails = Details(POID); ERPConfig clsERPConfig = new ERPConfig(base.Connection, base.Transaction); ERPConfigDetails clsERPConfigDetails = clsERPConfig.Details(); POItem clsPOItem = new POItem(base.Connection, base.Transaction); ProductUnit clsProductUnit = new ProductUnit(base.Connection, base.Transaction); Products clsProduct = new Products(base.Connection, base.Transaction); ProductVariationsMatrix clsProductVariationsMatrix = new ProductVariationsMatrix(base.Connection, base.Transaction); ProductPackage clsProductPackage = new ProductPackage(base.Connection, base.Transaction); Inventory clsInventory = new Inventory(base.Connection, base.Transaction); InventoryDetails clsInventoryDetails; ProductPackagePriceHistoryDetails clsProductPackagePriceHistoryDetails; //MySqlDataReader myReader = clsPOItem.List(POID, "POItemID", SortOption.Ascending); System.Data.DataTable dt = clsPOItem.ListAsDataTable(POID, "POItemID", SortOption.Ascending); //while (myReader.Read()) 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 decUnitCost = Convert.ToDecimal(dr["UnitCost"]); decimal decItemCost = 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"]); /******************************************* * Add in the Price History * ****************************************/ // Update ProductPackagePriceHistory first to get the history clsProductPackagePriceHistoryDetails = new ProductPackagePriceHistoryDetails(); clsProductPackagePriceHistoryDetails.UID = clsPODetails.PurchaserID; clsProductPackagePriceHistoryDetails.PackageID = clsProductPackage.GetPackageID(lngProductID, intProductUnitID); clsProductPackagePriceHistoryDetails.ChangeDate = DateTime.Now; clsProductPackagePriceHistoryDetails.PurchasePrice = (decItemQuantity * decUnitCost) / decQuantity; clsProductPackagePriceHistoryDetails.Price = decSellingPrice; clsProductPackagePriceHistoryDetails.VAT = decVAT; clsProductPackagePriceHistoryDetails.EVAT = decEVAT; clsProductPackagePriceHistoryDetails.LocalTax = decLocalTax; clsProductPackagePriceHistoryDetails.Remarks = "Based on PO #: " + clsPODetails.PONo; ProductPackagePriceHistory clsProductPackagePriceHistory = new ProductPackagePriceHistory(base.Connection, base.Transaction); clsProductPackagePriceHistory.Insert(clsProductPackagePriceHistoryDetails); /******************************************* * Add to Inventory * ****************************************/ //clsProduct.AddQuantity(lngProductID, decQuantity); //if (lngVariationMatrixID != 0) { clsProductVariationsMatrix.AddQuantity(lngVariationMatrixID, decQuantity); } // July 26, 2011: change the above codes to the following clsProduct.AddQuantity(clsPODetails.BranchID, lngProductID, lngVariationMatrixID, decQuantity, Products.getPRODUCT_INVENTORY_MOVEMENT_VALUE(PRODUCT_INVENTORY_MOVEMENT.ADD_PURCHASE) + " @ " + decUnitCost.ToString("#,##0.#0") + "/" + strProductUnitCode, DateTime.Now, clsPODetails.PONo, clsPODetails.PurchaserName); /******************************************* * Update Purchasing Information * * 30May2013 Include variation in the package. * ****************************************/ int iBaseUnitID = clsProduct.get_BaseUnitID(lngProductID); if (iBaseUnitID != intProductUnitID) { clsProduct.UpdatePurchasing(lngProductID, lngVariationMatrixID, clsPODetails.SupplierID, iBaseUnitID, (decItemQuantity * decUnitCost) / decQuantity); } clsProduct.UpdatePurchasing(lngProductID, lngVariationMatrixID, clsPODetails.SupplierID, intProductUnitID, decUnitCost); /******************************************* * Add to Inventory Analysis * ****************************************/ clsInventoryDetails = new InventoryDetails(); clsInventoryDetails.BranchID = clsPODetails.BranchID; clsInventoryDetails.PostingDateFrom = clsERPConfigDetails.PostingDateFrom; clsInventoryDetails.PostingDateTo = clsERPConfigDetails.PostingDateTo; clsInventoryDetails.PostingDate = clsPODetails.DeliveryDate; clsInventoryDetails.ReferenceNo = clsPODetails.PONo; clsInventoryDetails.ContactID = clsPODetails.SupplierID; clsInventoryDetails.ContactCode = clsPODetails.SupplierCode; clsInventoryDetails.ProductID = lngProductID; clsInventoryDetails.ProductCode = strProductCode; clsInventoryDetails.VariationMatrixID = lngVariationMatrixID; clsInventoryDetails.MatrixDescription = strMatrixDescription; clsInventoryDetails.PurchaseQuantity = decQuantity; clsInventoryDetails.PurchaseCost = decItemCost - decVAT; clsInventoryDetails.PurchaseVAT = decItemCost; // Purchase Cost with VAT clsInventory.Insert(clsInventoryDetails); /******************************************* * Added Jan 1, 2010 4:20PM * Update Selling Information when PO is posted * ****************************************/ clsProduct.UpdateSellingPrice(lngProductID, lngVariationMatrixID, clsPODetails.SupplierID, intProductUnitID, Convert.ToDecimal(dr["SellingPrice"]), -1, -1, -1, -1, -1); /******************************************* * Added Mar 8, 2010 4:20PM * Update the purchase price history to check who has the lowest price. * ****************************************/ ProductPurchasePriceHistoryDetails clsProductPurchasePriceHistoryDetails = new ProductPurchasePriceHistoryDetails(); clsProductPurchasePriceHistoryDetails.ProductID = lngProductID; clsProductPurchasePriceHistoryDetails.MatrixID = lngVariationMatrixID; clsProductPurchasePriceHistoryDetails.SupplierID = clsPODetails.SupplierID; clsProductPurchasePriceHistoryDetails.PurchasePrice = decUnitCost; clsProductPurchasePriceHistoryDetails.PurchaseDate = clsPODetails.PODate; clsProductPurchasePriceHistoryDetails.Remarks = clsPODetails.PONo; clsProductPurchasePriceHistoryDetails.PurchaserName = clsPODetails.PurchaserName; ProductPurchasePriceHistory clsProductPurchasePriceHistory = new ProductPurchasePriceHistory(base.Connection, base.Transaction); clsProductPurchasePriceHistory.AddToList(clsProductPurchasePriceHistoryDetails); } //myReader.Close(); }
private void AddItemToInventory(long TransferInID) { try { TransferInDetails clsTransferInDetails = Details(TransferInID); ERPConfig clsERPConfig = new ERPConfig(base.Connection, base.Transaction); ERPConfigDetails clsERPConfigDetails = clsERPConfig.Details(); TransferInItem clsTransferInItem = new TransferInItem(base.Connection, base.Transaction); ProductUnit clsProductUnit = new ProductUnit(base.Connection, base.Transaction); Products clsProduct = new Products(base.Connection, base.Transaction); ProductPackage clsProductPackage = new ProductPackage(base.Connection, base.Transaction); Inventory clsInventory = new Inventory(base.Connection, base.Transaction); InventoryDetails clsInventoryDetails; ProductPackagePriceHistoryDetails clsProductPackagePriceHistoryDetails; System.Data.DataTable dt = clsTransferInItem.ListAsDataTable(TransferInID, "TransferInItemID", SortOption.Ascending); foreach(System.Data.DataRow dr in dt.Rows) { long lngProductID = long.Parse(dr["ProductID"].ToString()); int intProductUnitID = int.Parse(dr["ProductUnitID"].ToString()); decimal decItemQuantity = decimal.Parse(dr["Quantity"].ToString()); decimal decQuantity = new ProductUnit().GetBaseUnitValue(lngProductID, intProductUnitID, decItemQuantity); long lngVariationMatrixID = long.Parse(dr["VariationMatrixID"].ToString()); string strMatrixDescription = "" + dr["MatrixDescription"].ToString(); string strProductCode = "" + dr["ProductCode"].ToString(); decimal decUnitCost = decimal.Parse(dr["UnitCost"].ToString()); decimal decItemCost = decimal.Parse(dr["Amount"].ToString()); decimal decSellingPrice = Convert.ToDecimal(dr["SellingPrice"]); decimal decVAT = Convert.ToDecimal(dr["VAT"]); // myReader.GetDecimal("VAT"); decimal decEVAT = Convert.ToDecimal(dr["EVAT"]); decimal decLocalTax = Convert.ToDecimal(dr["LocalTax"]); /******************************************* * Add in the Price History * ****************************************/ // Update ProductPackagePriceHistory first to get the history clsProductPackagePriceHistoryDetails = new ProductPackagePriceHistoryDetails(); clsProductPackagePriceHistoryDetails.UID = clsTransferInDetails.TransferrerID; clsProductPackagePriceHistoryDetails.PackageID = new ProductPackage().GetPackageID(lngProductID, intProductUnitID); clsProductPackagePriceHistoryDetails.ChangeDate = DateTime.Now; clsProductPackagePriceHistoryDetails.PurchasePrice = (decItemQuantity * decUnitCost) / decQuantity; clsProductPackagePriceHistoryDetails.Price = decSellingPrice; clsProductPackagePriceHistoryDetails.VAT = decVAT; clsProductPackagePriceHistoryDetails.EVAT = decEVAT; clsProductPackagePriceHistoryDetails.LocalTax = decLocalTax; clsProductPackagePriceHistoryDetails.Remarks = "Based on TransferIn #: " + clsTransferInDetails.TransferInNo; ProductPackagePriceHistory clsProductPackagePriceHistory = new ProductPackagePriceHistory(base.Connection, base.Transaction); clsProductPackagePriceHistory.Insert(clsProductPackagePriceHistoryDetails); /******************************************* * Add to Inventory * ****************************************/ //clsProduct.AddQuantity(lngProductID, decQuantity); //if (lngVariationMatrixID != 0) //{ // clsProductVariationsMatrix.AddQuantity(lngVariationMatrixID, decQuantity); //} // July 26, 2011: change the above codes to the following clsProduct.AddQuantity(clsTransferInDetails.BranchID, lngProductID, lngVariationMatrixID, decQuantity, Products.getPRODUCT_INVENTORY_MOVEMENT_VALUE(PRODUCT_INVENTORY_MOVEMENT.ADD_TRANSFER_IN), DateTime.Now, clsTransferInDetails.TransferInNo, clsTransferInDetails.TransferrerName); /******************************************* * Update Purchasing Information * ****************************************/ int iBaseUnitID = clsProduct.get_BaseUnitID(lngProductID); if (iBaseUnitID != intProductUnitID) { clsProduct.UpdatePurchasing(lngProductID, lngVariationMatrixID, clsTransferInDetails.SupplierID, iBaseUnitID, (decItemQuantity * decUnitCost) / decQuantity); } clsProduct.UpdatePurchasing(lngProductID, lngVariationMatrixID, clsTransferInDetails.SupplierID, intProductUnitID, decUnitCost); /******************************************* * Add to Inventory Analysis * ****************************************/ clsInventoryDetails = new InventoryDetails(); clsInventoryDetails.PostingDateFrom = clsERPConfigDetails.PostingDateFrom; clsInventoryDetails.PostingDateTo = clsERPConfigDetails.PostingDateTo; clsInventoryDetails.PostingDate = clsTransferInDetails.DeliveryDate; clsInventoryDetails.ReferenceNo = clsTransferInDetails.TransferInNo; clsInventoryDetails.ContactID = clsTransferInDetails.SupplierID; clsInventoryDetails.ContactCode = clsTransferInDetails.SupplierCode; clsInventoryDetails.ProductID = lngProductID; clsInventoryDetails.ProductCode = strProductCode; clsInventoryDetails.VariationMatrixID = lngVariationMatrixID; clsInventoryDetails.MatrixDescription = strMatrixDescription; clsInventoryDetails.TransferInQuantity = decQuantity; clsInventoryDetails.TransferInCost = decItemCost - decVAT; clsInventoryDetails.TransferInVAT = decItemCost; // TransferIn Cost with VAT clsInventory.Insert(clsInventoryDetails); /******************************************* * Added April 28, 2010 4:20PM * Update Selling Information when TransferIn is posted * ****************************************/ clsProduct.UpdateSellingPrice(lngProductID, lngVariationMatrixID, clsTransferInDetails.SupplierID, intProductUnitID, decimal.Parse(dr["SellingPrice"].ToString()), -1, -1, -1, -1, -1); //if (lngVariationMatrixID != 0) //{ // clsProductVariationsMatrix.UpdateSellingWithSameQuantityAndUnit(lngVariationMatrixID, clsPODetails.SupplierID, intProductUnitID, decimal.Parse(myReader["SellingPrice"); //} /******************************************* * Added April 28, 2010 4:20PM * Update the purchase price history to check who has the lowest price. * ****************************************/ ProductPurchasePriceHistoryDetails clsProductPurchasePriceHistoryDetails = new ProductPurchasePriceHistoryDetails(); clsProductPurchasePriceHistoryDetails.ProductID = lngProductID; clsProductPurchasePriceHistoryDetails.MatrixID = lngVariationMatrixID; clsProductPurchasePriceHistoryDetails.SupplierID = clsTransferInDetails.SupplierID; clsProductPurchasePriceHistoryDetails.PurchasePrice = decUnitCost; clsProductPurchasePriceHistoryDetails.PurchaseDate = clsTransferInDetails.TransferInDate; clsProductPurchasePriceHistoryDetails.Remarks = clsTransferInDetails.TransferInNo; ProductPurchasePriceHistory clsProductPurchasePriceHistory = new ProductPurchasePriceHistory(base.Connection, base.Transaction); clsProductPurchasePriceHistory.AddToList(clsProductPurchasePriceHistoryDetails); } } catch (Exception ex) { throw base.ThrowException(ex); } }