Пример #1
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int Add(BllPurchaseTable model)
 {
     return(dal.Add(model));
 }
Пример #2
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(BllPurchaseTable model)
        {
            List <CommandInfo> listSql = new List <CommandInfo>();
            StringBuilder      strSql  = null;
            int maxSlipNumber          = CConvert.ToInt32(GetPurchaseMaxSlipNumber(model.COMPANY_CODE));

            model.SLIP_NUMBER = model.COMPANY_CODE + "-" + model.SUPPLIER_CODE + "-" + CConvert.ToString(++maxSlipNumber).PadLeft(4, '0');
            strSql            = new StringBuilder();

            strSql.Append("insert into BLL_PURCHASE(");
            strSql.Append("SLIP_NUMBER,SUPPLIER_CODE,INVOICE_NUMBER,INVOICE_NUMBER_LOCAL,SLIP_DATE,PAYMENT_DATE,INVOICE_AMOUNT,INVOICE_AMOUNT_LOCAL,PACKING_AMOUNT,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER,COMPANY_CODE)");
            strSql.Append(" values (");
            strSql.Append("@SLIP_NUMBER,@SUPPLIER_CODE,@INVOICE_NUMBER,@INVOICE_NUMBER_LOCAL,@SLIP_DATE,@PAYMENT_DATE,@INVOICE_AMOUNT,@INVOICE_AMOUNT_LOCAL,@PACKING_AMOUNT,@STATUS_FLAG,@CREATE_USER,@CREATE_DATE_TIME,@LAST_UPDATE_TIME,@LAST_UPDATE_USER,@COMPANY_CODE)");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SLIP_NUMBER",          SqlDbType.VarChar,   20),
                new SqlParameter("@SUPPLIER_CODE",        SqlDbType.VarChar,   20),
                new SqlParameter("@INVOICE_NUMBER",       SqlDbType.VarChar,   50),
                new SqlParameter("@INVOICE_NUMBER_LOCAL", SqlDbType.VarChar,   50),
                new SqlParameter("@SLIP_DATE",            SqlDbType.DateTime),
                new SqlParameter("@PAYMENT_DATE",         SqlDbType.DateTime),
                new SqlParameter("@INVOICE_AMOUNT",       SqlDbType.Decimal,    9),
                new SqlParameter("@INVOICE_AMOUNT_LOCAL", SqlDbType.Decimal,    9),
                new SqlParameter("@PACKING_AMOUNT",       SqlDbType.Decimal,    9),
                new SqlParameter("@STATUS_FLAG",          SqlDbType.Int,        4),
                new SqlParameter("@CREATE_USER",          SqlDbType.VarChar,   20),
                new SqlParameter("@CREATE_DATE_TIME",     SqlDbType.DateTime),
                new SqlParameter("@LAST_UPDATE_TIME",     SqlDbType.DateTime),
                new SqlParameter("@LAST_UPDATE_USER",     SqlDbType.VarChar,   20),
                new SqlParameter("@COMPANY_CODE",         SqlDbType.VarChar, 20)
            };
            parameters[0].Value  = model.SLIP_NUMBER;
            parameters[1].Value  = model.SUPPLIER_CODE;
            parameters[2].Value  = model.INVOICE_NUMBER;
            parameters[3].Value  = model.INVOICE_NUMBER_LOCAL;
            parameters[4].Value  = model.SLIP_DATE;
            parameters[5].Value  = model.PAYMENT_DATE;
            parameters[6].Value  = model.INVOICE_AMOUNT;
            parameters[7].Value  = model.INVOICE_AMOUNT_LOCAL;
            parameters[8].Value  = model.PACKING_AMOUNT;
            parameters[9].Value  = model.STATUS_FLAG;
            parameters[10].Value = model.CREATE_USER;
            parameters[11].Value = model.CREATE_DATE_TIME;
            parameters[12].Value = model.LAST_UPDATE_TIME;
            parameters[13].Value = model.LAST_UPDATE_USER;
            parameters[14].Value = model.COMPANY_CODE;

            listSql.Add(new CommandInfo(strSql.ToString(), parameters));

            //明细更新
            foreach (BllPurchaseLineTable purchaseLineTable in model.Items)
            {
                strSql = new StringBuilder();
                strSql.Append("insert into BLL_PURCHASE_LINE(");
                strSql.Append("SLIP_NUMBER,LINE_NUMBER,PURCHASE_ORDER_NUMBER,RECEIPT_SLIP_NUMBER,RECEIPT_LINE_NUMBER,INVOICE_AMOUNT,TAX_AMOUNT,PACKING_AMOUNT,CURRENCY_CODE,STATUS_FLAG)");
                strSql.Append(" values (");
                strSql.Append("@SLIP_NUMBER,@LINE_NUMBER,@PURCHASE_ORDER_NUMBER,@RECEIPT_SLIP_NUMBER,@RECEIPT_LINE_NUMBER,@INVOICE_AMOUNT,@TAX_AMOUNT,@PACKING_AMOUNT,@CURRENCY_CODE,@STATUS_FLAG)");
                SqlParameter[] lineParameters =
                {
                    new SqlParameter("@SLIP_NUMBER",           SqlDbType.VarChar, 20),
                    new SqlParameter("@LINE_NUMBER",           SqlDbType.Int,      4),
                    new SqlParameter("@PURCHASE_ORDER_NUMBER", SqlDbType.VarChar, 20),
                    new SqlParameter("@RECEIPT_SLIP_NUMBER",   SqlDbType.VarChar, 20),
                    new SqlParameter("@RECEIPT_LINE_NUMBER",   SqlDbType.Int,      4),
                    new SqlParameter("@INVOICE_AMOUNT",        SqlDbType.Decimal,  9),
                    new SqlParameter("@TAX_AMOUNT",            SqlDbType.Decimal,  9),
                    new SqlParameter("@PACKING_AMOUNT",        SqlDbType.Decimal,  9),
                    new SqlParameter("@CURRENCY_CODE",         SqlDbType.VarChar, 20),
                    new SqlParameter("@STATUS_FLAG",           SqlDbType.Int, 4)
                };
                lineParameters[0].Value = model.SLIP_NUMBER;
                lineParameters[1].Value = purchaseLineTable.LINE_NUMBER;
                lineParameters[2].Value = purchaseLineTable.PURCHASE_ORDER_NUMBER;
                lineParameters[3].Value = purchaseLineTable.RECEIPT_SLIP_NUMBER;
                lineParameters[4].Value = purchaseLineTable.RECEIPT_LINE_NUMBER;
                lineParameters[5].Value = purchaseLineTable.INVOICE_AMOUNT;
                lineParameters[6].Value = purchaseLineTable.TAX_AMOUNT;
                lineParameters[7].Value = purchaseLineTable.PACKING_AMOUNT;
                lineParameters[8].Value = purchaseLineTable.CURRENCY_CODE;
                lineParameters[9].Value = purchaseLineTable.STATUS_FLAG;
                listSql.Add(new CommandInfo(strSql.ToString(), lineParameters));

                //入库状态更新
                strSql = new StringBuilder();
                strSql.Append(" update BLL_RECEIPT set ");
                strSql.Append(" STATUS_FLAG=@STATUS_FLAG");
                strSql.Append(" where SLIP_NUMBER=@RECEIPT_SLIP_NUMBER");

                SqlParameter[] receiptParam =
                {
                    new SqlParameter("@RECEIPT_SLIP_NUMBER", SqlDbType.VarChar, 20),
                    new SqlParameter("@STATUS_FLAG",         SqlDbType.Int, 4)
                };
                receiptParam[0].Value = purchaseLineTable.RECEIPT_SLIP_NUMBER;
                receiptParam[1].Value = CConstant.NORMAL;
                listSql.Add(new CommandInfo(strSql.ToString(), receiptParam));
            }

            return(DbHelperSQL.ExecuteSqlTran(listSql));
        }
