Beispiel #1
0
        private void initOperate(int currentPage)
        {
            BllShipmentTable    shipment    = bShipment.GetModel(slipnumber);
            BllOrderHeaderTable orderheader = bOrderHeader.GetModel(shipment.ORDER_SLIP_NUMBER);

            txtSlipNumber.Text      = slipnumber;
            txtOrderSlipNumber.Text = shipment.ORDER_SLIP_NUMBER;
            //txtCustomerCode.Text = orderheader.CUSTOMER_CODE;
            //txtCustomerName.Text = orderheader.CUSTOMER_NAME;
            txtEndCustomerCode.Text = orderheader.ENDER_CUSTOMER_CODE;
            txtEndCustomerName.Text = orderheader.ENDER_CUSTOMER_NAME;
            //txtDeliveryPointCode.Text = orderheader.ENDER_CUSTOMER_CODE;
            //txtDeliveryPointName.Text = orderheader.ENDER_CUSTOMER_NAME;
            //txtSerialNumber.Text = shipment.SERIAL_NUMBER;
            txtCustomerPoNumber.Text   = orderheader.CUSTOMER_PO_NUMBER;
            txtOrderSlipDateFrom.Value = CConvert.ToDateTime(orderheader.SLIP_DATE.ToString());
            txtOrderSlipDateTo.Value   = CConvert.ToDateTime(orderheader.SLIP_DATE.ToString());
            txtSlipDateFrom.Value      = CConvert.ToDateTime(shipment.SLIP_DATE.ToString("yyyy-MM-dd"));
            txtSlipDateTo.Value        = CConvert.ToDateTime(shipment.SLIP_DATE.ToString("yyyy-MM-dd"));
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(" STATUS_FLAG <> {0}", CConstant.DELETE);
            sb.AppendFormat(" AND SLIP_NUMBER = '{0}'", slipnumber);
            DataSet ds          = bShipment.GetList(sb.ToString(), "", (currentPage - 1) * PageSize + 1, currentPage * PageSize);
            int     recordCount = bShipment.GetRecordCount(sb.ToString());

            _currentDt = ds.Tables[0];
            reSetCurrentDt();
            this.dgvData.DataSource = _currentDt;
            this.pgControl.init(GetTotalPage(recordCount), currentPage);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        private void dgvData_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                DataGridViewRow dr = dgvData.Rows[e.RowIndex];
                if (e.ColumnIndex == dgvData.Columns["ORDER_SLIP_NUMBER"].Index)
                {
                    string orderSlipNumber = CConvert.ToString(dr.Cells["ORDER_SLIP_NUMBER"].Value).Trim();
                    string no = CConvert.ToString(dr.Cells["NO"].Value).Trim();
                    if (orderSlipNumber != "")
                    {
                        BllOrderHeaderTable orderTable = bOrderHeader.GetModel(orderSlipNumber);
                        if (orderTable != null)
                        {
                            if (!IsExist(orderSlipNumber, no))
                            {
                                dr.Cells["ORDER_SLIP_NUMBER"].Value   = orderTable.SLIP_NUMBER;
                                dr.Cells["ORDER_SLIP_DATE"].Value     = CConvert.ToDateTime(orderTable.SLIP_DATE).ToString("yyyy-MM-dd");
                                dr.Cells["AMOUNT_INCLUDED_TAX"].Value = orderTable.AMOUNT_INCLUDED_TAX;
                                dr.Cells["ARR_AMOUNT"].Value          = bDepositArr.GetArrAmount(orderTable.SLIP_NUMBER);
                            }
                        }
                        else
                        {
                            MessageBox.Show("订单编号不存在。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            dr.Cells["ORDER_SLIP_NUMBER"].Value   = "";
                            dr.Cells["ORDER_SLIP_DATE"].Value     = "";
                            dr.Cells["AMOUNT_INCLUDED_TAX"].Value = "";
                            dr.Cells["ARR_AMOUNT"].Value          = "0";
                            dr.Cells["AMOUNT"].Value = "";
                        }
                    }
                }
                else if (e.ColumnIndex == dgvData.Columns["AMOUNT"].Index)
                {
                    string amount = CConvert.ToString(dr.Cells["AMOUNT"].Value);

                    if (amount == "")
                    {
                        dr.Cells["AMOUNT"].Value = 0;
                    }
                    else
                    {
                        dr.Cells["AMOUNT"].Value = CConvert.ToDecimal(amount);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error("CellValidated error!", ex);
            }
        }
Beispiel #3
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public int Update(BllOrderHeaderTable model)
 {
     return(dal.Update(model));
 }
Beispiel #4
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public string Add(BllOrderHeaderTable model)
 {
     return(dal.Add(model));
 }
Beispiel #5
0
        /// <summary>
        /// 导出
        /// </summary>
        private void btnExport_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtCompanyCode.Text))
            {
                MessageBox.Show("请选择公司。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (string.IsNullOrEmpty(txtFilePath.Text))
            {
                MessageBox.Show("请选择保存路径。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            BaseCompanyTable    companyTable  = bCompany.GetModel(txtCompanyCode.Text.Trim());
            BllOrderHeaderTable orderTable    = bOrderH.GetModel(_slipNumber);
            BaseCustomerTable   customerTable = bCustomer.GetModel(orderTable.ENDER_CUSTOMER_CODE);

            report.Preview = previewControl1;
            DataTable dt = new DataTable();

            dt.TableName = "ds";
            dt.Columns.Add("i", System.Type.GetType("System.Decimal"));
            dt.Columns.Add("SPEC", System.Type.GetType("System.String"));
            dt.Columns.Add("QUANTITY", System.Type.GetType("System.Decimal"));
            dt.Columns.Add("PRICE", System.Type.GetType("System.Decimal"));
            dt.Columns.Add("DISCOUNT", System.Type.GetType("System.Decimal"));
            dt.Columns.Add("AMOUNT", System.Type.GetType("System.Decimal"));
            dt.Columns.Add("MATERIAL", System.Type.GetType("System.String"));
            dt.Columns.Add("MEMO", System.Type.GetType("System.String"));
            dt.Columns.Add("DESCRIPTION", System.Type.GetType("System.String"));
            dt.Columns.Add("DESCRIPTION1", System.Type.GetType("System.String"));
            int j = 1;

            foreach (BllOrderLineTable lineModel in orderTable.Items)
            {
                if (lineModel.PRICE_DISCOUNT.ToString().Equals("0.00"))
                {
                    object[] rows = { j++, lineModel.SPEC, lineModel.QUANTITY, lineModel.PRICE, null, lineModel.AMOUNT, lineModel.METERIAL, lineModel.MEMO, lineModel.DESCRIPTION, lineModel.DESCRIPTION1 };

                    dt.Rows.Add(rows);
                }
                else
                {
                    object[] rows = { j++, lineModel.SPEC, lineModel.QUANTITY, lineModel.PRICE, 0 - lineModel.PRICE_DISCOUNT, lineModel.AMOUNT, lineModel.METERIAL, lineModel.MEMO, lineModel.DESCRIPTION, lineModel.DESCRIPTION1 };
                    dt.Rows.Add(rows);
                }
            }

            DataSet ds = new DataSet();

            ds.Tables.Add(dt);

            string fileName   = "";
            string amountName = "";

            if (CConstant.LANGUAGE_CN.Equals(cboLanguage.SelectedValue))
            {
                fileName   = @"Reports\Proforma_Invoice.frx";
                amountName = NumberConvert.NumberToEnglish(CConvert.ToString(orderTable.AMOUNT_INCLUDED_TAX), false);
            }
            else if (CConstant.LANGUAGE_EN.Equals(cboLanguage.SelectedValue))
            {
                fileName   = @"Reports\Order_EN.frx";
                amountName = NumberConvert.NumberToEnglish(CConvert.ToString(orderTable.AMOUNT_INCLUDED_TAX), false);
            }

            try
            {
                if (File.Exists(fileName))
                {
                    report.Load(fileName);
                    report.SetParameterValue("CompanyName", companyTable.NAME);
                    report.SetParameterValue("EnglishCompanyName", companyTable.NAME_ENGLISH);
                    report.SetParameterValue("CompanyTel", companyTable.PHONE_NUMBER);
                    report.SetParameterValue("CompanyFax", companyTable.FAX_NUMBER);
                    report.SetParameterValue("CompanyAddress", companyTable.ADDRESS_MIDDLE);
                    report.SetParameterValue("CompanyUrl", companyTable.URL);
                    report.SetParameterValue("CompanyEmail", companyTable.EMAIL);
                    report.SetParameterValue("SlipNumber", _slipNumber);
                    report.SetParameterValue("SlipDate", CConvert.ToDateTime(orderTable.SLIP_DATE).ToString("yyyy/MM/dd"));
                    report.SetParameterValue("Currency", orderTable.CURRENCY_NAME);
                    report.SetParameterValue("CustomerName", customerTable.NAME);
                    int COUNT = 0;
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        if (dr["DISCOUNT"].ToString() != "")
                        {
                            COUNT++;
                        }
                    }
                    if (COUNT > 0)
                    {
                        report.SetParameterValue("DISCOUNT", "Discount");
                    }

                    if (customerTable.PHONE_NUMBER.ToString() != "")
                    {
                        report.SetParameterValue("CustomerTel", "Tel:" + customerTable.PHONE_NUMBER);
                    }
                    if (customerTable.FAX_NUMBER.ToString() != "")
                    {
                        report.SetParameterValue("CustomerFax", "Fax:" + customerTable.FAX_NUMBER);
                    }
                    if (customerTable.ADDRESS_FIRST.ToString() != "")
                    {
                        report.SetParameterValue("CustomerAddress", "Address:" + customerTable.ADDRESS_FIRST);
                    }
                    report.SetParameterValue("CustomerMessage", txtMessage.Text);
                    report.SetParameterValue("DeliveryTerms", orderTable.DELIVERY_TERMS);
                    report.SetParameterValue("PaymentTerms", orderTable.PAYMENT_TERMS);
                    if (orderTable.DISCOUNT_RATE > 0)
                    {
                        report.SetParameterValue("DiscountRate", "-" + orderTable.DISCOUNT_RATE + "%");
                        report.SetParameterValue("DiscountAmount", orderTable.AMOUNT_INCLUDED_TAX);
                    }
                    report.SetParameterValue("AmountName", amountName);

                    report.SetParameterValue("FullNameEn", txtBankEn.Text);
                    report.SetParameterValue("DetailEn", rtxtDetail.Text);
                    if (companyTable.COMPANY_PICTURE != null)
                    {
                        MemoryStream ms    = new MemoryStream((byte[])companyTable.COMPANY_PICTURE);
                        Image        image = Image.FromStream(ms);
                        ((FastReport.PictureObject)report.FindObject("CompanyPicture")).Image = image;
                    }
                    if (companyTable.LOGO != null)
                    {
                        MemoryStream ms1    = new MemoryStream((byte[])companyTable.LOGO);
                        Image        image1 = Image.FromStream(ms1);
                        ((FastReport.PictureObject)report.FindObject("Logo")).Image = image1;
                    }
                    report.RegisterData(ds);
                    report.Prepare();
                    if (fileName.Equals(@"Reports\Proforma_Invoice.frx"))
                    {
                        report.Export(new FastReport.Export.Pdf.PDFExport(), this.txtFilePath.Text + "\\Proforma_Invoice" + _slipNumber + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf");
                    }
                    else
                    {
                        report.Export(new FastReport.Export.Pdf.PDFExport(), this.txtFilePath.Text + "\\Order_" + _slipNumber + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf");
                    }
                    MessageBox.Show("导出成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }

            catch (Exception ex)
            {
                Logger.Error("", ex);
            }
        }
Beispiel #6
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public string Add(BaseProductionPlanTable model, BllOrderHeaderTable bOrderHeader)
 {
     return(dal.Add(model, bOrderHeader));
 }
Beispiel #7
0
        private void FrmAlloation_Load(object sender, EventArgs e)
        {
            BllOrderHeaderTable headerTable = bOrderHeader.GetModel(_slipNumber);

            this.txtSlipNumber.Text        = headerTable.SLIP_NUMBER;
            this.txtCustomerCode.Text      = headerTable.CUSTOMER_CODE;
            this.txtCustomerName.Text      = headerTable.CUSTOMER_NAME;
            this.txtEndCustomerCode.Text   = headerTable.ENDER_CUSTOMER_CODE;
            this.txtEndCustomerName.Text   = headerTable.ENDER_CUSTOMER_NAME;
            this.txtDeliveryPointCode.Text = headerTable.DELIVERY_POINT_CODE;
            this.txtDeliveryPointName.Text = headerTable.DELIVERY_POINT_NAME;
            this.txtOwnerPoNumber.Text     = headerTable.CUSTOMER_PO_NUMBER;
            this.txtSlipDate.Text          = CConvert.DateTimeToString(headerTable.SLIP_DATE, "yyyy-MM-dd");
            this.txtDepartualDate.Text     = CConvert.DateTimeToString(headerTable.DEPARTUAL_DATE, "yyyy-MM-dd");

            DataGridViewComboBoxColumn co = this.dgvData.Columns["DEPARTUAL_WAREHOUSE"] as DataGridViewComboBoxColumn;

            co.DataSource    = CCacheData.WAREHOUSE.Copy();
            co.DisplayMember = "NAME";
            co.ValueMember   = "CODE";

            foreach (BllOrderLineTable lineModel in headerTable.Items)
            {
                decimal         quantity        = CConvert.ToDecimal(lineModel.QUANTITY) - CConvert.ToDecimal(lineModel.SHIPMENT_QUANTITY);
                int             currentRowIndex = dgvData.Rows.Add(1);
                DataGridViewRow dgvr            = dgvData.Rows[currentRowIndex];
                dgvr.Cells["NO"].Value           = lineModel.LINE_NUMBER;
                dgvr.Cells["PRODUCT_CODE"].Value = lineModel.PRODUCT_CODE;
                dgvr.Cells["PRODUCT_NAME"].Value = lineModel.PRODUCT_NAME;
                dgvr.Cells["PRODUCT_SPEC"].Value = lineModel.PRODUCT_SPEC;
                dgvr.Cells["QUANTITY"].Value     = quantity;
                dgvr.Cells["UNIT_CODE"].Value    = lineModel.UNIT_NAME;
                dgvr.Cells["UNIT_NAME"].Value    = lineModel.UNIT_NAME;
                dgvr.Cells["REF_STOCK"].Value    = "参照";

                //当前己引当的仓库的取得
                BaseWarehouseTable warehouseTable = bAlloation.GetAlloationWarehouse(headerTable.SLIP_NUMBER, lineModel.LINE_NUMBER);
                string             warehouseCode  = warehouseTable.CODE;
                if (warehouseCode != null && warehouseCode != "")
                {
                    ((DataGridViewComboBoxCell)dgvr.Cells["DEPARTUAL_WAREHOUSE"]).Style.NullValue = warehouseTable.NAME + " ";
                }
                else
                {
                    warehouseCode = headerTable.DEPARTUAL_WAREHOUSE_CODE;
                    ((DataGridViewComboBoxCell)dgvr.Cells["DEPARTUAL_WAREHOUSE"]).Style.NullValue = headerTable.DEPARTUAL_WAREHOUSE_NAME + " ";
                }
                dgvr.Cells["DEFAULT_WAREHOUSE_CODE"].Value = warehouseCode;

                //当前仓库实际库存的取得
                BaseStockTable stockTable = bStock.GetModel(warehouseCode, lineModel.PRODUCT_CODE);
                decimal        stock      = 0;
                if (stockTable != null)
                {
                    stock = CConvert.ToDecimal(stockTable.QUANTITY);
                }

                //己使用的引当数量,当前订单除外,己出库数量除外
                stock -= bAlloation.GetAlloationQuantity(headerTable.SLIP_NUMBER, warehouseCode, lineModel.PRODUCT_CODE);

                dgvr.Cells["STOCK"].Value = stock;

                dgvr.Cells["ALLOATION_QUANTITY"].Value = quantity;
                BaseProductTable pTable = null;
                if (lineModel.PRODUCT_CODE.Length >= 4 && lineModel.PRODUCT_CODE.Substring(0, 4) == "9999")
                {
                    pTable = bProduct.GetModel(lineModel.PRODUCT_CODE.Substring(0, 4));
                }
                else
                {
                    pTable = bProduct.GetModel(lineModel.PRODUCT_CODE);
                }
                if (pTable.STOCK_FLAG == 2)
                {
                    dgvr.Cells["IS_ALLOATION"].Value = "OK";
                }
                else if (quantity > stock)
                {
                    dgvr.Cells["IS_ALLOATION"].Value = "NG";
                }
                else
                {
                    dgvr.Cells["IS_ALLOATION"].Value = "OK";
                }
            }
        }
Beispiel #8
0
        public string Add(BaseProductionPlanTable headerModel, BllOrderHeaderTable bOrderHeader)
        {
            int i      = 0;
            int result = 0;

            while (i < 10)
            {
                try
                {
                    List <CommandInfo> listSql = new List <CommandInfo>();
                    StringBuilder      strSql  = new StringBuilder();
                    strSql.Append("insert into BLL_PRODUCTION_SCHEDULE(");
                    strSql.Append("SLIP_NUMBER,ORDER_SLIP_NUNBER,SLIP_DATE,SLIP_TYPE_CODE,DESCRIPTION,PLAN_NUMBER,PLAN_START_DATE,PLAN_END_DATE,MEMO,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER,ACTUAL_START_TIME,ACTUAL_END_TIME,MEMO1,MEMO2,MEMO3)");
                    strSql.Append(" values (");
                    strSql.Append("@SLIP_NUMBER,@ORDER_SLIP_NUNBER,GETDATE(),@SLIP_TYPE_CODE,@DESCRIPTION,@PLAN_NUMBER,@PLAN_START_DATE,@PLAN_END_DATE,@MEMO,@STATUS_FLAG,@CREATE_USER,GETDATE(),GETDATE(),@LAST_UPDATE_USER,@ACTUAL_START_TIME,@ACTUAL_END_TIME,@MEMO1,@MEMO2,@MEMO3)");
                    SqlParameter[] parameters =
                    {
                        new SqlParameter("@SLIP_NUMBER",       SqlDbType.VarChar,   50),
                        new SqlParameter("@ORDER_SLIP_NUNBER", SqlDbType.VarChar,   50),
                        new SqlParameter("@SLIP_TYPE_CODE",    SqlDbType.VarChar,   50),
                        new SqlParameter("@DESCRIPTION",       SqlDbType.VarChar,   50),
                        new SqlParameter("@PLAN_NUMBER",       SqlDbType.Int,        9),
                        new SqlParameter("@PLAN_START_DATE",   SqlDbType.DateTime),
                        new SqlParameter("@PLAN_END_DATE",     SqlDbType.DateTime),
                        new SqlParameter("@MEMO",              SqlDbType.VarChar,   50),
                        new SqlParameter("@STATUS_FLAG",       SqlDbType.Int,        9),
                        new SqlParameter("@CREATE_USER",       SqlDbType.VarChar,   50),
                        new SqlParameter("@LAST_UPDATE_USER",  SqlDbType.VarChar,   50),
                        new SqlParameter("@ACTUAL_START_TIME", SqlDbType.DateTime),
                        new SqlParameter("@ACTUAL_END_TIME",   SqlDbType.DateTime),
                        new SqlParameter("@MEMO1",             SqlDbType.VarChar,   50),
                        new SqlParameter("@MEMO2",             SqlDbType.VarChar,   50),
                        new SqlParameter("@MEMO3",             SqlDbType.VarChar, 50)
                    };
                    parameters[0].Value  = headerModel.SLIP_NUMBER;
                    parameters[1].Value  = headerModel.ORDER_SLIP_NUNBER;
                    parameters[2].Value  = headerModel.SLIP_TYPE_CODE;
                    parameters[3].Value  = headerModel.SPEC;
                    parameters[4].Value  = headerModel.PLAN_QUANTITY;
                    parameters[5].Value  = headerModel.PLAN_START_DATE;
                    parameters[6].Value  = headerModel.PLAN_END_DATE;
                    parameters[7].Value  = headerModel.MEMO;
                    parameters[8].Value  = CConstant.INIT;
                    parameters[9].Value  = headerModel.CREATE_USER;
                    parameters[10].Value = headerModel.LAST_UPDATE_USER;
                    parameters[11].Value = headerModel.ACTUAL_START_TIME;
                    parameters[12].Value = headerModel.ACTUAL_END_TIME;
                    parameters[13].Value = headerModel.MEMO1;
                    parameters[14].Value = headerModel.MEMO2;
                    parameters[15].Value = headerModel.MEMO3;
                    listSql.Add(new CommandInfo(strSql.ToString(), parameters));

                    //明细插入
                    foreach (BaseProductionPlanLineTable lineModel in headerModel.Items)
                    {
                        strSql = new StringBuilder();
                        strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_LINE(");
                        strSql.Append(" SLIP_NUMBER,LINE_NUMBER,PARTS_CODE,PLAN_START_DATE,PLAN_END_DATE,PLAN_NUMBER,SCHEDULE_FLAG,STATUS_FLAG,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                        strSql.Append(" values (");
                        strSql.Append(" @SLIP_NUMBER,@LINE_NUMBER,@PARTS_CODE,@PLAN_START_DATE,@PLAN_END_DATE,@PLAN_NUMBER,@SCHEDULE_FLAG,@STATUS_FLAG,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                        SqlParameter[] lineParameters =
                        {
                            new SqlParameter("@SLIP_NUMBER",       SqlDbType.VarChar,   20),
                            new SqlParameter("@LINE_NUMBER",       SqlDbType.Int,        9),
                            new SqlParameter("@PARTS_CODE",        SqlDbType.VarChar,   20),
                            new SqlParameter("@PLAN_START_DATE",   SqlDbType.DateTime),
                            new SqlParameter("@PLAN_END_DATE",     SqlDbType.DateTime),
                            new SqlParameter("@PLAN_NUMBER",       SqlDbType.Int,        9),
                            new SqlParameter("@SCHEDULE_FLAG",     SqlDbType.Int,        9),
                            new SqlParameter("@STATUS_FLAG",       SqlDbType.Int,       20),
                            new SqlParameter("@ACTUAL_START_TIME", SqlDbType.DateTime),
                            new SqlParameter("@ACTUAL_END_TIME",   SqlDbType.DateTime)
                        };
                        lineParameters[0].Value = headerModel.SLIP_NUMBER;
                        lineParameters[1].Value = lineModel.LINE_NUMBER;
                        lineParameters[2].Value = lineModel.PARTS_CODE;
                        lineParameters[3].Value = lineModel.PLAN_START_DATE;
                        lineParameters[4].Value = lineModel.PLAN_END_DATE;
                        lineParameters[5].Value = lineModel.PLAN_NUMBER;
                        lineParameters[6].Value = lineModel.SCHEDULE_FLAG;
                        lineParameters[7].Value = CConstant.INIT;
                        lineParameters[8].Value = lineModel.ACTUAL_START_TIME;
                        lineParameters[9].Value = lineModel.ACTUAL_END_TIME;
                        listSql.Add(new CommandInfo(strSql.ToString(), lineParameters));
                    }

                    foreach (BaseProductionPlanDrawingLineTable lineModel in headerModel.ItemsDrawing)
                    {
                        strSql = new StringBuilder();
                        strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_DRAWING_LINE(");
                        strSql.Append("SLIP_NUMBER,LINE_NUMBER,DRAWING_CODE,PLAN_END_DATE,STATUS_FLAG,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                        strSql.Append(" values (");
                        strSql.Append(" @SLIP_NUMBER,@LINE_NUMBER,@DRAWING_CODE,@PLAN_END_DATE,@STATUS_FLAG,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                        SqlParameter[] lineDrawingParameters =
                        {
                            new SqlParameter("@SLIP_NUMBER",       SqlDbType.VarChar,   20),
                            new SqlParameter("@LINE_NUMBER",       SqlDbType.Int,        9),
                            new SqlParameter("@DRAWING_CODE",      SqlDbType.VarChar,   20),
                            new SqlParameter("@PLAN_END_DATE",     SqlDbType.DateTime),
                            new SqlParameter("@STATUS_FLAG",       SqlDbType.Int,       20),
                            new SqlParameter("@ACTUAL_START_TIME", SqlDbType.DateTime),
                            new SqlParameter("@ACTUAL_END_TIME",   SqlDbType.DateTime)
                        };
                        lineDrawingParameters[0].Value = headerModel.SLIP_NUMBER;
                        lineDrawingParameters[1].Value = lineModel.LINE_NUMBER;
                        lineDrawingParameters[2].Value = lineModel.DRAWING_CODE;
                        lineDrawingParameters[3].Value = lineModel.PLAN_END_DATE;
                        lineDrawingParameters[4].Value = CConstant.INIT;
                        lineDrawingParameters[5].Value = lineModel.ACTUAL_START_TIME;
                        lineDrawingParameters[6].Value = lineModel.ACTUAL_END_TIME;
                        listSql.Add(new CommandInfo(strSql.ToString(), lineDrawingParameters));
                    }
                    foreach (BaseProductionPlanLineTable lineTable in headerModel.Items)
                    // foreach (BaseProductionScheduleProductionProcessTable lineModel in headerModel.ItemsProductionProcess)
                    {
                        foreach (BaseProductionScheduleProductionProcessTable lineModel in lineTable.ProductionProcess)
                        {
                            strSql = new StringBuilder();
                            strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_PRODUCTION_PROCESS(");
                            strSql.Append("SLIP_NUMBER,SCHEDULE_LINE_NUNBER,LINE_NUMBER,PRODUCTION_PROCESS_CODE,PLAN_START_DATE,PLAN_END_DATE,STATUS_FLAG,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                            strSql.Append(" values (");
                            strSql.Append("@SLIP_NUMBER,@SCHEDULE_LINE_NUNBER,@LINE_NUMBER,@PRODUCTION_PROCESS_CODE,@PLAN_START_DATE,@PLAN_END_DATE,@STATUS_FLAG,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                            SqlParameter[] lineProductionProcessParameters =
                            {
                                new SqlParameter("@SLIP_NUMBER",             SqlDbType.VarChar,   20),
                                new SqlParameter("@SCHEDULE_LINE_NUNBER",    SqlDbType.Int,        9),
                                new SqlParameter("@LINE_NUMBER",             SqlDbType.Int,        9),
                                new SqlParameter("@PRODUCTION_PROCESS_CODE", SqlDbType.VarChar,   50),
                                new SqlParameter("@PLAN_START_DATE",         SqlDbType.DateTime),
                                new SqlParameter("@PLAN_END_DATE",           SqlDbType.DateTime),
                                new SqlParameter("@STATUS_FLAG",             SqlDbType.Int,        9),
                                new SqlParameter("@ACTUAL_START_TIME",       SqlDbType.DateTime),
                                new SqlParameter("@ACTUAL_END_TIME",         SqlDbType.DateTime)
                            };
                            lineProductionProcessParameters[0].Value = headerModel.SLIP_NUMBER;
                            lineProductionProcessParameters[1].Value = lineModel.SCHEDULE_LINE_NUNBER;
                            lineProductionProcessParameters[2].Value = lineModel.LINE_NUMBER;
                            lineProductionProcessParameters[3].Value = lineModel.PRODUCTION_PROCESS_CODE;
                            lineProductionProcessParameters[4].Value = lineModel.PLAN_START_DATE;
                            lineProductionProcessParameters[5].Value = lineModel.PLAN_END_DATE;
                            lineProductionProcessParameters[6].Value = CConstant.INIT;
                            lineProductionProcessParameters[7].Value = lineModel.ACTUAL_START_TIME;
                            lineProductionProcessParameters[8].Value = lineModel.ACTUAL_END_TIME;
                            listSql.Add(new CommandInfo(strSql.ToString(), lineProductionProcessParameters));
                        }
                    }

                    foreach (BaseProductionPlanLineTable lineTable in headerModel.Items)
                    {
                        foreach (BaseProductionScheduleProductionProcessTable lineModel in lineTable.ProductionProcess)
                        {
                            foreach (BaseProductionTechnologyTable lineTechnologyModel in lineModel.ProductionTechnology)
                            {
                                strSql = new StringBuilder();
                                strSql.Append("insert into BLL_PRODUCTION_SCHEDULE_TECHNOLOGY(");
                                strSql.Append("SLIP_NUMBER,SCHEDULE_LINE_NUMBER,SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER,TECHNOLOGY_LINE_NUMBER,TECHNOLOGY_CODE,STATUS_FLAG,PLAN_START_DATE,PLAN_END_DATE,ACTUAL_START_TIME,ACTUAL_END_TIME)");
                                strSql.Append(" values (");
                                strSql.Append("@SLIP_NUMBER,@SCHEDULE_LINE_NUMBER,@SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER,@TECHNOLOGY_LINE_NUMBER,@TECHNOLOGY_CODE,@STATUS_FLAG,@PLAN_START_DATE,@PLAN_END_DATE,@ACTUAL_START_TIME,@ACTUAL_END_TIME)");
                                SqlParameter[] lineTechnologyParameters =
                                {
                                    new SqlParameter("@SLIP_NUMBER",                             SqlDbType.VarChar,   20),
                                    new SqlParameter("@SCHEDULE_LINE_NUMBER",                    SqlDbType.Int,        9),
                                    new SqlParameter("@SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER", SqlDbType.Int,        9),
                                    new SqlParameter("@TECHNOLOGY_LINE_NUMBER",                  SqlDbType.Int,        9),
                                    new SqlParameter("@TECHNOLOGY_CODE",                         SqlDbType.VarChar,   50),
                                    new SqlParameter("@STATUS_FLAG",                             SqlDbType.Int,        9),
                                    new SqlParameter("@PLAN_START_DATE",                         SqlDbType.DateTime),
                                    new SqlParameter("@PLAN_END_DATE",                           SqlDbType.DateTime),
                                    new SqlParameter("@ACTUAL_START_TIME",                       SqlDbType.DateTime),
                                    new SqlParameter("@ACTUAL_END_TIME",                         SqlDbType.DateTime)
                                };
                                lineTechnologyParameters[0].Value = headerModel.SLIP_NUMBER;
                                lineTechnologyParameters[1].Value = lineTechnologyModel.SCHEDULE_LINE_NUMBER;
                                lineTechnologyParameters[2].Value = lineTechnologyModel.SCHEDULE_PRODUCTION_PROCESS_LINE_NUNBER;
                                lineTechnologyParameters[3].Value = lineTechnologyModel.LINE_NUMBER;
                                lineTechnologyParameters[4].Value = lineTechnologyModel.TECHNOLOGY_CODE;
                                lineTechnologyParameters[5].Value = CConstant.INIT;
                                lineTechnologyParameters[6].Value = lineTechnologyModel.PLAN_START_DATE;
                                lineTechnologyParameters[7].Value = lineTechnologyModel.PLAN_END_DATE;
                                lineTechnologyParameters[8].Value = lineTechnologyModel.ACTUAL_START_TIME;
                                lineTechnologyParameters[9].Value = lineTechnologyModel.ACTUAL_END_TIME;
                                listSql.Add(new CommandInfo(strSql.ToString(), lineTechnologyParameters));
                            }
                        }
                    }

                    foreach (BllOrderLineTable orderline in bOrderHeader.Items)
                    {
                        strSql = new StringBuilder();
                        strSql.Append("update BLL_ORDER_LINE set ");
                        strSql.Append("ALLOATION_QUANTITY=@ALLOATION_QUANTITY");
                        strSql.Append(" where SLIP_NUMBER=@SLIP_NUMBER ");
                        strSql.Append("  AND  LINE_NUMBER=@LINE_NUMBER ");
                        SqlParameter[] orderLineParam =
                        {
                            new SqlParameter("@ALLOATION_QUANTITY", SqlDbType.Decimal),
                            new SqlParameter("@SLIP_NUMBER",        SqlDbType.VarChar,50),
                            new SqlParameter("@LINE_NUMBER",        SqlDbType.Int, 9)
                        };
                        orderLineParam[0].Value = orderline.ALLOATION_QUANTITY;
                        orderLineParam[1].Value = orderline.SLIP_NUMBER;
                        orderLineParam[2].Value = orderline.LINE_NUMBER;
                        listSql.Add(new CommandInfo(strSql.ToString(), orderLineParam));
                    }
                    result = DbHelperSQL.ExecuteSqlTran(listSql);
                    break;
                }
                catch (SqlException ex)
                {
                    headerModel.SLIP_NUMBER = DateTime.Now.ToString("yyyyMMdd") + (CConvert.ToInt32(GetMaxSlipNumber()) + 1).ToString().PadLeft(4, '0');
                    i++;
                    if (i == 10)
                    {
                        throw ex;
                    }
                    continue;
                }
                break;
            }
            if (result <= 0)
            {
                return(null);
            }
            return(headerModel.SLIP_NUMBER);
        }
Beispiel #9
0
        private void btnProduce_Click(object sender, EventArgs e)
        {
            if (CheckSure())
            {
                List <DataTable> orderList = new List <DataTable>();
                List <Hashtable> hashTable = new List <Hashtable>();
                DataTable        dt        = new DataTable();
                string[]         a         = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N" };
                dt.Columns.Add("NO");
                dt.Columns.Add("SLIPTYPE");
                dt.Columns.Add("X_1");
                dt.Columns.Add("X_2");
                dt.Columns.Add("SLIPNUMBER");
                dt.Columns.Add("CUSTOMER");
                dt.Columns.Add("DATE");
                dt.Columns.Add("MEMO");
                //dt.Columns.Add("QUANTITY");
                int i = 1;

                foreach (DataGridViewRow dgvr in dgvData.Rows)
                {
                    if (Convert.ToBoolean(dgvr.Cells["CHECK"].Value))
                    {
                        orderTable = bOrderHeader.GetModel(CConvert.ToString(dgvr.Cells["SLIP_NUMBER"].Value));

                        if (orderTable != null)
                        {
                            DataRow row = dt.NewRow();
                            row["NO"]         = i;
                            row["SLIPTYPE"]   = bCommon.GetBaseMaster("SLIP_TYPE", orderTable.SLIP_TYPE).Name;
                            row["SLIPNUMBER"] = orderTable.SLIP_NUMBER;
                            row["CUSTOMER"]   = orderTable.ENDER_CUSTOMER_NAME;
                            row["DATE"]       = orderTable.DUE_DATE;
                            row["MEMO"]       = orderTable.MEMO;
                            //row["QUANTITY"]= orderTable.
                            dt.Rows.Add(row);

                            DataTable dt2 = new DataTable();
                            dt2.Columns.Add("NO");
                            dt2.Columns.Add("PRODUCT_NAME");
                            dt2.Columns.Add("X_1");
                            dt2.Columns.Add("X_2");
                            dt2.Columns.Add("QUANTITY");
                            dt2.Columns.Add("X_3");
                            dt2.Columns.Add("X_4");
                            dt2.Columns.Add("X_5");
                            dt2.Columns.Add("X_6");
                            dt2.Columns.Add("X_7");
                            dt2.Columns.Add("X_8");
                            dt2.Columns.Add("MEMO");

                            int j = 1;
                            foreach (BllOrderLineTable line in orderTable.Items)
                            {
                                DataRow dr = dt2.NewRow();
                                dr["NO"]           = j++;
                                dr["PRODUCT_NAME"] = line.PRODUCT_NAME;
                                dr["QUANTITY"]     = (int)line.QUANTITY / orderTable.QUANTITY;
                                dr["MEMO"]         = line.MEMO;
                                dt2.Rows.Add(dr);
                            }
                            orderList.Add(dt2);

                            Hashtable ht = new Hashtable();
                            ht.Add("&SLIP_TYPE", bCommon.GetBaseMaster("SLIP_TYPE", orderTable.SLIP_TYPE).Name);
                            ht.Add("&QUANTITY", ((int)orderTable.QUANTITY).ToString() + "套");
                            //ht.Add("&YEAR", CConvert.ToDateTime(orderTable.SLIP_DATE).ToString("yyyy"));
                            //ht.Add("&MONTH", CConvert.ToDateTime(orderTable.SLIP_DATE).ToString("MM"));
                            ht.Add("&NAME", "生产通知单" + a[i - 1]);
                            ht.Add("&PONUMBER", orderTable.CUSTOMER_PO_NUMBER);
                            ht.Add("&DUEDATE", CConvert.ToDateTime(orderTable.DUE_DATE).ToString("yyyy") + "月" + CConvert.ToDateTime(orderTable.DUE_DATE).ToString("MM") + "日");
                            ht.Add("&SLIPNUMBER", orderTable.SLIP_NUMBER);
                            ht.Add("&CUSTOMER", orderTable.ENDER_CUSTOMER_NAME);
                            hashTable.Add(ht);
                            i++;
                        }
                    }
                }

                if (dt.Rows.Count > 0)
                {
                    SaveFileDialog sf = new SaveFileDialog();
                    sf.FileName = "HD_PRODUCTION_ORDERS_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls";
                    sf.Filter   = "(文件)|*.xls;*.xlsx";
                    if (sf.ShowDialog(this) == DialogResult.OK)
                    {
                        if (dt.Rows.Count > 0)
                        {
                            int ret = CExport.DataTableToExcel_Production_Orders(@"rpt\HD_PRODUCTION_ORDERS.xls", sf.FileName, dt, orderList, hashTable);
                            if (CConstant.EXPORT_FAILURE.Equals(ret))
                            {
                                MessageBox.Show("导出失败。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else if (CConstant.EXPORT_SUCCESS.Equals(ret))
                            {
                                MessageBox.Show("导出成功。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else if (CConstant.EXPORT_RUNNING.Equals(ret))
                            {
                                MessageBox.Show("文件正在运行,重新生成文件失败。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else if (CConstant.EXPORT_TEMPLETE_FILE_NOT_EXIST.Equals(ret))
                            {
                                MessageBox.Show("模版文件不存在。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }
                        else
                        {
                            MessageBox.Show("明细信息不存在。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("请先选择一张订单。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }