622 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			622 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Models;
 | |
| 
 | |
| use Illuminate\Database\Eloquent\Model;
 | |
| use Illuminate\Support\Facades\DB;
 | |
| use App\Models\OrdersVendors;
 | |
| use App\Models\Users;
 | |
| use App\Models\Orders;
 | |
| use App\Models\OrdersAItems;
 | |
| use App\Models\OrdersInvoices;
 | |
| 
 | |
| class Finance extends Model
 | |
| {
 | |
| 	public static function listBillings($filter = [])
 | |
| 	{
 | |
| 		$params = [
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_PAID_NO, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 		];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		$group_by = '';
 | |
| 
 | |
| 		if (isset($filter['ord_id'])) {
 | |
| 			$where_where .= ' AND ord.id = ?';
 | |
| 			$params[] = $filter['ord_id'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['start_date']) && isset($filter['end_date'])) {
 | |
| 			$where_where .= ' AND ord.crt BETWEEN ? AND ?';
 | |
| 			$params[] = $filter['start_date'];
 | |
| 			$params[] = $filter['end_date'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['group_by'])) {
 | |
| 			$group_by .= ' GROUP BY ' . $filter['group_by'];
 | |
| 		}
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		ord.id as ord_id,ord.code as ord_code,ord.status as ord_status
 | |
| 		,(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_vdr = ? AND invc_to_client = ? AND is_bill_aprv = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_billing
 | |
| 		,(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_vdr = ? AND invc_to_client = ? AND is_bill_paid = ? AND is_bill_aprv = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_payed
 | |
| 		,(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_vdr = ? AND invc_to_client = ? AND is_bill_paid = ? AND is_bill_aprv = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_remaining
 | |
| 		,ord.is_invc_paid,ord.invc_paid_at
 | |
| 		,ord_pck.pck_name,ord_pck.set_pck_at,ord_pck.pck_addr
 | |
| 		,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_pck.pck_prid LIMIT 1) as pck_prid_name
 | |
|         ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_pck.pck_ktid LIMIT 1) as pck_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_pck.pck_kcid LIMIT 1) as pck_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_pck.pck_klid LIMIT 1) as pck_klid_name
 | |
| 		,ord_drop.drop_name,ord_drop.drop_addr
 | |
| 		,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_drop.drop_prid LIMIT 1) as drop_prid_name
 | |
|         ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_drop.drop_ktid LIMIT 1) as drop_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_drop.drop_kcid LIMIT 1) as drop_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_drop.drop_klid LIMIT 1) as drop_klid_name
 | |
| 		,ord_c.c_name,ord_c.c_pt_name
 | |
|         " . $select_order . "
 | |
|         FROM t_orders as ord
 | |
|         INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
 | |
|         INNER JOIN t_orders_pickups as ord_pck ON ord.id = ord_pck.ord_id
 | |
|         INNER JOIN t_orders_drops as ord_drop ON ord.id = ord_drop.ord_id
 | |
|         " . $join_join . "
 | |
|         WHERE ord.dlt is null
 | |
| 		AND ord.is_active = " . Orders::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		" . $group_by . "
 | |
|         ;",
 | |
| 			$params
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static function summaryBillings($filter = [])
 | |
| 	{
 | |
| 		$params = [];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		// for sum
 | |
| 		$join_sum = '';
 | |
| 		$where_sum = '';
 | |
| 		$params_sum_totbilling = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 		$params_sum_totpayed = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 		$params_sum_totremaining = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_PAID_NO, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,];
 | |
| 
 | |
| 		if (isset($filter['start_date']) && isset($filter['end_date'])) {
 | |
| 			$join_sum .= ' INNER JOIN t_orders as o ON a.ord_id = o.id';
 | |
| 			$where_sum .= ' AND o.crt BETWEEN ? AND ?';
 | |
| 			array_push($params_sum_totbilling, $filter['start_date'], $filter['end_date']);
 | |
| 			array_push($params_sum_totpayed, $filter['start_date'], $filter['end_date']);
 | |
| 			array_push($params_sum_totremaining, $filter['start_date'], $filter['end_date']);
 | |
| 		}
 | |
| 
 | |
| 		// php spread operator was invented on 7.2
 | |
| 		$params_real = array_merge($params_sum_totbilling, $params_sum_totpayed, $params_sum_totremaining, $params);
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		-- (SELECT SUM(price) FROM t_orders WHERE dlt is null AND confirm_client_pay_at != 0) as total_billing
 | |
| 		-- (SELECT SUM(price) FROM t_orders WHERE dlt is null) as total_billing -- sebelum ada fitur merge
 | |
| 		 (SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_vdr = ? AND a.invc_to_client = ? AND a.is_bill_aprv = ? AND a.stts_merge IN (?,?) $where_sum) as total_billing
 | |
| 		,(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_vdr = ? AND a.invc_to_client = ? AND a.is_bill_paid = ? AND a.is_bill_aprv = ? AND a.stts_merge IN (?,?) $where_sum) as total_payed
 | |
| 		,(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_vdr = ? AND a.invc_to_client = ? AND a.is_bill_paid = ? AND a.is_bill_aprv = ? AND a.stts_merge IN (?,?) $where_sum) as total_remaining
 | |
|         " . $select_order . "
 | |
|         FROM t_orders_a_items as ord_a
 | |
|         " . $join_join . "
 | |
|         WHERE ord_a.dlt is null
 | |
| 		AND ord_a.is_active = " . OrdersAItems::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		LIMIT 1
 | |
|         ;",
 | |
| 			$params_real
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static function listPayments($filter = [])
 | |
| 	{
 | |
| 		$params = [
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_NO, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 		];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		$group_by = '';
 | |
| 
 | |
| 		if (isset($filter['ord_id'])) {
 | |
| 			$where_where .= ' AND ord.id = ?';
 | |
| 			$params[] = $filter['ord_id'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['start_date']) && isset($filter['end_date'])) {
 | |
| 			$where_where .= ' AND ord.crt BETWEEN ? AND ?';
 | |
| 			$params[] = $filter['start_date'];
 | |
| 			$params[] = $filter['end_date'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['group_by'])) {
 | |
| 			$group_by .= ' GROUP BY ' . $filter['group_by'];
 | |
| 		}
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		ord.id as ord_id,ord.code as ord_code,ord.status as ord_status
 | |
| 		,ord.group_code as ord_group_code
 | |
| 		,(SELECT SUM(amt_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_client = ? AND calc_to_vdr = ? AND is_aprv = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_payment
 | |
| 		,(SELECT SUM(amt_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_client = ? AND calc_to_vdr = ? AND is_aprv = ? AND is_paid = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_payed
 | |
| 		,(SELECT SUM(amt_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_client = ? AND calc_to_vdr = ? AND is_aprv = ? AND is_paid = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_remaining
 | |
| 		,ord.is_vdr_paid,ord.vdr_paid_at
 | |
| 		,ord_pck.pck_name,ord_pck.set_pck_at,ord_pck.pck_addr
 | |
| 		,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_pck.pck_prid LIMIT 1) as pck_prid_name
 | |
|         ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_pck.pck_ktid LIMIT 1) as pck_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_pck.pck_kcid LIMIT 1) as pck_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_pck.pck_klid LIMIT 1) as pck_klid_name
 | |
| 		,ord_drop.drop_name,ord_drop.drop_addr
 | |
| 		,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_drop.drop_prid LIMIT 1) as drop_prid_name
 | |
|         ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_drop.drop_ktid LIMIT 1) as drop_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_drop.drop_kcid LIMIT 1) as drop_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_drop.drop_klid LIMIT 1) as drop_klid_name
 | |
| 		,ord_c.c_name,ord_c.c_pt_name
 | |
| 		,ord_vdr.vdr_name,ord_vdr.vdr_pt_name
 | |
|         " . $select_order . "
 | |
|         FROM t_orders as ord
 | |
|         INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
 | |
|         INNER JOIN t_orders_pickups as ord_pck ON ord.id = ord_pck.ord_id
 | |
|         INNER JOIN t_orders_drops as ord_drop ON ord.id = ord_drop.ord_id
 | |
| 		INNER JOIN t_orders_vendors as ord_vdr ON ord.id = ord_vdr.ord_id
 | |
|         " . $join_join . "
 | |
|         WHERE ord.dlt is null
 | |
| 		AND ord.is_active = " . Orders::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		" . $group_by . "
 | |
|         ;",
 | |
| 			$params
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	// admin bank tetap terkalkulasi
 | |
| 	// bagaimana caranya main item client tidak tecalc di pembayaran ? where column only_client is no
 | |
| 	public static function summaryPayments($filter = [])
 | |
