From 64f1b4191a5919613798b94645a4a67c319fd9c7 Mon Sep 17 00:00:00 2001 From: jekkos-t520 Date: Thu, 4 Dec 2014 22:01:40 +0100 Subject: [PATCH] Invoice number can now be enabled/disabled Invoice unique constraint only applies when enabling invoice Correct several HTML structure errors in sale and order modules Make the top module bar a bit wider Fix payment details css when hiding/showing invoice number field --- application/controllers/sales.php | 18 +- application/libraries/Sale_lib.php | 18 ++ application/views/receivings/receiving.php | 274 +++++++-------------- application/views/sales/register.php | 147 ++++++----- css/menubar.css | 2 +- css/register.css | 2 +- 6 files changed, 195 insertions(+), 266 deletions(-) diff --git a/application/controllers/sales.php b/application/controllers/sales.php index fc9fdde9d..a5b735be2 100644 --- a/application/controllers/sales.php +++ b/application/controllers/sales.php @@ -59,6 +59,11 @@ class Sales extends Secure_area $this->sale_lib->set_invoice_number($this->input->post('sales_invoice_number')); } + function set_invoice_number_enabled() + { + $this->sale_lib->set_invoice_number_enabled($this->input->post('sales_invoice_number_enabled')); + } + function set_email_receipt() { $this->sale_lib->set_email_receipt($this->input->post('email_receipt')); @@ -210,11 +215,11 @@ class Sales extends Secure_area $data['total']=$this->sale_lib->get_total(); $data['receipt_title']=$this->lang->line('sales_receipt'); $data['transaction_time']= date('m/d/Y h:i:s a'); - $stock_locations = $this->Stock_locations->get_undeleted_all()->result_array(); - $data['show_stock_locations'] = count($stock_locations) > 1; + $stock_locations=$this->Stock_locations->get_undeleted_all()->result_array(); + $data['show_stock_locations']=count($stock_locations) > 1; $customer_id=$this->sale_lib->get_customer(); $employee_id=$this->Employee->get_logged_in_employee_info()->person_id; - $comment = $this->sale_lib->get_comment(); + $comment=$this->sale_lib->get_comment(); $emp_info=$this->Employee->get_info($employee_id); $data['payments']=$this->sale_lib->get_payments(); $data['amount_change']=to_currency($this->sale_lib->get_amount_due() * -1); @@ -226,15 +231,15 @@ class Sales extends Secure_area $data['customer']=$cust_info->first_name.' '.$cust_info->last_name; } $invoice_number=$this->_substitute_invoice_number($cust_info); - if ($this->Sale->invoice_number_exists($invoice_number)) + if ($this->sale_lib->is_invoice_number_enabled() && $this->Sale->invoice_number_exists($invoice_number)) { $data['error']=$this->lang->line('sales_invoice_number_duplicate'); $this->_reload($data); } else { + $invoice_number = $this->sale_lib->is_invoice_number_enabled() ? $invoice_number : NULL; $data['invoice_number']=$invoice_number; - //SAVE sale to database $data['sale_id']='POS '.$this->Sale->save($data['cart'], $customer_id,$employee_id,$comment,$invoice_number,$data['payments']); if ($data['sale_id'] == 'POS -1') { @@ -443,7 +448,8 @@ class Sales extends Secure_area $data['customer_email']=$cust_info->email; } $data['invoice_number']=$this->_substitute_invoice_number($cust_info); - $data['payments_cover_total'] = $this->_payments_cover_total(); + $data['invoice_number_enabled']=$this->sale_lib->is_invoice_number_enabled(); + $data['payments_cover_total']=$this->_payments_cover_total(); $this->load->view("sales/register",$data); $this->_remove_duplicate_cookies(); } diff --git a/application/libraries/Sale_lib.php b/application/libraries/Sale_lib.php index d2458ed95..cd9fa7e6e 100644 --- a/application/libraries/Sale_lib.php +++ b/application/libraries/Sale_lib.php @@ -67,6 +67,23 @@ class Sale_lib $this->CI->session->unset_userdata('sales_invoice_number'); } + function is_invoice_number_enabled() + { + return $this->CI->session->userdata('sales_invoice_number_enabled') == 'true' || + $this->CI->session->userdata('sales_invoice_number_enabled') == '1'; + } + + function set_invoice_number_enabled($invoice_number_enabled) + { + return $this->CI->session->set_userdata('sales_invoice_number_enabled', $invoice_number_enabled); + } + + function clear_invoice_number_enabled() + { + $enable = $this->CI->config->config['sales_invoice_enable']; + $this->set_invoice_number_enabled($enable); + } + function get_email_receipt() { return $this->CI->session->userdata('email_receipt'); @@ -470,6 +487,7 @@ class Sale_lib $this->clear_comment(); $this->clear_email_receipt(); $this->clear_invoice_number(); + $this->clear_invoice_number_enabled(); $this->empty_payments(); $this->remove_customer(); } diff --git a/application/views/receivings/receiving.php b/application/views/receivings/receiving.php index ffaf75427..ffa0b90c3 100644 --- a/application/views/receivings/receiving.php +++ b/application/views/receivings/receiving.php @@ -13,30 +13,14 @@ if(isset($error))
'mode_form')); ?> - lang->line('recvs_mode') ?> + lang->line('recvs_mode') ?> - - - lang->line('recvs_stock_source') ?> - - - lang->line('recvs_stock_destination') ?> - 'add_item_form')); ?>