public override object Do(object obj) { RedFlushPrePaymentBP bpObj = (RedFlushPrePaymentBP)obj; if (bpObj == null) { return(false); } List <CommonDTO> resultList = new List <CommonDTO>(); using (ISession session = Session.Open()) { foreach (PrePaymentHeadDTO headDto in bpObj.PrePaymentHeadDTOs) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Finder.FindByID(headDto.SrcPrePayDocID); if (doc != null) { CommonDTO result = new CommonDTO(); result.ID = CreatePrePayment(doc, headDto); resultList.Add(result); } } session.Commit(); } return(resultList); }
/// <summary> /// 复核 /// </summary> /// <param name="dtoList"></param> /// <param name="entityList"></param> /// <param name="isCancel"></param> private void Review(List <CommonDTO> dtoList, List <UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey> entityList, bool isCancel) { foreach (UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey key in entityList) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = key.GetEntity(); if (doc != null) { if (!isCancel) { doc.IsReview = true; doc.ReviewBy = Context.LoginUser; doc.ReviewOn = DateTime.Now; } else { if (doc.IsFinal) { throw new Exception("已终审,不允许取消复核!"); } doc.IsReview = false; doc.ReviewBy = string.Empty; doc.ReviewOn = DateTime.MinValue; } } } }
/// <summary> /// 新增预付款通知单行 /// </summary> /// <param name="doc"></param> /// <param name="lineDto"></param> private void CreatePrePaymentLine(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc, PrePaymentLineDTO lineDto, int lineNum) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Create(doc); line.LineNum = lineNum; line.SrcPOKey = lineDto.PurchaseOrder; line.PrePayMoney = lineDto.PrePayMoney; line.ActualMoeny = lineDto.PrePayMoney; line.SrcMoveDocID = lineDto.SrcMoveDocID; line.SrcMoveDocNo = lineDto.SrcMoveDocNo; line.SrcMoveLineID = lineDto.SrcMoveLineID; line.SrcMoveLineNum = lineDto.SrcMoveLineNum; }
/// <summary> /// 给单头赋值 /// </summary> /// <param name="headDto"></param> /// <param name="doc"></param> private void SetPrePaymentHead(PrePaymentHeadDTO headDto, UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc) { doc.DocumentTypeKey = headDto.DocumentType; doc.SrcDocType = EnumBE.PrePaySrcDocTypeEnum.PO; doc.CurrencyKey = headDto.Currency; doc.SupplierKey = headDto.Supplier; doc.POOrgKey = headDto.POOrg; doc.BusinessDate = DateTime.Today; doc.DeptKey = headDto.Dept; doc.BuyerKey = headDto.Buyer; doc.PrePayDate = doc.BusinessDate; if (headDto.POOrg != null) { doc.AccountPeriod = PubHelperExtend.GetSOBAccountingPeriod(doc.BusinessDate, headDto.POOrg.GetEntity().ID); } }
/// <summary> /// 创建红字的预付款通知单 /// </summary> /// <param name="doc"></param> /// <param name="headDto"></param> private long CreatePrePayment(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc, PrePaymentHeadDTO headDto) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment head = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Create(); head.DocumentTypeKey = headDto.DocumentType; head.SrcDocType = EnumBE.PrePaySrcDocTypeEnum.PO; head.CurrencyKey = doc.CurrencyKey; head.SupplierKey = doc.SupplierKey; head.POOrgKey = doc.POOrgKey; head.BusinessDate = DateTime.Today; head.DeptKey = doc.DeptKey; head.BuyerKey = doc.BuyerKey; head.PrePayDate = head.BusinessDate; if (doc.POOrg != null) { head.AccountPeriod = PubHelperExtend.GetSOBAccountingPeriod(head.BusinessDate, doc.POOrg.ID); } head.SrcPrePayDocID = doc.ID; head.SrcPrePayDocNo = doc.DocNo; int lineNum = 10;//行号 foreach (PrePaymentLineDTO lineDto in headDto.PrePaymentLineDTOs) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Create(head); line.LineNum = lineNum; line.SrcPOKey = lineDto.PurchaseOrder; line.PrePayMoney = lineDto.ThisRedMoney; line.ActualMoeny = lineDto.ThisRedMoney; UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine oldLine = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Finder.FindByID(lineDto.SrcPrePayLineID); if (oldLine != null) { oldLine.SumRedFlushMoney = oldLine.SumRedFlushMoney + lineDto.ThisRedMoney; if (oldLine.SrcPO != null) { UpdatePORedMoney(oldLine.SrcPO.ID, lineDto.ThisRedMoney); } } } return(head.ID); }
/// <summary> /// 退款 /// </summary> /// <param name="dtoList"></param> /// <param name="entityList"></param> /// <param name="isCancel"></param> private void Refund(List <CommonDTO> dtoList, List <UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey> entityList, bool isCancel) { foreach (UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.EntityKey key in entityList) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = key.GetEntity(); if (doc != null) { if (!isCancel) { doc.IsRefund = true; doc.RefundBy = Context.LoginUser; doc.RefundOn = DateTime.Now; } else { doc.IsRefund = false; doc.RefundBy = string.Empty; doc.RefundOn = DateTime.MinValue; } } } }
/// <summary> /// 修改预付款通知单行中的挪出数量 /// </summary> /// <param name="doc"></param> /// <param name="lineDto"></param> private void UpdatePrePaymentLine(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc, PrePaymentLineDTO lineDto) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Finder.FindByID(lineDto.ID); if (line != null) { line.SumMoveMoney = line.SumMoveMoney + lineDto.ThisMoveMoney; if (line.SrcPO != null) { UFIDA.U9.PM.PO.PurchaseOrder poDoc = UFIDA.U9.PM.PO.PurchaseOrder.Finder.FindByID(line.SrcPO.ID); if (poDoc != null) { decimal sumMoveMoney = 0; if (!string.IsNullOrEmpty(poDoc.DescFlexField.PrivateDescSeg6)) { sumMoveMoney = decimal.Parse(poDoc.DescFlexField.PrivateDescSeg6); } sumMoveMoney = sumMoveMoney + lineDto.ThisMoveMoney; poDoc.DescFlexField.PrivateDescSeg6 = sumMoveMoney.ToString(); } } } }
public override object Do(object obj) { PrePaymentMoveBP bpObj = (PrePaymentMoveBP)obj; if (bpObj == null) { return(false); } using (ISession session = Session.Open()) { foreach (PrePaymentHeadDTO head in bpObj.PrePaymentHeadDTOs) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Finder.FindByID(head.ID); if (doc != null) { int lineNum = GetMaxLineNum(doc.ID); foreach (PrePaymentLineDTO lineDto in head.PrePaymentLineDTOs) { if (lineDto.ID > 0L) { UpdatePrePaymentLine(doc, lineDto); } else { CreatePrePaymentLine(doc, lineDto, lineNum); lineNum = lineNum + 10; } } } } session.Commit(); } return(true); }
public override object Do(object obj) { BatchCreatePrePaymentBP bpObj = (BatchCreatePrePaymentBP)obj; if (bpObj == null) { return(null); } List <CommonDTO> resultList = new List <CommonDTO>(); using (ISession session = Session.Open()) { foreach (PrePaymentHeadDTO headDto in bpObj.PrePaymentHeadDTOs) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment doc = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment.Create(); SetPrePaymentHead(headDto, doc); int lineNum = 10;//行号 foreach (PrePaymentLineDTO lineDto in headDto.PrePaymentLineDTOs) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine.Create(doc); SetPrePaymentLine(lineDto, line, lineNum); lineNum = lineNum + 10; } CommonDTO result = new CommonDTO(); result.ID = doc.ID;//返回新创建的预付款通知单ID resultList.Add(result); } session.Commit(); } return(resultList); }
private static PrePaymentLine CreateDefault_Extend(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment parentEntity) { //TODO delete next code and add your custome code here throw new NotImplementedException(); }
public override object Do(object obj) { ApprovedPrePaymentBP bpObj = (ApprovedPrePaymentBP)obj; ErrorMessageDTO dto = new ErrorMessageDTO(); if (bpObj == null) { dto.IsSuccess = false; dto.ErrorMessage = "没有可返回的信息!"; return(dto); } UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePayment mDoc = bpObj.EntityKey.GetEntity(); if (mDoc == null) { dto.IsSuccess = false; dto.ErrorMessage = "单据不存在或者已删除!"; return(dto); } try { if (bpObj.Type == 0) { //提交 using (Session s = Session.Open()) { mDoc.StateMachineInstance.Opened_SubmitEventDriven(new UFIDA.U9.Cust.GS.FI.PrePaymentBE.SubmintEvent()); s.InList(mDoc); s.Commit(); } } else if (bpObj.Type == 1) { //审核 using (Session s = Session.Open()) { mDoc.StateMachineInstance.Approving_ApproveEventDriven(new UFIDA.U9.GeneralEvents.ApprovalResultEvent()); s.InList(mDoc); s.Commit(); } } else if (bpObj.Type == 2) { //弃审 using (Session s = Session.Open()) { mDoc.StateMachineInstance.Approved_UnApprovedEventDriven(new UFIDA.U9.Cust.GS.FI.PrePaymentBE.UnApprovedEvent()); s.InList(mDoc); s.Commit(); } } else if (bpObj.Type == 3) { //收回 using (Session s = Session.Open()) { ApprovalService.Instance.CanRevocateAfterSubmit(mDoc, long.Parse(UFIDA.U9.Base.Context.LoginUserID.ToString())); ApprovalService.Instance.RevocateAfterSubmit(mDoc, long.Parse(UFIDA.U9.Base.Context.LoginUserID.ToString())); s.InList(mDoc); s.Commit(); } } dto.IsSuccess = true; } catch (Exception ex) { dto.IsSuccess = false; dto.ErrorMessage = ex.Message; } return(dto); }