| 	{
 | |
| 		// general
 | |
| 		$params = [];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		// for sum
 | |
| 		$join_sum = '';
 | |
| 		$where_sum = '';
 | |
| 		$params_sum_totpayment = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 		$params_sum_totpayed = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 		$params_sum_totremaining = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_NO, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 
 | |
| 		if (isset($filter['start_date']) && isset($filter['end_date'])) {
 | |
| 			$join_sum .= ' INNER JOIN t_orders as o ON a.ord_id = o.id';
 | |
| 			$where_sum .= ' AND o.crt BETWEEN ? AND ?';
 | |
| 			array_push($params_sum_totpayment, $filter['start_date'], $filter['end_date']);
 | |
| 			array_push($params_sum_totpayed, $filter['start_date'], $filter['end_date']);
 | |
| 			array_push($params_sum_totremaining, $filter['start_date'], $filter['end_date']);
 | |
| 		}
 | |
| 
 | |
| 		// php spread operator was invented on 7.2
 | |
| 		$params_real = array_merge($params_sum_totpayment, $params_sum_totpayed, $params_sum_totremaining, $params);
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		-- (SELECT SUM(buy_price) FROM t_orders WHERE dlt is null) as total_payment
 | |
| 		 (SELECT SUM(a.amt_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_client = ? AND a.calc_to_vdr = ? AND a.is_aprv = ? AND a.stts_merge IN (?,?) $where_sum) as total_payment
 | |
| 		,(SELECT SUM(a.amt_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_client = ? AND a.calc_to_vdr = ? AND a.is_aprv = ? AND a.is_paid = ? AND a.stts_merge IN (?,?) $where_sum) as total_payed
 | |
| 		,(SELECT SUM(a.amt_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_client = ? AND a.calc_to_vdr = ? AND a.is_aprv = ? AND a.is_paid = ? AND a.stts_merge IN (?,?) $where_sum) as total_remaining
 | |
|         " . $select_order . "
 | |
|         FROM t_orders_a_items as ord_a
 | |
|         " . $join_join . "
 | |
|         WHERE ord_a.dlt is null
 | |
| 		AND ord_a.is_active = " . OrdersAItems::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		LIMIT 1
 | |
|         ;",
 | |
| 			$params_real
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static function listAdtItemsPayments($filter = [])
 | |
| 	{
 | |
| 		$params = [];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		$group_by = '';
 | |
| 
 | |
| 		if (isset($filter['is_access_by_admin'])) {
 | |
| 			$where_where .= ' AND crt_type = ?';
 | |
| 			$params[] = OrdersAItems::CRT_TYPE_ADMIN;
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['ord_id'])) {
 | |
| 			// $where_where .= ' AND ord.id = ?';
 | |
| 			$where_where .= ' AND ord_a_item.ord_id = ?';
 | |
| 			$params[] = $filter['ord_id'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['ord_ids'])) {
 | |
| 			$binds_ids = "";
 | |
|             foreach ($filter['ord_ids'] as $k => $v) {
 | |
|                 $binds_ids .= "?,";
 | |
|                 $params[] = $v;
 | |
|             }
 | |
|             if (substr($binds_ids, -1) === ',') {
 | |
|                 $binds_ids = substr($binds_ids, 0, -1);
 | |
|             }
 | |
|             $where_where .= " AND ord_a_item.ord_id IN ($binds_ids)";
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['is_aprv'])) {
 | |
| 			$where_where .= ' AND ord_a_item.is_aprv = ?';
 | |
| 			$params[] = $filter['is_aprv'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['get_user_crt'])) {
 | |
| 			$select_order .= ',ucrt.first_name as ucrt_name';
 | |
| 			$join_join .= ' LEFT JOIN t_users as ucrt ON ord_a_item.crt_by = ucrt.id';
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['get_user_rjct'])) {
 | |
| 			$select_order .= ',urjct.first_name as urjct_name,urjct_bill.first_name as urjct_bill_name';
 | |
| 			$join_join .= ' LEFT JOIN t_users as urjct ON ord_a_item.rjct_by = urjct.id';
 | |
| 			$join_join .= ' LEFT JOIN t_users as urjct_bill ON ord_a_item.rjct_bill_by = urjct_bill.id';
 | |
| 		}
 | |
| 
 | |
| 		$params[] = OrdersAItems::ONLY_CLIENT_NO;
 | |
| 		$params[] = OrdersAItems::CALC_TO_VDR_YES;
 | |
| 		$params[] = OrdersAItems::IS_HIDDEN_NO;
 | |
| 		$params[] = OrdersAItems::STTS_MERGE_NO;
 | |
| 		$params[] = OrdersAItems::STTS_MERGE_RESULT;
 | |
| 
 | |
| 		if (isset($filter['group_by'])) {
 | |
| 			$group_by .= ' GROUP BY ' . $filter['group_by'];
 | |
| 		}
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		ord_a_item.id as ord_a_item_id,ord_a_item.v_termin_id,ord_a_item.ord_id,ord_a_item.ord_code
 | |
| 		,ord_a_item.desc,ord_a_item.a_item_type,ord_a_item.crt_type as a_item_crt_type
 | |
| 		,ord_a_item.crt as a_item_crt_at
 | |
| 		,ord_a_item.amt_base_flat,ord_a_item.unit_qty,ord_a_item.amt_tax_type,ord_a_item.amt_total_tax_flat,ord_a_item.amt_total_flat
 | |
| 		,ord_a_item.ddln_pay_at,ord_a_item.ddln_pay_type
 | |
| 		,ord_a_item.is_paid,ord_a_item.paid_at,ord_a_item.paid_method,ord_a_item.paid_by
 | |
| 		,ord_a_item.is_bill_paid,ord_a_item.paid_bill_at,ord_a_item.paid_bill_method,ord_a_item.paid_bill_by
 | |
| 		,ord_a_item.bank_name,ord_a_item.bank_short_name,ord_a_item.bank_acc_number,ord_a_item.bank_acc_name
 | |
| 		,ord_a_item.invc_to_client
 | |
| 		,ord_a_item.img_proof_submission
 | |
| 		,ord_a_item.is_aprv,ord_a_item.rjct_at,ord_a_item.rjct_by,ord_a_item.rjct_bill_at,ord_a_item.rjct_bill_by
 | |
| 		-- ,ord_a_item.is_merge_to,ord_a_item.merge_to_a_id,ord_a_item.merge_to_ord_id,ord_a_item.merge_to_ord_code,ord_a_item.merge_to_at
 | |
| 		-- ,ord_a_item.is_merge_from,ord_a_item.merge_from_a_id,ord_a_item.merge_from_ord_id,ord_a_item.merge_from_ord_code,ord_a_item.merge_from_at
 | |
| 		,ord_a_item.stts_merge,ord_a_item.merge_to_code,ord_a_item.group_merge_code,ord_a_item.merge_at
 | |
| 		,ord_pck.pck_name,ord_pck.set_pck_at,ord_pck.pck_addr
 | |
| 		-- ,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_pck.pck_prid LIMIT 1) as pck_prid_name
 | |
|         -- ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_pck.pck_ktid LIMIT 1) as pck_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_pck.pck_kcid LIMIT 1) as pck_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_pck.pck_klid LIMIT 1) as pck_klid_name
 | |
