/// <summary>
        /// 插入新单据
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="bill">要插入的单据主表信息</param>
        /// <param name="error">出错时返回的错误信息</param>
        /// <returns>True 添加成功 False 添加失败</returns>
        bool InsertBill(DepotManagementDataContext ctx, YX_AfterServiceMakePartsBill bill, out string error)
        {
            error = null;

            try
            {
                ctx.YX_AfterServiceMakePartsBill.InsertOnSubmit(bill);
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="billID">单据号</param>
        public 售后服务配件制造申请单明细单(string billID, AuthorityFlag m_authFlag)
        {
            InitializeComponent();

            m_msgPromulgator.BillType = "售后服务配件制造申请单";

            FaceAuthoritySetting.SetEnable(this.Controls, m_authFlag);
            FaceAuthoritySetting.SetVisibly(this.toolStrip, m_authFlag);
            this.toolStrip.Visible = true;

            m_billNoControl = new BillNumberControl(CE_BillTypeEnum.售后服务备件制造申请单, m_billServer);

            DataTable dtStorageName = UniversalFunction.GetStorageTb();

            for (int i = 0; i < dtStorageName.Rows.Count; i++)
            {
                if (dtStorageName.Rows[i]["StorageName"].ToString() == "制造库房" ||
                    dtStorageName.Rows[i]["StorageName"].ToString() == "自制半成品库")
                {
                    cmbStorageID.Items.Add(dtStorageName.Rows[i]["StorageName"].ToString());
                }
            }

            cmbStorageID.SelectedIndex = -1;

            if (GlobalObject.GeneralFunction.IsNullOrEmpty(billID))
            {
                lbUserName.Text = BasicInfo.LoginName;
                txtSellID.Text  = m_billNoControl.GetNewBillNo();
                txtSellID.Tag   = "New";
                lbKS.Text       = m_serverDepartment.GetDeptInfoFromPersonnelInfo(BasicInfo.LoginName).Rows[0]["DepartmentName"].ToString();
            }
            else
            {
                m_masterInfo       = m_billServer.GetBill(billID);
                cmbStorageID.Text  = UniversalFunction.GetStorageName(m_masterInfo.StorageID);
                txtSellID.Text     = m_masterInfo.BillID;
                txtBillRemark.Text = m_masterInfo.Remark;
                lbUserName.Text    = m_masterInfo.Applicant;
                lbKS.Text          = m_serverDepartment.GetDeptInfoFromPersonnelInfo(m_masterInfo.Applicant).Rows[0]["DepartmentName"].ToString();
            }

            m_bill = txtSellID.Text;

            RefershDataGridView(m_bill);
        }
        /// <summary>
        /// 更新单据状态
        /// </summary>
        /// <param name="bill">单据主表信息</param>
        /// <param name="listTable">单据明细信息</param>
        /// <param name="billStatus">单据状态</param>
        /// <param name="error">出错时返回的错误信息</param>
        /// <returns>True 更新单据状态成功 False 更新单据状态失败</returns>
        public bool UpdateBill(YX_AfterServiceMakePartsBill bill, DataTable listTable,
                               AfterServiceMakePartsBillStatus billStatus, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

                var varData = from a in ctx.YX_AfterServiceMakePartsBill
                              where a.BillID == bill.BillID
                              select a;

                switch (varData.Count())
                {
                case 0:    //插入新记录
                    YX_AfterServiceMakePartsBill billInfo = new YX_AfterServiceMakePartsBill();

                    billInfo.BillID          = bill.BillID;
                    billInfo.Applicant       = bill.Applicant;
                    billInfo.RequestDate     = bill.RequestDate;
                    billInfo.Checker         = bill.Checker;
                    billInfo.CheckDate       = bill.CheckDate;
                    billInfo.ConfirmedPeople = bill.ConfirmedPeople;
                    billInfo.ConfirmedDate   = bill.ConfirmedDate;
                    billInfo.StorageID       = bill.StorageID;
                    billInfo.Status          = AfterServiceMakePartsBillStatus.等待主管审核.ToString();

                    if (!InsertBill(ctx, billInfo, out error))
                    {
                        return(false);
                    }

                    if (!AddAllList(ctx, billInfo.BillID, listTable, out error))
                    {
                        return(false);
                    }

                    break;

                case 1:    //更新记录
                    YX_AfterServiceMakePartsBill lnqAferServiceBill = varData.Single();

                    if (lnqAferServiceBill.Status == "已完成")
                    {
                        error = "单据状态不符,请重新确认单据状态";
                        return(false);
                    }

                    //根据不同的单据状态执行流程
                    switch (billStatus)
                    {
                    case AfterServiceMakePartsBillStatus.营销保存:

                        lnqAferServiceBill.Status          = "等待主管审核";
                        lnqAferServiceBill.Applicant       = BasicInfo.LoginName;
                        lnqAferServiceBill.RequestDate     = ServerTime.Time;
                        lnqAferServiceBill.Checker         = null;
                        lnqAferServiceBill.CheckDate       = null;
                        lnqAferServiceBill.ConfirmedPeople = null;
                        lnqAferServiceBill.ConfirmedDate   = null;
                        lnqAferServiceBill.Remark          = bill.Remark;

                        if (!DeleteAllList(ctx, lnqAferServiceBill.BillID, out error))
                        {
                            return(false);
                        }

                        if (!AddAllList(ctx, lnqAferServiceBill.BillID, listTable, out error))
                        {
                            return(false);
                        }

                        break;

                    case AfterServiceMakePartsBillStatus.等待主管审核:

                        if (lnqAferServiceBill.Status != AfterServiceMakePartsBillStatus.等待主管审核.ToString())
                        {
                            error = "单据状态不符,请重新确认单据状态";
                            return(false);
                        }

                        lnqAferServiceBill.Status    = "等待车间确认";
                        lnqAferServiceBill.Checker   = BasicInfo.LoginName;
                        lnqAferServiceBill.CheckDate = ServerTime.Time;
                        break;

                    case AfterServiceMakePartsBillStatus.等待车间确认:

                        if (lnqAferServiceBill.Status != AfterServiceMakePartsBillStatus.等待车间确认.ToString())
                        {
                            error = "单据状态不符,请重新确认单据状态";
                            return(false);
                        }

                        lnqAferServiceBill.Status          = "已完成";
                        lnqAferServiceBill.ConfirmedDate   = ServerTime.Time;
                        lnqAferServiceBill.ConfirmedPeople = BasicInfo.LoginName;
                        break;

                    default:
                        error = "单据状态不正确";
                        return(false);
                    }
                    break;

                default:
                    error = "数据不唯一";
                    return(false);
                }

                ctx.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }