Skip to content

Instantly share code, notes, and snippets.

@Mars228
Last active October 1, 2022 18:43
Show Gist options
  • Save Mars228/4c7b37345b58ac9e1fe326133f2e3276 to your computer and use it in GitHub Desktop.
Save Mars228/4c7b37345b58ac9e1fe326133f2e3276 to your computer and use it in GitHub Desktop.
example of PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* file: Report_model.php
*
* UTF-8
*
* @author Arkadiusz Hauzer <arkadiusz at hauzer.pl>
* @created 2 gru 2016 8:48
**/
class Report_model extends CI_Model
{
public function __construct()
{
parent::__construct();
}
// Daily report to home page
function daily_report()
{
$query = $this->db->query("SELECT today_orders FROM daily_report");
if ($query->num_rows() > 0)
{
return $query->row_array();
}
else
{
return FALSE;
}
}
function daily_clients()
{
$query = $this->db->query("SELECT today_clients FROM daily_clients");
if ($query->num_rows() > 0)
{
return $query->row_array();
}
else
{
return FALSE;
}
}
function orders_today()
{
$query = $this->db->query("SELECT zlecenie_data_dodania,zlecenie_nr,odbiorca_firma,odbiorca_osoba,zlecenie_rodzaj, product_name, product_price, discount_price, zlecenie_ilosc
FROM tab_zlecenia
WHERE DATE_FORMAT(zlecenie_data_dodania, '%Y-%m-%d') LIKE CURDATE()
ORDER BY zlecenie_data_dodania DESC
LIMIT 10");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
function weekly_report() {
$query = $this->db->query("SELECT COUNT(zlecenie_id) AS order_qty, WEEKDAY(zlecenie_data_pl_odbioru) AS day_num, DATE(zlecenie_data_pl_odbioru) AS dat, DAYNAME(zlecenie_data_pl_odbioru) AS week_day
FROM tab_zlecenia
WHERE WEEK(zlecenie_data_pl_odbioru, 0) = WEEK(NOW(),0)
GROUP BY WEEKDAY(zlecenie_data_pl_odbioru)
ORDER BY WEEKDAY(zlecenie_data_pl_odbioru)");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
function past_week_report() {
$query = $this->db->query("SELECT COUNT(zlecenie_id) AS order_qty, WEEKDAY(zlecenie_data_pl_odbioru) AS day_num, DATE(zlecenie_data_pl_odbioru) AS dat, DAYNAME(zlecenie_data_pl_odbioru) AS week_day
FROM tab_zlecenia
WHERE WEEK (zlecenie_data_pl_odbioru) = WEEK( DATE(NOW()) ) - 1 AND YEAR( DATE(zlecenie_data_pl_odbioru)) = YEAR( DATE(NOW()))
GROUP BY WEEKDAY(zlecenie_data_pl_odbioru)
ORDER BY WEEKDAY(zlecenie_data_pl_odbioru)");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
// Monthly report
function monthly_report($data)
{
if(empty($data['sender'])) {
$query = $this->db->query("SELECT tab_zlecenia.zlecenie_data_pl_odbioru, tab_zlecenia.nadawca_firma, tab_zlecenia.odbiorca_firma, tab_zlecenia.payer_company, tab_zlecenia.product_name, tab_zlecenia.zlecenie_ilosc, tab_zlecenia.zlecenie_waga, (CASE WHEN (tab_zlecenia.zlecenie_status_id = '0') THEN '0' WHEN (tab_zlecenia.delay_price > '0.00') THEN tab_zlecenia.delay_price WHEN (tab_zlecenia.discount_price > '0.00') THEN tab_zlecenia.discount_price ELSE tab_zlecenia.product_price END) AS price
FROM tab_zlecenia
LEFT JOIN discount ON discount.product_id = tab_zlecenia.product_id AND discount.company_id = payer_id
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'
AND tab_zlecenia.zlecenie_status_id != 0
ORDER BY zlecenie_data_pl_odbioru ASC");
}
else {
$query = $this->db->query("SELECT tab_zlecenia.zlecenie_data_pl_odbioru, tab_zlecenia.nadawca_firma, tab_zlecenia.odbiorca_firma, tab_zlecenia.payer_company, tab_zlecenia.product_name, tab_zlecenia.zlecenie_ilosc, tab_zlecenia.zlecenie_waga, (CASE WHEN (tab_zlecenia.zlecenie_status_id = '0') THEN '0' WHEN (tab_zlecenia.delay_price > '0.00') THEN tab_zlecenia.delay_price WHEN (tab_zlecenia.discount_price > '0.00') THEN tab_zlecenia.discount_price ELSE tab_zlecenia.product_price END) AS price
FROM tab_zlecenia
LEFT JOIN discount ON discount.product_id = tab_zlecenia.product_id AND discount.company_id = payer_id
WHERE payer_id = $data[sender]
AND DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'
AND tab_zlecenia.zlecenie_status_id != 0
ORDER BY zlecenie_data_pl_odbioru ASC");
}
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
// statistic > order qty
//
/*
SELECT
COUNT(zlecenie_status_id) AS orders_qty,
COALESCE(SUM(zlecenie_ilosc), 0) AS consignment
FROM tab_zlecenia WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-11-01' AND '2017-11-30' AND zlecenie_status_id != 0
SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-11-01' AND '2017-11-30'
AND zlecenie_status_id != 0
GROUP BY product_name
SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty, zlecenie_id_kierowcy_odbior, CONCAT_WS(' ',first_name,last_name) AS k_odbior, zlecenie_id_kierowcy_dostawa, CONCAT_WS(' ',first_name,last_name) AS k_dost
FROM tab_zlecenia
JOIN auth_user ON zlecenie_id_kierowcy_odbior = id
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-11-01' AND '2017-11-30'
AND zlecenie_status_id != 0
GROUP BY product_name, zlecenie_id_kierowcy_odbior
*/
//
function order_count($date_from, $date_to)
{
$query = $this->db->query("SELECT COUNT(zlecenie_status_id) AS orders_qty,
COALESCE(SUM(zlecenie_ilosc), 0) AS consignments,
COUNT(distinct nadawca_firma) AS clients FROM tab_zlecenia WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '$date_from' AND '$date_to' AND zlecenie_status_id != 0");
if ($query->num_rows() > 0)
{
return $query->row_array();
}
else
{
return FALSE;
}
}
function monthly_counter($data)
{
//WHERE zlecenie_creator_id IN ($data[select2])
//WHERE payer_id IN ($data[select2])
//
/*
count by type of product
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS order_month, product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01'
AND zlecenie_status_id != 0
GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru), product_name DESC
*/
//
if(empty($data['sender']))
{
$query = $this->db->query("
SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'
AND zlecenie_status_id != 0
GROUP BY product_name");
}
else
{
$query = $this->db->query("
SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
WHERE payer_id = $data[sender]
AND DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'
AND zlecenie_status_id != 0
GROUP BY product_name");
}
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
// stat
function count_ocp($stat_sd, $stat_ed)
{
$query = $this->db->query("SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS order_month, COUNT(zlecenie_status_id) as qty, COALESCE(SUM(zlecenie_ilosc), 0) AS consignments, COUNT(DISTINCT(payer_id)) as payers
FROM tab_zlecenia
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '$stat_sd' AND '$stat_ed' AND zlecenie_status_id != 0
GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru)");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
function monthly_order_status()
{
/* LAST 3 months count by status
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS order_month, zlecenie_status_id as zlecenie_status, COUNT(zlecenie_nr) AS total_orders
FROM tab_zlecenia WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01' GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), order_month, zlecenie_status
*/
}
/*
xxxxxxxxxxxxx
zlecenia z ostatnich trzech miesięcy
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS order_month, COUNT(zlecenie_status_id) as qty FROM tab_zlecenia WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01' AND DATE(zlecenie_data_pl_dostawy) BETWEEN '2017-12-1' AND '2018-02-01' AND zlecenie_status_id != 0 GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
**zlicz zlecenia, przesyłki i klientóe (płatników) za ostatnie 3 miesiaca
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS order_month, COUNT(zlecenie_status_id) as order_qty, SUM(zlecenie_ilosc) AS qty, COUNT(DISTINCT(payer_id)) as payer
FROM tab_zlecenia
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01' AND zlecenie_status_id != 0
GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru)
zlicz zlecenia i kurioerów za ostatnie trzy miesiące
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS order_month, zlecenie_id_kierowcy_odbior, CONCAT_WS(' ',first_name,last_name) AS name, COUNT(zlecenie_status_id) as qty
FROM tab_zlecenia
JOIN auth_user ON tab_zlecenia.zlecenie_id_kierowcy_odbior = auth_user.id
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01'
AND zlecenie_status_id != 0
GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru), zlecenie_id_kierowcy_odbior
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
zlicz rodzaje zleceń za ostani miesiąc
SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty, zlecenie_id_kierowcy_odbior, CONCAT_WS(' ',first_name,last_name) AS k_odbior
FROM tab_zlecenia
JOIN auth_user ON zlecenie_id_kierowcy_odbior = id
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-11-01' AND '2017-11-30'
AND zlecenie_status_id != 0
GROUP BY product_name, zlecenie_id_kierowcy_odbior
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
zlicz rodzaje zleceń za ostanie 3 miesice!!!
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS mies, product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty, zlecenie_id_kierowcy_odbior, CONCAT_WS(' ',first_name,last_name) AS k_odbior
FROM tab_zlecenia
JOIN auth_user ON zlecenie_id_kierowcy_odbior = id
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01'
AND zlecenie_status_id != 0
GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru), product_name, zlecenie_id_kierowcy_odbior
xxxxxxxxxxxxxxxxxxxxx
variant
SELECT EXTRACT(MONTH FROM zlecenie_data_pl_odbioru) AS mies, CONCAT_WS(' ',first_name,last_name) AS k_odbior, product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
JOIN auth_user ON zlecenie_id_kierowcy_odbior = id
WHERE DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-12-1' AND '2018-02-01'
AND zlecenie_status_id != 0
GROUP BY EXTRACT(YEAR FROM zlecenie_data_pl_odbioru), EXTRACT(MONTH FROM zlecenie_data_pl_odbioru), k_odbior, product_name
*/
//Annual Report
function annual_report($year)
{
$query = $this->db->query("SELECT MONTH(zlecenie_data_pl_odbioru) AS month, COUNT(zlecenie_nr) AS total_orders FROM tab_zlecenia WHERE YEAR(zlecenie_data_pl_odbioru) = '$year' GROUP BY YEAR(zlecenie_data_pl_odbioru), MONTH(zlecenie_data_pl_odbioru)");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
// select senders from tab_zlecenia
function senders_list()
{
$query = $this->db->query("SELECT GROUP_CONCAT(DISTINCT auth_user.id) share_id, auth_address.id AS company_id, company
FROM auth_user
JOIN auth_user_address ON auth_user_address.user_id = auth_user.id
JOIN auth_address ON auth_user_address.address_id = auth_address.id
GROUP BY company ORDER BY company");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
public function payer_list()
{
$query = $this->db->query("SELECT auth_user.id AS user_id, auth_address.id AS company_id, first_name, last_name, active, company, nr_umowy
FROM auth_user
JOIN auth_user_address ON auth_user_address.user_id = auth_user.id
JOIN auth_address ON auth_user_address.address_id = auth_address.id
JOIN auth_user_group ON auth_user_group.user_id = auth_user.id
JOIN auth_group ON auth_group.id = auth_user_group.group_id AND auth_group.id = 4
WHERE auth_user.active = 1
GROUP BY company
ORDER BY company");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
// email report
public function payer_detail($id)
{
$query = $this->db->query("SELECT company, company_email FROM auth_address WHERE id = '$id'");
if ($query->num_rows() > 0)
{
//return $query->result_array();
return $query->row_array();
}
else
{
return FALSE;
}
}
/*
SELECT tab_zlecenia.zlecenie_data_pl_odbioru, tab_zlecenia.nadawca_firma, tab_zlecenia.odbiorca_firma, tab_zlecenia.payer_company, tab_zlecenia.product_name, tab_zlecenia.zlecenie_ilosc, tab_zlecenia.zlecenie_waga, (CASE WHEN (tab_zlecenia.zlecenie_status_id = '0') THEN '0' WHEN (tab_zlecenia.delay_price > '0.00') THEN tab_zlecenia.delay_price WHEN (tab_zlecenia.discount_price > '0.00') THEN tab_zlecenia.discount_price ELSE tab_zlecenia.product_price END) * tab_zlecenia.zlecenie_ilosc AS price,
auth_address.company_email
FROM tab_zlecenia
LEFT JOIN discount ON discount.product_id = tab_zlecenia.product_id AND discount.company_id = payer_id
LEFT JOIN auth_address ON auth_address.id = payer_id
WHERE payer_id = 118
AND DATE(zlecenie_data_pl_odbioru) BETWEEN '2017-09-01' AND '2017-12-31'
AND tab_zlecenia.zlecenie_status_id != 0
ORDER BY zlecenie_data_pl_odbioru ASC
*/
public function couriers_list()
{
$query = $this->db->query("SELECT auth_user.id AS user_id, CONCAT_WS(' ',first_name,last_name) AS name
FROM auth_user
JOIN auth_user_address ON auth_user_address.user_id = auth_user.id
JOIN auth_address ON auth_user_address.address_id = auth_address.id
JOIN auth_user_group ON auth_user_group.user_id = auth_user.id
JOIN auth_group ON auth_group.id = auth_user_group.group_id AND auth_group.id = 3
WHERE auth_user.active = 1");
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
public function courier_name($id)
{
$this->db->select("CONCAT_WS(' ',auth_user.first_name,auth_user.last_name) AS courier");
$this->db->from('auth_user');
$this->db->where('auth_user.id', $id);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
$ret = $query->row();
return $ret->courier;
}
else
{
return FALSE;
}
}
// stats only
public function count_couriers()
{
$query = $this->db->query("SELECT COUNT(auth_user.id) AS couriers
FROM auth_user
JOIN auth_user_group ON auth_user_group.user_id = auth_user.id
JOIN auth_group ON auth_group.id = auth_user_group.group_id AND auth_group.id = 3
WHERE auth_user.active = 1");
if ($query->num_rows() > 0)
{
$ret = $query->row();
return $ret->couriers;
}
else
{
return FALSE;
}
}
public function consignment_counter($data)
{
//WHERE zlecenie_creator_id IN ($data[select2])
//WHERE payer_id IN ($data[select2])
//
if($data['zlecenie_id_kierowcy_odbior'] != 0) {
$query = $this->db->query("SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
WHERE zlecenie_id_kierowcy_odbior = $data[zlecenie_id_kierowcy_odbior]
AND zlecenie_status_id != 0
AND DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'
GROUP BY product_name");
}
else {
$query = $this->db->query("SELECT product_name, COUNT(product_name) as orders_qty, SUM(zlecenie_ilosc) AS qty
FROM tab_zlecenia
WHERE zlecenie_id_kierowcy_dostawa = $data[zlecenie_id_kierowcy_dostawa]
AND zlecenie_status_id != 0
AND DATE(zlecenie_data_pl_dostawy) BETWEEN '$data[date_from]' AND '$data[date_to]'
GROUP BY product_name");
}
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
//
//SELECT auth_user.id AS user_id, CONCAT_WS(' ',first_name,last_name) AS courier FROM auth_user WHERE auth_user.id = 4
function courier_report($data)
{
$this->db->select('tab_zlecenia.zlecenie_data_pl_odbioru, tab_zlecenia.nadawca_firma, tab_zlecenia.odbiorca_firma, tab_zlecenia.payer_company, tab_zlecenia.zlecenie_ilosc, tab_zlecenia.zlecenie_waga, tab_zlecenia.product_name');
$this->db->select('(CASE WHEN (tab_zlecenia.zlecenie_status_id = 0) THEN 0 WHEN (tab_zlecenia.delay_price > 0.00) THEN tab_zlecenia.delay_price WHEN (tab_zlecenia.discount_price > 0.00) THEN tab_zlecenia.discount_price ELSE tab_zlecenia.product_price END) AS price');
// temp check id
//if (($data['zlecenie_id_kierowcy_odbior'] != 0) && ($data['zlecenie_id_kierowcy_dostawa'] == 0)) {
//$this->db->select('tab_zlecenia.zlecenie_id_kierowcy_odbior');
//}
//elseif (($data['zlecenie_id_kierowcy_dostawa'] != 0) && ($data['zlecenie_id_kierowcy_odbior'] == 0)) {
// $this->db->select('tab_zlecenia.zlecenie_id_kierowcy_dostawa');
//}
$this->db->select("CONCAT_WS(' ',auth_user.first_name,auth_user.last_name) AS courier");
//$this->db->select('');
$this->db->from('tab_zlecenia');
$this->db->join('discount','discount.product_id = tab_zlecenia.product_id AND discount.company_id = payer_id', 'left');
if (($data['zlecenie_id_kierowcy_odbior'] != 0) && ($data['zlecenie_id_kierowcy_dostawa'] == 0)) {
$this->db->join('auth_user', 'tab_zlecenia.zlecenie_id_kierowcy_odbior = auth_user.id', 'left');
$this->db->where('auth_user.id', $data['zlecenie_id_kierowcy_odbior']);
$this->db->where('auth_user.active', '1');
$this->db->where("DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'");
$this->db->order_by('zlecenie_data_pl_odbioru', 'ASC');
}
elseif (($data['zlecenie_id_kierowcy_dostawa'] != 0) && ($data['zlecenie_id_kierowcy_odbior'] == 0)) {
$this->db->join('auth_user', 'tab_zlecenia.zlecenie_id_kierowcy_dostawa = auth_user.id', 'left');
$this->db->where('auth_user.id', $data['zlecenie_id_kierowcy_dostawa']);
$this->db->where('auth_user.active', '1');
$this->db->where("DATE(zlecenie_data_pl_dostawy) BETWEEN '$data[date_from]' AND '$data[date_to]'");
$this->db->order_by('zlecenie_data_pl_dostawy', 'ASC');
}
//$this->db->where('auth_user.active', '1');
//$this->db->where("DATE(zlecenie_data_pl_odbioru) BETWEEN '$data[date_from]' AND '$data[date_to]'");
//$this->db->order_by('zlecenie_data_pl_odbioru', 'ASC');
$query = $this->db->get();
if ($query->num_rows() > 0)
{
return $query->result_array();
}
else
{
return FALSE;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment