/// <summary> /// 创建付款通知 /// </summary> /// <returns></returns> public static PaymentNotice CreatePaymentNotice() { var invoice = new PaymentNotice { CreateDate = DateTime.Now }; invoice.GenerateNewIdentity(); return invoice; }
/// <summary> /// 设置付款通知属性 /// </summary> /// <param name="paymentNotice">付款通知</param> /// <param name="deadLine">付款期限</param> /// <param name="supplierName">供应商名称</param> /// <param name="supplierId">供应商ID</param> /// <param name="operatorName">经办人</param> /// <param name="reviewer">审核人</param> /// <param name="status">付款通知状态</param> /// <param name="currencyId">币种ID</param> /// <param name="bankAccountId">银行账户ID</param> /// <param name="isComplete">是否完成</param> public static void SetPaymentNotice(PaymentNotice paymentNotice, DateTime deadLine, string supplierName, int supplierId, string operatorName, string reviewer, int status, int currencyId, int bankAccountId, bool isComplete) { paymentNotice.DeadLine = deadLine; paymentNotice.SetSupplier(supplierId, supplierName); paymentNotice.SetOperator(operatorName); paymentNotice.SetPaymentNoticeStatus((PaymentNoticeStatus)status); paymentNotice.SetCurrency(currencyId); paymentNotice.SetBankAccount(bankAccountId); if (!string.IsNullOrEmpty(reviewer)) { paymentNotice.Review(reviewer); } paymentNotice.SetComplete(isComplete); }
/// <summary> /// 更新付款通知行集合 /// </summary> /// <param name="sourcePaymentNoticeLines">客户端集合</param> /// <param name="dstPaymentNotice">数据库集合</param> private void UpdatePaymentNoticeLines(IEnumerable<PaymentNoticeLineDTO> sourcePaymentNoticeLines, PaymentNotice dstPaymentNotice) { var paymentNoticeLines = new List<PaymentNoticeLine>(); foreach (PaymentNoticeLineDTO sourcePaymentNoticeLine in sourcePaymentNoticeLines) { PaymentNoticeLine result = dstPaymentNotice.PaymentNoticeLines.FirstOrDefault( p => p.Id == sourcePaymentNoticeLine.PaymentNoticeLineId); if (result == null) { result = PaymentNoticeFactory.CreatePaymentNoticeLine(); result.ChangeCurrentIdentity(sourcePaymentNoticeLine.PaymentNoticeLineId); } PaymentNoticeFactory.SetPaymentNoticeLine(result, sourcePaymentNoticeLine.InvoiceType, sourcePaymentNoticeLine.InvoiceId, sourcePaymentNoticeLine.InvoiceNumber, sourcePaymentNoticeLine.Amount, sourcePaymentNoticeLine.Note); paymentNoticeLines.Add(result); } dstPaymentNotice.PaymentNoticeLines.ToList().ForEach(p => { if (paymentNoticeLines.FirstOrDefault(t => t.Id == p.Id) == null) { _paymentNoticeRepository.RemovePaymentNoticeLine(p); } }); dstPaymentNotice.PaymentNoticeLines = paymentNoticeLines; }
private void UpdateInvoicePaidAmount(PaymentNotice paymentNotice) { if (paymentNotice.IsComplete) { paymentNotice.PaymentNoticeLines.ToList().ForEach(p => { switch (p.InvoiceType) { case InvoiceType.维修发票: case InvoiceType.租赁发票: case InvoiceType.贷项单: case InvoiceType.采购发票: case InvoiceType.预付款发票: Invoice invoice = _invoiceRepository.Get(p.InvoiceId); if (invoice != null) { invoice.SetPaidAmount(Math.Abs(p.Amount)); _invoiceRepository.Modify(invoice); } break; } }); } }