'Lieferzonen', 'db_table' => 'shipping_area', 'list_fields' => array( array( 'db_field' => 'name', 'name' => 'Lieferzone', 'sortable' => 1 ) ), 'search_fields' => array('name'), 'db_id_field' => 'id', 'edit_link' => 'index.php?admin_modul=admin_shipping_area_editor&id=', 'toolbar' => array( 'delete' => 'index.php?admin_modul=admin_shipping_area_editor&object_id=', 'new' => 'index.php?admin_modul=admin_shipping_area_editor&object=Newsletter', 'copy' => 0, 'select_all' => 1, 'edit' => 0, 'actions' => 0, 'filter' => 0, 'search' => 1 ) ); private $object_fields = array( 'name' => 'text', 'active' => 'integer', 'active_vk' => 'integer', 'active_nn' => 'integer', 'active_pp' => 'integer', 'active_r' => 'integer', 'active_be' => 'integer', 'active_bar' => 'integer', 'active_klarna_rechnung' => 'integer', 'active_klarna_raten' => 'integer', 'active_paymorrow_rechnung' => 'integer', 'active_paymorrow_raten' => 'integer', 'active_billpay_invoice' => 'integer', 'active_computop_creditcard' => 'integer', 'active_customized' => 'integer', 'add_vk' => 'float', 'add_nn' => 'float', 'add_pp' => 'float', 'add_r' => 'float', 'add_be' => 'float', 'add_bar' => 'float', 'add_klarna_rechnung' => 'float', 'add_klarna_raten' => 'float', 'add_paymorrow_rechnung' => 'float', 'add_paymorrow_raten' => 'float', 'add_billpay_invoice' => 'float', 'add_computop_creditcard' => 'float', 'free_payment_vk' => 'float', 'free_payment_nn' => 'float', 'free_payment_pp' => 'float', 'free_payment_r' => 'float', 'free_payment_be' => 'float', 'free_payment_bar' => 'float', 'free_payment_klarna_rechnung' => 'float', 'free_payment_klarna_raten' => 'float', 'free_payment_paymorrow_rechnung' => 'float', 'free_payment_paymorrow_raten' => 'float', 'free_payment_billpay_invoice' => 'float', 'free_payment_computop_creditcard' => 'float', 'free_payment_customized' => 'float', 'add_customized' => 'float', 'account_type_vk' => 'integer', 'account_type_nn' => 'integer', 'account_type_pp' => 'integer', 'account_type_r' => 'integer', 'account_type_be' => 'integer', 'account_type_bar' => 'integer', 'account_type_klarna_rechnung' => 'integer', 'account_type_klarna_raten' => 'integer', 'account_type_paymorrow_rechnung' => 'integer', 'account_type_paymorrow_raten' => 'integer', 'account_type_billpay_invoice' => 'integer', 'account_type_computop_creditcard' => 'integer', 'account_type_customized' => 'integer' ); function __construct($base_object) { $this->base_object = $base_object; $this->db = $base_object->db; } public function get_all() { $sql = "SELECT * FROM shipping_area"; $result = $this->db->query($sql); $data = array(); while ($obj = $result->fetch_object()) { $data[] = $obj; } return $data; } public function get_all_key_id() { $sql = "SELECT * FROM shipping_area"; $result = $this->db->query($sql); $data = array(); while ($obj = $result->fetch_object()) { $data[$obj->id] = $obj; } return $data; } public function get_all_names() { $sql = "SELECT * FROM shipping_area"; $result = $this->db->query($sql); $data = array(); while ($obj = $result->fetch_object()) { $data[$obj->id] = $obj->name; } return $data; } public function get_data() { $sql = "SELECT * FROM shipping_area WHERE id = ".$this->id; $result = $this->db->query($sql); $obj = $result->fetch_object(); if ($obj) { // get deliverers $sql = "SELECT * FROM shipping_area_deliverers WHERE shipping_area_id = ".$obj->id; $result = $this->db->query($sql); $deliverer_data = array(); while ($obj_deliverer = $result->fetch_object()) { $deliverer_data[$obj_deliverer->deliverer_id] = $obj_deliverer; } $obj->deliverer_data = $deliverer_data; } return $obj; } // end get_data public function delete() { $sql = "DELETE FROM shipping_area WHERE id=".$this->id; $this->db->query($sql); return; } public function data_filter($request) { $data = array(); foreach ($this->object_fields as $field_name => $var_type) { if (isset($request[$field_name])) { if ($var_type == 'text') { $data[$field_name] = $request[$field_name]; } else if ($var_type == 'float') { $request[$field_name] = str_replace(',','.',$request[$field_name]); $data[$field_name] = $request[$field_name]; } else { $data[$field_name] = (int)$request[$field_name]; } } } return $data; } public function create($data) { if ($data) { $sql = "INSERT INTO shipping_area SET "; foreach ($data as $var_name => $value) { $value = $this->db->real_escape_string($value); if ($this->object_fields[$var_name] == 'integer') { $sql .= $var_name.' = '.$value.', '; if ($value == '') { $value = 0; } } else if ($this->object_fields[$var_name] == 'float') { $value = str_replace(',','.',$value); if ($value == '') { $value = 0; } $sql .= $var_name.' = '.$value.', '; } else { $sql .= $var_name.' = "'.$value.'", '; } } $sql = substr($sql, 0, -2); $this->db->query($sql); $this->id = $this->db->insert_id; } $this->update_deliverer(); return; } public function update($data) { if ($data) { $sql = "UPDATE shipping_area SET "; foreach ($data as $var_name => $value) { $value = $this->db->real_escape_string($value); if ($this->object_fields[$var_name] == 'integer') { $sql .= $var_name.'='.$value.', '; } else if ($this->object_fields[$var_name] == 'float') { $value = str_replace(',','.',$value); $sql .= $var_name.' = '.$value.', '; } else { $sql .= $var_name.'="'.$value.'", '; } } $sql = substr($sql, 0, -2); $sql .= ' WHERE id='.$this->id; $this->db->query($sql); } $this->update_deliverer(); return; } private function update_deliverer() { // delete old deliverer data $sql = "DELETE FROM shipping_area_deliverers WHERE shipping_area_id=".$this->id; $this->db->query($sql); // set new deliverer data // get deliverer $deliverer_object = new Deliverer($this->base_object); $deliverers = $deliverer_object->get_all(); foreach ($deliverers as $deliverer) { $active = $_POST['deliverer_active_'.$deliverer->id]; $add = str_replace(',','.',$_POST['deliverer_add_'.$deliverer->id]); $bulk_goods_price_add = str_replace(',','.',$_POST['bulk_goods_price_add_'.$deliverer->id]); $cost_type = $_POST['deliverer_cost_type_'.$deliverer->id]; $shipping_free_price = str_replace(',','.',$_POST['deliverer_shipping_free_price_'.$deliverer->id]); $weight_prices = array(); for ($i=1;$i<=10;$i++) { $weight_prices['weight_'.$i] = str_replace(',','.',$_POST['deliverer_'.$deliverer->id.'_shipping_weight_'.$i]); $weight_prices['weight_'.$i.'_price'] = str_replace(',','.',$_POST['deliverer_'.$deliverer->id.'_shipping_price_'.$i]); } $sql = "INSERT INTO shipping_area_deliverers ( shipping_area_id, deliverer_id, active, price_add, deliverer_cost_type, bulk_goods_price_add, weight_1, weight_1_price, weight_2, weight_2_price, weight_3, weight_3_price, weight_4, weight_4_price, weight_5, weight_5_price, weight_6, weight_6_price, weight_7, weight_7_price, weight_8, weight_8_price, weight_9, weight_9_price, weight_10, weight_10_price, shipping_free_price ) VALUES ( ".$this->id.", $deliverer->id, $active, '".$add."', $cost_type, '".$bulk_goods_price_add."', '".$weight_prices['weight_1']."', '".$weight_prices['weight_1_price']."', '".$weight_prices['weight_2']."', '".$weight_prices['weight_2_price']."', '".$weight_prices['weight_3']."', '".$weight_prices['weight_3_price']."', '".$weight_prices['weight_4']."', '".$weight_prices['weight_4_price']."', '".$weight_prices['weight_5']."', '".$weight_prices['weight_5_price']."', '".$weight_prices['weight_6']."', '".$weight_prices['weight_6_price']."', '".$weight_prices['weight_7']."', '".$weight_prices['weight_7_price']."', '".$weight_prices['weight_8']."', '".$weight_prices['weight_8_price']."', '".$weight_prices['weight_9']."', '".$weight_prices['weight_9_price']."', '".$weight_prices['weight_10']."', '".$weight_prices['weight_10_price']."', '".$shipping_free_price."')"; $this->db->query($sql); } } public function delete_by_id($id) { $rs = $this->db->query("DELETE FROM shipping_area WHERE id=$id;"); } }