| 		,ord_drop.drop_name,ord_drop.drop_addr,ord_drop.chk_at as drop_chk_at
 | |
| 		-- ,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_drop.drop_prid LIMIT 1) as drop_prid_name
 | |
|         -- ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_drop.drop_ktid LIMIT 1) as drop_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_drop.drop_kcid LIMIT 1) as drop_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_drop.drop_klid LIMIT 1) as drop_klid_name
 | |
| 		,ord_c.c_name,ord_c.c_pt_name
 | |
|         " . $select_order . "
 | |
|         FROM t_orders_a_items as ord_a_item
 | |
|         INNER JOIN t_orders as ord ON ord_a_item.ord_id = ord.id
 | |
|         INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
 | |
|         INNER JOIN t_orders_pickups as ord_pck ON ord.id = ord_pck.ord_id
 | |
|         INNER JOIN t_orders_drops as ord_drop ON ord.id = ord_drop.ord_id
 | |
|         " . $join_join . "
 | |
|         WHERE ord.dlt is null
 | |
| 		AND ord_a_item.dlt is null
 | |
| 		AND ord.is_active = " . Orders::IS_ACTIVE_YES . "
 | |
| 		AND ord_a_item.is_active = " . OrdersAItems::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		AND ord_a_item.only_client = ?
 | |
| 		AND ord_a_item.calc_to_vdr = ?
 | |
| 		AND ord_a_item.is_hidden = ?
 | |
| 		AND ord_a_item.stts_merge IN (?,?)
 | |
| 		" . $group_by . "
 | |
|         ;",
 | |
| 			$params
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static function listAdtItemsBillings($filter = [])
 | |
