Ejemplo n.º 1
0
 /// <summary>
 /// 编辑采购单
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSave_Press(object sender, EventArgs e)
 {
     try
     {
         errorInfo = "";
         if (btnDealMan.Tag == null)
         {
             throw new Exception("请选择采购人!");
         }
         if (string.IsNullOrEmpty(txtName.Text))
         {
             throw new Exception("请输入名称!");
         }
         if (btnVendor.Tag == null)
         {
             throw new Exception("请选择供应商!");
         }
         int VId = int.Parse(btnVendor.Tag.ToString());
         GetRows();
         if (!string.IsNullOrEmpty(errorInfo))
         {
             return;
         }
         if (Rows.Count != 0)
         {
             AssPurchaseOrderInputDto assPurchaseOrderInput = new AssPurchaseOrderInputDto()
             {
                 POID         = txtPOID.Text,
                 PURCHASER    = btnDealMan.Tag.ToString(),
                 CREATEUSER   = UserId,
                 MODIFYUSER   = UserId,
                 NAME         = txtName.Text,
                 REALID       = txtRealID.Text,
                 STATUS       = 0,
                 VID          = VId,
                 RowInputDtos = Rows
             };
             ReturnInfo returnInfo =
                 _autofacConfig.AssPurchaseOrderService.UpdatePurchaseOrderOnly(assPurchaseOrderInput);
             if (returnInfo.IsSuccess)
             {
                 ShowResult = ShowResult.Yes;
                 Toast("修改成功");
                 Close();
             }
             else
             {
                 throw new Exception(returnInfo.ErrorInfo);
             }
         }
         else
         {
             throw new Exception("请添加行项!");
         }
     }
     catch (Exception ex)
     {
         Toast(ex.Message);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 更新采购单信息
        /// </summary>
        /// <param name="inputDto">采购单信息</param>
        /// <returns></returns>
        public ReturnInfo UpdatePurchaseOrderOnly(AssPurchaseOrderInputDto inputDto)
        {
            ReturnInfo    RInfo        = new ReturnInfo();
            StringBuilder sb           = new StringBuilder();
            string        ValidateInfo = Helper.BasicValidate(inputDto).ToString();

            sb.Append(ValidateInfo);
            if (sb.Length == 0)
            {
                try
                {
                    AssPurchaseOrder purchaseOrder = _assPurchaseOrderRepository.GetById(inputDto.POID).FirstOrDefault();
                    if (purchaseOrder != null)
                    {
                        purchaseOrder.VID        = inputDto.VID;
                        purchaseOrder.PURCHASER  = inputDto.PURCHASER;
                        purchaseOrder.REALID     = inputDto.REALID;
                        purchaseOrder.MODIFYUSER = inputDto.MODIFYUSER;
                        purchaseOrder.NAME       = inputDto.NAME;
                        purchaseOrder.MODIFYDATE = DateTime.Now;
                        _unitOfWork.RegisterDirty(purchaseOrder);
                    }
                    //得到原有行项的所有TemplateId
                    List <string> TempIds = _assPoRowRepository.GetAll().Where(a => a.POID == inputDto.POID)
                                            .Select(a => a.TEMPLATEID).ToList();
                    //得到现在行项的所有TemplateId
                    List <string> NowTempIds = inputDto.RowInputDtos.Select(a => a.TEMPLATEID).ToList();
                    //得到更新的
                    List <string> Update = TempIds.Intersect(NowTempIds).ToList();
                    //得到新增的
                    List <string> Add = NowTempIds.Except(TempIds).ToList();
                    //得到删除的
                    List <string> Delete = TempIds.Except(NowTempIds).ToList();

                    foreach (var templateId in Add)
                    {
                        var info = inputDto.RowInputDtos.Find(a => a.TEMPLATEID == templateId);
                        AssPurchaseOrderRow row = new AssPurchaseOrderRow
                        {
                            POID           = inputDto.POID,
                            CREATEDATE     = DateTime.Now,
                            CREATEUSER     = inputDto.CREATEUSER,
                            MODIFYDATE     = DateTime.Now,
                            MODIFYUSER     = inputDto.CREATEUSER,
                            QUANTPURCHASED = info.QUANT,
//                            Time = DateTime.Now,
                            REALPRICE      = info.PRICE,
                            QUANTRETREATED = 0,
                            QUANTSTORED    = 0,
                            STATUS         = (int)PurchaseOrderStatus.采购中,
                            TEMPLATEID     = templateId
                        };
                        _unitOfWork.RegisterNew(row);
                    }

                    foreach (var templateId in Delete)
                    {
                        AssPurchaseOrderRow row = _assPoRowRepository
                                                  .GetByPOIDandTemplateID(purchaseOrder.POID, templateId).FirstOrDefault();
                        if (row != null)
                        {
                            _unitOfWork.RegisterDeleted(row);
                        }
                    }

                    foreach (var templateId in Update)
                    {
                        var info = inputDto.RowInputDtos.Find(a => a.TEMPLATEID == templateId);
                        AssPurchaseOrderRow row = _assPoRowRepository
                                                  .GetByPOIDandTemplateID(purchaseOrder.POID, templateId).FirstOrDefault();
                        if (row != null)
                        {
                            row.POID           = inputDto.POID;
                            row.CREATEDATE     = DateTime.Now;
                            row.CREATEUSER     = inputDto.CREATEUSER;
                            row.MODIFYDATE     = DateTime.Now;
                            row.MODIFYUSER     = inputDto.CREATEUSER;
                            row.QUANTPURCHASED = info.QUANT;
                            row.REALPRICE      = info.PRICE;
//                            row.Time = DateTime.Now;
                            row.QUANTRETREATED = 0;
                            row.QUANTSTORED    = 0;
                            row.STATUS         = (int)PurchaseOrderStatus.采购中;
                            row.TEMPLATEID     = templateId;
                            _unitOfWork.RegisterDirty(row);
                        }
                    }
                    bool result = _unitOfWork.Commit();
                    RInfo.IsSuccess = result;
                    RInfo.ErrorInfo = inputDto.POID;
                    return(RInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
            else
            {
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 添加采购单
        /// </summary>
        /// <param name="inputDto">采购单数据</param>
        /// <returns></returns>
        public ReturnInfo AddPurchaseOrder(AssPurchaseOrderInputDto inputDto)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();

            if (string.IsNullOrEmpty(inputDto.POID))
            {
                string MaxId = _assPurchaseOrderRepository.GetMaxId();
                string PoId  = Helper.GenerateIDEx2("P", MaxId);
                //产生资产编号
                inputDto.POID = PoId;
            }
            string ValidateInfo = Helper.BasicValidate(inputDto).ToString();

            sb.Append(ValidateInfo);
            if (sb.Length == 0)
            {
                try
                {
                    AssPurchaseOrder purchaseOrder = Mapper.Map <AssPurchaseOrderInputDto, AssPurchaseOrder>(inputDto);
                    purchaseOrder.STATUS     = (int)PurchaseOrderStatus.采购中;
                    purchaseOrder.CREATEDATE = DateTime.Now;
                    purchaseOrder.MODIFYDATE = DateTime.Now;
                    _unitOfWork.RegisterNew(purchaseOrder);
                    foreach (var inputDtoRow in inputDto.RowInputDtos)
                    {
                        AssPurchaseOrderRow row = new AssPurchaseOrderRow
                        {
                            QUANTPURCHASED = inputDtoRow.QUANT,
                            REALPRICE      = inputDtoRow.PRICE,
                            TEMPLATEID     = inputDtoRow.TEMPLATEID,
                            STATUS         = (int)PurchaseOrderStatus.采购中,
                            CREATEUSER     = inputDtoRow.CREATEUSER,
                            MODIFYUSER     = inputDtoRow.MODIFYUSER,
                            CREATEDATE     = DateTime.Now,
                            MODIFYDATE     = DateTime.Now,
//                            Time = DateTime.Now,
                            POID = inputDto.POID
                        };
                        _unitOfWork.RegisterNew(row);
                    }
                    bool result = _unitOfWork.Commit();
                    RInfo.IsSuccess = result;
                    RInfo.ErrorInfo = inputDto.POID;
                    return(RInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
            else
            {
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
        }