public bool ProcessPayments(ICollection <Payment> payments)
        {
            var saleId = payments.First().SaleInvoiceId;
            var sale   = _salesRepo.GetSale(saleId);

            if (sale == null || sale.Finalised == true)
            {
                return(false);
            }
            else if (ValidatePaymentAmount(sale.Total, payments))
            {
                _salesRepo.AddSalesPayments(payments);
                FinaliseSale(sale);
                return(true);
            }
            return(false);
        }