| 	{
 | |
| 		$params = [];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		$group_by = '';
 | |
| 
 | |
| 		if (isset($filter['ord_id'])) {
 | |
| 			$where_where .= ' AND ord.id = ?';
 | |
| 			$params[] = $filter['ord_id'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['is_bill_aprv'])) {
 | |
| 			$where_where .= ' AND ord_a_item.is_bill_aprv = ?';
 | |
| 			$params[] = $filter['is_bill_aprv'];
 | |
| 		}
 | |
| 
 | |
| 		$params[] = OrdersAItems::ONLY_VDR_NO;
 | |
| 		$params[] = OrdersAItems::INVC_TO_CLIENT_YES;
 | |
| 		$params[] = OrdersAItems::IS_HIDDEN_NO;
 | |
| 		$params[] = OrdersAItems::STTS_MERGE_NO;
 | |
| 		$params[] = OrdersAItems::STTS_MERGE_RESULT;
 | |
| 
 | |
| 		if (isset($filter['group_by'])) {
 | |
| 			$group_by .= ' GROUP BY ' . $filter['group_by'];
 | |
| 		}
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		ord_a_item.id as ord_a_item_id,ord_a_item.v_termin_id,ord_a_item.ord_id,ord_a_item.ord_code
 | |
| 		,ord_a_item.desc,ord_a_item.a_item_type,ord_a_item.crt_type as a_item_crt_type
 | |
| 		,ord_a_item.unit_type,ut.name as unit_type_name,ord_a_item.unit_qty
 | |
| 		,ord_a_item.amt_bill_base_flat,ord_a_item.unit_qty,ord_a_item.amt_bill_total_flat
 | |
| 		,ord_a_item.is_paid,ord_a_item.paid_at,ord_a_item.paid_method,ord_a_item.paid_by
 | |
| 		,ord_a_item.is_bill_paid,ord_a_item.paid_bill_at,ord_a_item.paid_bill_method,ord_a_item.paid_bill_by
 | |
| 		,ord_termin.id as c_group_termin_id,ord_termin.termin_is_paid,ord_termin.termin_paid_at
 | |
| 		,ord_termin.sequence as termin_sequence,ord_termin.termin_ddln_type
 | |
| 		,ord_termin.termin_tax_type,ord_termin.termin_tax_ppn_percent,ord_termin.termin_tax_ppn_flat,ord_termin.termin_tax_pph_percent,ord_termin.termin_tax_pph_flat
 | |
| 		,ord_termin.amt_bill_confirm,ord_termin.amt_bill_confirm_note
 | |
| 		,ord_invc.id as invc_id,ord_invc.code as invc_code
 | |
| 		,ord_invc.amt_disc_type as invc_disc_type,ord_invc.amt_disc_percent as invc_disc_percent,ord_invc.amt_disc_flat as invc_disc_flat
 | |
| 		,ord_invc.is_gnrt_invc
 | |
| 		,ord_a_item.is_aprv,ord_a_item.rjct_at,ord_a_item.rjct_by,ord_a_item.rjct_bill_at,ord_a_item.rjct_bill_by
 | |
| 		,ord_a_item.stts_merge,ord_a_item.merge_to_code,ord_a_item.group_merge_code,ord_a_item.merge_at
 | |
| 		,ord_pck.pck_name,ord_pck.set_pck_at,ord_pck.pck_addr
 | |
| 		-- ,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_pck.pck_prid LIMIT 1) as pck_prid_name
 | |
|         -- ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_pck.pck_ktid LIMIT 1) as pck_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_pck.pck_kcid LIMIT 1) as pck_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_pck.pck_klid LIMIT 1) as pck_klid_name
 | |
| 		,ord_drop.drop_name,ord_drop.drop_addr,ord_drop.chk_at as drop_chk_at
 | |
| 		-- ,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_drop.drop_prid LIMIT 1) as drop_prid_name
 | |
|         -- ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_drop.drop_ktid LIMIT 1) as drop_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_drop.drop_kcid LIMIT 1) as drop_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_drop.drop_klid LIMIT 1) as drop_klid_name
 | |
| 		,ord_c.c_id,ord_c.c_name,ord_c.c_pt_id,ord_c.c_pt_name
 | |
|         " . $select_order . "
 | |
|         FROM t_orders_a_items as ord_a_item
 | |
|         INNER JOIN t_orders as ord ON ord_a_item.ord_id = ord.id
 | |
|         INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
 | |
|         INNER JOIN t_orders_pickups as ord_pck ON ord.id = ord_pck.ord_id
 | |
|         INNER JOIN t_orders_drops as ord_drop ON ord.id = ord_drop.ord_id
 | |
|         INNER JOIN t_orders_termins as ord_termin ON ord_a_item.c_termin_id = ord_termin.id
 | |
| 		LEFT JOIN t_orders_invoices as ord_invc ON ord_termin.id = ord_invc.c_termin_id
 | |