Пример #3
0
        private void OperateInit()
        {
            BllPurchaseTable purchase = bPurchase.GetPurchaseModel(slipnumber);

            if (purchase != null)
            {
                txtSupplierCode.Text = purchase.SUPPLIER_CODE;
                if (!string.IsNullOrEmpty(purchase.SUPPLIER_CODE) && bCommon.GetBaseMaster("SUPPLIER", purchase.SUPPLIER_CODE) != null)
                {
                    txtSupplierName.Text = bCommon.GetBaseMaster("SUPPLIER", purchase.SUPPLIER_CODE).Name;
                }
                txtInvoiceNo.Text          = purchase.INVOICE_NUMBER;
                txtInvoiceAmount.Text      = CConvert.ToString(purchase.INVOICE_AMOUNT);
                txtInvoiceNoLocal.Text     = purchase.INVOICE_NUMBER_LOCAL;
                txtInvoiceAmountLocal.Text = CConvert.ToString(purchase.INVOICE_AMOUNT_LOCAL);
                txtPurchaseDate.Value      = purchase.SLIP_DATE;
                txtPaymentDate.Value       = purchase.PAYMENT_DATE;
                //txtPackAmount.Text = CConvert.ToString(purchase.PACKING_AMOUNT);

                #region dgvData明细确认初始化
                int i = 1;
                dgvData.Rows.Clear();
                string currentSupplier = "";
                dgvData.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;
                dgvData.ReadOnly      = true;
                foreach (BllPurchaseLineTable line in purchase.Items)
                {
                    int             currentRowIndex = dgvData.Rows.Add(1);
                    DataGridViewRow row             = dgvData.Rows[currentRowIndex];
                    row.Cells["No"].Value = i++;
                    string SupplierCode = CConvert.ToString(row.Cells["SUPPLIER_CODE"].Value);
                    if (currentSupplier == "" || currentSupplier != SupplierCode)
                    {
                        currentSupplier = SupplierCode;
                        if (!string.IsNullOrEmpty(purchase.SUPPLIER_CODE))
                        {
                            row.Cells["SUPPLIER_NAME"].Value = bCommon.GetBaseMaster("SUPPLIER", purchase.SUPPLIER_CODE).Name;
                        }
                    }
                    row.Cells["PO_SLIP_NUMBER"].Value = line.PURCHASE_ORDER_NUMBER;
                    row.Cells["SLIP_NUMBER"].Value    = line.RECEIPT_SLIP_NUMBER;
                    row.Cells["AMOUNT"].Value         = line.INVOICE_AMOUNT;
                    if (!string.IsNullOrEmpty(line.CURRENCY_CODE))
                    {
                        row.Cells["CURRENCY_NAME"].Value = bCommon.GetBaseMaster("CURRENCY", line.CURRENCY_CODE).Name;
                    }
                    row.Cells["TAX_AMOUNT"].Value     = line.TAX_AMOUNT;
                    row.Cells["PACKAGE_AMOUNT"].Value = line.PACKING_AMOUNT;
                    BllReceiptLineTable receiptLine = new BReceipt().GetLineModel(line.RECEIPT_SLIP_NUMBER, line.RECEIPT_LINE_NUMBER);
                    if (receiptLine != null)
                    {
                        if (!string.IsNullOrEmpty(receiptLine.PRODUCT_CODE))
                        {
                            row.Cells["PRODUCT_NAME"].Value = bCommon.GetBaseMaster("PRODUCT", receiptLine.PRODUCT_CODE).Name;
                        }
                        row.Cells["AMOUNT_INCLUDED_TAX"].Value = receiptLine.AMOUNT_INCLUDED_TAX;
                        decimal InAmount = bPurchase.GetGetInvoiceAmount(line.RECEIPT_SLIP_NUMBER);
                        if (receiptLine.AMOUNT_INCLUDED_TAX > 0 && InAmount > 0 && receiptLine.AMOUNT_INCLUDED_TAX >= InAmount)
                        {
                            row.Cells["UN_INVOICE_AMOUNT"].Value = receiptLine.AMOUNT_INCLUDED_TAX - InAmount;
                        }
                        else
                        {
                            row.Cells["UN_INVOICE_AMOUNT"].Value = 0;
                        }
                    }
                }
                #endregion
            }
        }
