public override object Do(object obj) { BatchCreatePrePaymentDRDetailBP bpObj = (BatchCreatePrePaymentDRDetailBP)obj; if (bpObj == null) { return(false); } if (bpObj.PreDeductionRegisterDTOs.Count > 0) { //集合中的PrePaymentLineKey值一定都是相同,故只取第一个即可 UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line = bpObj.PreDeductionRegisterDTOs[0].PrePaymentLineKey.GetEntity(); if (line != null) { using (ISession session = Session.Open()) { int lineNum = 10; //行号 decimal sumDRMoney = 0; //本次扣款合计 foreach (PreDeductionRegisterDTO dto in bpObj.PreDeductionRegisterDTOs) { CreatePrePaymentDRDetail(dto, line, lineNum); lineNum = lineNum + 10; sumDRMoney = sumDRMoney + dto.ThisDRMoney; } UpdatePrePaymentLine(line, sumDRMoney); session.Commit(); } } } return(true); }
/// <summary> /// 给单行赋值 /// </summary> /// <param name="lineDto"></param> /// <param name="line"></param> /// <param name="lineNum"></param> private void SetPrePaymentLine(PrePaymentLineDTO lineDto, UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line, int lineNum) { line.LineNum = lineNum; line.SrcPOKey = lineDto.PurchaseOrder; line.PrePayMoney = lineDto.PrePayMoney; line.ActualMoeny = lineDto.PrePayMoney; }
/// <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="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="dto"></param> /// <param name="line"></param> /// <param name="LineNum"></param> private void CreatePrePaymentDRDetail(PreDeductionRegisterDTO dto, UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line, int LineNum) { UFIDA.U9.Cust.GS.FI.DeductionRegisterBE.DeductionRegister drDoc = dto.DeductionRegisterKey.GetEntity(); if (drDoc != null) { UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentDRDetail subLine = UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentDRDetail.Create(line); subLine.LineNum = LineNum; subLine.SrcDocNo = drDoc.DocNo; subLine.SrcDocID = drDoc.ID; subLine.SrcBusDate = drDoc.BusinessDate; subLine.SrcDocOrgKey = drDoc.OrgKey; subLine.SupplierKey = drDoc.SupplierKey; subLine.SumDRMoney = drDoc.DRMoney; subLine.CurrencyKey = drDoc.CurrencyKey; subLine.DRMoney = dto.ThisDRMoney; //UpdateDeductionRegister(drDoc, dto.ThisDRMoney); } }
/// <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) { 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); }
/// <summary> /// 更新预付款通知单行的扣款金额及实付金额 /// </summary> /// <param name="line"></param> /// <param name="totalMoney"></param> private void UpdatePrePaymentLine(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine line, decimal totalMoney) { line.DRMoney = line.DRMoney + totalMoney; }
private static PrePaymentDRDetail CreateDefault_Extend(UFIDA.U9.Cust.GS.FI.PrePaymentBE.PrePaymentLine parentEntity) { //TODO delete next code and add your custome code here throw new NotImplementedException(); }