Example #1
0
        /// <summary>
        ///     创建付款通知
        /// </summary>
        /// <returns></returns>
        public static PaymentNotice CreatePaymentNotice()
        {
            var invoice = new PaymentNotice
            {
                CreateDate = DateTime.Now
            };
            invoice.GenerateNewIdentity();

            return invoice;
        }
Example #2
0
 /// <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);
 }
Example #3
0
 /// <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;
 }
Example #4
0
 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;
             }
         });
     }
 }