/// <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); } }
/// <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); } }
/// <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); } }