Copyright notes at top op every source file
[fa-stable.git] / sales / customer_credit_invoice.php
index 8d5a104a459e80029a88d176b21ea26f38814645..7d318a9f18a61b92f3e73c1d2c1ff1a731291eeb 100644 (file)
@@ -1,4 +1,14 @@
 <?php
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU Affero General Public License,
+       AGPL, as published by the Free Software Foundation, either version 
+       3 of the License, or (at your option) any later version.
+    This program 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 License here <http://www.gnu.org/licenses/agpl-3.0.html>.
+***********************************************************************/
 //---------------------------------------------------------------------------
 //
 //     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,15 +122,6 @@ 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 "<br><br>";
-               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;
@@ -140,14 +144,23 @@ 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 (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 +169,7 @@ if (isset($_GET['InvoiceNumber']) && $_GET['InvoiceNumber'] > 0) {
                        }
                }
        }
+       return $ok;
 }
 //-----------------------------------------------------------------------------
 
@@ -178,6 +192,7 @@ function copy_from_cart()
   $_POST['CreditDate']= $cart->document_date;
   $_POST['Location']= $cart->Location;
   $_POST['CreditText']= $cart->Comments;
+  $_POST['cart_id'] = $cart->cart_id;
 }
 //-----------------------------------------------------------------------------
 
@@ -212,6 +227,7 @@ function display_credit_items()
        global $table_style, $table_style2;
 
     start_form(false, true);
+       hidden('cart_id');
 
        start_table("$table_style2 width=80%", 5);
        echo "<tr><td>"; // outer table
@@ -354,7 +370,7 @@ if (isset($_POST['_CreditType_update']))
 }
 
 //-----------------------------------------------------------------------------
-if (get_post('Update')) 
+if (get_post('Update'))
 {
        $Ajax->activate('credit_items');
 }