Просмотр исходного кода

Pokaż oferty - rozlicz miesiąc: + abonament suma

Piotr Labudda 11 лет назад
Родитель
Сommit
472ee5601c
2 измененных файлов с 26 добавлено и 1 удалено
  1. 1 1
      SE/VERSION
  2. 25 0
      SE/superedit-POKAZ_OFERTY_AKTUALNE_FUNC.php

+ 1 - 1
SE/VERSION

@@ -1 +1 @@
-3.9.0
+3.9.0.1.biall-net

+ 25 - 0
SE/superedit-POKAZ_OFERTY_AKTUALNE_FUNC.php

@@ -3226,6 +3226,20 @@ class PokazOfertyHelper {
 		return $loss;
 	}
 
+	function get_aneks_loss_abonament_netto($offers_ids, $diff_months, $deal_month, &$loss_log) {
+		if (empty($offers_ids) || $diff_months <= 0) {
+			return 0;
+		}
+		$loss = 0;
+		$offers = self::get_offers_by_id($offers_ids, array('P_DEALTERM_MONTHS'=>$deal_month));
+		foreach ($offers as $v_offer) {
+			$loss += $v_offer->srednia_netto;
+		}
+		$loss_log []= "sredni abonament miesięczny {$loss}";
+		$loss = $loss * $diff_months;
+		return $loss;
+	}
+
 	function get_deals_by_month($month, $params = array()) {
 		$deals = array();
 
@@ -7190,6 +7204,7 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 	$tblOutCells['RODZAJ_DZIALANIA_HANDLOWEGO'] = (object)array('class'=>'dzialanie');
 	$tblOutCells['DEALDESC'] = 		(object)array('class'=>'opis');
 	$tblOutCells['deal_type'] = 	(object)array('class'=>'deal_type', 'label'=>'Wykryty rodzaj dokumentu');
+	$tblOutCells['abonament_srednia_netto'] = (object)array('class'=>'num', 'type'=>'number', 'label'=>'Średni miesięczny abonament netto');
 	$tblOutCells['zysk'] = 				(object)array('class'=>'num', 'type'=>'number', 'label'=>'Średni miesięczny zysk netto');
 	$tblOutCells['miesiecy'] = 		(object)array('class'=>'num', 'label'=>'Ilość miesięcy obowiązywania umowy');
 	$tblOutCells['aneks_diff'] = 	(object)array('class'=>'num', 'label'=>'Ilość miesięcy obowiązywania poprzedniej umowy');
@@ -7215,6 +7230,7 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 		$v_deal_row->miesiecy = PokazOfertyHelper::date_diff_months($v_deal_row->P_DEALDATE_TERM, $v_deal_row->P_DEALDATE);
 		$v_deal_row->aneks_diff = 0;
 		$v_deal_row->aneks_loss = 0;
+		$v_deal_row->aneks_loss_abo_netto = 0;
 		$v_deal_row->zysk_total = 0;
 		$v_deal_row->check_errors = array();
 
@@ -7307,6 +7323,7 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 								$old_deal_months = PokazOfertyHelper::date_diff_months($deal_old->get('P_DEALDATE_TERM'), $deal_old->get('P_DEALDATE'));
 								$loss = PokazOfertyHelper::get_aneks_loss($old_offers_ids, $diff_months, $old_deal_months, $loss_log);
 								$v_deal_row->aneks_loss = $loss;
+								$v_deal_row->aneks_loss_abo_netto = PokazOfertyHelper::get_aneks_loss_abonament_netto($old_offers_ids, $diff_months, $old_deal_months, $loss_log);
 							}
 						}
 
@@ -7428,6 +7445,7 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 			$vStat->ilosc = 0;
 			$vStat->zysk_total = 0;
 			$vStat->abonament_srednia_netto = 0;
+			$vStat->sum_abonament_srednia_netto = 0;
 		}
 
 		$vStat->ilosc += 1;
@@ -7436,6 +7454,11 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 			$errosNoGroupIDInOldDeal[$r->ID] = $r;
 		} else {
 			$vStat->abonament_srednia_netto += $r->abonament_srednia_netto;
+			if ('NEW_DEAL' == $r->deal_type) {
+				$vStat->sum_abonament_srednia_netto += $r->abonament_srednia_netto * $r->miesiecy;
+			} else if ('ANEKS' == $r->deal_type) {
+				$vStat->sum_abonament_srednia_netto += $r->abonament_srednia_netto * $r->miesiecy - $r->aneks_loss_abo_netto;
+			}
 		}
 
 		$statsByFoundType[$r->deal_type] = $vStat;
@@ -7484,6 +7507,7 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 					<th>ilość</th>
 					<th class="tbl_deals-col_num" title="Zysk całkowity: Zysk * Mies. - Aneks Strata">Zysk</th>
 					<th class="tbl_deals-col_num" title="Średni miesięczny abonament netto">Śr. abonament</th>
+					<th class="tbl_deals-col_num" title="Abonament netto wyliczony na podstawie średniego miesięcznego abonamentu">Suma abonamonet</th>
 				</thead>
 				<tbody>
 					<?php foreach ($statsByFoundType as $type => $vStat) : ?>
@@ -7492,6 +7516,7 @@ function POKAZ_OFERTY_AKTUALNE_FUNC__rozlicz_month($month) {
 						<td><?php echo $vStat->ilosc; ?></td>
 						<td><?php echo number_format($vStat->zysk_total, 2, ',', ''); ?></td>
 						<td><?php echo number_format($vStat->abonament_srednia_netto, 2, ',', ''); ?></td>
+						<td><?php echo number_format($vStat->sum_abonament_srednia_netto, 2, ',', ''); ?></td>
 					</tr>
 					<?php endforeach; ?>
 				</tbody>