本文整理汇总了PHP中Operation::select_func方法的典型用法代码示例。如果您正苦于以下问题:PHP Operation::select_func方法的具体用法?PHP Operation::select_func怎么用?PHP Operation::select_func使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Operation
的用法示例。
在下文中一共展示了Operation::select_func方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: operations_ledcoin_used
/**
* Return all LEDCOIN returned from attendants account.
* @return double LEDCOIN sum.
*/
function operations_ledcoin_used()
{
$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_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_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');
$CI =& get_instance();
$query = 'SELECT SUM(o.amount_sum) AS total_sum FROM ((' . $operations_subtraction_direct->get_sql() . ') UNION ALL (' . $operations_subtraction_products->get_sql() . ') UNION ALL (' . $operations_subtraction_services->get_sql() . ')) o';
$result = $CI->db->query($query);
return (double) $result->row()->total_sum;
}
示例2: my_ledcoin
public function my_ledcoin()
{
auth_redirect_if_not_authentificated('errormessage/no_auth');
$this->load->helper('filter');
$post = $this->input->post();
if ($post !== FALSE) {
$post_filter = $this->input->post('filter');
if ($post_filter !== FALSE) {
filter_store_filter(self::FILTER_MY_LEDCOIN_TABLE, $post_filter);
}
redirect('ledcoin/my_ledcoin');
}
$filter = filter_get_filter(self::FILTER_MY_LEDCOIN_TABLE, array('page' => 1));
$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_mining = new Operation();
$operations_mining->where('type', Operation::TYPE_ADDITION);
$operations_mining->where('addition_type', Operation::ADDITION_TYPE_MINING);
$operations_mining->select_sum('amount', 'amount_sum');
$operations_mining->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');
$person = new Person();
$person->where('admin', 0);
$person->select('*');
$person->select_subquery($operations_addition, 'plus_amount');
$person->select_subquery($operations_mining, 'plus_mined');
$person->select_subquery($operations_subtraction_direct, 'minus_amount_direct');
$person->select_subquery($operations_subtraction_products, 'minus_amount_products');
$person->select_subquery($operations_subtraction_services, 'minus_amount_services');
$person->include_related('group', 'title');
$person->get_by_id(auth_get_id());
if (!$person->exists()) {
add_error_flash_message('Nenašla sa informácia o prihlásenom používateľovi. Nemôžete si pozrieť svoj LEDCOIN.');
redirect(site_url('ledcoin'));
}
$operations = new Operation();
$operations->select('id, created, amount, type, subtraction_type, addition_type, comment');
$operations->include_related('admin', array('name', 'surname'));
$operations->include_related('workplace', 'title');
$operations->where_related_person($person);
$operations->order_by('created', 'asc');
$operations->get_paged_iterated($filter['page'], self::MY_LEDCOIN_TABLE_ROWS_PER_PAGE);
$this->parser->parse('web/controllers/ledcoin/my_ledcoin.tpl', array('title' => 'Môj LEDCOIN', 'operations' => $operations, 'person' => $person, 'form' => $this->get_my_ledcoin_filter_form($filter, $operations->paged)));
}
示例3: get_form
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');
}
//.........这里部分代码省略.........