//============================================================================* // SupplyTotals() //============================================================================* public cCostAnalysisSupplyTotals SupplyTotals(cSupply Supply) { cCostAnalysisSupplyTotals SupplyTotals = new cCostAnalysisSupplyTotals(); SupplyTotals.InStockQty += m_DataFiles.SupplyQuantity(Supply); SupplyTotals.InStockTotal += m_DataFiles.SupplyCost(Supply); //----------------------------------------------------------------------------* // Loop through the supply transactions //----------------------------------------------------------------------------* foreach (cTransaction Transaction in Supply.TransactionList) { //----------------------------------------------------------------------------* // See if this transaction meets the filter criteria //----------------------------------------------------------------------------* if (IncludeTransaction(Transaction)) { //----------------------------------------------------------------------------* // Add to the overall totals //----------------------------------------------------------------------------* SupplyTotals.NumTransactions++; //----------------------------------------------------------------------------* // Determine the Transaction type //----------------------------------------------------------------------------* switch (Transaction.TransactionType) { //----------------------------------------------------------------------------* // Purchase //----------------------------------------------------------------------------* case cTransaction.eTransactionType.Purchase: SupplyTotals.NumPurchases++; SupplyTotals.PurchaseQty += Transaction.Quantity; SupplyTotals.PurchaseTotal += Transaction.Cost; if (m_DataFiles.Preferences.IncludeTaxShipping) { SupplyTotals.PurchaseTotal += (Transaction.Tax + Transaction.Shipping); } break; //----------------------------------------------------------------------------* // SetStockLevel //----------------------------------------------------------------------------* case cTransaction.eTransactionType.SetStockLevel: if (Supply.SupplyType != cSupply.eSupplyTypes.Ammo || Transaction.BatchID == 0) { SupplyTotals.NumInitialStock++; SupplyTotals.InitialStockQty += Transaction.Quantity; SupplyTotals.InitialStockTotal += Transaction.Cost; if (m_DataFiles.Preferences.IncludeTaxShipping) { SupplyTotals.InitialStockTotal += (Transaction.Tax + Transaction.Shipping); } } else { SupplyTotals.NumInitialStock++; SupplyTotals.InitialStockQty += Transaction.Quantity; SupplyTotals.InitialStockTotal += m_DataFiles.BatchCost(Transaction.BatchID); } break; //----------------------------------------------------------------------------* // AddStock //----------------------------------------------------------------------------* case cTransaction.eTransactionType.AddStock: SupplyTotals.NumAdjustments++; SupplyTotals.AdjustmentsQty += Transaction.Quantity; SupplyTotals.AdjustmentsTotal += Transaction.Cost; if (m_DataFiles.Preferences.IncludeTaxShipping) { SupplyTotals.AdjustmentsTotal += (Transaction.Tax + Transaction.Shipping); } break; //----------------------------------------------------------------------------* // ReduceStock //----------------------------------------------------------------------------* case cTransaction.eTransactionType.ReduceStock: if (Supply.SupplyType == cSupply.eSupplyTypes.Ammo) { SupplyTotals.NumAdjustments++; SupplyTotals.AdjustmentsQty -= Transaction.Quantity; SupplyTotals.AdjustmentsTotal -= Transaction.Cost; } else { if (Transaction.BatchID == 0) { SupplyTotals.NumAdjustments++; SupplyTotals.AdjustmentsQty -= Transaction.Quantity; SupplyTotals.AdjustmentsTotal -= Transaction.Cost; } else { SupplyTotals.NumUsed++; switch (Supply.SupplyType) { case cSupply.eSupplyTypes.Bullets: SupplyTotals.UsedQty -= Transaction.Quantity; SupplyTotals.UsedTotal -= m_DataFiles.BatchBulletCost(Transaction.BatchID); break; case cSupply.eSupplyTypes.Cases: SupplyTotals.UsedQty -= Transaction.Quantity; SupplyTotals.UsedTotal -= m_DataFiles.BatchCaseCost(Transaction.BatchID); break; case cSupply.eSupplyTypes.Powder: SupplyTotals.UsedQty -= Transaction.Quantity; SupplyTotals.UsedTotal -= m_DataFiles.BatchPowderCost(Transaction.BatchID); break; case cSupply.eSupplyTypes.Primers: SupplyTotals.UsedQty -= Transaction.Quantity; SupplyTotals.UsedTotal -= m_DataFiles.BatchPrimerCost(Transaction.BatchID); break; } } } break; //----------------------------------------------------------------------------* // Fired //----------------------------------------------------------------------------* case cTransaction.eTransactionType.Fired: SupplyTotals.NumFired++; SupplyTotals.FiredQty += Transaction.Quantity; SupplyTotals.FiredTotal += Transaction.Cost; break; } } } if (Supply.SupplyType == cSupply.eSupplyTypes.Powder) { SupplyTotals.AdjustmentsQty /= 7000.0; SupplyTotals.FiredQty /= 7000.0; SupplyTotals.InitialStockQty /= 7000.0; SupplyTotals.InStockQty /= 7000.0; SupplyTotals.PurchaseQty /= 7000.0; SupplyTotals.UsedQty /= 7000.0; SupplyTotals.AdjustmentsQty = cDataFiles.StandardToMetric(SupplyTotals.AdjustmentsQty, cDataFiles.eDataType.CanWeight); SupplyTotals.FiredQty = cDataFiles.StandardToMetric(SupplyTotals.FiredQty, cDataFiles.eDataType.CanWeight); SupplyTotals.InitialStockQty = cDataFiles.StandardToMetric(SupplyTotals.InitialStockQty, cDataFiles.eDataType.CanWeight); SupplyTotals.InStockQty = cDataFiles.StandardToMetric(SupplyTotals.InStockQty, cDataFiles.eDataType.CanWeight); SupplyTotals.PurchaseQty = cDataFiles.StandardToMetric(SupplyTotals.PurchaseQty, cDataFiles.eDataType.CanWeight); SupplyTotals.UsedQty = cDataFiles.StandardToMetric(SupplyTotals.UsedQty, cDataFiles.eDataType.CanWeight); } return(SupplyTotals); }