Sfoglia il codice sorgente

WindykacjaPanel: add saldo 30 dni, saldo wystawione #106

Piotr Labudda 11 anni fa
parent
commit
7a67255bd7
1 ha cambiato i file con 79 aggiunte e 0 eliminazioni
  1. 79 0
      SE/superedit-USERS2_WINDYKACJA_STATUS.php

+ 79 - 0
SE/superedit-USERS2_WINDYKACJA_STATUS.php

@@ -1370,6 +1370,8 @@ function frm_kontakt_add_id_koresp(frm){
 		$cols['A_STATUS'] = array('label'=>'status', 'title'=>'A_STATUS');
 		$cols['A_STATUS_UPDATE_DATE'] = array('label'=>'data aktualizacji', 'title'=>'A_STATUS_UPDATE_DATE');
 		$cols['PAY_SALDO'] = array('label'=>'saldo', 'title'=>'PAY_SALDO');
+		$cols['PAY_SALDO_30_DNI'] = array('label'=>'saldo 30 dni', 'title'=>'Saldo bez faktur z terminem płatności < 30 dni');
+		$cols['PAY_SALDO_ISSUED'] = array('label'=>'saldo wystawione', 'title'=>'Saldo wg daty wystawienia faktur');
 		$cols['PAY_FVAT'] = array('label'=>'zaległe faktury', 'title'=>'PAY_FVAT');
 		$cols['PAY_DATE_FIRST_FVAT'] = array('label'=>'data wymagalności<br> pierwszej faktury', 'title'=>'PAY_DATE_FIRST_FVAT');
 		$cols['PAY_DATE'] = array('label'=>'data wymagalności<br> ostatniej faktury', 'title'=>'PAY_DATE');
@@ -1475,6 +1477,26 @@ function frm_kontakt_add_id_koresp(frm){
 					}
 					echo '</nobr>';
 				echo'</td>';
+				echo'<td>';
+					echo '<nobr>';
+					if ($user->PAY_SALDO_30_DNI != 0) {
+						$col = ($user->PAY_SALDO_30_DNI > 0)? '#333' : '#f00';
+						echo '<span style="color:' . $col . '">' . "{$user->PAY_SALDO_30_DNI} zł" . '</span>';
+					} else {
+						echo'<span style="color:#666">' . "0" . '</span>';
+					}
+					echo '</nobr>';
+				echo'</td>';
+				echo'<td>';
+					echo '<nobr>';
+					if ($user->PAY_SALDO_ISSUED != 0) {
+						$col = ($user->PAY_SALDO_ISSUED > 0)? '#333' : '#f00';
+						echo '<span style="color:' . $col . '">' . "{$user->PAY_SALDO_ISSUED} zł" . '</span>';
+					} else {
+						echo'<span style="color:#666">' . "0" . '</span>';
+					}
+					echo '</nobr>';
+				echo'</td>';
 				echo'<td>';
 					if ($user->PAY_FVAT > 0) {
 						$st = ($user->PAY_FVAT > 1)? ' style="color:#f00"' : '';
@@ -1546,6 +1568,8 @@ function frm_kontakt_add_id_koresp(frm){
 		$cols['A_STATUS'] = array('label'=>'status', 'title'=>'A_STATUS');
 		$cols['A_STATUS_UPDATE_DATE'] = array('label'=>'data aktualizacji', 'title'=>'A_STATUS_UPDATE_DATE');
 		$cols['PAY_SALDO'] = array('label'=>'saldo', 'title'=>'PAY_SALDO');
+		$cols['PAY_SALDO_30_DNI'] = array('label'=>'saldo 30 dni', 'title'=>'Saldo bez faktur z terminem płatności < 30 dni');
+		$cols['PAY_SALDO_ISSUED'] = array('label'=>'saldo wystawione', 'title'=>'Saldo wg daty wystawienia faktur');
 		$cols['PAY_FVAT'] = array('label'=>'zaległe faktury', 'title'=>'PAY_FVAT');
 		$cols['PAY_DATE_FIRST_FVAT'] = array('label'=>'data wymagalności pierwszej faktury', 'title'=>'PAY_DATE_FIRST_FVAT');
 		$cols['PAY_DATE'] = array('label'=>'data wymagalności ostatniej faktury', 'title'=>'PAY_DATE');
@@ -1579,6 +1603,8 @@ function frm_kontakt_add_id_koresp(frm){
 			$out_cols[] = '"' . $user->A_STATUS . '"';
 			$out_cols[] = '"' . $user->A_STATUS_UPDATE_DATE . '"';
 			$out_cols[] = '"' . (($user->PAY_SALDO != 0)? "{$user->PAY_SALDO} zł" : "0") . '"';
+			$out_cols[] = '"' . (($user->PAY_SALDO_30_DNI != 0)? "{$user->PAY_SALDO_30_DNI} zł" : "0") . '"';
+			$out_cols[] = '"' . (($user->PAY_SALDO_ISSUED != 0)? "{$user->PAY_SALDO_ISSUED} zł" : "0") . '"';
 			$out_cols[] = '"' . $user->PAY_FVAT . '"';
 			$out_cols[] = '"' . (($user->PAY_DATE_FIRST_FVAT != '0000-00-00')? $user->PAY_DATE_FIRST_FVAT : '') . '"';
 			$out_cols[] = '"' . (($user->PAY_DATE != '0000-00-00')? $user->PAY_DATE : '') . '"';
@@ -3183,6 +3209,54 @@ class BillingDocs {
 		return round($this->_saldo, 2);
 	}
 
+	public function get_saldo_30_dni() {
+		// `PAY_SALDO_30_DNI` bez fv z terminem płatności < 30 dni
+		$saldo_30_dni = 0;
+		$dateMinus30dni = date('Y-m-d', mktime(0,0,0, date('n'), date('j') - 30, date('Y')));
+		foreach ($this->_docs as $kData => $vDocs) {
+			foreach ($vDocs as $vDoc) {
+				if ($vDoc instanceof BillingDoc) {
+					if ('FVAT' == $vDoc->get_type()) {// TODO: if FVAT then use only date PAYMENT_TERM >= 30 dni
+						if ($vDoc->get('PAYMENT_TERM') > $dateMinus30dni) {
+							echo'<pre>POMIŃ! $vDoc pay_term('.$vDoc->get('PAYMENT_TERM').') ';print_r($vDoc);echo'</pre>';
+						} else {
+							echo'<pre>$vDoc pay_term('.$vDoc->get('PAYMENT_TERM').'/'.($vDoc->get('PAYMENT_TERM') > $dateMinus30dni).') ';print_r($vDoc);echo'</pre>';
+							$saldo_30_dni += $vDoc->get_saldo();
+						}
+					} else {
+						$saldo_30_dni += $vDoc->get_saldo();
+					}
+				}
+			}
+		}
+		$saldo_30_dni = round($saldo_30_dni, 2);
+		if ($saldo_30_dni === 0.0) {// float point bug round('-6.821210263297E-13', 2) = -0
+			$saldo_30_dni = 0.0;
+		}
+		return $saldo_30_dni;
+	}
+
+	public function get_saldo_issued() {
+		// `PAY_SALDO_ISSUED` fv wg daty wystawienia
+		$saldo_issued = 0;
+		foreach ($this->_docs as $kData => $vDocs) {
+			foreach ($vDocs as $vDoc) {
+				if ($vDoc instanceof BillingDoc) {
+					if (1) {// TODO: if FVAT then use SELL_DATE instead of PAYMENT_TERM
+						$saldo_issued += $vDoc->get_saldo();
+					} else {
+						$saldo_issued += $vDoc->get_saldo();
+					}
+				}
+			}
+		}
+		$saldo_issued = round($saldo_issued, 2);
+		if ($saldo_issued === 0.0) {// float point bug round('-6.821210263297E-13', 2) = -0
+			$saldo_issued = 0.0;
+		}
+		return $saldo_issued;
+	}
+
 	public function get_docs() {
 		return $this->_docs;
 	}
@@ -3482,6 +3556,8 @@ class WindykacjaStatsHelper {
 			}
 		}
 		$data_arr["PAY_SALDO"] = $saldo;
+		$data_arr["PAY_SALDO_30_DNI"] = $billing_docs->get_saldo_30_dni();
+		$data_arr["PAY_SALDO_ISSUED"] = $billing_docs->get_saldo_issued();
 		$data_arr["PAY_FVAT"] = 0;
 		$data_arr["PAY_DATE_FIRST_FVAT"] = '0000-00-00';
 		$lastFvatDoc = $billing_docs->get_last_fvat_doc();
@@ -3581,6 +3657,7 @@ class WindykacjaStatsHelper {
 				//$data_arr["PAY_DATE"] = '0000-00-00';// TODO: ?
 			}
 		}
+		if(V::get('DBG_LAST_FVAT_PAY_TERM', '', $_GET)){echo'<pre>data_arr: ';print_r($data_arr);echo'</pre>';}
 
 		$sql_arr = array();
 		foreach ($data_arr as $k => $v) {
@@ -4646,6 +4723,8 @@ class WindykacjaStatsModel {
 				, w.`LAST_PAY_VALUE`
 				, w.`LAST_FVAT_PAY_TERM`
 				, w.`LAST_FVAT_VALUE`
+				, w.`PAY_SALDO_30_DNI`
+				, w.`PAY_SALDO_ISSUED`
 				, w.`BAD_ADDRESS`
 				-- , (select bu.`BILLING_OWNER` from `BILLING_USERS` as bu where bu.`ID`=w.`ID_BILLING_USERS` limit 1) as BILLING_OWNER
 				-- , (select bu.`STATUS` from `BILLING_USERS` as bu where bu.`ID`=w.`ID_BILLING_USERS` limit 1) as STATUS