Credit note can be posted without customer selected when search customer List is...
[fa-stable.git] / sales / credit_note_entry.php
index f09aded1a91359508fd58a5b05e5d43d743d1f7c..7a7a8ced1e8ca2f5f0c91156d6f3b386bf300051 100644 (file)
@@ -26,10 +26,10 @@ include_once($path_to_root . "/sales/includes/ui/sales_order_ui.inc");
 include_once($path_to_root . "/reporting/includes/reporting.inc");
 
 $js = "";
-if ($use_popup_windows) {
+if ($SysPrefs->use_popup_windows) {
        $js .= get_js_open_window(900, 500);
 }
-if ($use_date_picker) {
+if (user_use_date_picker()) {
        $js .= get_js_date_picker();
 }
 
@@ -67,23 +67,25 @@ if (isset($_GET['AddedID'])) {
 
        display_note(get_customer_trans_view_str($trans_type, $credit_no, _("&View this credit note")), 0, 1);
 
-       display_note(print_document_link($credit_no, _("&Print This Credit Invoice"), true, ST_CUSTCREDIT),0, 1);
-       display_note(print_document_link($credit_no, _("&Email This Credit Invoice"), true, ST_CUSTCREDIT, false, "printlink", "", 1),0, 1);
+       display_note(print_document_link($credit_no."-".$trans_type, _("&Print This Credit Invoice"), true, ST_CUSTCREDIT),0, 1);
+       display_note(print_document_link($credit_no."-".$trans_type, _("&Email This Credit Invoice"), true, ST_CUSTCREDIT, false, "printlink", "", 1),0, 1);
 
        display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL &Journal Entries for this Credit Note")));
 
        hyperlink_params($_SERVER['PHP_SELF'], _("Enter Another &Credit Note"), "NewCredit=yes");
 
+       hyperlink_params("$path_to_root/admin/attachments.php", _("Add an Attachment"), "filterType=$trans_type&trans_no=$credit_no");
+
        display_footer_exit();
 } else
-       check_edit_conflicts();
+       check_edit_conflicts(get_post('cart_id'));
 
 //--------------------------------------------------------------------------------
 
 function line_start_focus() {
-  global $Ajax;
-  $Ajax->activate('items_table');
-  set_focus('_stock_id_edit');
+       global $Ajax;
+       $Ajax->activate('items_table');
+       set_focus('_stock_id_edit');
 }
 
 //-----------------------------------------------------------------------------
@@ -94,9 +96,10 @@ function copy_to_cn()
        $cart->Comments = $_POST['CreditText'];
        $cart->document_date = $_POST['OrderDate'];
        $cart->freight_cost = input_num('ChargeFreightCost');
-       $cart->Location = $_POST["Location"];
+       $cart->Location = (isset($_POST["Location"]) ? $_POST["Location"] : "");
        $cart->sales_type = $_POST['sales_type_id'];
-       $cart->reference = $_POST['ref'];
+       if ($cart->trans_no == 0)
+               $cart->reference = $_POST['ref'];
        $cart->ship_via = $_POST['ShipperID'];
        $cart->dimension_id = $_POST['dimension_id'];
        $cart->dimension2_id = $_POST['dimension2_id'];
@@ -112,7 +115,8 @@ function copy_from_cn()
        $_POST['ChargeFreightCost'] = price_format($cart->freight_cost);
        $_POST['Location'] = $cart->Location;
        $_POST['sales_type_id'] = $cart->sales_type;
-       $_POST['ref'] = $cart->reference;
+       if ($cart->trans_no == 0)
+               $_POST['ref'] = $cart->reference;
        $_POST['ShipperID'] = $cart->ship_via;
        $_POST['dimension_id'] = $cart->dimension_id;
        $_POST['dimension2_id'] = $cart->dimension2_id;
@@ -124,7 +128,7 @@ function copy_from_cn()
 function handle_new_credit($trans_no)
 {
        processing_start();
-       $_SESSION['Items'] = new Cart(11,$trans_no);
+       $_SESSION['Items'] = new Cart(ST_CUSTCREDIT,$trans_no);
        copy_from_cn();
 }
 
@@ -136,25 +140,39 @@ function can_process()
 
        $input_error = 0;
 
-       if ($_SESSION['Items']->count_items() == 0 && (!check_num('ChargeFreightCost',0)))
+       if (!get_post('customer_id')) 
+       {
+               display_error(_("There is no customer selected."));
+               set_focus('customer_id');
+               return false;
+       } 
+       
+       if (!get_post('branch_id')) 
+       {
+               display_error(_("This customer has no branch defined."));
+               set_focus('branch_id');
                return false;
+       } 
+       if ($_SESSION['Items']->count_items() == 0 && !input_num('ChargeFreightCost',0))
+       {
+               display_error(_("You must enter at least one non empty item line."));
+               set_focus('AddItem');
+               return false;
+       }
        if($_SESSION['Items']->trans_no == 0) {
-           if (!$Refs->is_valid($_POST['ref'])) {
-               display_error( _("You must enter a reference."));
-               set_focus('ref');
-               $input_error = 1;
-           } elseif (!is_new_reference($_POST['ref'], ST_CUSTCREDIT))  {
-               display_error( _("The entered reference is already in use."));
-               set_focus('ref');
-               $input_error = 1;
-           }
+           if (!$Refs->is_valid($_POST['ref'], ST_CUSTCREDIT)) {
+                       display_error( _("You must enter a reference."));
+                       set_focus('ref');
+                       $input_error = 1;
+               }
        }
+
        if (!is_date($_POST['OrderDate'])) {
                display_error(_("The entered date for the credit note is invalid."));
                set_focus('OrderDate');
                $input_error = 1;
        } elseif (!is_date_in_fiscalyear($_POST['OrderDate'])) {
-               display_error(_("The entered date is not in fiscal year."));
+               display_error(_("The entered date is out of fiscal year or is closed for further data entry."));
                set_focus('OrderDate');
                $input_error = 1;
        }
@@ -170,17 +188,23 @@ if (isset($_POST['ProcessCredit']) && can_process()) {
                display_note(_("For credit notes created to write off the stock, a general ledger account is required to be selected."), 1, 0);
                display_note(_("Please select an account to write the cost of the stock off to, then click on Process again."), 1, 0);
                exit;
-               
        }
        if (!isset($_POST['WriteOffGLCode'])) {
                $_POST['WriteOffGLCode'] = 0;
        }
        copy_to_cn();
        $credit_no = $_SESSION['Items']->write($_POST['WriteOffGLCode']);
-       new_doc_date($_SESSION['Items']->document_date);
-       processing_end();
-       meta_forward($_SERVER['PHP_SELF'], "AddedID=$credit_no");
-
+       if ($credit_no == -1)
+       {
+               display_error(_("The entered reference is already in use."));
+               set_focus('ref');
+       }
+       else
+       {
+               new_doc_date($_SESSION['Items']->document_date);
+               processing_end();
+               meta_forward($_SERVER['PHP_SELF'], "AddedID=$credit_no");
+       }
 } /*end of process credit note */
 
   //-----------------------------------------------------------------------------
@@ -253,7 +277,7 @@ if (isset($_POST['CancelItemChanges']))
 //-----------------------------------------------------------------------------
 
 if (!processing_active()) {
-       handle_new_credit();
+       handle_new_credit(0);
 }
 
 //-----------------------------------------------------------------------------
@@ -264,7 +288,7 @@ hidden('cart_id');
 $customer_error = display_credit_header($_SESSION['Items']);
 
 if ($customer_error == "") {
-       start_table(TABLESTYLE, "width=80%", 10);
+       start_table(TABLESTYLE, "width='80%'", 10);
        echo "<tr><td>";
        display_credit_items(_("Credit Note Items"), $_SESSION['Items']);
        credit_options_controls($_SESSION['Items']);
@@ -282,4 +306,3 @@ echo "</tr></table></center>";
 end_form();
 end_page();
 
-?>