/*
The latest version of this package is available at:
<http://github.com/jantman/biweeklybudget>

################################################################################
Copyright 2016-2024 Jason Antman <http://www.jasonantman.com>

    This file is part of biweeklybudget, also known as biweeklybudget.

    biweeklybudget is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    biweeklybudget is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with biweeklybudget.  If not, see <http://www.gnu.org/licenses/>.

The Copyright and Authors attributions contained herein may not be removed or
otherwise altered, except to add the Author attribution of a contributor to
this work. (Additional Terms pursuant to Section 7b of the AGPL v3)
################################################################################
While not legally required, I sincerely request that anyone who finds
bugs please submit them at <https://github.com/jantman/biweeklybudget> or
to me via email, and that you send any contributions or improvements
either as a pull request on GitHub, or to me via email.
################################################################################

AUTHORS:
Jason Antman <jason@jasonantman.com> <http://www.jasonantman.com>
################################################################################
*/

/**
 * Trigger Ajax to get account OFX statement information. Ajax callback to
 * create the form and display the modal is :js:func:`creditPayoffErrorModalForm`.
 *
 * @param {number} acct_id - the ID of the Account to show data for.
 */
function creditPayoffErrorModal(acct_id) {
    $('#modalBody').empty();
    $.ajax("/ajax/account_ofx_ajax/" + acct_id).done(creditPayoffErrorModalForm);
}

/**
 * Generate the HTML for the form on the Credit Payoff Error Modal and show the
 * modal. This is an Ajax callback triggered by a request to
 * ``/ajax/account_ofx_ajax/<int:account_id>`` in :js:func:`creditPayoffErrorModal`.
 * The response data is generated by :py:class:`~.AccountOfxAjax`.
 */
function creditPayoffErrorModalForm(data) {
    var opts = [];
    for (var idx in data['statements']) {
        var s = data['statements'][idx];
        opts.push({ label: s['as_of'] + " (" + fmt_currency(s['ledger_bal']) + ")", value: s['filename'] });
    }
    var frm = new FormBuilder('payoffAcctForm')
        .addHidden('payoff_acct_frm_id', 'id', data['account_id'])
        .addSelect('payoff_acct_frm_statement_filename', 'filename', 'Statement', opts)
        .addCurrency('payoff_acct_frm_interest_amt', 'interest_amt', 'Interest Charge');
    $('#modalBody').append(frm.render());
    $('#modalSaveButton').off();
    $('#modalSaveButton').click(function() {
        handleForm('modalBody', 'payoffAcctForm', '/forms/credit-payoff-account-ofx', null);
    }).show();
    $('#modalLabel').text('Add Manual Interest Charge for Account ' + data['account_id']);
    $("#modalDiv").modal('show');
}
