|
|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
/**
|
|
|
* TODO: S_TECHNOLOGY - przepisywanie do SES_USERS2_A
|
|
|
- * TODO: dla aneks w GPON zostawiać stary jak jest i tworzyć nowy na waitingu
|
|
|
+ * TODO: dla aneks w GPON zostawiać stary jak jest, nie wyłączać i tworzyć nowy na waitingu
|
|
|
*/
|
|
|
|
|
|
error_reporting(E_ALL & ~E_NOTICE);
|
|
|
@@ -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();
|
|
|
|
|
|
@@ -3463,6 +3477,21 @@ class Services_Converter {
|
|
|
// decide what to do with old services
|
|
|
foreach ($this->_old_srv_data[$v_deal->ID_DEALS] as $k_srv_id => $v_srv) {
|
|
|
$new_offer_id = 0;
|
|
|
+
|
|
|
+ // pomin NET pod VOIP
|
|
|
+ if ($v_srv->NAME_LIST_SERVICES == 'USERS2') {
|
|
|
+ if ($v_srv->P_ID_SERVICES > 0) {
|
|
|
+ ?>
|
|
|
+ <div class="container">
|
|
|
+ <div class="alert alert-info">
|
|
|
+ Usługa internet ID=<?php echo $v_srv->ID; ?> pozostanie bez zmian ponieważ ma ustawione P_ID_SERVICES.
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <?php
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
foreach ($this->_new_srv_data as $k_offer_id => $v_offer) {
|
|
|
if (in_array($k_offer_id, $used_offer_ids) || $new_offer_id > 0) {
|
|
|
continue;
|
|
|
@@ -3470,8 +3499,24 @@ class Services_Converter {
|
|
|
// try if new offer match old service
|
|
|
if ($v_srv->NAME_LIST_SERVICES == 'USERS2') {
|
|
|
if ($v_offer->P_SERVICE == 'NET') {
|
|
|
- $new_offer_id = $k_offer_id;
|
|
|
- $used_offer_ids []= $k_offer_id;
|
|
|
+ if ($v_offer->S_TECHNOLOGY == $v_srv->ses_x_a->S_TECHNOLOGY) {
|
|
|
+ $new_offer_id = $k_offer_id;
|
|
|
+ $used_offer_ids []= $k_offer_id;
|
|
|
+ } else {
|
|
|
+ ?>
|
|
|
+ <div class="container">
|
|
|
+ <div class="alert alert-error">
|
|
|
+ TODO: Oferta na internet ma S_TECHNOLOGY='<?php echo $v_offer->S_TECHNOLOGY; ?>', a aktualna usługa ma '<?php echo $v_srv->ses_x_a->S_TECHNOLOGY; ?>'
|
|
|
+ <?php if ($v_offer->S_TECHNOLOGY == 'GPON') : ?>
|
|
|
+ <br>Propozycja: utworzyć nową umowę zamiast aneksu, a stare usługi wyłączyć po instalacji nowych usług.
|
|
|
+ <?php else : ?>
|
|
|
+ <br>Stare usugi zostaną wyłączone automtycznie, ale powinny działać do czasu włączenia nowej umowy
|
|
|
+ <?php endif; ?>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <?php
|
|
|
+ //exit;
|
|
|
+ }
|
|
|
}
|
|
|
} else if ($v_srv->NAME_LIST_SERVICES == 'VOIP') {
|
|
|
if ($v_offer->P_SERVICE == 'TEL') {
|
|
|
@@ -7190,6 +7235,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 +7261,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 +7354,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 +7476,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 +7485,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 +7538,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 +7547,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>
|