Example #1
0
 function index($limit = 8)
 {
     //pagination for product
     $page = $this->uri->segment(3, "") == "" ? "1" : $this->uri->segment(3);
     $dis['orderBy'] = 'id';
     $dis['page'] = $page;
     $offset = ($page - 1) * $limit;
     $orderBy = 'id';
     // get products by offset, limit
     $product = new Product();
     $product->order_by('id', 'desc');
     $product->get($limit, $offset);
     $dis['product'] = $product;
     // get all products
     $allProduct = new Product();
     $allProduct->order_by('id', 'desc');
     $allProduct->get();
     $total = $allProduct->result_count();
     if ($this->lang->lang() == 'vi') {
         $url = 'vi/san-pham';
     } else {
         $url = 'en/product';
     }
     $dis['pageUrl'] = $url;
     $config['base_url'] = site_url($url . "/");
     $config['total_rows'] = $total;
     $config['per_page'] = $limit;
     $config['use_page_numbers'] = TRUE;
     $config['uri_segment'] = 3;
     $config['num_links'] = 3;
     $config['full_tag_open'] = '<span class="pagin">';
     $config['full_tag_close'] = "</span>";
     $config['first_link'] = '<<';
     $config['first_tag_open'] = '';
     $config['first_tag_close'] = '';
     $config['last_link'] = '>>';
     $config['last_tag_open'] = '';
     $config['last_tag_close'] = '';
     $config['next_link'] = '>';
     $config['next_tag_open'] = '';
     $config['next_tag_close'] = '';
     $config['prev_link'] = '<';
     $config['prev_tag_open'] = '';
     $config['prev_tag_close'] = '';
     $config['num_tag_open'] = '';
     $config['num_tag_close'] = '';
     $config['cur_tag_open'] = '<span class="active">';
     $config['cur_tag_close'] = '</span>';
     $this->pagination->initialize($config);
     // pass data to view
     $dis['base_url'] = base_url();
     $dis['view'] = 'front/product/product';
     $this->viewfront($dis);
 }
Example #2
0
 function checkUrlUnique($productCatId = 0)
 {
     $product = new Product();
     $url = $this->input->post('url');
     $product->where('url', $url);
     $product->get();
     if ($product->result_count() > 0) {
         echo "false";
         exit;
     }
     $productcat = new Productcat();
     if ($productCatId != 0) {
         $productcat->where('id !=', $productCatId);
     }
     $productcat->where('url', $url);
     $productcat->get();
     if ($productcat->result_count() > 0) {
         echo "false";
         exit;
     }
     echo "true";
     exit;
 }
Example #3
0
 private function _generate_number()
 {
     $header = "IT";
     $YY = date("y");
     $MM = date("m");
     $headerWithDate = $header . $YY . $MM;
     $inv = new Product(null, $this->entity);
     $inv->order_by('id', 'desc');
     $inv->get();
     $last_no = "";
     if ($inv->result_count() > 0) {
         $last_no = $inv->sku;
     }
     $no = 0;
     $curr_YY = 0;
     if (strlen($last_no) > 10) {
         $no = intval(substr($last_no, strlen($last_no) - 5));
         $curr_YY = intval(substr($last_no, strlen($last_no) - 9, 2));
     }
     //Reset invoice number back to 1 for the new year starts
     if (intval($YY) > $curr_YY) {
         $no = 1;
     } else {
         $no++;
     }
     $number = $headerWithDate . str_pad($no, 5, "0", STR_PAD_LEFT);
     return $number;
 }
Example #4
0
 function checkNameUnique($productId = 0)
 {
     $product = new Product();
     $name = $this->input->post('name');
     if ($productId != 0) {
         $product->where('id !=', $productId);
     }
     $product->where('name_vietnamese', $name);
     $product->get();
     if ($product->result_count() > 0) {
         echo "false";
         exit;
     }
     echo "true";
     exit;
 }
