Ejemplo n.º 1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (CheckInput())
            {
                BllTransferReceiptTable     TRTable  = new BllTransferReceiptTable();
                BllTransferReceiptLineTable TRLTable = null;

                TRTable.SLIP_NUMBER = txtSlipNumber.Text.Trim();
                TRTable.DEPARTUAL_WAREHOUSE_CODE = txtDepartualCode.Text.Trim();
                TRTable.ARRIVAL_WAREHOUSE_CODE   = txtArrivalCode.Text.Trim();
                TRTable.SLIP_DATE        = txtSlipDate.Value;
                TRTable.CREATE_USER      = _userInfo.CODE;
                TRTable.LAST_UPDATE_USER = _userInfo.CODE;

                foreach (DataGridViewRow row in dgvData.Rows)
                {
                    TRLTable              = new BllTransferReceiptLineTable();
                    TRLTable.SLIP_NUMBER  = txtSlipNumber.Text.Trim();
                    TRLTable.LINE_NUMBER  = row.Index + 1;
                    TRLTable.PRODUCT_CODE = row.Cells["PRODUCT_CODE"].Value.ToString();
                    TRLTable.QUANTITY     = CConvert.ToDecimal(row.Cells["TRANSFER_QUANTITY"].Value);
                    TRLTable.UNIT_CODE    = row.Cells["UNIT_CODE"].Value.ToString();

                    if (TRLTable.SLIP_NUMBER != null)
                    {
                        TRTable.AddItem(TRLTable);
                    }
                }

                int result = 0;
                try
                {
                    result = bTransfer.Add(TRTable);
                    if (result <= 0)
                    {
                        string errorLog = "保存失败,请重试或与管理员联系.";
                        MessageBox.Show(errorLog, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (dgvData.Rows.Count > 0)
                    {
                        dgvData.Rows.Clear();
                        initSlipNumber();
                        txtDepartualCode.Text = "";
                        txtDepartualName.Text = "";
                        txtArrivalCode.Text   = "";
                        txtArrivalName.Text   = "";
                        txtSlipDate.Value     = DateTime.Now;
                        MessageBox.Show("保存成功", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("保存失败,系统错误,请与管理员联系.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Logger.Error("仓库调拨失败!", ex);
                }
            }
        }
Ejemplo n.º 2
0
 public int Add(BllTransferReceiptTable TRModel)
 {
     return(dal.Add(TRModel));
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(BllTransferReceiptTable TRModel)
        {
            int i      = 0;
            int result = 0;

            while (i < 10)
            {
                try
                {
                    List <CommandInfo> listSql = new List <CommandInfo>();
                    StringBuilder      strSql  = null;

                    strSql = new StringBuilder();
                    strSql.Append("insert into BLL_TRANSFER_RECEIPT(");
                    strSql.Append("SLIP_NUMBER,DEPARTUAL_WAREHOUSE_CODE,ARRIVAL_WAREHOUSE_CODE,SLIP_DATE,COMPANY_CODE,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_USER,LAST_UPDATE_TIME)");
                    strSql.Append(" values (");
                    strSql.Append("@SLIP_NUMBER,@DEPARTUAL_WAREHOUSE_CODE,@ARRIVAL_WAREHOUSE_CODE,@SLIP_DATE,@COMPANY_CODE,@STATUS_FLAG,@CREATE_USER,GETDATE(),@LAST_UPDATE_USER,GETDATE())");
                    SqlParameter[] transferParam =
                    {
                        new SqlParameter("@SLIP_NUMBER",              SqlDbType.VarChar,   20),
                        new SqlParameter("@DEPARTUAL_WAREHOUSE_CODE", SqlDbType.VarChar,   20),
                        new SqlParameter("@ARRIVAL_WAREHOUSE_CODE",   SqlDbType.VarChar,   20),
                        new SqlParameter("@SLIP_DATE",                SqlDbType.DateTime),
                        new SqlParameter("@COMPANY_CODE",             SqlDbType.VarChar,   20),
                        new SqlParameter("@STATUS_FLAG",              SqlDbType.Int,        4),
                        new SqlParameter("@CREATE_USER",              SqlDbType.VarChar,   20),
                        new SqlParameter("@LAST_UPDATE_USER",         SqlDbType.VarChar, 20)
                    };
                    transferParam[0].Value = TRModel.SLIP_NUMBER;
                    transferParam[1].Value = TRModel.DEPARTUAL_WAREHOUSE_CODE;
                    transferParam[2].Value = TRModel.ARRIVAL_WAREHOUSE_CODE;
                    transferParam[3].Value = TRModel.SLIP_DATE;
                    transferParam[4].Value = TRModel.COMPANY_CODE;
                    transferParam[5].Value = CConstant.INIT;
                    transferParam[6].Value = TRModel.CREATE_USER;
                    transferParam[7].Value = TRModel.LAST_UPDATE_USER;
                    listSql.Add(new CommandInfo(strSql.ToString(), transferParam));

                    foreach (BllTransferReceiptLineTable TRLModel in TRModel.Items)
                    {
                        //明细的保存
                        strSql = new StringBuilder();
                        strSql.Append("insert into BLL_TRANSFER_RECEIPT_LINE(");
                        strSql.Append("SLIP_NUMBER,LINE_NUMBER,PRODUCT_CODE,UNIT_CODE,QUANTITY,STATUS_FLAG)");
                        strSql.Append(" values (");
                        strSql.Append("@SLIP_NUMBER,@LINE_NUMBER,@PRODUCT_CODE,@UNIT_CODE,@QUANTITY,@STATUS_FLAG)");
                        SqlParameter[] TRLParam =
                        {
                            new SqlParameter("@SLIP_NUMBER",  SqlDbType.VarChar, 20),
                            new SqlParameter("@LINE_NUMBER",  SqlDbType.Int,      4),
                            new SqlParameter("@PRODUCT_CODE", SqlDbType.VarChar, 20),
                            new SqlParameter("@UNIT_CODE",    SqlDbType.VarChar, 20),
                            new SqlParameter("@QUANTITY",     SqlDbType.Decimal,  9),
                            new SqlParameter("@STATUS_FLAG",  SqlDbType.Int, 4)
                        };
                        TRLParam[0].Value = TRLModel.SLIP_NUMBER;
                        TRLParam[1].Value = TRLModel.LINE_NUMBER;
                        TRLParam[2].Value = TRLModel.PRODUCT_CODE;
                        TRLParam[3].Value = TRLModel.UNIT_CODE;
                        TRLParam[4].Value = TRLModel.QUANTITY;
                        TRLParam[5].Value = CConstant.INIT;
                        listSql.Add(new CommandInfo(strSql.ToString(), TRLParam));

                        //调入仓库里商品库存减少
                        strSql = new StringBuilder();
                        strSql.Append("update BASE_STOCK set ");
                        strSql.Append("QUANTITY=QUANTITY - @QUANTITY,");
                        strSql.Append("LAST_UPDATE_TIME=GETDATE(),");
                        strSql.Append("LAST_UPDATE_USER=@LAST_UPDATE_USER");
                        strSql.Append(" where WAREHOUSE_CODE=@WAREHOUSE_CODE and PRODUCT_CODE=@PRODUCT_CODE ");
                        SqlParameter[] departualParam =
                        {
                            new SqlParameter("@WAREHOUSE_CODE",   SqlDbType.VarChar, 20),
                            new SqlParameter("@PRODUCT_CODE",     SqlDbType.VarChar, 20),
                            new SqlParameter("@QUANTITY",         SqlDbType.Decimal,  9),
                            new SqlParameter("@LAST_UPDATE_USER", SqlDbType.VarChar, 20)
                        };
                        departualParam[0].Value = TRModel.DEPARTUAL_WAREHOUSE_CODE;
                        departualParam[1].Value = TRLModel.PRODUCT_CODE;
                        departualParam[2].Value = TRLModel.QUANTITY;
                        departualParam[3].Value = TRModel.LAST_UPDATE_USER;
                        listSql.Add(new CommandInfo(strSql.ToString(), departualParam));

                        if (Existstock(TRModel.ARRIVAL_WAREHOUSE_CODE, TRLModel.PRODUCT_CODE))
                        {
                            //库存更新
                            strSql = new StringBuilder();
                            strSql.Append("update BASE_STOCK set ");
                            strSql.Append("QUANTITY=QUANTITY + @QUANTITY,");
                            strSql.Append("LAST_UPDATE_TIME=GETDATE(),");
                            strSql.Append("LAST_UPDATE_USER=@LAST_UPDATE_USER");
                            strSql.Append(" where WAREHOUSE_CODE=@WAREHOUSE_CODE and PRODUCT_CODE=@PRODUCT_CODE ");

                            SqlParameter[] stockParam =
                            {
                                new SqlParameter("@WAREHOUSE_CODE",   SqlDbType.VarChar, 20),
                                new SqlParameter("@PRODUCT_CODE",     SqlDbType.VarChar, 20),
                                new SqlParameter("@QUANTITY",         SqlDbType.Decimal,  9),
                                new SqlParameter("@LAST_UPDATE_USER", SqlDbType.VarChar, 20)
                            };
                            stockParam[0].Value = TRModel.ARRIVAL_WAREHOUSE_CODE;
                            stockParam[1].Value = TRLModel.PRODUCT_CODE;
                            stockParam[2].Value = TRLModel.QUANTITY;
                            stockParam[3].Value = TRModel.LAST_UPDATE_USER;
                            listSql.Add(new CommandInfo(strSql.ToString(), stockParam));
                        }
                        else
                        {
                            strSql = new StringBuilder();
                            strSql.Append("insert into BASE_STOCK(");
                            strSql.Append("WAREHOUSE_CODE,PRODUCT_CODE,UNIT_CODE,QUANTITY,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER)");
                            strSql.Append(" values (");
                            strSql.Append("@WAREHOUSE_CODE,@PRODUCT_CODE,@UNIT_CODE,@QUANTITY,@STATUS_FLAG,@CREATE_USER,GETDATE(),GETDATE(),@LAST_UPDATE_USER)");
                            SqlParameter[] stockParam2 =
                            {
                                new SqlParameter("@WAREHOUSE_CODE",   SqlDbType.VarChar, 20),
                                new SqlParameter("@PRODUCT_CODE",     SqlDbType.VarChar, 20),
                                new SqlParameter("@UNIT_CODE",        SqlDbType.VarChar, 20),
                                new SqlParameter("@QUANTITY",         SqlDbType.Decimal,  9),
                                new SqlParameter("@STATUS_FLAG",      SqlDbType.Int,      4),
                                new SqlParameter("@CREATE_USER",      SqlDbType.VarChar, 20),
                                new SqlParameter("@LAST_UPDATE_USER", SqlDbType.VarChar, 20)
                            };
                            stockParam2[0].Value = TRModel.ARRIVAL_WAREHOUSE_CODE;
                            stockParam2[1].Value = TRLModel.PRODUCT_CODE;
                            stockParam2[2].Value = TRLModel.UNIT_CODE;
                            stockParam2[3].Value = TRLModel.QUANTITY;
                            stockParam2[4].Value = CConstant.INIT;
                            stockParam2[5].Value = TRModel.CREATE_USER;
                            stockParam2[6].Value = TRModel.LAST_UPDATE_USER;
                            listSql.Add(new CommandInfo(strSql.ToString(), stockParam2));
                        }
                    }
                    return(DbHelperSQL.ExecuteSqlTran(listSql));
                }
                catch (SqlException ex)
                {
                    if (i != 9)
                    {
                        int maxLlipNumber = CConvert.ToInt32(GetMaxSlipNumber()) + 1;
                        TRModel.SLIP_NUMBER = maxLlipNumber.ToString().PadLeft(4, '0');
                        i++;
                        continue;
                    }
                }
                break;
            }
            return(result);
        }