X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fallocations%2Fsupplier_allocate.php;h=5f77c152afd5e620b533bdd17e110be36e02c4a1;hb=d2cc0860eccf02eaefcd90731ac3af141a841529;hp=6a0e83e3247f65692914e0f381ad0f073928d7ce;hpb=a5242af68e65661edb7175412444dce536a7f311;p=fa-stable.git diff --git a/purchasing/allocations/supplier_allocate.php b/purchasing/allocations/supplier_allocate.php index 6a0e83e3..5f77c152 100644 --- a/purchasing/allocations/supplier_allocate.php +++ b/purchasing/allocations/supplier_allocate.php @@ -9,8 +9,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ -$path_to_root="../.."; -$page_security = 3; +$page_security = 'SA_SUPPLIERALLOC'; +$path_to_root = "../.."; include($path_to_root . "/includes/ui/allocation_cart.inc"); include_once($path_to_root . "/includes/session.inc"); @@ -18,6 +18,7 @@ include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/banking.inc"); include_once($path_to_root . "/sales/includes/sales_db.inc"); +//include_once($path_to_root . "/purchasing/includes/ui/supp_alloc_ui.inc"); $js = ""; if ($use_popup_windows) @@ -25,7 +26,7 @@ if ($use_popup_windows) add_js_file('allocate.js'); -page(_("Allocate Supplier Payment or Credit Note"), false, false, "", $js); +page(_($help_context = "Allocate Supplier Payment or Credit Note"), false, false, "", $js); //-------------------------------------------------------------------------------- @@ -40,154 +41,13 @@ function clear_allocations() } //-------------------------------------------------------------------------------- -function check_data() -{ - $total_allocated = 0; - - for ($counter = 0; $counter < $_POST["TotalNumberOfAllocs"]; $counter++) - { - if (!check_num('amount' . $counter, 0)) - { - display_error(_("The entry for one or more amounts is invalid or negative.")); - set_focus('amount'.$counter); - return false; - } - - /*Now check to see that the AllocAmt is no greater than the - amount left to be allocated against the transaction under review */ - if (input_num('amount' . $counter) > $_POST['un_allocated' . $counter]) - { - //$_POST['amount' . $counter] = $_POST['un_allocated' . $counter]; - } - - $_SESSION['alloc']->allocs[$counter]->current_allocated = input_num('amount' . $counter); - - $total_allocated += input_num('amount' . $counter); - } - - if ($total_allocated + $_SESSION['alloc']->amount > sys_prefs::allocation_settled_allowance()) - { - display_error(_("These allocations cannot be processed because the amount allocated is more than the total amount left to allocate.")); - //echo _("Total allocated:") . " " . $total_allocated ; - //echo " " . _("Total amount that can be allocated:") . " " . -$_SESSION['alloc']->TransAmt . "
"; - return false; - } - - return true; -} - -//----------------------------------------------------------------------------------- - -function handle_process() -{ - begin_transaction(); - - // clear all the allocations for this payment/credit - clear_supp_alloctions($_SESSION['alloc']->type, $_SESSION['alloc']->trans_no, $_SESSION['alloc']->date_); - - // now add the new allocations - $total_allocated = 0; - foreach ($_SESSION['alloc']->allocs as $alloc_item) - { - if ($alloc_item->current_allocated > 0) - { - add_supp_allocation($alloc_item->current_allocated, - $_SESSION['alloc']->type, $_SESSION['alloc']->trans_no, - $alloc_item->type, $alloc_item->type_no, $_SESSION['alloc']->date_); - - update_supp_trans_allocation($alloc_item->type, $alloc_item->type_no, - $alloc_item->current_allocated); - - // Exchange Variations Joe Hunt 2008-09-20 //////////////////////////////////////// - - exchange_variation($_SESSION['alloc']->type, $_SESSION['alloc']->trans_no, - $alloc_item->type, $alloc_item->type_no, $_SESSION['alloc']->date_, - $alloc_item->current_allocated, payment_person_types::supplier()); - - /////////////////////////////////////////////////////////////////////////// - $total_allocated += $alloc_item->current_allocated; - } - - } /*end of the loop through the array of allocations made */ - update_supp_trans_allocation($_SESSION['alloc']->type, - $_SESSION['alloc']->trans_no, $total_allocated); - - commit_transaction(); - - clear_allocations(); -} - -//-------------------------------------------------------------------------------- - -if (isset($_POST['Process'])) -{ - if (check_data()) - { - handle_process(); - $_POST['Cancel'] = 1; - } -} - -//-------------------------------------------------------------------------------- - -if (isset($_POST['Cancel'])) -{ - clear_allocations(); - meta_forward($path_to_root . "/purchasing/allocations/supplier_allocation_main.php"); -} -//-------------------------------------------------------------------------------- - -function get_allocations_for_transaction($type, $trans_no) -{ - clear_allocations(); - - $supptrans = get_supp_trans($trans_no, $type); - - $_SESSION['alloc'] = new allocation($trans_no, $type, - $supptrans["supplier_id"], $supptrans["supplier_name"], - $supptrans["Total"], sql2date($supptrans["tran_date"])); - - /* Now populate the array of possible (and previous actual) allocations for this supplier */ - /*First get the transactions that have outstanding balances ie Total-alloc >0 */ - - $trans_items = get_allocatable_to_supp_transactions($_SESSION['alloc']->person_id); - - while ($myrow = db_fetch($trans_items)) - { - $_SESSION['alloc']->add_item($myrow["type"], $myrow["trans_no"], - sql2date($myrow["tran_date"]), - sql2date($myrow["due_date"]), - $myrow["Total"], // trans total - $myrow["alloc"], // trans total allocated - 0); // this allocation - } - - - /* Now get trans that might have previously been allocated to by this trans - NB existing entries where still some of the trans outstanding entered from - above logic will be overwritten with the prev alloc detail below */ - - $trans_items = get_allocatable_to_supp_transactions($_SESSION['alloc']->person_id, $trans_no, $type); - - while ($myrow = db_fetch($trans_items)) - { - $_SESSION['alloc']->add_or_update_item ($myrow["type"], $myrow["trans_no"], - sql2date($myrow["tran_date"]), - sql2date($myrow["due_date"]), - $myrow["Total"], - $myrow["alloc"] - $myrow["amt"], $myrow["amt"]); - } -} - -//-------------------------------------------------------------------------------- - function edit_allocations_for_transaction($type, $trans_no) { - global $table_style; + global $systypes_array; - start_form(false, true); + start_form(); - display_heading(_("Allocation of") . " " . systypes::name($_SESSION['alloc']->type) . " # " . $_SESSION['alloc']->trans_no); + display_heading(_("Allocation of") . " " . $systypes_array[$_SESSION['alloc']->type] . " # " . $_SESSION['alloc']->trans_no); display_heading($_SESSION['alloc']->person_name); @@ -199,83 +59,53 @@ function edit_allocations_for_transaction($type, $trans_no) div_start('alloc_tbl'); if (count($_SESSION['alloc']->allocs) > 0) { - start_table($table_style); - $th = array(_("Transaction Type"), _("#"), _("Date"), _("Due Date"), _("Amount"), - _("Other Allocations"), _("This Allocation"), _("Left to Allocate"),''); - table_header($th); - - $k = $counter = $total_allocated = 0; - - foreach ($_SESSION['alloc']->allocs as $alloc_item) - { - alt_table_row_color($k); - - label_cell(systypes::name($alloc_item->type)); - label_cell(get_trans_view_str($alloc_item->type, $alloc_item->type_no)); - label_cell($alloc_item->date_, "align=right"); - label_cell($alloc_item->due_date, "align=right"); - amount_cell($alloc_item->amount); - amount_cell($alloc_item->amount_allocated); - - $_POST['amount' . $counter] = price_format($alloc_item->current_allocated); - amount_cells(null, "amount" . $counter, price_format('amount' . $counter)); - - $un_allocated = round($alloc_item->amount - $alloc_item->amount_allocated, 6); - amount_cell($un_allocated); - label_cell("" - . _("All") . ""); - label_cell("" - . _("None") . "".hidden("un_allocated" . $counter, $un_allocated, false)); - end_row(); - - $total_allocated += input_num('amount' . $counter); - $counter++; - } - - label_row(_("Total Allocated"), number_format2($total_allocated,user_price_dec()), - "colspan=6 align=right", "align=right id='total_allocated'"); - if (-$_SESSION['alloc']->amount - $total_allocated < 0) - { - $font1 = ""; - $font2 = ""; - } - else - $font1 = $font2 = ""; - $left_to_allocate = price_format(-$_SESSION['alloc']->amount - $total_allocated); - label_row(_("Left to Allocate"), $font1 . $left_to_allocate . $font2, "colspan=6 align=right", - "nowrap align=right id='left_to_allocate'"); - end_table(); - - hidden('TotalNumberOfAllocs', $counter); + show_allocatable(true); submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true); - submit('Process', _("Process"), true, _('Process allocations'), true); + submit('Process', _("Process"), true, _('Process allocations'), 'default'); submit_center_last('Cancel', _("Back to Allocations"), - _('Abandon allocations and return to selection of allocatable amounts'), true); + _('Abandon allocations and return to selection of allocatable amounts'), 'cancel'); } else { display_note(_("There are no unsettled transactions to allocate."), 0, 1); submit_center('Cancel', _("Back to Allocations"), true, - _('Abandon allocations and return to selection of allocatable amounts'), true); + _('Abandon allocations and return to selection of allocatable amounts'), 'cancel'); } div_end(); end_form(); } +//-------------------------------------------------------------------------------- + +if (isset($_POST['Process'])) +{ + if (check_allocations()) + { + $_SESSION['alloc']->write(); + clear_allocations(); + $_POST['Cancel'] = 1; + } +} + +//-------------------------------------------------------------------------------- + +if (isset($_POST['Cancel'])) +{ + clear_allocations(); + meta_forward($path_to_root . "/purchasing/allocations/supplier_allocation_main.php"); +} //-------------------------------------------------------------------------------- if (isset($_GET['trans_no']) && isset($_GET['trans_type'])) { - get_allocations_for_transaction($_GET['trans_type'], $_GET['trans_no']); + $_SESSION['alloc'] = new allocation($_GET['trans_type'], $_GET['trans_no']); } -if(get_post('UpdateDisplay')) + +if (get_post('UpdateDisplay')) { - $trans_no = $_SESSION['alloc']->trans_no; - $type = $_SESSION['alloc']->type; - clear_allocations(); - get_allocations_for_transaction($type, $trans_no); + $_SESSION['alloc']->read(); $Ajax->activate('alloc_tbl'); }