Credit note can be posted without customer selected when search customer List is...
[fa-stable.git] / sales / credit_note_entry.php
index 31f640f47ea2e143784ca20d0b30a64d612ca0a4..7a7a8ced1e8ca2f5f0c91156d6f3b386bf300051 100644 (file)
@@ -13,8 +13,8 @@
 //
 //     Entry/Modify free hand Credit Note
 //
-$page_security = 3;
-$path_to_root="..";
+$page_security = 'SA_SALESCREDIT';
+$path_to_root = "..";
 include_once($path_to_root . "/sales/includes/cart_class.inc");
 include_once($path_to_root . "/includes/session.inc");
 include_once($path_to_root . "/includes/data_checks.inc");
@@ -26,20 +26,20 @@ 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();
 }
 
 if(isset($_GET['NewCredit'])) {
-       $_SESSION['page_title'] = _("Customer Credit Note");
+       $_SESSION['page_title'] = _($help_context = "Customer Credit Note");
        handle_new_credit(0);
 } elseif (isset($_GET['ModifyCredit'])) {
        $_SESSION['page_title'] = sprintf(_("Modifying Customer Credit Note #%d"), $_GET['ModifyCredit']);
        handle_new_credit($_GET['ModifyCredit']);
-       $help_page_title = _("Modifying Customer Credit Note");
+       $help_context = "Modifying Customer Credit Note";
 }
 
 page($_SESSION['page_title'],false, false, "", $js);
@@ -61,29 +61,31 @@ if (list_updated('branch_id')) {
 
 if (isset($_GET['AddedID'])) {
        $credit_no = $_GET['AddedID'];
-       $trans_type = 11;
+       $trans_type = ST_CUSTCREDIT;
 
        display_notification_centered(sprintf(_("Credit Note # %d has been processed"),$credit_no));
 
        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, 11),0, 1);
-       display_note(print_document_link($credit_no, _("&Email This Credit Invoice"), true, 11, false, "", "", 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();
 }
 
@@ -132,28 +136,43 @@ function handle_new_credit($trans_no)
 
 function can_process()
 {
+       global $Refs;
 
        $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 (!references::is_valid($_POST['ref'])) {
-               display_error( _("You must enter a reference."));
-               set_focus('ref');
-               $input_error = 1;
-           } elseif (!is_new_reference($_POST['ref'], 11))     {
-               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;
        }
@@ -169,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 */
 
   //-----------------------------------------------------------------------------
@@ -252,7 +277,7 @@ if (isset($_POST['CancelItemChanges']))
 //-----------------------------------------------------------------------------
 
 if (!processing_active()) {
-       handle_new_credit();
+       handle_new_credit(0);
 }
 
 //-----------------------------------------------------------------------------
@@ -263,7 +288,7 @@ hidden('cart_id');
 $customer_error = display_credit_header($_SESSION['Items']);
 
 if ($customer_error == "") {
-       start_table("$table_style 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']);
@@ -281,4 +306,3 @@ echo "</tr></table></center>";
 end_form();
 end_page();
 
-?>