Files
crm.twinpol.com/modules/EcmPaymentStates/Dashlets/MySaldoDashlet/Helper.php
2025-05-12 15:44:39 +00:00

221 lines
5.4 KiB
PHP
Executable File

<?php
// helper functions
function getData($id, $expired) {
$db = $GLOBALS ['db'];
$saldo = false;
$settled = " t.settled!='1' AND ";
switch ($expired) {
case 0 :
$payment_date = "1=1";
break;
case 1 :
$date = new DateTime ( date ( "Y-m-d" ) );
$d = $date->format ( 'Y-m-d' );
$payment_date = " payment_date <= '$d'";
break;
case 2 :
$date_to = new DateTime ( date ( "Y-m-d" ) );
$d_t = $date_to->format ( 'Y-m-d' );
$date_from = new DateTime ( date ( "Y-m-d" ) );
$date_from->modify ( '-30 days' );
$d_f = $date_from->format ( 'Y-m-d' );
$payment_date = " payment_date BETWEEN '$d_f' AND '$d_t'";
break;
case 3 :
$date_to = new DateTime ( date ( "Y-m-d" ) );
$date_to->modify ( '-31 days' );
$d_t = $date_to->format ( 'Y-m-d' );
$date_from = new DateTime ( date ( "Y-m-d" ) );
$date_from->modify ( '-60 days' );
$d_f = $date_from->format ( 'Y-m-d' );
$payment_date = " payment_date BETWEEN '$d_f' AND '$d_t'";
break;
case 4 :
$date_to = new DateTime ( date ( "Y-m-d" ) );
$date_to->modify ( '-61 days' );
$d_t = $date_to->format ( 'Y-m-d' );
$date_from = new DateTime ( date ( "Y-m-d" ) );
$date_from->modify ( '-90 days' );
$d_f = $date_from->format ( 'Y-m-d' );
$payment_date = " payment_date BETWEEN '$d_f' AND '$d_t'";
break;
case 5 :
$date_to = new DateTime ( date ( "Y-m-d" ) );
$date_to->modify ( '-91 days' );
$d_t = $date_to->format ( 'Y-m-d' );
$date_from = new DateTime ( date ( "Y-m-d" ) );
$date_from->modify ( '-180 days' );
$d_f = $date_from->format ( 'Y-m-d' );
$payment_date = " payment_date BETWEEN '$d_f' AND '$d_t'";
break;
case 6 :
$date = new DateTime ( date ( "Y-m-d" ) );
$date->modify ( '-181 days' );
$d = $date->format ( 'Y-m-d' );
$payment_date = " payment_date < '$d'";
break;
case 7 :
$date = new DateTime ( date ( "Y-m-d" ) );
$d = $date->format ( 'Y-m-d' );
$payment_date = " payment_date >= '$d'";
break;
case 8 :
$payment_date = " 1=1 ";
$saldo = true;
$settled = " 1=1 AND ";
break;
case 9:
$date = new DateTime ( date ( "Y-m-d" ) );
$d = $date->format ( 'Y-m-d' );
$payment_date = " payment_date <= '$d'";
$settled = " 1=1 AND ";
$saldo = true;
break;
}
//start WINIEN
$r = $db->fetchByAssoc ( $db->query ( "
SELECT
sum(
CASE WHEN t.currency_id='PLN' THEN t.value
ELSE t.value*t.currency_value
END
) AS sum
FROM ecmtransactions AS t
WHERE
t.parent_id = '$id' AND
t.deleted='0' AND
" .$settled. "
t.type='1' AND
t.register_date > '2011-12-31' AND
" . $payment_date . "
" ) );
//get part settled transactions
if (!$saldo)
$s = $db->fetchByAssoc($db->query("
SELECT
sum(
CASE WHEN t.currency_id='PLN' THEN rel.value
ELSE rel.value*t.currency_value
END
) AS settled, t.id
FROM ecmtransactions_rel AS rel
INNER JOIN ecmtransactions AS t
ON rel.ecmtransaction_b_id = t.id
WHERE
t.parent_id = '$id' AND
t.deleted='0' AND
t.type='1' AND
t.register_date > '2011-12-31' AND
" .$payment_date. "
"));
if (! is_numeric ( $r ['sum'] ))
$r ['sum'] = 0;
if (! is_numeric ( $s ['settled'] ))
$s ['settled'] = 0;
if (floatval($s['settled']) > 0)
$r['sum'] = floatval($r['sum']) - floatval($s['settled']);
$sum = $r['sum'];
//END WINIEN
$r['sum'] = 0;
if ($saldo) {
$r = $db->fetchByAssoc ( $db->query ( "
SELECT
sum(
CASE WHEN t.currency_id='PLN' THEN t.value
ELSE t.value*t.currency_value
END
) AS sum
FROM ecmtransactions AS t
WHERE
t.parent_id = '$id' AND
t.deleted='0' AND
t.type='0' AND
t.register_date > '2011-12-31' AND
" . $payment_date . "
" ) );
}
//END MA
return $sum - $r ['sum'];
}
// sort comparing functions
function cmpUnsettled($a, $b) {
if ($a ['unsettled'] == $b ['unsettled']) {
return 0;
}
return ($a ['unsettled'] < $b ['unsettled']) ? - 1 : 1;
}
function cmpUnsettledDesc($a, $b) {
if ($a ['unsettled'] == $b ['unsettled']) {
return 0;
}
return ($a ['unsettled'] < $b ['unsettled']) ? 1 : - 1;
}
function cmpNotOverdue($a, $b) {
if ($a ['not_overdue'] == $b ['not_overdue']) {
return 0;
}
return ($a ['not_overdue'] < $b ['not_overdue']) ? - 1 : 1;
}
function cmpNotOverdueDesc($a, $b) {
if ($a ['not_overdue'] == $b ['not_overdue']) {
return 0;
}
return ($a ['not_overdue'] < $b ['not_overdue']) ? 1 : - 1;
}
function cmpOverdue($a, $b) {
if ($a ['overdue'] == $b ['overdue']) {
return 0;
}
return ($a ['overdue'] < $b ['overdue']) ? - 1 : 1;
}
function cmpOverdueDesc($a, $b) {
if ($a ['overdue'] == $b ['overdue']) {
return 0;
}
return ($a ['overdue'] < $b ['overdue']) ? 1 : - 1;
}
function cmpAccount($a, $b) {
return strnatcmp ( $a ['name'], $b ['name'] );
}
function cmpAccountDesc($a, $b) {
return - 1 * strnatcmp ( $a ['name'], $b ['name'] );
}
function cmpSaldo($a, $b) {
if ($a ['saldo'] == $b ['saldo']) {
return 0;
}
return ($a ['saldo'] < $b ['saldo']) ? - 1 : 1;
}
function cmpSaldoDesc($a, $b) {
if ($a ['saldo'] == $b ['saldo']) {
return 0;
}
return ($a ['saldo'] < $b ['saldo']) ? 1 : -1;
}
function cmpTodaySaldo($a, $b) {
if ($a ['today_saldo'] == $b ['today_saldo']) {
return 0;
}
return ($a ['today_saldo'] < $b ['today_saldo']) ? - 1 : 1;
}
function cmpTodaySaldoDesc($a, $b) {
if ($a ['today_saldo'] == $b ['today_saldo']) {
return 0;
}
return ($a ['today_saldo'] < $b ['today_saldo']) ? 1 : -1;
}?>