Example #5
0
 public function get_form($type = '', $subtraction_type = '')
 {
     $this->load->helper('operations');
     $operations_addition = new Operation();
     $operations_addition->where('type', Operation::TYPE_ADDITION);
     $operations_addition->select_sum('amount', 'amount_sum');
     $operations_addition->where_related_person('id', '${parent}.id');
     $operations_subtraction_direct = new Operation();
     $operations_subtraction_direct->where('type', Operation::TYPE_SUBTRACTION);
     $operations_subtraction_direct->where('subtraction_type', Operation::SUBTRACTION_TYPE_DIRECT);
     $operations_subtraction_direct->select_sum('amount', 'amount_sum');
     $operations_subtraction_direct->where_related_person('id', '${parent}.id');
     $operations_subtraction_products = new Operation();
     $operations_subtraction_products->where('type', Operation::TYPE_SUBTRACTION);
     $operations_subtraction_products->where('subtraction_type', Operation::SUBTRACTION_TYPE_PRODUCTS);
     $operations_subtraction_products->where_related('product_quantity', 'price >', 0);
     $operations_subtraction_products->group_start(' NOT', 'AND');
     $operations_subtraction_products->where_related('product_quantity', 'product_id', NULL);
     $operations_subtraction_products->group_end();
     unset($operations_subtraction_products->db->ar_select[0]);
     $operations_subtraction_products->select_func('SUM', array('@product_quantities.quantity', '*', '@product_quantities.price', '*', '@product_quantities.multiplier'), 'amount_sum');
     $operations_subtraction_products->where_related_person('id', '${parent}.id');
     $operations_subtraction_services = new Operation();
     $operations_subtraction_services->where('type', Operation::TYPE_SUBTRACTION);
     $operations_subtraction_services->where('subtraction_type', Operation::SUBTRACTION_TYPE_SERVICES);
     $operations_subtraction_services->where_related('service_usage', 'price >', 0);
     $operations_subtraction_services->group_start(' NOT', 'AND');
     $operations_subtraction_services->where_related('service_usage', 'service_id', NULL);
     $operations_subtraction_services->group_end();
     unset($operations_subtraction_services->db->ar_select[0]);
     $operations_subtraction_services->select_func('SUM', array('@service_usages.quantity', '*', '@service_usages.price', '*', '@service_usages.multiplier'), 'amount_sum');
     $operations_subtraction_services->where_related_person('id', '${parent}.id');
     $persons = new Person();
     $persons->order_by('surname', 'asc')->order_by('name', 'asc');
     $persons->where('admin', 0);
     $persons->select('*');
     $persons->select_subquery($operations_addition, 'plus_amount');
     $persons->select_subquery($operations_subtraction_direct, 'minus_amount_direct');
     $persons->select_subquery($operations_subtraction_products, 'minus_amount_products');
     $persons->select_subquery($operations_subtraction_services, 'minus_amount_services');
     $persons->include_related('group', 'title');
     $persons->get_iterated();
     $persons_select = array('' => '');
     foreach ($persons as $person) {
         $amount = doubleval($person->plus_amount) - intval($person->minus_amount_direct) - intval($person->minus_amount_products) - intval($person->minus_amount_services);
         $persons_select[$person->id] = $person->name . ' ' . $person->surname . ' (' . $person->group_title . ' | LEDCOIN: ' . $amount . ' ' . get_inflection_ledcoin($amount) . ')';
     }
     $workplaces = new Workplace();
     $workplaces->order_by('title', 'asc');
     $workplaces->get_iterated();
     $workplaces_select = array('' => '');
     foreach ($workplaces as $workplace) {
         $workplaces_select[$workplace->id] = $workplace->title;
     }
     $form = array('fields' => array('type' => array('name' => 'operation[type]', 'type' => 'select', 'id' => 'operation-type', 'label' => 'Typ operácie', 'data' => array('stay-visible' => 'true'), 'values' => array('' => '', Operation::TYPE_ADDITION => 'Pridanie LEDCOIN-u', Operation::TYPE_SUBTRACTION => 'Odobratie LEDCOIN-u'), 'validation' => 'required'), 'subtraction_type' => array('name' => 'operation[subtraction_type]', 'type' => 'select', 'id' => 'operation-subtraction_type', 'label' => 'Spôsob odobratia LEDCOIN-u', 'data' => array('stay-visible' => 'true'), 'values' => array('' => '', Operation::SUBTRACTION_TYPE_DIRECT => 'Priame odobratie LEDCOIN-u', Operation::SUBTRACTION_TYPE_PRODUCTS => 'Nákup v bufete', Operation::SUBTRACTION_TYPE_SERVICES => 'Využitie služieb'), 'validation' => 'required'), 'addition_type' => array('name' => 'operation[addition_type]', 'type' => 'select', 'id' => 'operation-addition_type', 'data' => array('stay-visivle' => 'true'), 'label' => 'Spôsob pridania LEDCOIN-u', 'values' => array('' => '', Operation::ADDITION_TYPE_TRANSFER => 'Prevod z účtu vedúcich', Operation::ADDITION_TYPE_MINING => 'Vydolovanie LEDCOIN-u'), 'validation' => 'required'), 'person' => array('name' => 'operation[person_id]', 'type' => 'select', 'id' => 'operation-person_id', 'label' => 'Účastník', 'data' => array('stay-visible' => 'true'), 'values' => $persons_select, 'validation' => 'required'), 'workplace' => array('name' => 'operation[workplace_id]', 'type' => 'select', 'id' => 'operation-workplace_id', 'data' => array('stay-visible' => 'true'), 'label' => 'Zamestnanie', 'values' => $workplaces_select), 'comment' => array('name' => 'operation[comment]', 'type' => 'text_input', 'id' => 'comment-id', 'label' => 'Komentár', 'data' => array('stay-visible' => 'true'), 'validation' => 'max_length[255]'), 'amount' => array('name' => 'operation[amount]', 'type' => 'slider', 'id' => 'comment-amount', 'label' => 'LEDCOIN', 'data' => array('stay-visible' => 'true'), 'min' => 0, 'max' => 25, 'step' => 0.1, 'default' => 0, 'validation' => array(array('if-field-not-equals' => array('field' => 'operation[amount]', 'value' => 0), 'rules' => 'required|floatpoint|convert_floatpoint|greater_than[0]'))), 'multiplier-fake' => array('name' => 'operation[multiplier-fake]', 'type' => 'text_input', 'disabled' => true, 'id' => 'operation-multiplier-fake', 'default' => operations_ledcoin_multiplier(), 'label' => 'Multiplikátor LEDCOIN-u'), 'multiplier' => array('name' => 'operation[multiplier]', 'type' => 'hidden', 'default' => operations_ledcoin_multiplier())), 'arangement' => array('type', 'person', 'workplace', 'comment'));
     if ($type == Operation::TYPE_SUBTRACTION) {
         if ($subtraction_type == Operation::SUBTRACTION_TYPE_DIRECT) {
             $form['arangement'] = array('type', 'subtraction_type', 'person', 'workplace', 'comment', 'amount');
         } elseif ($subtraction_type == Operation::SUBTRACTION_TYPE_SERVICES) {
             $form['arangement'] = array('type', 'subtraction_type', 'person', 'comment', 'multiplier', 'multiplier-fake');
             $services = new Service();
             $services->order_by('title', 'asc');
             $services->get_iterated();
             foreach ($services as $service) {
                 $form['fields']['service_' . $service->id . '_quantity'] = array('name' => 'operation_service[' . $service->id . '][quantity]', 'class' => 'controlls-services', 'id' => 'operation_service-' . $service->id . '-quantity', 'type' => 'slider', 'min' => 0, 'max' => 240, 'label' => $service->title . ' (LEDCOIN)', 'data' => array('service-title' => $service->title), 'default' => 0, 'validation' => array(array('if-field-not-equals' => array('field' => 'operation_service[' . $service->id . '][quantity]', 'value' => 0), 'rules' => 'required|integer|greater_than[0]')));
                 $form['fields']['service_' . $service->id . '_price'] = array('name' => 'operation_service[' . $service->id . '][price]', 'class' => 'controlls-services', 'id' => 'operation_service-' . $service->id . '-price', 'type' => 'text_input', 'label' => $service->title . ' (cena za minútu)', 'data' => array('service-title' => $service->title), 'default' => $service->price, 'validation' => array(array('if-field-not-equals' => array('field' => 'operation_service[' . $service->id . '][quantity]', 'value' => 0), 'rules' => 'required|floatpoint|convert_floatpoint|greater_than[0]')));
                 $form['arangement'][] = 'service_' . $service->id . '_quantity';
                 $form['arangement'][] = 'service_' . $service->id . '_price';
             }
         } elseif ($subtraction_type == Operation::SUBTRACTION_TYPE_PRODUCTS) {
             $form['arangement'] = array('type', 'subtraction_type', 'person', 'comment', 'multiplier', 'multiplier-fake');
             $quantity_addition = new Product_quantity();
             $quantity_addition->select_sum('quantity', 'quantity_sum');
             $quantity_addition->where('type', Product_quantity::TYPE_ADDITION);
             $quantity_addition->where_related('product', 'id', '${parent}.id');
             $quantity_subtraction = new Product_quantity();
             $quantity_subtraction->select_sum('quantity', 'quantity_sum');
             $quantity_subtraction->where('type', Product_quantity::TYPE_SUBTRACTION);
             $quantity_subtraction->where_related('product', 'id', '${parent}.id');
             $products = new Product();
             $products->order_by('title', 'asc');
             $products->select('*');
             $products->select_subquery($quantity_addition, 'plus_quantity');
             $products->select_subquery($quantity_subtraction, 'minus_quantity');
             $products->get_iterated();
             $p = 1;
             foreach ($products as $product) {
                 $form['fields']['product_' . $product->id . '_quantity'] = array('name' => 'operation_product[' . $product->id . '][quantity]', 'class' => 'controlls-products', 'id' => 'operation_product-' . $product->id . '-quantity', 'type' => 'slider', 'min' => 0, 'max' => intval($product->plus_quantity) - intval($product->minus_quantity), 'label' => '<span class="product_title_label"><img src="' . get_product_image_min($product->id) . '" alt="" /><span class="product_title">' . $product->title . ' (počet kusov)</span></span>', 'default' => 0, 'disabled' => intval($product->plus_quantity) - intval($product->minus_quantity) <= 0 ? true : false, 'data' => array('product-title' => $product->title), 'validation' => array(array('if-field-not-equals' => array('field' => 'operation_product[' . $product->id . '][quantity]', 'value' => 0), 'rules' => 'required|integer|greater_than[0]|less_than_equals[' . (intval($product->plus_quantity) - intval($product->minus_quantity)) . ']')));
                 $form['fields']['product_' . $product->id . '_price'] = array('name' => 'operation_product[' . $product->id . '][price]', 'class' => 'controlls-products', 'id' => 'operation_product-' . $product->id . '-price', 'type' => 'text_input', 'label' => $product->title . ' (cena za kus)', 'default' => $product->price, 'disabled' => intval($product->plus_quantity) - intval($product->minus_quantity) <= 0 ? true : false, 'data' => array('product-title' => $product->title), 'validation' => array(array('if-field-not-equals' => array('field' => 'operation_product[' . $product->id . '][quantity]', 'value' => 0), 'rules' => 'required|floatpoint|convert_floatpoint|greater_than[0]')));
                 $form['arangement'][] = 'product_' . $product->id . '_quantity';
                 $form['arangement'][] = 'product_' . $product->id . '_price';
                 if ($p < $products->result_count()) {
                     $form['fields']['product_' . $product->id . '_divider'] = array('type' => 'divider', 'data' => array('product-title' => $product->title));
                     $form['arangement'][] = 'product_' . $product->id . '_divider';
                 }
                 $p++;
             }
         } else {
             $form['arangement'] = array('type', 'subtraction_type', 'person');
         }
     } else {
         $form['arangement'][] = 'addition_type';
         $form['arangement'][] = 'amount';
     }
     if ($type == Operation::TYPE_ADDITION) {
         $form['fields']['amount']['validation'] = 'required|floatpoint|convert_floatpoint|greater_than[0]';
     } elseif ($type == Operation::TYPE_SUBTRACTION) {
     } else {
         $form['arangement'] = array('type');
     }
     return $form;
 }
