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"));
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 public void UpdateSalesReceipt(SalesReceiptHeader salesReceipt)
 {
     _salesReceiptRepo.Update(salesReceipt);
 }