Stable merged into unstable again (due to failure on binary file during previous...
[fa-stable.git] / sales / credit_note_entry.php
index a33f3407152cea083d6ce715a8e272897bbb326e..7fc278a82643a698fd9542b3841b7ecc7b5f11ec 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");
@@ -34,12 +34,12 @@ if ($use_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);
@@ -51,33 +51,31 @@ check_db_has_stock_items(_("There are no items defined in the system."));
 check_db_has_customer_branches(_("There are no customers, or there are no customers with branches. Please define customers and customer branches."));
 
 //-----------------------------------------------------------------------------
-if ($ret = context_restore()) {
- // return from new customer add
-       copy_from_cn();
-       if(isset($ret['customer_id']))
-               $_POST['customer_id'] = $ret['customer_id'];
-       if(isset($ret['branch_id']))
-               $_POST['branch_id'] = $ret['branch_id'];
-}
-if (isset($_POST['_customer_id_editor'])) {
-       copy_to_cn(); //store context
-       context_call($path_to_root.'/sales/manage/customers.php?debtor_no='.$_POST['customer_id'], 'Items');
+
+if (list_updated('branch_id')) {
+       // when branch is selected via external editor also customer can change
+       $br = get_branch(get_post('branch_id'));
+       $_POST['customer_id'] = $br['debtor_no'];
+       $Ajax->activate('customer_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."-".$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();
@@ -98,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'];
@@ -116,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;
@@ -128,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,17 +136,18 @@ function handle_new_credit($trans_no)
 
 function can_process()
 {
+       global $Refs;
 
        $input_error = 0;
 
        if ($_SESSION['Items']->count_items() == 0 && (!check_num('ChargeFreightCost',0)))
                return false;
        if($_SESSION['Items']->trans_no == 0) {
-           if (!references::is_valid($_POST['ref'])) {
+           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'], 11))     {
+           } elseif (!is_new_reference($_POST['ref'], ST_CUSTCREDIT))  {
                display_error( _("The entered reference is already in use."));
                set_focus('ref');
                $input_error = 1;
@@ -157,7 +158,7 @@ function can_process()
                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;
        }
@@ -180,6 +181,7 @@ if (isset($_POST['ProcessCredit']) && can_process()) {
        }
        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");
 
@@ -255,7 +257,7 @@ if (isset($_POST['CancelItemChanges']))
 //-----------------------------------------------------------------------------
 
 if (!processing_active()) {
-       handle_new_credit();
+       handle_new_credit(0);
 }
 
 //-----------------------------------------------------------------------------
@@ -266,7 +268,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']);