/// <summary>
        /// 更新采购单
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        public ReturnInfo UpdateSalesOrder(ConSalesOrderInputDto inputDto)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();
            ConSalesOrder Order = _ConSalesOrderReposity.GetById(inputDto.SOID).FirstOrDefault();

            if (Order == null)
            {
                sb.Append("该采购单不存在,请检查!");
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
            else      //采购单存在
            {
                Order.REALID      = inputDto.REALID;
                Order.NAME        = inputDto.NAME;
                Order.CUSID       = inputDto.CUSID;
                Order.SALESPERSON = inputDto.SALESPERSON;
                Order.MODIFYDATE  = inputDto.MODIFYDATE;
                Order.MODIFYUSER  = inputDto.MODIFYUSER;
                _unitOfWork.RegisterDirty(Order);

                //如果原来存在行项,则先删除
                List <ConSalesOrderRow> Rows = _ConSalesOrderRowReposity.GetBySOID(inputDto.SOID).ToList();
                if (Rows.Count > 0)    //如果存在行项
                {
                    foreach (ConSalesOrderRow Row in Rows)
                    {
                        _unitOfWork.RegisterDeleted(Row);
                    }
                }
                ///添加新的选择行项
                foreach (ConSalesOrderRowInputDto Row in inputDto.RowData)
                {
                    ConSalesOrderRow salesOrderRow = new ConSalesOrderRow();
                    salesOrderRow            = Mapper.Map <ConSalesOrderRowInputDto, ConSalesOrderRow>(Row);
                    salesOrderRow.SOID       = inputDto.SOID;
                    salesOrderRow.CREATEUSER = inputDto.CREATEUSER;
                    salesOrderRow.CREATEDATE = DateTime.Now;
                    salesOrderRow.MODIFYUSER = inputDto.MODIFYUSER;
                    salesOrderRow.MODIFYDATE = DateTime.Now;
                    salesOrderRow.STATUS     = 0;
                    _unitOfWork.RegisterNew(salesOrderRow);
                }
                try
                {
                    _unitOfWork.Commit();
                    RInfo.IsSuccess = true;
                    return(RInfo);
                }
                catch (Exception ex)
                {
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
        }
        /// <summary>
        /// 创建销售单
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        public ReturnInfo AddSalesOrder(ConSalesOrderInputDto inputDto)
        {
            ReturnInfo RInfo = new ReturnInfo();

            if (string.IsNullOrEmpty(inputDto.NAME))
            {
                throw new Exception("销售单名称不能为空!");
            }
            if (string.IsNullOrEmpty(inputDto.SALESPERSON))
            {
                throw new Exception("请选择销售人!");
            }
            String MaxID = _ConSalesOrderReposity.GetMaxID();       //获取最大采购单ID
            String NowID = Helper.GenerateID("SO", MaxID);

            //产生销售单编号
            inputDto.SOID = NowID;
            try
            {
                ConSalesOrder salesOrder = new ConSalesOrder();
                salesOrder        = Mapper.Map <ConSalesOrderInputDto, ConSalesOrder>(inputDto);
                salesOrder.STATUS = 0;
                _unitOfWork.RegisterNew(salesOrder);

                foreach (var Row in inputDto.RowData)
                {
                    ConSalesOrderRow salesOrderRow = new ConSalesOrderRow();
                    salesOrderRow            = Mapper.Map <ConSalesOrderRowInputDto, ConSalesOrderRow>(Row);
                    salesOrderRow.SOID       = NowID;
                    salesOrderRow.CREATEUSER = inputDto.CREATEUSER;
                    salesOrderRow.CREATEDATE = DateTime.Now;
                    salesOrderRow.MODIFYUSER = inputDto.MODIFYUSER;
                    salesOrderRow.MODIFYDATE = DateTime.Now;
                    salesOrderRow.STATUS     = 0;
                    _unitOfWork.RegisterNew(salesOrderRow);
                }
                bool result = _unitOfWork.Commit();
                RInfo.IsSuccess = result;
                RInfo.ErrorInfo = inputDto.SOID;
                return(RInfo);
            }
            catch (Exception ex)
            {
                _unitOfWork.Rollback();
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = ex.Message;
                return(RInfo);
            }
        }
Exemple #3
0
        /// <summary>
        /// 耗材销售单创建
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(txtName.Text))
                {
                    throw new Exception("销售单名称不能为空!");
                }
                if (btnDealMan.Tag == null)
                {
                    throw new Exception("请选择销售人!");
                }
                if (ListCons.Rows.Count == 0)
                {
                    throw new Exception("请选择销售行项");
                }
                ConSalesOrderInputDto Data = new ConSalesOrderInputDto();
                Data.REALID      = txtRealID.Text;
                Data.NAME        = txtName.Text;
                Data.CUSID       = Convert.ToInt32(btnCustomer.Tag);
                Data.SALESPERSON = btnDealMan.Tag.ToString();
                Data.CREATEUSER  = Client.Session["UserID"].ToString();
                Data.CREATEDATE  = DateTime.Now;
                Data.MODIFYUSER  = Client.Session["UserID"].ToString();
                Data.MODIFYDATE  = DateTime.Now;
                List <ConSalesOrderRowInputDto> RowData = new List <ConSalesOrderRowInputDto>();
                //获取行项数据
                foreach (ListViewRow Row in ListCons.Rows)
                {
                    frmSalesCreateLayout        Layout = Row.Control as frmSalesCreateLayout;
                    ConPurAndSaleCreateInputDto conPurAndSaleCreateInputDto = Layout.getData();
                    ConSalesOrderRowInputDto    row = new ConSalesOrderRowInputDto();
                    row.CID        = conPurAndSaleCreateInputDto.CID;
                    row.IMAGE      = conPurAndSaleCreateInputDto.IMAGE;
                    row.QUANTSALED = conPurAndSaleCreateInputDto.QUANTPURCHASED;
                    row.REALPRICE  = conPurAndSaleCreateInputDto.REALPRICE;
                    RowData.Add(row);
                }

                Data.RowData = RowData;
                ReturnInfo RInfo = new ReturnInfo();

                if (String.IsNullOrEmpty(SOID))     //创建耗材采购单
                {
                    RInfo = autofacConfig.ConSalesOrderService.AddSalesOrder(Data);
                    if (RInfo.IsSuccess)     //创建成功
                    {
                        this.Close();        //关闭当前界面,返回到列表界面
                        ShowResult = ShowResult.Yes;
                        Toast("销售单" + RInfo.ErrorInfo + "创建成功!");
                    }
                    else       //创建失败
                    {
                        throw new Exception(RInfo.ErrorInfo);
                    }
                }
                else               //更新耗材采购单
                {
                    Data.SOID = SOID;
                    RInfo     = autofacConfig.ConSalesOrderService.UpdateSalesOrder(Data);
                    if (RInfo.IsSuccess)     //创建成功
                    {
                        this.Close();        //关闭当前界面,返回到列表界面
                        ShowResult = ShowResult.Yes;
                        Toast("销售单" + SOID + "编辑成功!");
                    }
                    else       //创建失败
                    {
                        throw new Exception(RInfo.ErrorInfo);
                    }
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }