public ActionResult SaveSalesReceipt(Models.ViewModels.Sales.AddSalesReceipt model) { var receipt = new SalesReceiptHeader() { AccountToDebitId = model.AccountToDebitId, //SalesInvoiceHeaderId = model.SalesInvoiceId, CustomerId = model.CustomerId.Value, Date = model.Date, }; foreach (var line in model.AddSalesReceiptLines) { if (line.AmountToPay > line.Amount) { return(RedirectToAction("SalesInvoices")); } receipt.SalesReceiptLines.Add(new SalesReceiptLine() { SalesInvoiceLineId = line.SalesInvoiceLineId, ItemId = line.ItemId, MeasurementId = line.MeasurementId, Quantity = line.Quantity, Discount = line.Discount, Amount = line.Amount, AmountPaid = line.AmountToPay, }); } _salesService.AddSalesReceipt(receipt); return(RedirectToAction("SalesInvoices")); }
public ActionResult SaveReceipt(Models.ViewModels.Sales.AddSalesReceipt model) { if (model.AccountToDebitId.Value == -1 || model.CustomerId.Value == -1) { return(View(model)); } var receipt = new SalesReceiptHeader() { AccountToDebitId = model.AccountToDebitId, CustomerId = model.CustomerId.Value, Date = model.Date, Amount = model.PaymentAmount }; receipt.SalesReceiptLines.Add(new SalesReceiptLine() { AccountToCreditId = model.AccountToCreditId, Amount = model.Amount, AmountPaid = model.PaymentAmount, }); _salesService.AddSalesReceiptNoInvoice(receipt); return(RedirectToAction("Receipts")); }
public void AddSalesReceipt(SalesReceiptHeader salesReceipt) { var customer = _customerRepo.GetById(salesReceipt.CustomerId); var glHeader = _financialService.CreateGeneralLedgerHeader(DocumentTypes.SalesReceipt, salesReceipt.Date, string.Empty); var debit = _financialService.CreateGeneralLedgerLine(DrOrCrSide.Dr, salesReceipt.AccountToDebitId.Value, salesReceipt.SalesReceiptLines.Sum(i => i.AmountPaid)); var credit = _financialService.CreateGeneralLedgerLine(DrOrCrSide.Cr, customer.AccountsReceivableAccountId.Value, salesReceipt.SalesReceiptLines.Sum(i => i.AmountPaid)); glHeader.GeneralLedgerLines.Add(debit); glHeader.GeneralLedgerLines.Add(credit); if (_financialService.ValidateGeneralLedgerEntry(glHeader)) { salesReceipt.GeneralLedgerHeader = glHeader; salesReceipt.No = GetNextNumber(SequenceNumberTypes.SalesReceipt).ToString(); _salesReceiptRepo.Insert(salesReceipt); } }
public void AddSalesReceiptNoInvoice(SalesReceiptHeader salesReceipt) { var customer = _customerRepo.GetById(salesReceipt.CustomerId); var glHeader = _financialService.CreateGeneralLedgerHeader(DocumentTypes.SalesReceipt, salesReceipt.Date, string.Empty); var debit = _financialService.CreateGeneralLedgerLine(TransactionTypes.Dr, salesReceipt.AccountToDebitId.Value, salesReceipt.Amount); glHeader.GeneralLedgerLines.Add(debit); foreach (var line in salesReceipt.SalesReceiptLines) { var credit = _financialService.CreateGeneralLedgerLine(TransactionTypes.Cr, line.AccountToCreditId.Value, line.AmountPaid); glHeader.GeneralLedgerLines.Add(credit); } if (_financialService.ValidateGeneralLedgerEntry(glHeader)) { salesReceipt.GeneralLedgerHeader = glHeader; salesReceipt.No = GetNextNumber(SequenceNumberTypes.SalesReceipt).ToString(); _salesReceiptRepo.Insert(salesReceipt); } }
public void UpdateSalesReceipt(SalesReceiptHeader salesReceipt) { _salesReceiptRepo.Update(salesReceipt); }