| 		LEFT JOIN t_unit_types as ut ON ord_a_item.unit_type = ut.id
 | |
|         " . $join_join . "
 | |
|         WHERE ord.dlt is null
 | |
| 		AND ord_a_item.dlt is null
 | |
| 		AND ord.is_active = " . Orders::IS_ACTIVE_YES . "
 | |
| 		AND ord_a_item.is_active = " . OrdersAItems::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		AND only_vdr = ?
 | |
| 		AND invc_to_client = ?
 | |
| 		AND ord_a_item.is_hidden = ?
 | |
| 		AND ord_a_item.stts_merge IN (?,?)
 | |
| 		" . $group_by . "
 | |
|         ;",
 | |
| 			$params
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static function listLedgerBl($filter = [])
 | |
| 	{
 | |
| 		$params = [
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 			OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT,
 | |
| 		];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		$group_by = '';
 | |
| 
 | |
| 		if (isset($filter['ord_id'])) {
 | |
| 			$where_where .= ' AND ord.id = ?';
 | |
| 			$params[] = $filter['ord_id'];
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['with_items'])) {
 | |
| 			$select_order .= "
 | |
| 			,ord_a_item.id as ord_a_item_id
 | |
| 			,ord_a_item.a_item_type,ord_a_item.desc as item_desc,ord_a_item.unit_type,unit_type.name as unit_type_name,ord_a_item.unit_qty
 | |
| 			,ord_a_item.amt_base_flat,ord_a_item.amt_result_flat,ord_a_item.amt_total_flat
 | |
| 			,ord_a_item.amt_bill_base_flat,ord_a_item.amt_bill_result_flat,ord_a_item.amt_bill_total_flat
 | |
| 			,ord_a_item.is_paid,ord_a_item.paid_at,ord_a_item.is_bill_paid,ord_a_item.paid_bill_at
 | |
| 			,ord_a_item.invc_to_client,ord_a_item.calc_to_vdr,ord_a_item.is_adm_price,ord_a_item.only_client,ord_a_item.only_vdr,ord_a_item.is_hidden,ord_a_item.is_tax,ord_a_item.is_disc
 | |
| 			,ord_a_item.is_aprv,ord_a_item.is_bill_aprv
 | |
| 			";
 | |
| 			$join_join .= "
 | |
| 			INNER JOIN t_orders_a_items as ord_a_item ON ord.id = ord_a_item.ord_id
 | |
| 			LEFT JOIN t_unit_types as unit_type ON ord_a_item.unit_type = unit_type.id
 | |
| 			";
 | |
| 			// perlu diperbaiki cara if di query, jika kalkulasi ke vendor maka is_aprv = , jika ke client is_bill_aprv = 1
 | |
| 			$where_where .= ' AND ord_a_item.dlt is null AND (ord_a_item.calc_to_vdr = ' . OrdersAItems::CALC_TO_VDR_YES . ' OR ord_a_item.invc_to_client = ' . OrdersAItems::INVC_TO_CLIENT_YES . ') AND (ord_a_item.is_aprv = ' . OrdersAItems::IS_APRV_YES . ' OR ord_a_item.is_bill_aprv = ' . OrdersAItems::IS_APRV_YES . ')';
 | |
| 		}
 | |
| 
 | |
| 		if (isset($filter['start_date']) && isset($filter['end_date'])) {
 | |
| 			$where_where .= ' AND ord.crt BETWEEN ? AND ?';
 | |
| 			$params[] = $filter['start_date'];
 | |
| 			$params[] = $filter['end_date'];
 | |
| 		}
 | |
| 		
 | |
| 		if (isset($filter['group_by'])) {
 | |
| 			$group_by .= ' GROUP BY ' . $filter['group_by'];
 | |
| 		}
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		ord.id as ord_id,ord.code as ord_code,ord.status as ord_status
 | |
| 		,@total_in:=(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_vdr = ? AND invc_to_client = ? AND is_bill_aprv = ? AND is_bill_paid = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_in
 | |
| 		,@total_out:=(SELECT SUM(amt_total_flat) FROM t_orders_a_items WHERE dlt is null AND is_active = ? AND only_client = ? AND calc_to_vdr = ? AND is_aprv = ? AND is_paid = ? AND stts_merge IN (?,?) AND ord_id = ord.id) as total_out
 | |
| 		,(IFNULL(@total_in, 0) - IFNULL(@total_out, 0)) as total_bl
 | |
| 		,ord_pck.pck_name,ord_pck.set_pck_at,ord_pck.pck_addr
 | |
| 		,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_pck.pck_prid LIMIT 1) as pck_prid_name
 | |
