Exemplo n.º 1
0
        /// <summary>
        /// 初始化
        /// </summary>
        private void Initialize()
        {
            #region 页面内容

            using (ContractProvider contProvider = new ContractProvider())
            {
                var area = contProvider.GetBaseParam("AR", "");
                LocalGlobal.BindListItems(avarea, area.DefaultView, "Description", "Description", true);
                var payType = contProvider.GetBaseParam("PY", "");
                LocalGlobal.BindListItems(avterm, payType.DefaultView, "Description", "Description", true);
                var tradeCond = contProvider.GetBaseParam("TC", "");
                LocalGlobal.BindListItems(avtrc, tradeCond.DefaultView, "Description", "Description", true);
                var curr = contProvider.GetBaseParam("CY", "");
                LocalGlobal.BindListItems(avcur, curr.DefaultView, "Description", "Description", true);
            }

            #endregion

            if (this.CurrentID.Length == 0)
            {
                //新增
            }
            else
            {
                //编辑
                this.BindItem();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 行绑定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void List_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            switch (e.Row.RowType)
            {
            //数据行
            case DataControlRowType.DataRow:
                #region 数据绑定


                #endregion
                break;

            case DataControlRowType.Footer:
                DropDownList UM = (DropDownList)e.Row.FindControl("UM");
                using (ContractProvider contProvider = new ContractProvider())
                {
                    var table = contProvider.GetBaseParam("UM", "");
                    LocalGlobal.BindListItems(UM, table.DefaultView, "code", "code", false);
                }
                break;

            case DataControlRowType.EmptyDataRow:
            case DataControlRowType.Header:
            case DataControlRowType.Separator:
            case DataControlRowType.Pager:
            default:
                break;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 生成新发货单号
        /// </summary>
        /// <returns></returns>
        public static string NewSTNo()
        {
            var dateModel = GetDateModel();

            string no = string.Empty;

            using (ContractProvider contProvider = new ContractProvider())
            {
                var param = contProvider.GetBaseParam("ST", "NO");

                if (param != null && param.Rows.Count > 0)
                {
                    string stno = param.Rows[0]["description"].ToString(); //ST1703997
                    string year = stno.Substring(2, 2);
                    string num  = stno.Substring(4, 5);
                    if (dateModel.YearStr == year)
                    {
                        no = "ST" + year + (Util.ToInt(num) + 1).ToString().PadLeft(5, '0');
                    }
                    else
                    {
                        no = "ST" + dateModel.YearStr + (Util.ToInt(num) + 1).ToString().PadLeft(5, '0');
                    }
                }
                else
                {
                    no = "ST" + dateModel.YearStr + "00001";
                }

                contProvider.UpdateBaseParam("ST", "NO", no);
            }

            return(no);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 确定
        /// </summary>
        protected void OKButton_Click(object sender, EventArgs e)
        {
            var totalPer = Util.ToDecimal(SCH_YF.Text.Trim()) + Util.ToDecimal(SCH_JD.Text.Trim()) + Util.ToDecimal(SCH_TH.Text.Trim()) + Util.ToDecimal(SCH_ZB.Text.Trim());

            if (totalPer != 100)
            {
                this.ShowErrorMessage("比例输入不正确,请确保各项总额为100!");
                return;
            }

            var signDate     = LocalGlobal.ConvertDateFormat(SIGNDATE.Text.Trim()).ToString("yyyyMMdd");
            var deliverDate  = LocalGlobal.ConvertDateFormat(DELIVERYDATE.Text.Trim()).ToString("yyyyMMdd");
            var deliverDateS = LocalGlobal.ConvertDateFormat(DELIVERYDATE.Text.Trim()).ToString("yyyy-MM-dd");
            var dateModel    = LocalGlobal.GetDateModel();

            SqlConnection con = LocalGlobal.DbConnect();

            con.Open();
            SqlTransaction tran = con.BeginTransaction();//使用事务
            SqlCommand     cmd  = new SqlCommand();

            cmd.Connection  = con;
            cmd.Transaction = tran;

            try
            {
                using (ContractProvider contProvider = new ContractProvider())
                {
                    string stno = string.Empty, whCode = string.Empty;
                    if (CurrentType == "2")           //直接开票
                    {
                        stno = LocalGlobal.NewSTNo(); //发货单号

                        var wh = contProvider.GetBaseParam("WH", "1");
                        if (wh != null && wh.Rows.Count > 0)
                        {
                            whCode = wh.Rows[0]["description"].ToString().Trim();
                        }
                    }

                    string orno = string.Empty;
                    if (this.CurrentID.Length == 0)  //新增
                    {
                        orno = LocalGlobal.NewOrno(false);

                        #region 合同、收款进度头表

                        cmd.CommandText = contProvider.InsertContractSql(orno, ORDNAME.Text.Trim(), CUSTNO.Text.Trim(), CUSTNAME.Text.Trim(), CURR.SelectedValue.Trim(), signDate, deliverDate, PROTECTTERM.SelectedValue.Trim(), SCH_YF.Text.Trim(), SCH_JD.Text.Trim(), SCH_TH.Text.Trim(), SCH_ZB.Text.Trim(), ORDAMT.Text.Trim(), Remark.Text.Trim(), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();

                        cmd.CommandText = contProvider.InsertArprocessSql(orno, ORDNAME.Text.Trim(), CUSTNO.Text.Trim(), CUSTNAME.Text.Trim(), CURR.SelectedValue.Trim(), ORDAMT.Text.Trim(), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();

                        #endregion

                        #region 收款进度明细

                        cmd.CommandText = contProvider.InsertArprocessDetailSql(orno, "T1", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_YF.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.InsertArprocessDetailSql(orno, "T2", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_JD.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.InsertArprocessDetailSql(orno, "T3", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_TH.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.InsertArprocessDetailSql(orno, "T4", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_ZB.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.InsertArprocessDetailSql(orno, "T5", Util.ToDecimal(ORDAMT.Text.Trim()), 0, LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();

                        #endregion
                    }
                    else   //编辑
                    {
                        orno = ORDNO.Text.Trim();

                        #region 合同、收款进度头表

                        cmd.CommandText = contProvider.UpdateContractSql(orno, ORDNAME.Text.Trim(), CUSTNO.Text.Trim(), CUSTNAME.Text.Trim(), CURR.SelectedValue.Trim(), signDate, deliverDate, PROTECTTERM.SelectedValue.Trim(), SCH_YF.Text.Trim(), SCH_JD.Text.Trim(), SCH_TH.Text.Trim(), SCH_ZB.Text.Trim(), ORDAMT.Text.Trim(), Remark.Text.Trim(), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();

                        cmd.CommandText = contProvider.UpdateArprocessSql(orno, ORDNAME.Text.Trim(), CUSTNO.Text.Trim(), CUSTNAME.Text.Trim(), CURR.SelectedValue.Trim(), ORDAMT.Text.Trim(), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();

                        #endregion

                        #region 收款进度明细

                        cmd.CommandText = contProvider.UpdateArprocessDetailSql(orno, "T1", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_YF.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.UpdateArprocessDetailSql(orno, "T2", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_JD.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.UpdateArprocessDetailSql(orno, "T3", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_TH.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.UpdateArprocessDetailSql(orno, "T4", Util.ToDecimal(ORDAMT.Text.Trim()), Util.ToDecimal(SCH_ZB.Text.Trim()), LocalGlobal.CurrentUserID, dateModel.DateStr, dateModel.TimeStr);
                        cmd.ExecuteNonQuery();

                        #endregion
                    }

                    if (CurrentType == "2") //直接开票
                    {
                        cmd.CommandText = contProvider.DeleteKpSql(orno);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.DeleteShipSql(orno);
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = contProvider.DeleteTransDetailSql(orno);
                        cmd.ExecuteNonQuery();
                    }

                    #region 合同明细

                    cmd.CommandText = contProvider.DeleteContractDetailSql(orno);
                    cmd.ExecuteNonQuery();

                    //bool flag = true;
                    //if (List.Rows.Count == 1) //只有一行数据,判断是否是空行
                    //{
                    //    var name = ((DataBoundLiteralControl)List.Rows[0].Cells[2].Controls[0]).Text.Trim();
                    //    if (name.Length == 0) //自动创建的空行
                    //    {
                    //        flag = false;
                    //    }
                    //}
                    //if (flag)
                    //{
                    //    for (int i = 0; i < List.Rows.Count; i++)
                    //    {
                    //        var row = List.Rows[i];
                    //        cmd.CommandText = contProvider.InsertContractDetailSql(orno, ((Label)row.FindControl("SEQ")).Text.Trim(), ((DataBoundLiteralControl)row.Cells[2].Controls[0]).Text.Trim(), ((DataBoundLiteralControl)row.Cells[4].Controls[0]).Text.Trim(), ((DataBoundLiteralControl)row.Cells[3].Controls[0]).Text.Trim(), ((DataBoundLiteralControl)row.Cells[5].Controls[0]).Text.Trim(), ((DataBoundLiteralControl)row.Cells[6].Controls[0]).Text.Trim(), ((DataBoundLiteralControl)row.Cells[7].Controls[0]).Text.Trim(), ((DataBoundLiteralControl)row.Cells[8].Controls[0]).Text.Trim());

                    //        cmd.ExecuteNonQuery();
                    //    }
                    //}

                    var table = ViewState["ViewDT"] as DataTable;
                    int seq   = 0;
                    foreach (DataRow row in table.Rows)
                    {
                        seq++;
                        cmd.CommandText = contProvider.InsertContractDetailSql(orno, seq.ToString(), row["ITEMNO"].ToString().Trim(), row["ORDQTY"].ToString(), row["DRAWNO"].ToString(), row["UM"].ToString(), row["UNITPRICE"].ToString(), row["AMT"].ToString(), row["Remark"].ToString());

                        cmd.ExecuteNonQuery();

                        #region 直接开票

                        if (CurrentType == "2") //直接开票
                        {
                            //1.扣减库存,写出库记录
                            cmd.CommandText = contProvider.InsertShipSql(stno, seq.ToString(), orno, row["DRAWNO"].ToString().Trim(), CUSTNO.Text.Trim(), CUSTNAME.Text.Trim(), row["ITEMNO"].ToString(), row["UM"].ToString(), row["ORDQTY"].ToString(), row["ORDQTY"].ToString(), row["ORDQTY"].ToString(), deliverDate, "1");
                            cmd.ExecuteNonQuery();

                            var invTable = contProvider.GetInventoryByItem(whCode, row["DRAWNO"].ToString().Trim());
                            if (invTable != null && invTable.Rows.Count > 0)
                            {
                                cmd.CommandText = contProvider.UpdateInventorySql(whCode, row["DRAWNO"].ToString().Trim(), row["ORDQTY"].ToString());
                                cmd.ExecuteNonQuery();
                            }
                            else
                            {
                                cmd.CommandText = contProvider.InsertInventorySql(whCode, row["DRAWNO"].ToString().Trim(), "", "", row["ITEMNO"].ToString(), row["ORDQTY"].ToString(), row["UM"].ToString());
                                cmd.ExecuteNonQuery();
                            }

                            cmd.CommandText = contProvider.InsertTransDetailSql(orno, row["DRAWNO"].ToString().Trim(), whCode, row["ORDQTY"].ToString(), stno, orno.Substring(0, 7), "B");
                            cmd.ExecuteNonQuery();

                            //2.开票
                            cmd.CommandText = contProvider.InsertKpSql(orno, seq.ToString(), "1", FP.Text.Trim(), row["ORDQTY"].ToString(), row["AMT"].ToString(), deliverDateS);
                            cmd.ExecuteNonQuery();
                        }

                        #endregion
                    }

                    #endregion
                }
            }
            catch (Exception error)
            {
                tran.Rollback();
                this.ShowErrorMessage("保存失败!" + error.Message);
                return;
            }

            tran.Commit();

            //回调
            this.DialogCallback("'CloseRefresh'", "window");
        }