Добавьте платежи, чтобы подтвердить счет как оплаченный MVC 3 - PullRequest
0 голосов
/ 06 сентября 2011

В моем проекте MVC 3 у меня есть таблицы счетов и платежей.У меня есть страница, где пользователь может подтвердить, что были произведены платежи по счетам.Статус счета должен измениться на «Оплачено» или «Частично оплачено» в зависимости от уплаченной суммы или накопленной суммы.Накопленная сумма - вот где у меня проблема.Мой код будет работать и изменит статус на «подтвержден», если пользователь платит полную сумму в первый раз - он не накапливает сумму.

Я новичок в C # и не совсем уверенкак это сделатьСуммы приходят от переключателей, который работает отлично.Итак, вот код в моем контроллере:

public ActionResult Confirm(int id, long InvoiceAmount, string PaymentType)
    {
        Invoices invoices = db.Invoice.Find(id);
        //now validate that if the logged in user is authorized to select and confirm this invoice or not.
        var clientPayment = new ClientPayments();



        if (InvoiceAmount + clientPayment.PaymentAmount != invoices.InvoiceAmount)
        {
            invoices.InvoiceStatus = "Partly Paid";

        }
        else
        {
            invoices.InvoiceStatus = "Confirmed";
        }
        db.Entry(invoices).State = EntityState.Modified;


        clientPayment.InvoiceNumberID = id;
        clientPayment.PaymentAmount = InvoiceAmount;
        clientPayment.PaymentType = PaymentType;
        clientPayment.PaymentDate = DateTime.Now;

        // Set clientPayment properties
        db.ClientPayments.Add(clientPayment);

        db.SaveChanges();

InvoiceAmount выше - это сумма платежа, выбранная из переключателей (вероятно, я должен изменить ее на что-то более подходящее), столбец clientPayment.PaymentAmount должен быть столбцомв таблице платежей и счетах. InvoiceAmount - это сумма в таблице счетов.

Спасибо

1 Ответ

0 голосов
/ 06 сентября 2011

Вы не накапливаете платежи. Ваш код говорит

clientPayment.PaymentAmount = InvoiceAmount

Таким образом, каждый раз, когда платеж обновляется до суммы, выплаченной в этом единственном действии. Должно быть

clientPayment.PaymentAmount += invoiceAmount (смотри маленький знак +)

Кстати, не по теме, широко используется соглашение о том, чтобы использовать (нижний) регистр верблюдов для имен параметров, например long invoiceAmount, ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...