|         ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_pck.pck_ktid LIMIT 1) as pck_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_pck.pck_kcid LIMIT 1) as pck_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_pck.pck_klid LIMIT 1) as pck_klid_name
 | |
| 		,ord_drop.drop_name,ord_drop.drop_addr
 | |
| 		,(SELECT nmProvinsiKel FROM t_region WHERE kodeProv = ord_drop.drop_prid LIMIT 1) as drop_prid_name
 | |
|         ,(SELECT nmKotamadyaKel FROM t_region WHERE kodeKab = ord_drop.drop_ktid LIMIT 1) as drop_ktid_name
 | |
|         -- ,(SELECT nmKecamatanKel FROM t_region WHERE kodeKec = ord_drop.drop_kcid LIMIT 1) as drop_kcid_name
 | |
|         -- ,(SELECT nmKelurahan FROM t_region WHERE kodeKel = ord_drop.drop_klid LIMIT 1) as drop_klid_name
 | |
| 		,ord_c.c_name,ord_c.c_pt_name
 | |
| 		,ord_vdr.vdr_name,ord_vdr.vdr_pt_name
 | |
|         " . $select_order . "
 | |
|         FROM t_orders as ord
 | |
|         INNER JOIN t_orders_clients as ord_c ON ord.id = ord_c.ord_id
 | |
|         INNER JOIN t_orders_pickups as ord_pck ON ord.id = ord_pck.ord_id
 | |
|         INNER JOIN t_orders_drops as ord_drop ON ord.id = ord_drop.ord_id
 | |
| 		INNER JOIN t_orders_vendors as ord_vdr ON ord.id = ord_vdr.ord_id
 | |
|         " . $join_join . "
 | |
|         WHERE ord.dlt is null
 | |
| 		AND ord.is_active = " . Orders::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		" . $group_by . "
 | |
|         ;",
 | |
| 			$params
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static function summaryLedgerBl($filter = [])
 | |