Пример #4
0
        public BllPurchaseTable GetPurchaseModel(string SLIP_NUMBER)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 SLIP_NUMBER,SUPPLIER_CODE,INVOICE_NUMBER,INVOICE_NUMBER_LOCAL,SLIP_DATE,PAYMENT_DATE,INVOICE_AMOUNT,INVOICE_AMOUNT_LOCAL,PACKING_AMOUNT,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER,COMPANY_CODE from BLL_PURCHASE ");
            strSql.Append(" where SLIP_NUMBER = @SLIP_NUMBER");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 20)
            };
            parameters[0].Value = SLIP_NUMBER;

            BllPurchaseTable model = new BllPurchaseTable();
            DataSet          ds    = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                model.SLIP_NUMBER          = ds.Tables[0].Rows[0]["SLIP_NUMBER"].ToString();
                model.SUPPLIER_CODE        = ds.Tables[0].Rows[0]["SUPPLIER_CODE"].ToString();
                model.INVOICE_NUMBER       = ds.Tables[0].Rows[0]["INVOICE_NUMBER"].ToString();
                model.INVOICE_NUMBER_LOCAL = ds.Tables[0].Rows[0]["INVOICE_NUMBER_LOCAL"].ToString();
                if (ds.Tables[0].Rows[0]["SLIP_DATE"].ToString() != "")
                {
                    model.SLIP_DATE = DateTime.Parse(ds.Tables[0].Rows[0]["SLIP_DATE"].ToString());
                }
                if (ds.Tables[0].Rows[0]["PAYMENT_DATE"].ToString() != "")
                {
                    model.PAYMENT_DATE = DateTime.Parse(ds.Tables[0].Rows[0]["PAYMENT_DATE"].ToString());
                }
                if (ds.Tables[0].Rows[0]["INVOICE_AMOUNT"].ToString() != "")
                {
                    model.INVOICE_AMOUNT = decimal.Parse(ds.Tables[0].Rows[0]["INVOICE_AMOUNT"].ToString());
                }
                if (ds.Tables[0].Rows[0]["INVOICE_AMOUNT_LOCAL"].ToString() != "")
                {
                    model.INVOICE_AMOUNT_LOCAL = decimal.Parse(ds.Tables[0].Rows[0]["INVOICE_AMOUNT_LOCAL"].ToString());
                }
                if (ds.Tables[0].Rows[0]["PACKING_AMOUNT"].ToString() != "")
                {
                    model.PACKING_AMOUNT = decimal.Parse(ds.Tables[0].Rows[0]["PACKING_AMOUNT"].ToString());
                }
                if (ds.Tables[0].Rows[0]["STATUS_FLAG"].ToString() != "")
                {
                    model.STATUS_FLAG = int.Parse(ds.Tables[0].Rows[0]["STATUS_FLAG"].ToString());
                }
                model.CREATE_USER = ds.Tables[0].Rows[0]["CREATE_USER"].ToString();
                if (ds.Tables[0].Rows[0]["CREATE_DATE_TIME"].ToString() != "")
                {
                    model.CREATE_DATE_TIME = DateTime.Parse(ds.Tables[0].Rows[0]["CREATE_DATE_TIME"].ToString());
                }
                if (ds.Tables[0].Rows[0]["LAST_UPDATE_TIME"].ToString() != "")
                {
                    model.LAST_UPDATE_TIME = DateTime.Parse(ds.Tables[0].Rows[0]["LAST_UPDATE_TIME"].ToString());
                }
                model.LAST_UPDATE_USER = ds.Tables[0].Rows[0]["LAST_UPDATE_USER"].ToString();
                model.COMPANY_CODE     = ds.Tables[0].Rows[0]["COMPANY_CODE"].ToString();
                strSql = new StringBuilder();
                strSql.Append("select * from BLL_PURCHASE_LINE ");
                strSql.Append(" where SLIP_NUMBER = @SLIP_NUMBER ");
                strSql.AppendFormat(" and STATUS_FLAG <> {0}", CConstant.DELETE);
                SqlParameter[] lineParam =
                {
                    new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 50)
                };
                lineParam[0].Value = SLIP_NUMBER;
                ds = DbHelperSQL.Query(strSql.ToString(), lineParam);
                BllPurchaseLineTable line = null;
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    line                       = new BllPurchaseLineTable();
                    line.SLIP_NUMBER           = CConvert.ToString(row["SLIP_NUMBER"]);
                    line.LINE_NUMBER           = CConvert.ToInt32(row["LINE_NUMBER"]);
                    line.PURCHASE_ORDER_NUMBER = CConvert.ToString(row["PURCHASE_ORDER_NUMBER"]);
                    line.RECEIPT_SLIP_NUMBER   = CConvert.ToString(row["RECEIPT_SLIP_NUMBER"]);
                    line.RECEIPT_LINE_NUMBER   = CConvert.ToInt32(row["RECEIPT_LINE_NUMBER"]);
                    line.INVOICE_AMOUNT        = CConvert.ToDecimal(row["INVOICE_AMOUNT"]);
                    line.TAX_AMOUNT            = CConvert.ToDecimal(row["TAX_AMOUNT"]);
                    line.PACKING_AMOUNT        = CConvert.ToDecimal(row["PACKING_AMOUNT"]);
                    line.CURRENCY_CODE         = CConvert.ToString(row["CURRENCY_CODE"]);
                    line.STATUS_FLAG           = CConvert.ToInt32(row["STATUS_FLAG"]);

                    if (!string.IsNullOrEmpty(line.SLIP_NUMBER))
                    {
                        model.AddItems(line);
                    }
                }

                return(model);
            }
            else
            {
                return(null);
            }
        }
