public async Task <IActionResult> Edit(int id, [Bind("CashReceiptId,InwardDate,TranscationModeId,ReceiptFrom,Amount,SlipNo")] CashReceipt cashReceipt)
        {
            if (id != cashReceipt.CashReceiptId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    new AccountsManager().OnUpdate(_context, cashReceipt);
                    _context.Update(cashReceipt);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CashReceiptExists(cashReceipt.CashReceiptId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData ["TranscationModeId"] = new SelectList(_context.TranscationModes, "TranscationModeId", "Transcation", cashReceipt.TranscationModeId);
            return(PartialView(cashReceipt));
        }
        static async Task SendSalesDocumentAsync(CashReceipt preparedReceipt, SalesDocumentDTO doc)
        {
            if (doc.IsValid)
            {
                logger.Info("Отправка документа на сервер фискализации...");
                var httpCode = await PostSalesDocumentAsync(doc);

                switch (httpCode)
                {
                case HttpStatusCode.OK:
                    logger.Info("Документ успешно отправлен на сервер фискализации.");
                    preparedReceipt.Sent = true;
                    break;

                default:
                    logger.Warn(string.Format("Документ не был отправлен на сервер фискализации. Http код - {0} ({1}).", (int)httpCode, httpCode));
                    preparedReceipt.Sent = false;
                    break;
                }
                preparedReceipt.HttpCode = (int)httpCode;
            }
            else
            {
                logger.Warn(string.Format("Документ \"{0}\" не валиден и не был отправлен на сервер фискализации (-1).", doc.DocNum));
                preparedReceipt.HttpCode = -1;
                preparedReceipt.Sent     = false;
            }
        }
Beispiel #3
0
        public async Task <IActionResult> Edit(int id, [Bind("CashReceiptId,InwardDate,TranscationModeId,ReceiptFrom,Amount,SlipNo,Remarks,StoreId,UserId,EntryStatus,IsReadOnly")] CashReceipt cashReceipt)
        {
            if (id != cashReceipt.CashReceiptId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cashReceipt);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CashReceiptExists(cashReceipt.CashReceiptId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TranscationModeId"] = new SelectList(_context.TranscationModes, "TranscationModeId", "Transcation", cashReceipt.TranscationModeId);
            // ViewData["StoreId"] = new SelectList(_context.Stores, "StoreId", "StoreId", cashReceipt.StoreId);
            return(View(cashReceipt));
        }
Beispiel #4
0
        public async Task <ActionResult <CashReceipt> > PostCashReceipt(CashReceipt cashReceipt)
        {
            _context.CashReceipts.Add(cashReceipt);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCashReceipt", new { id = cashReceipt.CashReceiptId }, cashReceipt));
        }
        public void TestIfCashReceiptOutCorrectlySaveAndRetrievedWhenNoCashReceiptOut()
        {
            contractForAPerson.Disbursed = false;
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(1, cashReceipt.CashReceiptOut.Value);
        }
        public void TestIfUserIdCorrectlySaveAndRetrieved()
        {
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1),
                                                      false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(1, cashReceipt.UserId);
        }
        public void TestIfLoanOfficerNameCorrectlyRetrieved()
        {
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false,
                                                      User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual("Nicolas MANGIN", cashReceipt.LoanOfficerName_Contract);
        }
Beispiel #8
0
 public void CashReceipt_CorrectlySaveAndRetrieved_LoanAmount()
 {
     contractForAPerson.Disbursed = true;
     _person.CashReceiptIn = 1;
     CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
     Assert.AreEqual(1000, cashReceipt.LoanAmount);
 }
Beispiel #9
0
        private async System.Threading.Tasks.Task AddCashReceiptAsync()
        {
            var ws = xS.GetWS("CashReceipts");
            var nonEmptyDataRows = ws.RowsUsed();
            int Row = 6;//Title;

            // CashReceiptId	InwardDate	TranscationModeId	Mode	ReceiptFrom	Amount	SlipNo	StoreId	UserName

            foreach (var dR in nonEmptyDataRows)
            {
                if (dR.RowNumber() > Row)
                {
                    CashReceipt exp = new CashReceipt
                    {
                        InwardDate        = dR.Cell(2).GetDateTime(),
                        TranscationModeId = dR.Cell(3).GetValue <int>(),
                        ReceiptFrom       = dR.Cell(5).Value.ToString(),
                        Amount            = dR.Cell(6).GetValue <decimal>(),
                        SlipNo            = dR.Cell(7).Value.ToString(),
                        Remarks           = "Imported",
                        StoreId           = dR.Cell(8).GetValue <int>(),
                        UserId            = dR.Cell(9).Value.ToString(),
                        EntryStatus       = 0,
                        IsReadOnly        = true,
                    };
                    db.CashReceipts.Add(exp);
                }
            }
            await db.SaveChangesAsync();;
        }
        public void TestIfDistrictCorrectlyRetrievedWhenContractBeneficiaryIsAGroup()
        {
            CashReceipt cashReceipt = new CashReceipt(contractForAGroup, _group, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false,
                                                      User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual("Lorraine", cashReceipt.District);
        }
        public void TestIfCityCorrectlyRetrievedWhenContractBeneficiaryIsAPerson()
        {
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1),
                                                      false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual("Paris", cashReceipt.City);
        }
Beispiel #12
0
        public async Task <IActionResult> PutCashReceipt(int id, CashReceipt cashReceipt)
        {
            if (id != cashReceipt.CashReceiptId)
            {
                return(BadRequest());
            }

            _context.Entry(cashReceipt).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CashReceiptExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Beispiel #13
0
        public ActionResult DeleteConfirmed(int id)
        {
            CashReceipt cashReceipt = db.CashReceipts.Find(id);

            db.CashReceipts.Remove(cashReceipt);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public void CashReceipt_CorrectlySaveAndRetrieved_GracePeriod()
        {
            contractForAPerson.Disbursed = true;
            _person.CashReceiptIn        = 1;
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(1, cashReceipt.GracePeriod);
        }
Beispiel #15
0
        public void OnUpdate(AprajitaRetailsContext db, CashReceipt reciepts)
        {
            var oldPay = db.CashReceipts.Where(c => c.CashReceiptId == reciepts.CashReceiptId).Select(d => new { d.Amount, d.InwardDate }).FirstOrDefault();

            if (oldPay != null)
            {
                CashTrigger.UpdateCashInHand(db, oldPay.InwardDate, 0 - oldPay.Amount);
            }
            CashTrigger.UpdateCashInHand(db, reciepts.InwardDate, reciepts.Amount);
        }
        public void TestIfLocalAccountNumberCorrectlyRetrievedWhenDisburse()
        {
            ChartOfAccounts chartOfAccounts = ChartOfAccounts.GetInstance(User.CurrentUser);

            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "USD", "en-US", null, new DateTime(2006, 1, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(String.Empty, cashReceipt.InterestLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("CASH").LocalNumber, cashReceipt.PrincipalLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("COMMISSIONS").LocalNumber, cashReceipt.FeesLocalAccountNumber);
        }
        public void TestIfInterestPrincipalAndFeesCorrectlyRetrievedWhenDisburseAndFees()
        {
            Assert.AreEqual(new DateTime(2006, 1, 1), contractForAGroup.StartDate);
            CashReceipt cashReceipt = new CashReceipt(contractForAGroup, _person, null, "USD", "en-US", new ExchangeRate(new DateTime(2006, 1, 1), 3), new DateTime(2006, 1, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            //Negative value for principal if event is a loanDisbursmentEvent
            Assert.AreEqual(-3000, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidFeesInExternalCurrency);
        }
        /// <summary>
        /// Deletes a cash receipt and moves all the revisions into the history table.
        /// </summary>
        /// <param name="currentUser">The user deletingthe cash receipt.</param>
        /// <param name="cashReceiptId">the id of the cash receipt being deleted.</param>
        /// /// <exception cref="NullReferenceException">This gets thrown when the invoiceId is not found in the database.</exception>
        /// <returns></returns>
        public async Task DeleteCashReceipt(PortalUser currentUser, int cashReceiptId)
        {
            // First we get the cash receipt.
            CashReceipt cashReceipt = await repository.GetCashReceiptById(cashReceiptId);

            if (cashReceipt == null)
            {
                throw new NullReferenceException("The cash receipt could not be found.");
            }

            cashReceipt.TransactionStatusTypeId = (int)TransactionStatusType.Enum.Void;

            await repository.SaveChanges();

            // Second we go and create a revision for deleting.
            await CreateCashReceiptRevision(currentUser, cashReceiptId, "Deleted");

            // Then we move all of the revisions into the history table and delete them.
            var revisions = await repository.GetCashReceiptRevListByCashReceiptId(cashReceiptId);

            foreach (CashReceiptRev cashReceiptRev in revisions)
            {
                CashReceiptHist newHistory = new CashReceiptHist()
                {
                    CenterId                  = cashReceiptRev.CenterId,
                    CompanyId                 = cashReceiptRev.CompanyId,
                    PaymentNumber             = cashReceiptRev.PaymentNumber,
                    PaymentDate               = cashReceipt.PaymentDate,
                    DispatchLoadNumber        = cashReceiptRev.DispatchLoadNumber,
                    DriverFuelSurcharge       = cashReceiptRev.DriverFuelSurcharge,
                    DriverId                  = cashReceiptRev.DriverId,
                    DriverRate                = cashReceiptRev.DriverRate,
                    CashReceiptHistId         = 0,
                    CashReceiptId             = cashReceiptRev.CashReceiptId,
                    IsActive                  = cashReceiptRev.IsActive,
                    ManufacturerFuelSurcharge = cashReceiptRev.ManufacturerFuelSurcharge,
                    ManufacturerId            = cashReceiptRev.ManufacturerId,
                    ManufacturerRate          = cashReceiptRev.ManufacturerRate,
                    Note                    = cashReceiptRev.Note,
                    RevisedBy               = cashReceiptRev.RevisedBy,
                    RevisionDate            = cashReceiptRev.RevisionDate,
                    TransactionStatusTypeId = (int)TransactionStatusType.Enum.Void,
                    TruckId                 = cashReceiptRev.TruckId,
                    Version                 = cashReceiptRev.Version,
                    VIN = cashReceiptRev.VIN
                };

                repository.Insert(newHistory);
                repository.Delete(cashReceiptRev);
            }

            repository.Delete(cashReceipt);
            await repository.SaveChanges();
        }
        /// <summary>
        /// Starts the process of reconciling a cash receipt.
        /// </summary>
        /// <param name="currentUser">The user that started the process.</param>
        /// <param name="cashReceipt">The cash receipt being reconciled.</param>
        /// <returns></returns>
        public async Task ReconcileCashReceipt(PortalUser currentUser, CashReceiptModel cashReceipt)
        {
            CashReceipt dbCashReceipt = await repository.GetCashReceiptById(cashReceipt.CashReceiptId);

            dbCashReceipt.TransactionStatusTypeId = (int)TransactionStatusType.Enum.Reconciled;
            dbCashReceipt.ModifiedBy   = currentUser.PortalUsername;
            dbCashReceipt.ModifiedDate = DateTime.UtcNow;

            await repository.SaveChanges();

            await CreateCashReceiptRevision(currentUser, cashReceipt.CashReceiptId, "Reconciled");
        }
Beispiel #20
0
 public ActionResult Edit([Bind(Include = "CashReceiptId,InwardDate,TranscationModeId,ReceiptFrom,Amount,SlipNo")] CashReceipt cashReceipt)
 {
     if (ModelState.IsValid)
     {
         Utils.UpDateCashInHand(db, cashReceipt.InwardDate, cashReceipt.Amount);
         db.Entry(cashReceipt).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.TranscationModeId = new SelectList(db.TranscationModes, "TranscationModeId", "Transcation", cashReceipt.TranscationModeId);
     return(View(cashReceipt));
 }
        public void TestIfInterestPrincipalAndFeesCorrectlyRetrievedWhenRepayAndFees()
        {
            Credit contract = contractForAPerson.Copy();

            contract.Disburse(new DateTime(2006, 1, 1), true, false);

            Assert.AreEqual(new DateTime(2006, 2, 1), contract.GetInstallment(0).ExpectedDate);
            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(0, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(252.00m, Math.Round(cashReceipt.PaidFeesInExternalCurrency, 2));
        }
        public void TestIfLocalAccountNumberCorrectlyRetrievedWhenRepayAGoodLoan()
        {
            ChartOfAccounts chartOfAccounts = ChartOfAccounts.GetInstance(User.CurrentUser);

            Credit contract = contractForAPerson.Copy();

            contract.Disburse(new DateTime(2006, 1, 1), true, false);
            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(chartOfAccounts.GetAccountByNumber(OAccounts.INTERESTS_ON_CASH_CREDIT_INDIVIDUAL_LOAN).LocalNumber, cashReceipt.InterestLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByNumber(OAccounts.CASH_CREDIT_INDIVIDUAL_LOAN).LocalNumber, cashReceipt.PrincipalLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("COMMISSIONS").LocalNumber, cashReceipt.FeesLocalAccountNumber);
        }
        public async Task <IActionResult> Create([Bind("CashReceiptId,InwardDate,TranscationModeId,ReceiptFrom,Amount,SlipNo")] CashReceipt cashReceipt)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cashReceipt);
                new AccountsManager().OnInsert(_context, cashReceipt);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData ["TranscationModeId"] = new SelectList(_context.TranscationModes, "TranscationModeId", "Transcation", cashReceipt.TranscationModeId);
            return(PartialView(cashReceipt));
        }
        public void TestIfInterestPrincipalAndFeesInLetterCorrectlyRetrievedWhenDisburseAndNoFeesWhenCurrencyIsSOMAndLanguageIsRussian()
        {
            Assert.AreEqual(new DateTime(2006, 1, 1), contractForAPerson.StartDate);
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "SOM", "ru-RU", new ExchangeRate(new DateTime(2006, 1, 1), 3), new DateTime(2006, 1, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            //Negative value for principal if event is a loanDisbursmentEvent

            Assert.AreEqual(-3000, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidFeesInExternalCurrency);
            Assert.AreEqual("ноль SOM", cashReceipt.PaidInterestInLetter);
            Assert.AreEqual("ноль SOM", cashReceipt.PaidFeesInLetter);
            Assert.AreEqual("три тысячи SOM", cashReceipt.PaidPrincipalInLetter);
        }
Beispiel #25
0
        // GET: CashReceipts/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CashReceipt cashReceipt = db.CashReceipts.Find(id);

            if (cashReceipt == null)
            {
                return(HttpNotFound());
            }
            return(PartialView(cashReceipt));
        }
Beispiel #26
0
        // GET: CashReceipts/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CashReceipt cashReceipt = db.CashReceipts.Find(id);

            if (cashReceipt == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TranscationModeId = new SelectList(db.TranscationModes, "TranscationModeId", "Transcation", cashReceipt.TranscationModeId);
            return(View(cashReceipt));
        }
        public void TestIfInterestPrincipalAndFeesInLetterCorrectlyRetrievedWhenRepayAndFeesWhenCurrencyIsUSDAndLanguageIsEnglish()
        {
            Credit contract = contractForAPerson.Copy();

            contract.Disburse(new DateTime(2006, 1, 1), true, false);

            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(0, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(252.00m, Math.Round(cashReceipt.PaidFeesInExternalCurrency, 2));
            Assert.AreEqual("ninety USD", cashReceipt.PaidInterestInLetter);
            Assert.AreEqual("two hundred and fifty-two USD", cashReceipt.PaidFeesInLetter);
            Assert.AreEqual("zero USD", cashReceipt.PaidPrincipalInLetter);
        }
        public void TestIfInterestPrincipalAndFeesInLetterCorrectlyRetrievedWhenRepayAndFeesWhenCurrencyIsUSDAndLanguageIsRussian()
        {
            Credit contract = contractForAPerson.Copy();

            contract.Disburse(new DateTime(2006, 1, 1), true, false);

            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "ru-RU", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(0, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(252.00m, Math.Round(cashReceipt.PaidFeesInExternalCurrency, 2));
            Assert.AreEqual("девяносто USD", cashReceipt.PaidInterestInLetter);
            Assert.AreEqual("двести пятьдесят два USD", cashReceipt.PaidFeesInLetter);
            Assert.AreEqual("ноль USD", cashReceipt.PaidPrincipalInLetter);
        }
Beispiel #29
0
        public async Task <IActionResult> Create([Bind("CashReceiptId,InwardDate,TranscationModeId,ReceiptFrom,Amount,SlipNo,Remarks,StoreId,UserId,EntryStatus,IsReadOnly")] CashReceipt cashReceipt)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cashReceipt);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TranscationModeId"] = new SelectList(_context.TranscationModes, "TranscationModeId", "Transcation", cashReceipt.TranscationModeId);
            // ViewData["StoreId"] = new SelectList(_context.Stores, "StoreId", "StoreId", cashReceipt.StoreId);
            ViewData["StoreId"] = ActiveSession.GetActiveSession(HttpContext.Session, HttpContext.Response, _returnUrl);

            return(View(cashReceipt));
        }
        public ActionResult CashReceipt()
        {
            CashReceipt model = new CashReceipt();

            bool Exists = db.Voucher_Entry_Credit.Any(c => c.voucher_type.Equals("CashReceipt"));

            if (Exists == true && db.Voucher_Entry_Credit.Select(p => p.record_no).Count() > 0)
            {
                var id = (from n in db.Voucher_Entry_Credit.Where(x => x.voucher_type == "CashReceipt") select n.record_no).Max();

                int recno = Convert.ToInt32(id) + 1;

                model.RecordNo = recno.ToString();
            }
            else
            {
                model.RecordNo = "1";
            }

            return(View(model));
        }
        /// <summary>
        /// This method will convert from the database model of cash receipt to the DTO verison.
        /// </summary>
        /// <param name="cashReceipt">The database model of cash receipt.</param>
        /// <returns>The DTO of cash receipt.</returns>
        public CashReceiptModel LoadCashReceipt(CashReceipt cashReceipt)
        {
            CashReceiptModel resp = new CashReceiptModel()
            {
                PaymentDate               = cashReceipt.PaymentDate,
                PaymentNumber             = cashReceipt.PaymentNumber,
                DispatchLoadNumber        = cashReceipt.DispatchLoadNumber,
                Driver                    = null,
                DriverFuelSurcharge       = cashReceipt.DriverFuelSurcharge,
                DriverRate                = cashReceipt.DriverRate,
                CashReceiptId             = cashReceipt.CashReceiptId,
                ManufacturerFuelSurcharge = cashReceipt.ManufacturerFuelSurcharge,
                ManufacturerRate          = cashReceipt.ManufacturerRate,
                Terminal                  = cashReceipt.CenterId,
                TrackingIdNumber          = cashReceipt.VIN,
                VendorId                  = cashReceipt.ManufacturerId,
                IsReconciled              = false,
                IsDeleted                 = false
            };

            //if (cashReceipt.Driver != null)
            //{
            //    resp.Driver = new DriverModel()
            //    {
            //        DriverId = cashReceipt.Driver.DriverId,
            //        DriverFirstName = cashReceipt.Driver.FirstName,
            //        DriverLastName = cashReceipt.Driver.LastName,
            //        DriverFullName = $"{cashReceipt.Driver.FirstName} {cashReceipt.Driver.LastName}"
            //    };
            //}

            if (cashReceipt.Truck != null)
            {
                resp.TruckId     = cashReceipt.Truck.TruckId;
                resp.TruckNumber = cashReceipt.Truck.TruckNumber;
            }

            return(resp);
        }
Beispiel #32
0
 public void TestIfCashReceiptOutCorrectlySaveAndRetrievedWhenNoCashReceiptOut()
 {
     contractForAPerson.Disbursed = false;
     CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
     Assert.AreEqual(1, cashReceipt.CashReceiptOut.Value);
 }
Beispiel #33
0
 public void TestIfDistrictCorrectlyRetrievedWhenContractBeneficiaryIsAGroup()
 {
     CashReceipt cashReceipt = new CashReceipt(contractForAGroup, _group, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false,
         User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
     Assert.AreEqual("Lorraine", cashReceipt.District);
 }
Beispiel #34
0
        public void TestIfInterestPrincipalAndFeesCorrectlyRetrievedWhenRepayAndNoFees()
        {
            Credit contract = contractForAPerson.Copy();
            contract.Disburse(new DateTime(2006, 1, 1), true, false);

            Assert.AreEqual(new DateTime(2006, 2, 1), contract.GetInstallment(0).ExpectedDate);
            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(0, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidFeesInExternalCurrency);
        }
Beispiel #35
0
        public void TestIfInterestPrincipalAndFeesCorrectlyRetrievedWhenDisburseAndNoFeesButNoExchangeRate()
        {
            Assert.AreEqual(new DateTime(2006, 1, 1), contractForAPerson.StartDate);
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "USD", "en-US", null, new DateTime(2006, 1, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            //Negative value for principal if event is a loanDisbursmentEvent but ExternalCurrencyIs null
            Assert.AreEqual(-1000, cashReceipt.PaidPrincipalInInternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidInterestInInternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidFeesInInternalCurrency);

            Assert.AreEqual(-1, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(-1, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(-1, cashReceipt.PaidFeesInExternalCurrency);
        }
Beispiel #36
0
        public void TestIfInterestPrincipalAndFeesInLetterCorrectlyRetrievedWhenRepayAndFeesWhenCurrencyIsUSDAndLanguageIsEnglish()
        {
            Credit contract = contractForAPerson.Copy();
            contract.Disburse(new DateTime(2006, 1, 1), true, false);

            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(0, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(252.00m, Math.Round(cashReceipt.PaidFeesInExternalCurrency, 2));
            Assert.AreEqual("ninety USD", cashReceipt.PaidInterestInLetter);
            Assert.AreEqual("two hundred and fifty-two USD", cashReceipt.PaidFeesInLetter);
            Assert.AreEqual("zero USD", cashReceipt.PaidPrincipalInLetter);
        }
Beispiel #37
0
        public void TestIfInterestPrincipalAndFeesInLetterCorrectlyRetrievedWhenDisburseAndNoFeesWhenCurrencyIsUSDAndLanguageIsEnglish()
        {
            Assert.AreEqual(new DateTime(2006, 1, 1), contractForAPerson.StartDate);
            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "USD", "en-US", new ExchangeRate(new DateTime(2006, 1, 1), 3), new DateTime(2006, 1, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
            //Negative value for principal if event is a loanDisbursmentEvent

            Assert.AreEqual(-3000, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(0, cashReceipt.PaidFeesInExternalCurrency);
            Assert.AreEqual("zero USD", cashReceipt.PaidInterestInLetter);
            Assert.AreEqual("zero USD", cashReceipt.PaidFeesInLetter);
            Assert.AreEqual("three thousand USD", cashReceipt.PaidPrincipalInLetter);
        }
Beispiel #38
0
        public void TestIfInterestPrincipalAndFeesInLetterCorrectlyRetrievedWhenRepayAndFeesWhenCurrencyIsUSDAndLanguageIsRussian()
        {
            Credit contract = contractForAPerson.Copy();
            contract.Disburse(new DateTime(2006, 1, 1), true, false);

            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "ru-RU", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(0, cashReceipt.PaidPrincipalInExternalCurrency);
            Assert.AreEqual(90, cashReceipt.PaidInterestInExternalCurrency);
            Assert.AreEqual(252.00m, Math.Round(cashReceipt.PaidFeesInExternalCurrency, 2));
            Assert.AreEqual("девяносто USD", cashReceipt.PaidInterestInLetter);
            Assert.AreEqual("двести пятьдесят два USD", cashReceipt.PaidFeesInLetter);
            Assert.AreEqual("ноль USD", cashReceipt.PaidPrincipalInLetter);
        }
Beispiel #39
0
 public void TestIfUserIdCorrectlySaveAndRetrieved()
 {
     CashReceipt cashReceipt = new CashReceipt(contractForAPerson,_person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1),
         false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
     Assert.AreEqual(1, cashReceipt.UserId);
 }
Beispiel #40
0
 public void TestIfNameCorrectlyRetrievedWhenContractBeneficiaryIsAPerson()
 {
     CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 2, 1), 3), new DateTime(2006, 2, 1),
         false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
     Assert.AreEqual("Nicolas MANGIN", cashReceipt.Name);
 }
Beispiel #41
0
        public void TestIfLocalAccountNumberCorrectlyRetrievedWhenRepayARescheduledLoan()
        {
            ChartOfAccounts chartOfAccounts = ChartOfAccounts.GetInstance(User.CurrentUser);

            Credit contract = contractForAPerson.Copy();
            contract.Disburse(new DateTime(2006, 1, 1), true, false);
            contract.Rescheduled = true;

            CashReceipt cashReceipt = new CashReceipt(contract, _person, 0, "USD", "en-US", new ExchangeRate(new DateTime(2006, 3, 1), 3), new DateTime(2006, 3, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);

            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("INTERESTS_ON_RESCHEDULED_LOANS").LocalNumber, cashReceipt.InterestLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("RESCHEDULED_LOANS").LocalNumber, cashReceipt.PrincipalLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("COMMISSIONS").LocalNumber, cashReceipt.FeesLocalAccountNumber);
        }
Beispiel #42
0
        public void TestIfLocalAccountNumberCorrectlyRetrievedWhenDisburse()
        {
            ChartOfAccounts chartOfAccounts = ChartOfAccounts.GetInstance(User.CurrentUser);

            CashReceipt cashReceipt = new CashReceipt(contractForAPerson, _person, null, "USD", "en-US", null, new DateTime(2006, 1, 1), false, User.CurrentUser, GeneralSettings.GetInstance(""), ChartOfAccounts.GetInstance(User.CurrentUser), true);
            Assert.AreEqual(String.Empty, cashReceipt.InterestLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("CASH").LocalNumber, cashReceipt.PrincipalLocalAccountNumber);
            Assert.AreEqual(chartOfAccounts.GetAccountByTypeCode("COMMISSIONS").LocalNumber, cashReceipt.FeesLocalAccountNumber);
        }