public void DeletePurchaseInvoice(PurchaseInvoiceDTO purchaseInvoice) { if (purchaseInvoice == null) { throw new ArgumentException("参数为空!"); } BasePurchaseInvoice delPurchaseInvoice = _invoiceRepository.GetBasePurchaseInvoice(purchaseInvoice.PurchaseInvoiceId); //获取需要删除的对象。 if (delPurchaseInvoice != null) { _invoiceRepository.DeleteInvoice(delPurchaseInvoice); //删除采购发票。 } }
public void ModifyPurchaseInvoice(PurchaseInvoiceDTO purchaseInvoice) { Supplier supplier = _supplierRepository.GetFiltered(p => p.Id == purchaseInvoice.SupplierId).FirstOrDefault(); Order order = _orderRepository.Get(purchaseInvoice.OrderId); Currency currency = _currencyRepository.GetFiltered(p => p.Id == purchaseInvoice.CurrencyId).FirstOrDefault(); BasePurchaseInvoice updatePurchaseInvoice = _invoiceRepository.GetBasePurchaseInvoice(purchaseInvoice.PurchaseInvoiceId); //获取需要更新的对象。 if (updatePurchaseInvoice != null) { InvoiceFactory.SetInvoice(updatePurchaseInvoice, purchaseInvoice.InvoideCode, purchaseInvoice.InvoiceDate, purchaseInvoice.OperatorName, purchaseInvoice.InvoiceNumber, supplier, order, purchaseInvoice.PaidAmount, currency, purchaseInvoice.PaymentScheduleLineId, purchaseInvoice.Status); //更新主表。 UpdateInvoiceLines(purchaseInvoice.InvoiceLines, updatePurchaseInvoice, order); //更新从表。 } _invoiceRepository.Modify(updatePurchaseInvoice); }
public void InsertPurchaseInvoice(PurchaseInvoiceDTO purchaseInvoice) { Supplier supplier = _supplierRepository.GetFiltered(p => p.Id == purchaseInvoice.SupplierId).FirstOrDefault(); Order order = _orderRepository.Get(purchaseInvoice.OrderId); Currency currency = _currencyRepository.GetFiltered(p => p.Id == purchaseInvoice.CurrencyId).FirstOrDefault(); PurchaseInvoice newPurchaseInvoice = InvoiceFactory.CreatePurchaseInvoice(purchaseInvoice.InvoideCode, purchaseInvoice.InvoiceDate, purchaseInvoice.OperatorName); DateTime date = DateTime.Now.Date; int seq = _invoiceRepository.GetFiltered(t => t.CreateDate > date).Count() + 1; newPurchaseInvoice.SetInvoiceNumber(seq); newPurchaseInvoice.SetSupplier(supplier); newPurchaseInvoice.SetOrder(order); newPurchaseInvoice.SetPaidAmount(purchaseInvoice.PaidAmount); newPurchaseInvoice.SetCurrency(currency); newPurchaseInvoice.SetPaymentScheduleLine(purchaseInvoice.PaymentScheduleLineId); newPurchaseInvoice.SetInvoiceStatus(InvoiceStatus.草稿); foreach (InvoiceLineDTO invoiceLine in purchaseInvoice.InvoiceLines) { if (order != null) { OrderLine orderLine = order.OrderLines.FirstOrDefault(p => p.Id == invoiceLine.OrderLineId); newPurchaseInvoice.AddInvoiceLine(invoiceLine.ItemName, invoiceLine.Amount, orderLine, invoiceLine.Note); } else { newPurchaseInvoice.AddInvoiceLine(invoiceLine.ItemName, invoiceLine.Amount, null, invoiceLine.Note); } } newPurchaseInvoice.SetInvoiceValue(); _invoiceRepository.Add(newPurchaseInvoice); }