Пример #5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (saveCheck())
            {
                List <BllPurchaseTable> datas = new List <BllPurchaseTable>();

                BllPurchaseTable purchaseTable  = new BllPurchaseTable();
                DateTime         currentDate    = DateTime.Now;
                decimal          packing_amount = 0;

                //表头信息的保存
                //付款公司编号
                purchaseTable.SUPPLIER_CODE = this.txtSupplierCode.Text.Trim();
                //国外发票编
                purchaseTable.INVOICE_NUMBER = this.txtInvoiceNo.Text.Trim();
                //国内发票编号
                purchaseTable.INVOICE_NUMBER_LOCAL = this.txtInvoiceNoLocal.Text.Trim();
                //开票日期
                purchaseTable.SLIP_DATE = this.txtPurchaseDate.Value;
                //付款预定日
                purchaseTable.PAYMENT_DATE = this.txtPaymentDate.Value;
                //国外发票金额
                purchaseTable.INVOICE_AMOUNT = CConvert.ToDecimal(this.txtInvoiceAmount.Text.Trim());
                //国内发票金额
                purchaseTable.INVOICE_AMOUNT_LOCAL = CConvert.ToDecimal(this.txtInvoiceAmountLocal.Text.Trim());
                //包装费金额
                //purchaseTable.PACKING_AMOUNT = CConvert.ToDecimal(this.txtPackAmount.Text.Trim());
                //状态
                purchaseTable.STATUS_FLAG = CConstant.INIT;
                //创建人
                purchaseTable.CREATE_USER = UserTable.CODE;
                //创建时间
                purchaseTable.CREATE_DATE_TIME = currentDate;
                //最后更新人
                purchaseTable.LAST_UPDATE_USER = UserTable.CODE;
                //最后更新时间
                purchaseTable.LAST_UPDATE_TIME = currentDate;
                // 公司
                purchaseTable.COMPANY_CODE = UserTable.COMPANY_CODE;

                //明细信息保存
                int lineNo = 1;
                foreach (DataGridViewRow row in dgvData.Rows)
                {
                    decimal amount = CConvert.ToDecimal(CConvert.ToString(row.Cells["AMOUNT"].Value));
                    if (amount == 0)
                    {
                        continue;
                    }

                    BllPurchaseLineTable purchaseLineTable = new BllPurchaseLineTable();
                    //明细编号
                    purchaseLineTable.LINE_NUMBER = lineNo;
                    lineNo++;

                    //采购订单
                    purchaseLineTable.PURCHASE_ORDER_NUMBER = CConvert.ToString(row.Cells["PO_SLIP_NUMBER"].Value);
                    //入库编号
                    purchaseLineTable.RECEIPT_SLIP_NUMBER = CConvert.ToString(row.Cells["SLIP_NUMBER"].Value);
                    //入库明细单号
                    purchaseLineTable.RECEIPT_LINE_NUMBER = CConvert.ToInt32(row.Cells["RECEIPT_LINE_NUMBER"].Value);
                    //开票金额
                    purchaseLineTable.INVOICE_AMOUNT = amount;
                    //关税
                    purchaseLineTable.TAX_AMOUNT = CConvert.ToDecimal(row.Cells["TAX_AMOUNT"].Value);
                    //包装费用
                    purchaseLineTable.PACKING_AMOUNT = CConvert.ToDecimal(row.Cells["PACKAGE_AMOUNT"].Value);
                    packing_amount += purchaseLineTable.PACKING_AMOUNT;
                    //货币编号
                    purchaseLineTable.CURRENCY_CODE = CConvert.ToString(row.Cells["CURRENCY_CODE"].Value);
                    //状态
                    purchaseLineTable.STATUS_FLAG = CConstant.INIT;

                    //存入表头
                    purchaseTable.Items.Add(purchaseLineTable);
                }
                //包装费金额
                purchaseTable.PACKING_AMOUNT = packing_amount;
                if (purchaseTable.Items.Count == 0)
                {
                    MessageBox.Show("请输入入库明细的发票金额。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                int result = 0;
                try
                {
                    result = bPurchase.Add(purchaseTable);
                    if (result <= 0)
                    {
                        MessageBox.Show("采购发票保存失败,请重试或与管理员联系。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("采购发票保存成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        initPage();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("采购发票保存失败,系统错误,请与管理员联系。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Logger.Error("采购发票保存失败!!!!!", ex);
                    MessageBox.Show(ex.Message);
                }
            }
        }