Ejemplo n.º 1
0
 function add()
 {
     /* Loading libraries */
     $this->load->library('form_validation');
     # Js function from main.js which loads by default
     array_push($this->data['js_functions'], array('name' => 'recipe_add_init', 'data' => FALSE));
     $total_products = $this->input->post('total_products');
     #peremenna producta catoraia idet v predstavlenie
     $meras = new Mera();
     $meras->get_iterated();
     if ($this->form_validation->run('recipe_edit')) {
         /* Success on validation */
         $this->_save();
         $data['form_success'] = 'Рецепт Сохранен';
     } else {
         /* Error on validation */
         $data['form_error'] = validation_errors();
     }
     $this->data['dm_meras'] = $meras;
     $this->data['total_products'] = $total_products;
     $this->template->load('/admin/templates/main_template', '/admin/recipes/add', $this->data);
 }
Ejemplo n.º 2
0
 function edit($id = false)
 {
     $this->load->library('form_validation');
     # Js function from main.js which loads by default
     array_push($this->data['js_functions'], array('name' => 'products_edit_init', 'data' => FALSE));
     $product = new Product($id);
     # if form validates
     if ($this->form_validation->run('products_edit')) {
         $product->product_category_id = $this->input->post('product_category_id');
         $product->mera_id = $this->input->post('mera_id');
         $product->price = $this->input->post('price');
         $product->units_for_price = $this->input->post('units_for_price');
         $product->mera_for_price = $this->input->post('mera_for_price');
         #
         if ($this->save_object_name($product)) {
             $nutrition_categories = new Nutrition_category();
             $nutrition_categories->get();
             #
             foreach ($nutrition_categories as $nc) {
                 if (!$this->input->post('nutrition_category_' . $nc->id)) {
                     continue;
                 }
                 $nc->save($product);
                 $nc->set_join_field($product, 'value', $this->input->post('nutrition_category_' . $nc->id));
             }
             #NUTRITION
             $hidden_nutrition_add = $this->input->post('hidden_nutrition') ? $this->input->post('hidden_nutrition') : array();
             $hidden_nutrition_remove = $this->input->post('hidden_nutrition_removed') ? $this->input->post('hidden_nutrition_removed') : array();
             #
             $hidden_nutrition_add = array_map('explode_ext', $hidden_nutrition_add);
             #
             $hidden_nutrition_remove = array_diff($hidden_nutrition_remove, return_subarray_by_key('id', $hidden_nutrition_add));
             #SAVE Nutrition
             $nutrition = new Nutrition();
             foreach ($hidden_nutrition_add as $hn_add) {
                 $nutrition->get_by_id($hn_add['id']);
                 $product->save($nutrition);
                 $product->set_join_field($nutrition, 'value', $hn_add['value']);
             }
             #DELETE Nutrition
             if ($hidden_nutrition_remove) {
                 $nutrition->where_in('id', $hidden_nutrition_remove)->get();
                 $product->delete($nutrition->all);
             }
             #MERAS-PRODUCT
             $selected_mera = $this->input->post('selected_meras');
             $meras = new Mera();
             if ($selected_mera) {
                 $meras->where_not_in('id', $selected_mera)->get();
                 $product->delete($meras->all);
                 $meras->where_in('id', $selected_mera)->get();
                 $product->save($meras->all);
             }
             #IMAGES
             #esli biblioteka my_upload_image_lib proinicializirovalas' verno to image zagrujaetca i resize
             $this->upload_image_lib->initialize(array('type' => 'product', 'size' => 'tiny'));
             #vozvrashaet polnoe ima kartinki primer: pi_id.jpg; v bazu sohranaetsa tol'ko $recipe_image_id
             $image_name = $this->upload_image_lib->upload_resize_img('image', $product->id);
             if ($image_name) {
                 $product->image = $image_name;
                 $product->save();
             }
             $this->data['form_success'] = 'Продукт добавлен';
         } else {
             $this->data['form_error'] = $product->error->string;
         }
     } else {
         echo validation_errors();
     }
     #
     $meras = new Mera();
     $product = new Product();
     $nutrition_categories = new Nutrition_category();
     $languages = new Language();
     $product_categories->get_full_info();
     $product_categories->product_type->get_full_info();
     $product_categories->product_type->product->get_full_info($id);
     $product_categories->product_type->product->language->get_full_info();
     $product_categories->product_type->product->nutrition->get_full_info();
     $product_categories->product_type->product->nutrition->convert_to_mera(1);
     $meras_available = array('100 gramms');
     foreach ($product_categories->product_type->product->mera as $mera) {
         $meras_available[$mera->join_seq] = $mera->join_name . ' ( ' . $mera->join_value . ' gm )';
     }
     #
     $meras->get_full_info();
     #
     $nutrition_categories->get_full_info();
     #
     $languages->get_iterated();
     #
     $this->data['meras_available'] = $meras_available;
     $this->data['dm_product_categories'] = $product_categories;
     $this->data['dm_product_types'] = $product_categories->product_type;
     $this->data['dm_product'] = $product_categories->product_type->product;
     $this->data['dm_nutrition_categories'] = $nutrition_categories;
     $this->data['dm_languages'] = $languages;
     $this->data['meras'] = $meras;
     $this->template->load('/admin/templates/main_template', '/admin/products/edit', $this->data);
 }
Ejemplo n.º 3
0
 function add_ratio_mera()
 {
     $meras = new Mera();
     $this->data['scalar_meras'] = $meras->get_clone(true)->where('type', 1)->get_iterated();
     $this->data['relative_meras'] = $meras->get_clone(true)->where('type', 2)->get_iterated();
     $this->load->view('admin/ratio_meras/subs/field_ratio_meras', $this->data);
 }
Ejemplo n.º 4
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);
 }