From 08325c8cf785e4cecfeb8c2abde62d6b4554c1f1 Mon Sep 17 00:00:00 2001 From: jekkos-t520 Date: Wed, 28 Jan 2015 18:31:50 +0100 Subject: [PATCH] Fix last stock_locations config quirks --- application/models/stock_locations.php | 51 +++++++++---------- application/views/config.php | 4 +- application/views/employees/form.php | 3 +- application/views/partial/stock_locations.php | 36 +++++++------ database/database.sql | 4 +- 5 files changed, 49 insertions(+), 49 deletions(-) diff --git a/application/models/stock_locations.php b/application/models/stock_locations.php index d8021b22f..2d3ab0220 100644 --- a/application/models/stock_locations.php +++ b/application/models/stock_locations.php @@ -80,31 +80,26 @@ class Stock_locations extends CI_Model { if (!$this->exists($location_id)) { - if($this->db->insert('stock_locations',$location_data)) - { - $location_name = $location_data['location_name']; - $this->db->trans_start(); - $location_data = array('location_name'=>$location_name,'deleted'=>0); - $this->db->insert('stock_locations',$location_data); - $location_id = $this->db->insert_id(); - - $this->_insert_new_permission('items', $location_id, $location_name); - $this->_insert_new_permission('sales', $location_id, $location_name); - $this->_insert_new_permission('receivings', $location_id, $location_name); + $location_name = $location_data['location_name']; + $this->db->trans_start(); + $location_data = array('location_name'=>$location_name,'deleted'=>0); + $this->db->insert('stock_locations',$location_data); + $location_id = $this->db->insert_id(); + + $this->_insert_new_permission('items', $location_id, $location_name); + $this->_insert_new_permission('sales', $location_id, $location_name); + $this->_insert_new_permission('receivings', $location_id, $location_name); - // insert quantities for existing items - $items = $this->Item->get_all(); - foreach ($items->result_array() as $item) - { - $quantity_data = array('item_id' => $item['item_id'], 'location_id' => $location_id, 'quantity' => 0); - $this->db->insert('item_quantities', $quantity_data); - } - $this->db->trans_complete(); - return TRUE; - } - return FALSE; - } + // insert quantities for existing items + $items = $this->Item->get_all(); + foreach ($items->result_array() as $item) + { + $quantity_data = array('item_id' => $item['item_id'], 'location_id' => $location_id, 'quantity' => 0); + $this->db->insert('item_quantities', $quantity_data); + } + $this->db->trans_complete(); + } else { $this->db->where('location_id', $location_id); @@ -125,8 +120,6 @@ class Stock_locations extends CI_Model { $grants_data = array('permission_id' => $permission_id, 'person_id' => $employee['person_id']); $this->db->insert('grants', $grants_data); - - $this->db->delete('permissions', array('permission_id' => 'items_'.$location_name)); } } @@ -136,8 +129,14 @@ class Stock_locations extends CI_Model */ function delete($location_id) { + $this->db->trans_start(); $this->db->where('location_id', $location_id); - return $this->db->update('stock_locations', array('deleted' => 1)); + $this->db->update('stock_locations', array('deleted' => 1)); + + // should delete permissions and grants as well? + $this->db->where('location_id', $location_id); + $this->db->delete('permissions'); + $this->db->trans_complete(); } diff --git a/application/views/config.php b/application/views/config.php index 7319da59b..df840fe1d 100644 --- a/application/views/config.php +++ b/application/views/config.php @@ -259,7 +259,9 @@ echo form_open('config/save/',array('id'=>'config_form')); -load->view('partial/stock_locations', array('stock_locations' => $stock_locations)); ?> +
+ load->view('partial/stock_locations', array('stock_locations' => $stock_locations)); ?> +
lang->line('config_sales_invoice_format').':', 'sales_invoice_format',array('class'=>'wide')); ?> diff --git a/application/views/employees/form.php b/application/views/employees/form.php index 7f38f6b62..5951b6548 100644 --- a/application/views/employees/form.php +++ b/application/views/employees/form.php @@ -161,7 +161,8 @@ $(document).ready(function() { equalTo: "#password" }, - email: "email", "grants[]" : { + email: "email", + "grants[]" : { required : function(element) { var checked = false; $("ul#permission_list > li > input:checkbox").each(function() diff --git a/application/views/partial/stock_locations.php b/application/views/partial/stock_locations.php index 6cbe4f292..7c8f741fc 100644 --- a/application/views/partial/stock_locations.php +++ b/application/views/partial/stock_locations.php @@ -1,19 +1,17 @@ -
- - $location_data ) { ?> - - - - -
\ No newline at end of file + + $location_data ) { ?> + + + + diff --git a/database/database.sql b/database/database.sql index 4783eaab4..67c53e136 100644 --- a/database/database.sql +++ b/database/database.sql @@ -737,8 +737,8 @@ ALTER TABLE `ospos_permissions` -- Constraints for table `ospos_grants` -- ALTER TABLE `ospos_grants` - ADD CONSTRAINT `ospos_grants_ibfk_1` foreign key (`permission_id`) references `ospos_permissions` (`permission_id`), - ADD CONSTRAINT `ospos_grants_ibfk_2` foreign key (`person_id`) references `ospos_employees` (`person_id`); + ADD CONSTRAINT `ospos_grants_ibfk_1` foreign key (`permission_id`) references `ospos_permissions` (`permission_id`) ON DELETE CASCADE, + ADD CONSTRAINT `ospos_grants_ibfk_2` foreign key (`person_id`) references `ospos_employees` (`person_id`) ON DELETE CASCADE; -- -- Constraints for table `ospos_receivings`