public void Empty(string DocInvoice,ShopShelf xShopShelf) { while (m_DocInvoice_ShopC_Item_Data_LIST.Count > 0) { Atom_DocInvoice_ShopC_Item_Price_Stock_Data appisd = (Atom_DocInvoice_ShopC_Item_Price_Stock_Data)m_DocInvoice_ShopC_Item_Data_LIST[0]; if (appisd.dQuantity_FromStock > 0) { Remove_and_put_back_to_ShopShelf(DocInvoice,appisd, xShopShelf); } if (appisd.dQuantity_FromFactory > 0) { RemoveFactory(DocInvoice,appisd); } m_DocInvoice_ShopC_Item_Data_LIST.Remove(appisd); } }
public bool Remove_and_put_back_to_ShopShelf(string DocInvoice,Atom_DocInvoice_ShopC_Item_Price_Stock_Data appisd, ShopShelf shopShelf) { if (DocInvoice==null) { LogFile.Error.Show("ERROR:TangentaDB:Basket.cs:Basket:Remove_and_put_back_to_ShopShelf: DocInvoice==null."); return false; } string sql = @"select appis.ID, s.ID as Stock_ID, appis.dQuantity, s.dQuantity as Stock_dQuantity from "+DocInvoice+@"_ShopC_Item appis inner join Stock s on appis.Stock_ID = s.ID inner join Atom_price_item api on api.ID = appis.Atom_price_item_ID inner join Atom_Item ai on ai.ID = api.Atom_Item_ID inner join Item i on i.UniqueName = ai.UniqueName where ("+DocInvoice+@"_ID = " + appisd.DocInvoice_ID.v.ToString() + ") and (i.ID=" + appisd.Item_ID.v.ToString() + ")"; DataTable dt1 = new DataTable(); string Err = null; if (DBSync.DBSync.ReadDataTable(ref dt1, sql, ref Err)) { string s_in_ID_list = null; if (dt1.Rows.Count > 0) { List<SQL_Parameter> lpar = new List<SQL_Parameter>(); List<Return_to_shop_shelf_data> Return_to_basket_data_List = new List<Return_to_shop_shelf_data>(); int i = 0; foreach (DataRow dr in dt1.Rows) { decimal dQuantity_stock = (decimal)dr["Stock_dQuantity"]; decimal dQuantity_New_InStock = (decimal)dr["dQuantity"] + dQuantity_stock; decimal dQuantity_diff = dQuantity_New_InStock - dQuantity_stock; string spar_dQuantity_New_InStock = "@par_dQuantity_New_InStock" + i.ToString(); long stock_id = (long)dr["Stock_ID"]; SQL_Parameter par_dQuantity_New_InStock = new SQL_Parameter(spar_dQuantity_New_InStock, SQL_Parameter.eSQL_Parameter.Decimal, false, dQuantity_New_InStock); lpar.Add(par_dQuantity_New_InStock); Return_to_shop_shelf_data rtb = new Return_to_shop_shelf_data("update stock set dQuantity = " + spar_dQuantity_New_InStock + " where ID = " + stock_id.ToString(), stock_id, dQuantity_diff); Return_to_basket_data_List.Add(rtb); long id = (long)dr["ID"]; if (s_in_ID_list == null) { s_in_ID_list += "(" + id.ToString(); } else { s_in_ID_list += "," + id.ToString(); } i++; shopShelf.Set_dQuantity_New_InStock(stock_id, dQuantity_New_InStock); } s_in_ID_list += ")"; object objret = null; if (UpdateStock(Return_to_basket_data_List, lpar)) { string sql_Delete_DocInvoice_Atom_Item_Stock = "delete from "+DocInvoice+@"_ShopC_Item where Stock_ID is not null and ("+DocInvoice+@"_ID = " + appisd.DocInvoice_ID.v.ToString() + ") and "+DocInvoice+@"_ShopC_Item.ID in " + s_in_ID_list; if (DBSync.DBSync.ExecuteNonQuerySQL(sql_Delete_DocInvoice_Atom_Item_Stock, null, ref objret, ref Err)) { string sql_Delete_Atom_Price_Item = "delete from Atom_Price_Item where ID not in (select Atom_Price_Item_ID from DocInvoice_ShopC_Item UNION select Atom_Price_Item_ID from DocProformaInvoice_ShopC_Item)"; if (DBSync.DBSync.ExecuteNonQuerySQL(sql_Delete_Atom_Price_Item, null, ref objret, ref Err)) { string sql_Delete_Atom_Item_Image = "delete from Atom_Item_Image where Atom_Item_Image.Atom_Item_ID not in (select Atom_Item_ID from Atom_Price_Item)"; if (DBSync.DBSync.ExecuteNonQuerySQL(sql_Delete_Atom_Item_Image, null, ref objret, ref Err)) { string sql_Delete_Atom_Item_ImageLib = "delete from Atom_Item_ImageLib where ID not in (select Atom_Item_ImageLib_ID from Atom_Item_Image)"; if (DBSync.DBSync.ExecuteNonQuerySQL(sql_Delete_Atom_Item_ImageLib, null, ref objret, ref Err)) { RemoveStock_from_list(appisd); return true; } else { LogFile.Error.Show("ERROR:Basket:sql=" + sql_Delete_Atom_Item_ImageLib + "\r\nErr=" + Err); return false; } } else { LogFile.Error.Show("ERROR:Basket:delete from Atom_Item:Err=" + Err); return false; } } else { LogFile.Error.Show("ERROR:Basket:sql=" + sql_Delete_Atom_Price_Item + "\r\nErr=" + Err); return false; } } else { LogFile.Error.Show("ERROR:Basket:delete from "+DocInvoice+"_ShopC_Item:Err=" + Err); return false; } } else { return false; } } else { LogFile.Error.Show("ERROR:Basket:dt1.Rows.Count == 0 !"); return false; } } else { LogFile.Error.Show("ERROR:Basket:sql=" + sql + "\r\nErr=" + Err); return false; } }