X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fgl_journal.php;h=fc07ffd76fa9018f29daadb2480291f5c92d4d34;hb=43aa0abba82e8fa1f770b3b798875e7cae1e4b78;hp=31a4da95d3ec962aa6293c5224a8be74e00adee4;hpb=29685c93a974b2ea8def79345567d7f31425ef9f;p=fa-stable.git diff --git a/gl/gl_journal.php b/gl/gl_journal.php index 31a4da95..fc07ffd7 100644 --- a/gl/gl_journal.php +++ b/gl/gl_journal.php @@ -19,10 +19,15 @@ if ($use_popup_windows) if ($use_date_picker) $js .= get_js_date_picker(); -set_focus('CodeID2'); - page(_("Journal Entry"), false, false,'', $js); +//-------------------------------------------------------------------------------------------------- +function line_start_focus() { + global $Ajax; + + $Ajax->activate('items_table'); + set_focus('_code_id_edit'); +} //----------------------------------------------------------------------------------------------- if (isset($_GET['AddedID'])) @@ -38,27 +43,8 @@ if (isset($_GET['AddedID'])) display_footer_exit(); } - -//-------------------------------------------------------------------------------------------------- - -function copy_to_je() -{ - $_SESSION['journal_items']->tran_date = $_POST['date_']; - $_SESSION['journal_items']->transfer_type = check_value('Reverse'); - $_SESSION['journal_items']->memo_ = $_POST['memo_']; -} - //-------------------------------------------------------------------------------------------------- -function copy_from_je() -{ - $_POST['date_'] = $_SESSION['journal_items']->tran_date; - $_POST['Reverse'] = $_SESSION['journal_items']->transfer_type; - $_POST['memo_'] = $_SESSION['journal_items']->memo_; -} - -//---------------------------------------------------------------------------------------- - function handle_new_order() { if (isset($_SESSION['journal_items'])) @@ -69,7 +55,7 @@ function handle_new_order() session_register("journal_items"); - $_SESSION['journal_items'] = new items_cart; + $_SESSION['journal_items'] = new items_cart(systypes::journal_entry()); $_POST['date_'] = Today(); if (!is_date_in_fiscalyear($_POST['date_'])) @@ -84,24 +70,41 @@ if (isset($_POST['Process'])) $input_error = 0; + if ($_SESSION['journal_items']->count_gl_items() < 1) { + display_error(_("You must enter at least one journal line.")); + set_focus('code_id'); + $input_error = 1; + } + if (abs($_SESSION['journal_items']->gl_items_total()) > 0.0001) + { + display_error(_("The journal must balance (debits equal to credits) before it can be processed.")); + set_focus('code_id'); + $input_error = 1; + } + + if (!is_date($_POST['date_'])) { display_error(_("The entered date is invalid.")); + set_focus('date_'); $input_error = 1; } elseif (!is_date_in_fiscalyear($_POST['date_'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('date_'); $input_error = 1; } - elseif (!references::is_valid($_POST['ref'])) + if (!references::is_valid($_POST['ref'])) { display_error( _("You must enter a reference.")); + set_focus('ref'); $input_error = 1; } elseif (references::exists(systypes::journal_entry(), $_POST['ref'])) { display_error( _("The entered reference is already in use.")); + set_focus('ref'); $input_error = 1; } @@ -128,29 +131,33 @@ function check_item_data() if (isset($_POST['dimension_id']) && $_POST['dimension_id'] != 0 && dimension_is_closed($_POST['dimension_id'])) { display_error(_("Dimension is closed.")); - return false; + set_focus('dimension_id'); + return false; } if (isset($_POST['dimension2_id']) && $_POST['dimension2_id'] != 0 && dimension_is_closed($_POST['dimension2_id'])) { display_error(_("Dimension is closed.")); - return false; + set_focus('dimension2_id'); + return false; } -// if (!(!strlen($_POST['AmountDebit']) ^ !strlen($_POST['AmountCredit']))) - if (input_num('AmountDebit')!=0 && input_num('AmountCredit')!=0) + if (!(input_num('AmountDebit')!=0 ^ input_num('AmountCredit')!=0) ) { display_error(_("You must enter either a debit amount or a credit amount.")); + set_focus('AmountDebit'); return false; } if (strlen($_POST['AmountDebit']) && !check_num('AmountDebit', 0)) { display_error(_("The debit amount entered is not a valid number or is less than zero.")); + set_focus('AmountDebit'); return false; } elseif (strlen($_POST['AmountCredit']) && !check_num('AmountCredit', 0)) { display_error(_("The credit amount entered is not a valid number or is less than zero.")); + set_focus('AmountCredit'); return false; } @@ -158,6 +165,7 @@ function check_item_data() if ($_SESSION["wa_current_user"]->access != 2 && is_bank_account($_POST['code_id'])) { display_error(_("You cannot make a journal entry for a bank account. Please use one of the banking functions for bank transactions.")); + set_focus('code_id'); return false; } @@ -178,13 +186,15 @@ function handle_update_item() $_SESSION['journal_items']->update_gl_item($_POST['Index'], $_POST['dimension_id'], $_POST['dimension2_id'], $amount, $_POST['LineMemo']); } + line_start_focus(); } //----------------------------------------------------------------------------------------------- -function handle_delete_item() +function handle_delete_item($id) { - $_SESSION['journal_items']->remove_gl_item($_GET['Delete']); + $_SESSION['journal_items']->remove_gl_item($id); + line_start_focus(); } //----------------------------------------------------------------------------------------------- @@ -201,24 +211,22 @@ function handle_new_item() $_SESSION['journal_items']->add_gl_item($_POST['code_id'], $_POST['dimension_id'], $_POST['dimension2_id'], $amount, $_POST['LineMemo']); + line_start_focus(); } //----------------------------------------------------------------------------------------------- +$id = find_submit('Delete'); +if ($id != -1) + handle_delete_item($id); -if (isset($_GET['Delete']) || isset($_GET['Edit'])) - copy_from_je(); - -if (isset($_GET['Delete'])) - handle_delete_item(); - -if (isset($_POST['AddItem']) || isset($_POST['UpdateItem'])) - copy_to_je(); - -if (isset($_POST['AddItem'])) +if (isset($_POST['AddItem'])) handle_new_item(); -if (isset($_POST['UpdateItem'])) +if (isset($_POST['UpdateItem'])) handle_update_item(); + +if (isset($_POST['CancelItemChanges'])) + line_start_focus(); //----------------------------------------------------------------------------------------------- @@ -242,18 +250,10 @@ echo ""; end_row(); end_table(1); -if ($_SESSION['journal_items']->count_gl_items() >= 1 && - abs($_SESSION['journal_items']->gl_items_total()) < 0.0001) -{ - submit_center('Process', _("Process Journal Entry")); -} -else -{ - display_note(_("The journal must balance (debits equal to credits) before it can be processed."), 0, 1); -} +submit_center('Process', _("Process Journal Entry"), true , + _('Process journal entry only if debits equal to credits'), true); end_form(); - //------------------------------------------------------------------------------------------------ end_page();