Example #1
0
 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);
     }
 }
Example #2
0
        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;
            }
        }