Example #6
0
 function outstanding_get()
 {
     $filters = $this->get("filter")["filters"];
     $page = $this->get('page') !== false ? $this->get('page') : 1;
     $limit = $this->get('limit') !== false ? $this->get('limit') : 100;
     $sort = $this->get("sort");
     $data["results"] = array();
     $data["count"] = 0;
     //Bill
     $bill = new Bill(null, $this->entity);
     if (!empty($filters) && isset($filters)) {
         $bill->where($filters[0]["field"], $filters[0]["value"]);
     }
     $bill->where("type", "bill");
     $bill->where("status", 0);
     $bill->where("deleted", 0);
     $data["results"][] = array("totalBill" => $bill->count());
     //SO
     $so = new Bill(null, $this->entity);
     if (!empty($filters) && isset($filters)) {
         $so->where($filters[0]["field"], $filters[0]["value"]);
     }
     $so->where("type", "SO");
     $so->where("status", 0);
     $so->where("deleted", 0);
     $data["results"][] = array("totalSO" => $so->count());
     //Invoice
     $inv = new Bill(null, $this->entity);
     if (!empty($filters) && isset($filters)) {
         $inv->where($filters[0]["field"], $filters[0]["value"]);
     }
     $inv->where_in("type", array("Invoice"));
     $inv->where_in("status", array(0, 2));
     $inv->where("deleted", 0);
     $inv->get();
     $data["results"][] = array("totalOpenInvoice" => $inv->result_count());
     //Product
     $p = new Product(null, $this->entity);
     $p->where("status", 1);
     $p->where("on_hand <=", "order_point");
     $p->where("deleted", 0);
     $p->get();
     $data["results"][] = array("totalMinProduct" => $p->result_count());
     $this->response($data, 200);
 }