X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fcustomer_credit_invoice.php;h=70f244fa7449146faa293aa2f0de1ec46b55d1c5;hb=dca46563d3e8b7546e7095b7d96b40d9838c4c75;hp=8d5a104a459e80029a88d176b21ea26f38814645;hpb=c16b7a0f7aa17722568a0695e2fd03a362998372;p=fa-stable.git diff --git a/sales/customer_credit_invoice.php b/sales/customer_credit_invoice.php index 8d5a104a..70f244fa 100644 --- a/sales/customer_credit_invoice.php +++ b/sales/customer_credit_invoice.php @@ -1,4 +1,14 @@ . +***********************************************************************/ //--------------------------------------------------------------------------- // // Entry/Modify Credit Note for selected Sales Invoice @@ -39,33 +49,33 @@ page($_SESSION['page_title'], false, false, "", $js); if (isset($_GET['AddedID'])) { $credit_no = $_GET['AddedID']; $trans_type = 11; - print_hidden_script(11); display_notification_centered(_("Credit Note has been processed")); - display_note(get_customer_trans_view_str($trans_type, $credit_no, _("View This Credit Note")), 0, 0); + display_note(get_customer_trans_view_str($trans_type, $credit_no, _("&View This Credit Note")), 0, 0); - display_note(print_document_link($credit_no, _("Print This Credit Note"), true, 11),1); + display_note(print_document_link($credit_no, _("&Print This Credit Note"), true, 11),1); - display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL Journal Entries for this Credit Note")),1); + display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL &Journal Entries for this Credit Note")),1); display_footer_exit(); } elseif (isset($_GET['UpdatedID'])) { $credit_no = $_GET['UpdatedID']; $trans_type = 11; - print_hidden_script(11); display_notification_centered(_("Credit Note has been updated")); - display_note(get_customer_trans_view_str($trans_type, $credit_no, _("View This Credit Note")), 0, 0); + display_note(get_customer_trans_view_str($trans_type, $credit_no, _("&View This Credit Note")), 0, 0); - display_note(print_document_link($credit_no, _("Print This Credit Note"), true, 11),1); + display_note(print_document_link($credit_no, _("&Print This Credit Note"), true, 11),1); - display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL Journal Entries for this Credit Note")),1); + display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL &Journal Entries for this Credit Note")),1); display_footer_exit(); -} +} else + check_edit_conflicts(); + //----------------------------------------------------------------------------- @@ -99,7 +109,10 @@ function can_process() set_focus('ChargeFreightCost'); return false; } - + if (!check_quantities()) { + display_error(_("Selected quantity cannot be less than zero nor more than quantity not credited yet.")); + return false; + } return true; } @@ -109,20 +122,11 @@ if (isset($_GET['InvoiceNumber']) && $_GET['InvoiceNumber'] > 0) { $ci = new Cart(10, $_GET['InvoiceNumber'], true); - if ($ci==null) { - display_error(_("This invoice can not be credited using the automatic facility.")); - display_error("Please report that a duplicate debtor_trans header record was found for invoice " . key($ci->src_docs)); - echo "

"; - processing_end(); - exit; - } - //valid invoice record returned from the entered invoice number - $ci->trans_type = 11; $ci->src_docs = $ci->trans_no; $ci->src_date = $ci->document_date; $ci->trans_no = 0; - $ci->document_date = Today(); + $ci->document_date = new_doc_date(); $ci->reference = references::get_next(11); for ($line_no=0; $line_noline_items); $line_no++) { @@ -140,14 +144,26 @@ if (isset($_GET['InvoiceNumber']) && $_GET['InvoiceNumber'] > 0) { } elseif (!processing_active()) { /* This page can only be called with an invoice number for crediting*/ die (_("This page can only be opened if an invoice has been selected for crediting.")); -} else { +} elseif (!check_quantities()) { + display_error(_("Selected quantity cannot be less than zero nor more than quantity not credited yet.")); +} + +function check_quantities() +{ + $ok =1; foreach ($_SESSION['Items']->line_items as $line_no=>$itm) { + if ($itm->quantity == $itm->qty_done) { + continue; // this line was fully credited/removed + } if (isset($_POST['Line'.$line_no])) { - if (check_num('Line'.$line_no, ($itm->quantity - $itm->qty_done))) { + if (check_num('Line'.$line_no, 0, $itm->quantity)) { $_SESSION['Items']->line_items[$line_no]->qty_dispatched = input_num('Line'.$line_no); } } + else { + $ok = 0; + } if (isset($_POST['Line'.$line_no.'Desc'])) { $line_desc = $_POST['Line'.$line_no.'Desc']; @@ -156,6 +172,7 @@ if (isset($_GET['InvoiceNumber']) && $_GET['InvoiceNumber'] > 0) { } } } + return $ok; } //----------------------------------------------------------------------------- @@ -178,6 +195,7 @@ function copy_from_cart() $_POST['CreditDate']= $cart->document_date; $_POST['Location']= $cart->Location; $_POST['CreditText']= $cart->Comments; + $_POST['cart_id'] = $cart->cart_id; } //----------------------------------------------------------------------------- @@ -189,6 +207,7 @@ if (isset($_POST['ProcessCredit']) && can_process()) { $_POST['WriteOffGLCode'] = 0; copy_to_cart(); + if ($new_credit) new_doc_date($_SESSION['Items']->document_date); $credit_no = $_SESSION['Items']->write($_POST['WriteOffGLCode']); processing_end(); @@ -211,7 +230,8 @@ function display_credit_items() { global $table_style, $table_style2; - start_form(false, true); + start_form(); + hidden('cart_id'); start_table("$table_style2 width=80%", 5); echo ""; // outer table @@ -254,7 +274,7 @@ function display_credit_items() label_row(_("Invoice Date"), $_SESSION['Items']->src_date, "class='tableheader2'"); - date_row(_("Credit Note Date"), 'CreditDate', '', null, 0, 0, 0, "class='tableheader2'"); + date_row(_("Credit Note Date"), 'CreditDate', '', $_SESSION['Items']->trans_no==0, 0, 0, 0, "class='tableheader2'"); end_table(); @@ -271,8 +291,8 @@ function display_credit_items() $k = 0; //row colour counter foreach ($_SESSION['Items']->line_items as $line_no=>$ln_itm) { - if ($ln_itm->quantity==$ln_itm->qty_done) { - continue; // this line was fully credited + if ($ln_itm->quantity == $ln_itm->qty_done) { + continue; // this line was fully credited/removed } alt_table_row_color($k); @@ -354,7 +374,7 @@ if (isset($_POST['_CreditType_update'])) } //----------------------------------------------------------------------------- -if (get_post('Update')) +if (get_post('Update')) { $Ajax->activate('credit_items'); } @@ -366,7 +386,7 @@ display_credit_options(); echo "
"; submit('Update', _("Update"), true, _('Update credit value for quantities entered'), true); echo " "; -submit('ProcessCredit', _("Process Credit Note"), true, '', true); +submit('ProcessCredit', _("Process Credit Note"), true, '', 'default'); echo "
"; end_form();