Example #1
0
 function get_ratios()
 {
     $product = new Product();
     $meras = new Mera();
     $ratios = new Ratio_mera();
     $product_name = $this->input->post('product_name');
     $product->get_by_name($product_name);
     if (!$product->id) {
         return;
     }
     $meras->get_full_info();
     $this->data['product'] = $product;
     $this->data['ratios'] = $product->get_ratios();
     $this->data['meras'] = $meras;
     $this->data['scalar_meras'] = dm_get_array_by_filtr('type', 1, $meras);
     $this->data['relative_meras'] = dm_get_array_by_filtr('type', 2, $meras);
     $this->load->view('admin/ratio_meras/subs/product_data', $this->data);
     $this->output->enable_profiler(TRUE);
 }
Example #2
0
 function edit()
 {
     $this->load->library('form_validation');
     array_push($this->data['js_functions'], array('name' => 'ratio_meras_edit_init', 'data' => FALSE));
     $product = new Product();
     $meras = new Mera();
     $product_name = $this->input->post('inp_product');
     $mera_scalars = $this->input->post('mera_scalars') ? $this->input->post('mera_scalars') : array();
     $mera_relatives = $this->input->post('mera_relatives') ? $this->input->post('mera_relatives') : array();
     $val_scalars = $this->input->post('val_scalars') ? $this->input->post('val_scalars') : array();
     $val_relatives = $this->input->post('val_relatives') ? $this->input->post('val_relatives') : array();
     $remove_ratios = $this->input->post('hidden_ratio_removed') ? $this->input->post('hidden_ratio_removed') : array();
     #spisok dobavlenii ili izmenenii
     $ratios = array();
     #
     if ($product_name) {
         $product->get_by_name($product_name);
         if ($product->id) {
             if ($this->form_validation->run('product_meras')) {
                 #generiruen array vida ('scalar'=> zna4enie, relative=> zna4enie)
                 #kotorii bedet parameterom zaprosa v baze Ratio_Meras
                 $ratios = array_map('get_ratios_array', $mera_scalars, $val_scalars, $mera_relatives, $val_relatives);
                 #generiruet spisok udalenia (preobrazua 3_2 v array('scalar'=>3,'relative=>2'))
                 $remove_ratios = array_map('explode_scalar_relative', $remove_ratios);
                 #
                 foreach ($ratios as $ratio) {
                     if (empty($ratio)) {
                         continue;
                     }
                     #soedinaet meri i producti
                     $dm_ratio = $product->get_ratios($ratio);
                     #esli net svazi to sozdaen novuu
                     if (!$dm_ratio->id) {
                         $dm_ratio = new Ratio_mera();
                     }
                     #
                     $dm_ratio->scalar = $ratio['scalar'];
                     $dm_ratio->scalar_value = $ratio['val_scalar'];
                     $dm_ratio->relative = $ratio['relative'];
                     $dm_ratio->relative_value = $ratio['val_relative'];
                     if ($dm_ratio->save($product)) {
                         $this->data['form_success'] = 'Обновлено';
                     } else {
                         $this->data['form_error'] = 'error';
                     }
                 }
                 #Udalaet vibranie sootnoshenia mer
                 foreach ($remove_ratios as $ratio) {
                     $dm_ratio = $product->get_ratios($ratio);
                     $dm_ratio->delete();
                 }
             } else {
                 $this->data['form_error'] = validation_errors();
             }
         }
     }
     #
     $meras->get_full_info();
     $this->data['product'] = $product;
     $this->data['meras'] = $meras;
     $this->data['ratios'] = $product->get_ratios();
     #
     $this->template->load('/admin/templates/main_template', 'admin/ratio_meras/edit', $this->data);
 }