def test_totalOrdersCost(self): ordered = OrdersList() ordered.addProductsCSV( "./csvs/stock-purchases_2016-01-16_to_2016-01-22.csv") assert ordered.costAll() == 131987.28
def test_totalOrdersBySKU(self): ordered = OrdersList() ordered.addProductsCSV( "./csvs/stock-purchases_2016-01-16_to_2016-01-22.csv") assert ordered['1621'].totalCost == 260 assert ordered['1621'].count == 4 # note this is current retail price (at latest order) assert ordered['1621'].retail == 399 #_________________________________________________________________________ #_________________________________________________________________________ # total cost of orders overall '''total cost of orders overall'''
def test_weightedUnitPrice(self): inv = StoreInventory() # to calculate the accumulative retail available, set addBehavior to # salesAddBehaviour (this behavior may be renamed to # accumulativeRetailBehaviour) inv.setAddStyle(behavior_accumulate_retail()) inv.addProductsCSV("./csvs/trendTest/ifix-stock_trendTest.csv") orders = OrdersList() orders.addProductsCSV("./csvs/trendTest/stock-purchases_trendTest.csv") sales = SalesProductList() sales.addProductsCSV("./csvs/trendTest/stock-sales_trendTest.csv") inv.addOrders(orders) wUnitCost = inv.getWeightedUnitCost("6691") # rounding is required at the last moment so errors do not accumulate assert round(wUnitCost, 2) == 89.61 assert round(sales["6691"].count * wUnitCost, 2) == -358.43 inv.addSales(sales) assert round(inv["6691"].count * wUnitCost, 2) == 806.47
from ordersList import OrdersList if __name__ == '__main__': inv=StoreInventory() inv.addProductsCSV("./csvs/ifix-stock_2016-01-22.csv") sales=SalesProductList() sales.addProductsCSV("./csvs/stock-sales_TEST.csv") print sales["602"].totalCost print sales["602"].retail print sales["602"].count orders=OrdersList() orders.addProductsCSV("./csvs/stock-purchases_TESTsmall.csv") inv.addOrders(orders) inv.addSales(sales) # #--Stock-- #total quantity of SKU item in stock #total retail value of SKU item in stock #total profit for in stock SKU item #--Orders-- #total orders for SKU item #--Sales--