Пример #1
0
        /// <summary>
        /// 查詢進貨單相關資料
        /// </summary>
        /// <param name="StockID">傳入進貨單編號</param>
        /// <param name="CSC">傳入存放查詢結果資料的SIS.Configuration.ClsStockConfig CSC</param>
        /// <returns></returns>
        public bool QueryData(string StockID, SIS.Configuration.ClsStockConfig CSC)
        {
            InitDB();
            string selectCmd;

            selectCmd = "Select * From " + TableName + " Where StockID='" + StockID + "'";

            try
            {
                cmd = new SqlCommand(selectCmd, conn);
                dr  = cmd.ExecuteReader();
                if (dr.Read())
                {
                    CSC.StockID                 = StockID;
                    CSC.StockDate               = dr["StockDate"].ToString();
                    CSC.TotalPreTax             = int.Parse(dr["TotalPreTax"].ToString());
                    CSC.Tax                     = int.Parse(dr["Tax"].ToString());
                    CSC.TotalAfterTax           = int.Parse(dr["TotalAfterTax"].ToString());
                    CSC.ManufacturerID          = dr["ManufacturerID"].ToString();
                    CSC.BusinessTaxStockTaxRate = int.Parse(dr["BusinessTaxStockTaxRate"].ToString());
                    CSC.AmountPaid              = int.Parse(dr["AmountPaid"].ToString());
                    CSC.UnpaidAmount            = int.Parse(dr["UnpaidAmount"].ToString());
                    CSC.StockStaff              = dr["StockStaff"].ToString();
                    CSC.PaymentType             = dr["PaymentType"].ToString();
                    CSC.Notes                   = dr["Notes"].ToString();
                    conn.Close();

                    SIS.DBClass.DBClassStockDetails DBSD = new DBClassStockDetails();

                    CSC.StockItems = DBSD.QueryData(StockID);
                    if (CSC.StockItems == null)
                    {
                        return(false);
                    }
                    else
                    {
                        return(true);
                    }
                }
                else
                {
                    conn.Close();
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errorMsg = ex.Message;
                conn.Close();
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// 新增一筆資料
        /// </summary>
        /// <param name="CSC">傳入存放更新資料的SIS.Configuration.ClsStockConfig CSC</param>
        /// <returns></returns>
        public bool InsertData(SIS.Configuration.ClsStockConfig CSC)
        {
            InitDB();

            string insertCmd, insertCmd2;

            insertCmd = "Insert Into " + TableName + " (StockID,StockDate ,TotalPreTax, Tax,TotalAfterTax,ManufacturerID ,BusinessTaxStockTaxRate ," +
                        "AmountPaid ,UnpaidAmount ,StockStaff , PaymentType ,Notes";

            insertCmd = insertCmd + ") Values(";
            insertCmd = insertCmd + "'" + CSC.StockID + "',";
            insertCmd = insertCmd + "'" + CSC.StockDate + "',";
            insertCmd = insertCmd + "" + CSC.TotalPreTax + ",";
            insertCmd = insertCmd + "" + CSC.Tax + ",";
            insertCmd = insertCmd + "" + CSC.TotalAfterTax + ",";
            insertCmd = insertCmd + "'" + CSC.ManufacturerID + "',";
            insertCmd = insertCmd + "" + CSC.BusinessTaxStockTaxRate + ",";
            insertCmd = insertCmd + "" + CSC.AmountPaid + ",";
            insertCmd = insertCmd + "" + CSC.UnpaidAmount + ",";
            insertCmd = insertCmd + "'" + CSC.StockStaff + "',";
            insertCmd = insertCmd + "'" + CSC.PaymentType + "',";
            insertCmd = insertCmd + "'" + CSC.Notes + "'";
            insertCmd = insertCmd + ")";

            transaction = conn.BeginTransaction("MyInsertTransaction");

            try
            {
                cmd             = conn.CreateCommand(); // new SqlCommand(insertCmd, conn);
                cmd.CommandText = insertCmd;
                cmd.Transaction = transaction;
                cmd.ExecuteNonQuery();

                DBClass.DBClassItemsInfo DBCItemsInfo = new DBClassItemsInfo();

                for (int i = 0; i < CSC.StockItems.Length; i++)
                {
                    insertCmd2 = "Insert Into " + TableName2 + " (StockID ,ItemsID ,NAME ,Quantity ,ItemsUnit ," +
                                 "CostPrice ,Totals ,Notes";

                    insertCmd2 = insertCmd2 + ") Values(";
                    insertCmd2 = insertCmd2 + "'" + CSC.StockID + "',";
                    insertCmd2 = insertCmd2 + "'" + CSC.StockItems[i].ItemsID + "',";
                    insertCmd2 = insertCmd2 + "'" + CSC.StockItems[i].NAME + "',";
                    insertCmd2 = insertCmd2 + "" + CSC.StockItems[i].Quantity + ",";
                    insertCmd2 = insertCmd2 + "'" + CSC.StockItems[i].ItemsUnit + "',";
                    insertCmd2 = insertCmd2 + "" + CSC.StockItems[i].Price + ",";
                    insertCmd2 = insertCmd2 + "" + CSC.StockItems[i].Totals + ",";
                    insertCmd2 = insertCmd2 + "'" + CSC.StockItems[i].Notes + "'";
                    insertCmd2 = insertCmd2 + ")";

                    cmd.CommandText = insertCmd2;                                                        //new SqlCommand(insertCmd2, conn);
                    cmd.ExecuteNonQuery();
                    DBCItemsInfo.UpdateInventory(CSC.StockItems[i].ItemsID, CSC.StockItems[i].Quantity); //更新商品庫存量
                }

                transaction.Commit(); //try to Commit above sql command

                conn.Close();
                return(true);
            }
            catch (Exception ex)
            {
                try
                {
                    transaction.Rollback();
                }
                catch (Exception ex2)
                {
                    errorMsg = ex2.Message;
                }
                errorMsg = ex.Message;
                conn.Close();
                return(false);
            }
        }
Пример #3
0
        /// <summary>
        /// 更新一筆資料
        /// </summary>
        /// <param name="CSC">傳入存放更新資料的SIS.Configuration.ClsStockConfig</param>
        /// <param name="OLDItems">傳入更新前的商品集合</param>
        /// <returns></returns>
        public bool Update(SIS.Configuration.ClsStockConfig CSC, SIS.Configuration.Items[] OLDItems)
        {
            InitDB();

            string updateCmd, updateCmd2;

            updateCmd = "UPDATE " + TableName + " SET ";
            updateCmd = updateCmd + " StockID='" + CSC.StockID + "',";
            updateCmd = updateCmd + " StockDate='" + CSC.StockDate + "',";
            updateCmd = updateCmd + " TotalPreTax=" + CSC.TotalPreTax + ",";
            updateCmd = updateCmd + " Tax=" + CSC.Tax + ",";
            updateCmd = updateCmd + " TotalAfterTax=" + CSC.TotalAfterTax + ",";
            updateCmd = updateCmd + " ManufacturerID='" + CSC.ManufacturerID + "',";
            updateCmd = updateCmd + " BusinessTaxStockTaxRate=" + CSC.BusinessTaxStockTaxRate + ",";
            updateCmd = updateCmd + " AmountPaid=" + CSC.AmountPaid + ",";
            updateCmd = updateCmd + " UnpaidAmount=" + CSC.UnpaidAmount + ",";
            updateCmd = updateCmd + " StockStaff='" + CSC.StockStaff + "',";
            updateCmd = updateCmd + " PaymentType='" + CSC.PaymentType + "',";
            updateCmd = updateCmd + " Notes='" + CSC.Notes + "'";
            updateCmd = updateCmd + " WHERE StockID='" + CSC.StockID + "'";

            transaction = conn.BeginTransaction("MyUpdateTransaction");

            try
            {
                cmd             = conn.CreateCommand(); // new SqlCommand(updateCmd, conn);
                cmd.CommandText = updateCmd;
                cmd.Transaction = transaction;
                cmd.ExecuteNonQuery();

                DBClass.DBClassItemsInfo DBCItemsInfo = new DBClassItemsInfo();

                for (int i = 0; i < CSC.StockItems.Length; i++)
                {
                    updateCmd2 = "UPDATE " + TableName2 + " SET ";
                    updateCmd2 = updateCmd2 + " StockID='" + CSC.StockID + "',";
                    updateCmd2 = updateCmd2 + " ItemsID='" + CSC.StockItems[i].ItemsID + "',";
                    updateCmd2 = updateCmd2 + " NAME='" + CSC.StockItems[i].NAME + "',";
                    updateCmd2 = updateCmd2 + " Quantity=" + CSC.StockItems[i].Quantity + ",";
                    updateCmd2 = updateCmd2 + " ItemsUnit='" + CSC.StockItems[i].ItemsUnit + "',";
                    updateCmd2 = updateCmd2 + " CostPrice=" + CSC.StockItems[i].Price + ",";
                    updateCmd2 = updateCmd2 + " Totals=" + CSC.StockItems[i].Totals + ",";
                    updateCmd2 = updateCmd2 + " Notes='" + CSC.StockItems[i].Notes + "'";
                    updateCmd2 = updateCmd2 + " WHERE StockID='" + CSC.StockID + "' And ItemsID='" + CSC.StockItems[i].ItemsID + "'";

                    cmd.CommandText = updateCmd2;
                    cmd.ExecuteNonQuery();
                    int nowQuantity = OLDItems[i].Quantity;
                    if (nowQuantity < CSC.StockItems[i].Quantity)
                    {
                        DBCItemsInfo.UpdateInventory(CSC.StockItems[i].ItemsID, (CSC.StockItems[i].Quantity - nowQuantity)); //更新商品庫存量
                    }
                    else if (nowQuantity > CSC.StockItems[i].Quantity)
                    {
                        DBCItemsInfo.UpdateInventory(CSC.StockItems[i].ItemsID, (CSC.StockItems[i].Quantity - nowQuantity)); //更新商品庫存量
                    }
                    else if (nowQuantity == CSC.StockItems[i].Quantity)
                    {
                        //數量一樣不用更新庫存
                    }
                }

                transaction.Commit(); //try to Commit above sql command

                conn.Close();
                return(true);
            }
            catch (Exception ex)
            {
                try
                {
                    transaction.Rollback();
                }
                catch (Exception ex2)
                {
                    errorMsg = ex2.Message;
                    return(false);
                }
                errorMsg = ex.Message;
                conn.Close();
                return(false);
            }
        }