| 	{
 | |
| 		$params = [];
 | |
| 		$select_order = '';
 | |
| 		$join_join = '';
 | |
| 		$where_where = '';
 | |
| 		// for sum
 | |
| 		$join_sum = '';
 | |
| 		$where_sum = '';
 | |
| 		$params_sum_totin = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_VDR_NO, OrdersAItems::INVC_TO_CLIENT_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 		$params_sum_totout = [OrdersAItems::IS_ACTIVE_YES, OrdersAItems::ONLY_CLIENT_NO, OrdersAItems::CALC_TO_VDR_YES, OrdersAItems::IS_APRV_YES, OrdersAItems::IS_PAID_YES, OrdersAItems::STTS_MERGE_NO, OrdersAItems::STTS_MERGE_RESULT];
 | |
| 
 | |
| 		if (isset($filter['start_date']) && isset($filter['end_date'])) {
 | |
| 			$join_sum .= ' INNER JOIN t_orders as o ON a.ord_id = o.id';
 | |
| 			$where_sum .= ' AND o.crt BETWEEN ? AND ?';
 | |
| 			array_push($params_sum_totin, $filter['start_date'], $filter['end_date']);
 | |
| 			array_push($params_sum_totout, $filter['start_date'], $filter['end_date']);
 | |
| 		}
 | |
| 
 | |
| 		// php spread operator was invented on 7.2
 | |
| 		$params_real = array_merge($params_sum_totin, $params_sum_totout, $params);
 | |
| 
 | |
| 		return DB::select(
 | |
| 			"SELECT
 | |
| 		@total_in:=(SELECT SUM(amt_bill_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_vdr = ? AND a.invc_to_client = ? AND a.is_bill_aprv = ? AND a.is_bill_paid = ? AND a.stts_merge IN (?,?) $where_sum) as total_in
 | |
| 		,@total_out:=(SELECT SUM(amt_total_flat) FROM t_orders_a_items as a $join_sum WHERE a.dlt is null AND a.is_active = ? AND a.only_client = ? AND a.calc_to_vdr = ? AND a.is_aprv = ? AND a.is_paid = ? AND a.stts_merge IN (?,?) $where_sum) as total_out
 | |
| 		,(IFNULL(@total_in, 0) - IFNULL(@total_out, 0)) as total_bl
 | |
|         " . $select_order . "
 | |
|         FROM t_orders_a_items as ord_a
 | |
|         " . $join_join . "
 | |
|         WHERE ord_a.dlt is null
 | |
| 		AND ord_a.is_active = " . OrdersAItems::IS_ACTIVE_YES . "
 | |
|         " . $where_where . "
 | |
| 		LIMIT 1
 | |
|         ;",
 | |
| 			$params_real
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Baru saja pembayaran dilunaskan baik dari client / vendor
 | |
| 	 * false => error
 | |
| 	 * 0 => not paid, 1 => just paid off, 2 => paid off
 | |
| 	 */
 | |
| 	public static function checkJustPaidOff($ord_id)
 | |
| 	{
 | |
| 		$order = Orders::showOrder(['id' => $ord_id]);
 | |
| 		if (count($order) < 1 || $order === false) return false;
 | |
| 		$out = [
 | |
| 			'invc_paid' => 0,
 | |
| 			'vdr_paid' => 0,
 | |
| 			'invc_vdr_paid' => 0,
 | |
| 		];
 | |
| 		$currentBill = Finance::listBillings(['ord_id' => $ord_id]);
 | |
| 		$currentPay = Finance::listPayments(['ord_id' => $ord_id]);
 | |
| 		// paid off
 | |
| 		if ($currentBill[0]->total_billing === $currentBill[0]->total_payed || $currentPay[0]->total_payment === $currentPay[0]->total_payed) {
 | |
| 			if ($currentBill[0]->total_billing === $currentBill[0]->total_payed) {
 | |
| 				// just paid off
 | |
| 				if ($order[0]->is_invc_paid !== Orders::IS_PAID_YES) {
 | |
| 					$out['invc_paid'] = 1;
 | |
| 				} else {
 | |
| 					$out['invc_paid'] = 2;
 | |
| 				}
 | |
| 			}
 | |
| 			if ($currentPay[0]->total_payment === $currentPay[0]->total_payed) {
 | |
| 				// just paid off
 | |
| 				if ($order[0]->is_vdr_paid !== Orders::IS_PAID_YES) {
 | |
| 					$out['vdr_paid'] = 1;
 | |
| 				} else {
 | |
| 					$out['vdr_paid'] = 2;
 | |
| 				}
 | |
| 			}
 | |
| 			if ($currentBill[0]->total_billing === $currentBill[0]->total_payed && $currentPay[0]->total_payment === $currentPay[0]->total_payed) {
 | |
| 				// just paid off
 | |
| 				if ($out['invc_paid'] === 1 || $out['vdr_paid'] === 1) {
 | |
| 					$out['invc_vdr_paid'] = 1;
 | |
| 				} else {
 | |
| 					$out['invc_vdr_paid'] = 2;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		return $out;
 | |
| 	}
 | |
| 
 | |
| 	public static function updtChangeInvc($c_termin_id)
 | |
| 	{
 | |
| 		$ord_invc = OrdersInvoices::getByTerminId($c_termin_id);
 | |
| 		if ($ord_invc !== false && count($ord_invc) > 0) {
 | |
| 			OrdersInvoices::updt($ord_invc[0]->id, [
 | |
| 				'is_gnrt_invc' => OrdersInvoices::IS_GNRT_INVC_NO,
 | |
| 			]);
 | |
| 			return true;
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	public static function availOrdToMerge($filter = [])
 | |
| 	{
 | |
| 		$params = [];
 | |
| 		$select = '';
 | |
| 		$join = '';
 | |
| 		$where = '';
 | |
| 		$group_by = '';
 | |
| 
 | |
| 		$where .= ' AND ord.stts_merge IN (?,?)';
 | |
| 		$params[] = OrdersAItems::STTS_MERGE_NO;
 | |
| 		$params[] = OrdersAItems::STTS_MERGE_RESULT;
 | |
| 
 | |
| 		if (isset($filter['except_ord_id'])) {
 | |
| 			$where .= ' AND ord.id = ?';
 | |
| 			$params[] = $filter['except_ord_id'];
 | |
| 		}
 | |
| 
 | |
| 		return DB::select(
 | |
| 		"SELECT
 | |
| 		ord.*
 | |
|         " . $select . "
 | |
|         FROM t_orders as ord
 | |
|         " . $join . "
 | |
|         WHERE ord.dlt is null
 | |
| 		AND ord.stts_merge = " . Orders::STTS_MERGE_NO . "
 | |
|         " . $where . "
 | |
| 		ORDER BY ord.id DESC
 | |
| 		" . $group_by . "
 | |
| 		LIMIT 100
 | |
|         ;",
 | |
| 			$params
 | |
| 		);
 | |
| 	}
 | |
| }
 | 
