private void Set() { items.Clear(); foreach (DataRow dr in dt_Price_Item_Stock.Rows) { Item_Data xItem_Data = new Item_Data(); xItem_Data.Set_Price_Item_Stock(dr); if (dr[m_cpis.icol_Item_ID] is long) { long item_id = (long)dr[m_cpis.icol_Item_ID]; if (ExistingItem(item_id, xItem_Data)) { continue; } else { Stock_Data stock_data = new Stock_Data(); if (xItem_Data.Stock_ID != null) { stock_data.Stock_ID = new DBTypes.long_v(); stock_data.Stock_ID.v = xItem_Data.Stock_ID.v; } else { stock_data.Stock_ID = null; } if (xItem_Data.Stock_ImportTime != null) { stock_data.Stock_ImportTime = new DBTypes.DateTime_v(); stock_data.Stock_ImportTime.v = xItem_Data.Stock_ImportTime.v; } else { stock_data.Stock_ImportTime = null; } if (xItem_Data.Stock_ExpiryDate != null) { stock_data.Stock_ExpiryDate = new DBTypes.DateTime_v(); stock_data.Stock_ExpiryDate.v = xItem_Data.Stock_ExpiryDate.v; } else { stock_data.Stock_ExpiryDate = null; } if (xItem_Data.Stock_dQuantity != null) { stock_data.dQuantity = new DBTypes.decimal_v(); stock_data.dQuantity.v = xItem_Data.Stock_dQuantity.v; } else { stock_data.dQuantity = null; } xItem_Data.Stock_Data_List.Add(stock_data); items.Add(xItem_Data); } } else { LogFile.Error.Show("ERROR:ShopShelf:Set:dr[m_cpis.icol_Item_ID] is not long !"); } } }
private bool ExistingItem(long item_id, Item_Data xItem_Data) { foreach (object o in items) { Item_Data idata = (Item_Data)o; if (idata.Item_ID != null) { if (idata.Item_ID.v == item_id) { Stock_Data stock_data = new Stock_Data(); if (xItem_Data.Stock_ID != null) { stock_data.Stock_ID = new DBTypes.long_v(); stock_data.Stock_ID.v = xItem_Data.Stock_ID.v; } else { stock_data.Stock_ID = null; } if (xItem_Data.Stock_ImportTime != null) { stock_data.Stock_ImportTime = new DBTypes.DateTime_v(); stock_data.Stock_ImportTime.v = xItem_Data.Stock_ImportTime.v; } else { stock_data.Stock_ImportTime = null; } if (xItem_Data.Stock_ExpiryDate != null) { stock_data.Stock_ExpiryDate = new DBTypes.DateTime_v(); stock_data.Stock_ExpiryDate.v = xItem_Data.Stock_ExpiryDate.v; } else { stock_data.Stock_ExpiryDate = null; } if (xItem_Data.Stock_dQuantity != null) { stock_data.dQuantity = new DBTypes.decimal_v(); stock_data.dQuantity.v = xItem_Data.Stock_dQuantity.v; } else { stock_data.dQuantity = null; } idata.Stock_Data_List.Add(stock_data); return true; } } } return false; }
public void Set(string DocInvoice, DataRow dria, ref List<object> DocInvoice_ShopC_Item_Data_list) { Stock_Data stock_data = null; int i = 0; int iCount = DocInvoice_ShopC_Item_Data_list.Count; Atom_Item_ID = tf.set_long(dria["Atom_Item_ID"]); if (Atom_Item_ID != null) { for (i = 0; i < iCount; i++) { if (((Atom_DocInvoice_ShopC_Item_Price_Stock_Data)DocInvoice_ShopC_Item_Data_list[i]).Atom_Item_ID.v == Atom_Item_ID.v) { stock_data = new Stock_Data(); stock_data.Set(dria); ((Atom_DocInvoice_ShopC_Item_Price_Stock_Data)DocInvoice_ShopC_Item_Data_list[i]).m_ShopShelf_Source.Stock_Data_List.Add(stock_data); return; } } m_ShopShelf_Source.Clear(); DocInvoice_ShopC_Item_ID = tf.set_long(dria[DocInvoice+"_ShopC_Item_ID"]); DocInvoice_ID = tf.set_long(dria[DocInvoice+"_ID"]); Atom_Price_Item_ID = tf.set_long(dria["Atom_Price_Item_ID"]); dQuantity_all = tf.set_decimal(dria["dQuantity"]); RetailPricePerUnit = tf.set_decimal(dria["RetailPricePerUnit"]); Discount = tf.set_decimal(dria["Discount"]); RetailPriceWithDiscount = tf.set_decimal(dria["RetailPriceWithDiscount"]); TaxPrice = tf.set_decimal(dria["TaxPrice"]); ExtraDiscount = tf.set_decimal(dria["ExtraDiscount"]); //dQuantity = tf.set_decimal(dria["dQuantity"]); Atom_Item_UniqueName = tf.set_string(dria["Atom_Item_UniqueName"]); Atom_Item_Name_Name = tf.set_string(dria["Atom_Item_Name_Name"]); Atom_Item_barcode_barcode = tf.set_string(dria["Atom_Item_barcode_barcode"]); Atom_Taxation_Name = tf.set_string(dria["Atom_Taxation_Name"]); Atom_Taxation_Rate = tf.set_decimal(dria["Atom_Taxation_Rate"]); Atom_Item_Description_Description = tf.set_string(dria["Atom_Item_Description_Description"]); Atom_Warranty_ID = tf.set_long(dria["Atom_Warranty_ID"]); Atom_Warranty_WarrantyDurationType = tf.set_short(dria["Atom_Warranty_WarrantyDurationType"]); Atom_Warranty_WarrantyDuration = tf.set_int(dria["Atom_Warranty_WarrantyDuration"]); Atom_Warranty_WarrantyConditions = tf.set_string(dria["Atom_Warranty_WarrantyConditions"]); Atom_Expiry_ID = tf.set_long(dria["Atom_Expiry_ID"]); Atom_Expiry_ExpectedShelfLifeInDays = tf.set_int(dria["Atom_Expiry_ExpectedShelfLifeInDays"]); Atom_Expiry_SaleBeforeExpiryDateInDays = tf.set_int(dria["Atom_Expiry_SaleBeforeExpiryDateInDays"]); Atom_Expiry_DiscardBeforeExpiryDateInDays = tf.set_int(dria["Atom_Expiry_DiscardBeforeExpiryDateInDays"]); Atom_Expiry_ExpiryDescription = tf.set_string(dria["Atom_Expiry_ExpiryDescription"]); Item_ID = tf.set_long(dria["Item_ID"]); Atom_Unit_Name = tf.set_string(dria["Atom_Unit_Name"]); Atom_Unit_Symbol = tf.set_string(dria["Atom_Unit_Symbol"]); Atom_Unit_DecimalPlaces = tf.set_int(dria["Atom_Unit_DecimalPlaces"]); Atom_Unit_Description = tf.set_string(dria["Atom_Unit_Description"]); Atom_Unit_StorageOption = tf.set_bool(dria["Atom_Unit_StorageOption"]); Atom_PriceList_Name = tf.set_string(dria["Atom_PriceList_Name"]); Atom_Currency_Name = tf.set_string(dria["Atom_Currency_Name"]); Atom_Currency_Abbreviation = tf.set_string(dria["Atom_Currency_Abbreviation"]); Atom_Currency_Symbol = tf.set_string(dria["Atom_Currency_Symbol"]); Atom_Currency_DecimalPlaces = tf.set_int(dria["Atom_Currency_DecimalPlaces"]); Atom_Item_Image_Hash = tf.set_string(dria["Atom_Item_Image_Hash"]); Atom_Item_Image_Data = tf.set_byte_array(dria["Atom_Item_Image_Data"]); if (dria["s1_name"] is string) { s1_name = (string)dria["s1_name"]; } if (dria["s2_name"] is string) { s2_name = (string)dria["s2_name"]; } if (dria["s3_name"] is string) { s3_name = (string)dria["s3_name"]; } stock_data = new Stock_Data(); stock_data.Set(dria); m_ShopShelf_Source.Stock_Data_List.Add(stock_data); DocInvoice_ShopC_Item_Data_list.Add(this); } else { LogFile.Error.Show("ERROR:DocInvoice_ShopC_Item_Data:Set(DataRow dria,..):Atom_Item_ID == null"); } }
public void Add_Stock_Data(Item_Data xItem_Data, decimal xFactoryQuantity,decimal xStockQuantity, bool b_from_factory) { if (b_from_factory) { Stock_Data stock_data = new Stock_Data(); if (stock_data.dQuantity == null) { stock_data.dQuantity = new decimal_v(); } stock_data.dQuantity.v = xFactoryQuantity; Stock_Data_List.Add(stock_data); } else { decimal dquantity = xStockQuantity; xItem_Data.Stock_Data_List.Sort((x, y) => Compare_Stock_ExpiryDate(x,y)); foreach (Stock_Data sd in xItem_Data.Stock_Data_List) { if (dquantity > 0) { if (sd.dQuantity_from_stock != null) { Stock_Data stock_data = new Stock_Data(); if (dquantity > sd.dQuantity_from_stock.v) { dquantity -= sd.dQuantity_from_stock.v; if (stock_data.dQuantity == null) { stock_data.dQuantity = new decimal_v(); } stock_data.dQuantity.v = sd.dQuantity_from_stock.v; sd.dQuantity.v = 0; if (stock_data.dQuantity_New_in_Stock == null) { stock_data.dQuantity_New_in_Stock = new decimal_v(); } stock_data.dQuantity_New_in_Stock.v = 0; stock_data.Stock_ID = new long_v(); stock_data.Stock_ID.v = sd.Stock_ID.v; Stock_Data_List.Add(stock_data); } else { if (stock_data.dQuantity_from_stock == null) { stock_data.dQuantity = new decimal_v(); } stock_data.dQuantity.v = dquantity; sd.dQuantity.v -= dquantity; if (stock_data.dQuantity_New_in_Stock == null) { stock_data.dQuantity_New_in_Stock = new decimal_v(); } stock_data.dQuantity_New_in_Stock.v = sd.dQuantity.v; stock_data.Stock_ID = new long_v(); stock_data.Stock_ID.v = sd.Stock_ID.v; dquantity = 0; Stock_Data_List.Add(stock_data); } } } else { break; } } } }
private static bool IsNull_Stock_ExpiryDate(Stock_Data z) { if (z == null) { return true; } else { if (z.Stock_ExpiryDate == null) { return true; } else { return false; } } }
private static int Compare_Stock_ExpiryDate(Stock_Data x, Stock_Data y) { if (IsNull_Stock_ExpiryDate(x)) { if (IsNull_Stock_ExpiryDate(y)) { // If x is null and y is null, they're // equal. return 0; } else { // If x is null and y is not null, y // is greater. return -1; } } else { // If x is not null... // if (IsNull_Stock_ExpiryDate(y)) // ...and y is null, x is greater. { return 1; } else { // ...and y is not null, compare the // lengths of the two strings. // int retval = x.Stock_ExpiryDate.v.CompareTo(y.Stock_ExpiryDate.v); return retval; } } }