public static FinancialObject Post(ICollection <ActiveInventoryObject> Activity, string receiptID, decimal cash, decimal credit, decimal check, PricingModelObject selectedPricingModel, decimal tax, decimal profitLoss, string USStateOfSale, decimal totalSale, decimal discountAmount) { DateTime transTime = DateTime.Now; decimal discount = 0; int productCount = 0; if (Activity != null) { foreach (ActiveInventoryObject aio in Activity) { InventoryTransactionObject tran = new InventoryTransactionObject(); //aio.TotalDollarChanged -= newItem_TotalDollarChanged; tran.ReceiptID = receiptID; tran.TransactionTime = transTime; decimal amount = aio.GetTotalPrice(selectedPricingModel); tran.TransactionAmount = amount; productCount += aio.Quantity; tran.Quantity = -aio.Quantity; //Quantity to reflect change in ActiveInventory. Negative to remove from Inventory. //Part of Pair matching: //tran.CostEach = tran.Discount = aio.Discount; // tran.DiscountRateLevel = aio.DiscountRateLevel; tran.ExportedToWeb = false; tran.IsSale = true; tran.PairMatched = false; tran.ProductID = aio.ProductID; decimal priceEach = aio.GetPriceEach(selectedPricingModel); if (selectedPricingModel != null) { if (selectedPricingModel.IncludesSalesTax) { priceEach = priceEach / (1 + Configuration.Current.CurrentSalesTax); } } tran.SellingPriceEach = priceEach; tran.SKU = aio.SKU; tran.UPC = aio.UPC; Cache.Current.InventoryActivity.Add(tran); discount += aio.Discount; } } Cache.Current.SaveInventoryActivity(); FinancialObject fin = new FinancialObject(); fin.ReceiptID = receiptID; fin.DiscountAmount = discount; fin.TotalCash = cash; fin.TotalCredit = credit; fin.TotalCheck = check; fin.TotalTax = tax; fin.TotalSale = fin.TotalCredit + fin.TotalCash + fin.TotalCheck - fin.TotalTax; fin.ProductCount = productCount; fin.ProfitLoss = profitLoss; fin.Station = Configuration.Current.StationID; fin.User = System.Security.Principal.WindowsIdentity.GetCurrent().Name; if (selectedPricingModel != null) { fin.PricingModelInEffect = selectedPricingModel.Name; } fin.USStateOfSale = USStateOfSale; fin.DiscountAmount += discountAmount; Cache.Current.CurrentFinancials.Add(fin); Cache.Current.SaveFinancials(); return(fin); }
public static FinancialObject Post(ICollection<ActiveInventoryObject> Activity, string receiptID, decimal cash, decimal credit, decimal check, PricingModelObject selectedPricingModel, decimal tax, decimal profitLoss, string USStateOfSale, decimal totalSale, decimal discountAmount) { DateTime transTime = DateTime.Now; decimal discount = 0; int productCount = 0; if (Activity != null) { foreach (ActiveInventoryObject aio in Activity) { InventoryTransactionObject tran = new InventoryTransactionObject(); //aio.TotalDollarChanged -= newItem_TotalDollarChanged; tran.ReceiptID = receiptID; tran.TransactionTime = transTime; decimal amount = aio.GetTotalPrice(selectedPricingModel); tran.TransactionAmount = amount; productCount += aio.Quantity; tran.Quantity = -aio.Quantity; //Quantity to reflect change in ActiveInventory. Negative to remove from Inventory. //Part of Pair matching: //tran.CostEach = tran.Discount = aio.Discount; // tran.DiscountRateLevel = aio.DiscountRateLevel; tran.ExportedToWeb = false; tran.IsSale = true; tran.PairMatched = false; tran.ProductID = aio.ProductID; decimal priceEach = aio.GetPriceEach(selectedPricingModel); if (selectedPricingModel != null) { if (selectedPricingModel.IncludesSalesTax) { priceEach = priceEach / (1 + Configuration.Current.CurrentSalesTax); } } tran.SellingPriceEach = priceEach; tran.SKU = aio.SKU; tran.UPC = aio.UPC; Cache.Current.InventoryActivity.Add(tran); discount += aio.Discount; } } Cache.Current.SaveInventoryActivity(); FinancialObject fin = new FinancialObject(); fin.ReceiptID = receiptID; fin.DiscountAmount = discount; fin.TotalCash = cash; fin.TotalCredit = credit; fin.TotalCheck = check; fin.TotalTax = tax; fin.TotalSale = fin.TotalCredit + fin.TotalCash + fin.TotalCheck - fin.TotalTax; fin.ProductCount = productCount; fin.ProfitLoss = profitLoss; fin.Station = Configuration.Current.StationID; fin.User = System.Security.Principal.WindowsIdentity.GetCurrent().Name; if (selectedPricingModel != null) { fin.PricingModelInEffect = selectedPricingModel.Name; } fin.USStateOfSale = USStateOfSale; fin.DiscountAmount += discountAmount; Cache.Current.CurrentFinancials.Add(fin); Cache.Current.SaveFinancials(); return fin; }
public static void CloseDay(decimal startingCash, decimal CashOnHand, string reportFile) { decimal cash = startingCash; decimal profit = 0; decimal revenue = 0; int saleCount = 0; int productQuantity = 0; decimal discountAmount = 0; decimal taxAmount = 0; decimal creditAmount = 0; decimal checkAmount = 0; List <InventoryTransactionObject> working = new List <InventoryTransactionObject>(); List <FinancialObject> financialList = new List <FinancialObject>(); foreach (InventoryTransactionObject trans in Cache.Current.InventoryActivity) { working.Add(trans); FinancialObject f = Cache.Current.CurrentFinancials.GetFinancial(trans.ReceiptID); if (f != null) { if (trans.ProductID != 0) { cash += f.TotalCash; profit += f.ProfitLoss; revenue += f.TotalSale; saleCount++; productQuantity += f.ProductCount; discountAmount += f.DiscountAmount; taxAmount += f.TotalTax; creditAmount += f.TotalCredit; checkAmount += f.TotalCheck; financialList.Add(f); } } } decimal overShort = CashOnHand - cash; FinancialObject fin = null; InventoryTransactionObject tran = null; if (overShort != 0) { fin = new FinancialObject(); profit += overShort; fin.TotalTax = 0; fin.DiscountAmount = 0; fin.PricingModelInEffect = string.Empty; fin.ProductCount = 0; fin.ProfitLoss = overShort; fin.ReceiptID = DateTime.Today.ToString("yyyyMMdd") + " " + Configuration.Current.StationID + "-" + Configuration.Current.ReceiptIDNumber++; Configuration.Current.Save(); fin.Station = Configuration.Current.StationID; fin.TotalCash = overShort; fin.TotalSale = overShort; fin.User = System.Security.Principal.WindowsIdentity.GetCurrent().Name; tran = new InventoryTransactionObject(); tran.ReceiptID = fin.ReceiptID; tran.CostEach = 0; tran.Discount = 0; tran.DiscountRateLevel = 0; tran.ExportedToWeb = false; tran.IsSale = true; tran.PairMatched = false; tran.ProductID = 0; tran.Quantity = 0; tran.SellingPriceEach = 0; tran.SKU = string.Empty; tran.TransactionAmount = overShort; tran.TransactionTime = DateTime.Now; tran.UPC = string.Empty; } foreach (InventoryTransactionObject tran1 in working) { Cache.Current.ReadyForOpenCartUpdate.Add(tran1); Cache.Current.InventoryActivity.Remove(tran1); } if (tran != null) { Cache.Current.ReadyForOpenCartUpdate.Add(tran); working.Add(tran); } foreach (FinancialObject fin1 in financialList) { Cache.Current.StagedFinancials.Add(fin1); Cache.Current.CurrentFinancials.Remove(fin1); } if (fin != null) { Cache.Current.StagedFinancials.Add(fin); financialList.Add(fin); } Cache.Current.SaveReadyForOpenCartUpdate(); Cache.Current.SaveStagedFinancials(); Cache.Current.SaveFinancials(); Cache.Current.SaveInventoryActivity(); CreatePDFCloseDayReport(startingCash, CashOnHand, cash, creditAmount, checkAmount, profit, revenue, saleCount, productQuantity, discountAmount, taxAmount, reportFile, financialList, working); }
public static void CloseDay(decimal startingCash, decimal CashOnHand, string reportFile) { decimal cash = startingCash; decimal profit = 0; decimal revenue = 0; int saleCount = 0; int productQuantity = 0; decimal discountAmount =0; decimal taxAmount = 0; decimal creditAmount = 0; decimal checkAmount = 0; List<InventoryTransactionObject> working = new List<InventoryTransactionObject>(); List<FinancialObject> financialList = new List<FinancialObject>(); foreach (InventoryTransactionObject trans in Cache.Current.InventoryActivity) { working.Add(trans); FinancialObject f = Cache.Current.CurrentFinancials.GetFinancial(trans.ReceiptID); if (f != null) { if (trans.ProductID != 0) { cash += f.TotalCash; profit += f.ProfitLoss; revenue += f.TotalSale; saleCount++; productQuantity += f.ProductCount; discountAmount += f.DiscountAmount; taxAmount += f.TotalTax; creditAmount += f.TotalCredit; checkAmount += f.TotalCheck; financialList.Add(f); } } } decimal overShort = CashOnHand - cash; FinancialObject fin = null; InventoryTransactionObject tran = null; if (overShort != 0) { fin = new FinancialObject(); profit += overShort; fin.TotalTax = 0; fin.DiscountAmount = 0; fin.PricingModelInEffect = string.Empty; fin.ProductCount = 0; fin.ProfitLoss = overShort; fin.ReceiptID = DateTime.Today.ToString("yyyyMMdd") + " " + Configuration.Current.StationID + "-" + Configuration.Current.ReceiptIDNumber++; Configuration.Current.Save(); fin.Station = Configuration.Current.StationID; fin.TotalCash = overShort; fin.TotalSale = overShort; fin.User = System.Security.Principal.WindowsIdentity.GetCurrent().Name; tran = new InventoryTransactionObject(); tran.ReceiptID = fin.ReceiptID; tran.CostEach = 0; tran.Discount = 0; tran.DiscountRateLevel = 0; tran.ExportedToWeb = false; tran.IsSale = true; tran.PairMatched = false; tran.ProductID = 0; tran.Quantity = 0; tran.SellingPriceEach = 0; tran.SKU = string.Empty; tran.TransactionAmount = overShort; tran.TransactionTime = DateTime.Now; tran.UPC = string.Empty; } foreach (InventoryTransactionObject tran1 in working) { Cache.Current.ReadyForOpenCartUpdate.Add(tran1); Cache.Current.InventoryActivity.Remove(tran1); } if (tran != null) { Cache.Current.ReadyForOpenCartUpdate.Add(tran); working.Add(tran); } foreach (FinancialObject fin1 in financialList) { Cache.Current.StagedFinancials.Add(fin1); Cache.Current.CurrentFinancials.Remove(fin1); } if (fin != null) { Cache.Current.StagedFinancials.Add(fin); financialList.Add(fin); } Cache.Current.SaveReadyForOpenCartUpdate(); Cache.Current.SaveStagedFinancials(); Cache.Current.SaveFinancials(); Cache.Current.SaveInventoryActivity(); CreatePDFCloseDayReport(startingCash, CashOnHand, cash, creditAmount, checkAmount, profit, revenue, saleCount, productQuantity, discountAmount, taxAmount, reportFile, financialList, working); }