Sfoglia il codice sorgente

PokazOferty show deals with blocked services

Piotr Labudda 11 anni fa
parent
commit
3852279b00
1 ha cambiato i file con 65 aggiunte e 22 eliminazioni
  1. 65 22
      SE/superedit-POKAZ_OFERTY_AKTUALNE_FUNC.php

+ 65 - 22
SE/superedit-POKAZ_OFERTY_AKTUALNE_FUNC.php

@@ -1041,7 +1041,7 @@ body {font:11px helvetica, arial;}
 			return;
 		}
 
-		$active_deals_by_id = PokazOfertyHelper::get_deals_active_by_user($user->ID_BILLING_USERS, false);
+		$active_deals_by_id = PokazOfertyHelper::getDealsActiveOrBlockedByUser($user->ID_BILLING_USERS, false);
 		if(V::get('DBG',0,$_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;display:none">active_deals_by_id (F.' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($active_deals_by_id);echo'</pre>';}
 
 		foreach ($active_deals_by_id as $v_deal_ind => $v_deal) {
@@ -2991,10 +2991,10 @@ order by t0.ID desc
 		echo " <b>Oferty</b>";
 		if (!$_GET['print']) {
 			$link_href = "?MENU_INIT=POKAZ_OFERTY_AKTUALNE_FUNC";
-			$link_href .= "&S_ADDRESS_STREET=".$_GET['S_ADDRESS_STREET']."&print=1";
+			$link_href .= "&S_ADDRESS_STREET={$_GET['S_ADDRESS_STREET']}&print=1";
 			foreach ($oferty_filters as $k_filter => $v_params) {
 				//if (in_array($k_filter, $oferty_filters_pomin)) continue;
-				$link_href .= "&".$k_filter."=".$v_params['value'];
+				$link_href .= "&{$k_filter}={$v_params['value']}";
 			}
 			echo' - <a href="'.$link_href.'" target="_blank">' . " drukuj " . '<img src="icon/print.gif" height="24">' . '</a>';
 
@@ -3015,28 +3015,28 @@ order by t0.ID desc
 				echo '</form>';
 				echo '<div id="frm_Q_values"></div>';
 				if (!empty($_GET['S_ADDRESS_STREET'])) {
-					$active_deals_street = PokazOfertyHelper::get_deals_active_by_street($_GET['S_ADDRESS_STREET']);
+					$active_deals_street = PokazOfertyHelper::getDealsActiveOrBlockedByStreet($_GET['S_ADDRESS_STREET']);
 					if (!empty($active_deals_street)) {
 						echo '<div style="border:1px solid red;background:#FFCCCC;padding:0 10px;">' . "<b>Uwaga na wybranym adresie są aktywne umowy:</b>";
 						$link_base = "";
 						$link_base .= "?MENU_INIT=POKAZ_OFERTY_AKTUALNE_FUNC";
-						$link_base .= "&S_ADDRESS_STREET=".$_GET['S_ADDRESS_STREET'];
+						$link_base .= "&S_ADDRESS_STREET={$_GET['S_ADDRESS_STREET']}";
 						foreach ($oferty_filters as $k_filter => $v_params) {
-							$link_base .= "&".$k_filter."=".$v_params['value'];
+							$link_base .= "&{$k_filter}={$v_params['value']}";
 						}
 						$out_user_deals = array();
 						foreach ($active_deals_street as $k_id_user => $v_usr_arr) {
 							foreach ($v_usr_arr as $v_usr) {
 								if (!array_key_exists($v_usr->ID_BILLING_USERS, $out_user_deals)) {
-									$out_user_deals [$v_usr->ID_BILLING_USERS] = (object)array('P_NAME'=>$v_usr->P_NAME, 'deals_id_arr'=>array($v_usr->ID_DEALS));
+									$out_user_deals[$v_usr->ID_BILLING_USERS] = (object)array('P_NAME'=>$v_usr->P_NAME, 'deals_id_arr'=>array($v_usr->ID_DEALS));
 								} else {
-									$out_user_deals [$v_usr->ID_BILLING_USERS]->deals_id_arr []= $v_usr->ID_DEALS;
+									$out_user_deals[$v_usr->ID_BILLING_USERS]->deals_id_arr[] = $v_usr->ID_DEALS;
 								}
 							}
 						}
 						foreach ($out_user_deals as $v_usr_id => $v_usr_info) {
-							echo '<p>' . $v_usr_info->P_NAME . " umowy nr: " . implode(", ", $v_usr_info->deals_id_arr);
-							echo " - " . '<a href="' . $link_base . "&user_id=" . $v_usr_id . '">' . "Wybierz klienta " . $v_usr_id . '</a>';
+							echo '<p>' . "{$v_usr_info->P_NAME} umowy nr: " . implode(", ", $v_usr_info->deals_id_arr);
+							echo " - " . '<a href="' . "{$link_base}&user_id={$v_usr_id}" . '">' . "Wybierz klienta {$v_usr_id}" . '</a>';
 							echo '</p>';
 						}
 						echo '</div>';
@@ -3044,7 +3044,7 @@ order by t0.ID desc
 				}
 			//} else {
 			if ($user) {
-				$active_deals_by_id = PokazOfertyHelper::get_deals_active_with_info($_GET['S_ADDRESS_STREET'], $user->ID_BILLING_USERS);
+				$active_deals_by_id = PokazOfertyHelper::getDealsActiveOrBlockedWithInfo($_GET['S_ADDRESS_STREET'], $user->ID_BILLING_USERS);
 
 				PokazOfertyView::user_with_services($user, $active_deals_by_id);
 			}
@@ -3994,6 +3994,10 @@ class PokazOfertyHelper {
 		return self::get_deals_active(array('S_ADDRESS_STREET'=>$S_ADDRESS_STREET));
 	}
 
+	public static function getDealsActiveOrBlockedByStreet($S_ADDRESS_STREET) {
+		return self::getDealsActiveOrBlocked(array('S_ADDRESS_STREET'=>$S_ADDRESS_STREET));
+	}
+
 	/**
 	 * @param string $S_ADDRESS_STREET - tylko umowy na danym adresie
 	 * @param int $ID_BILLING_USERS - tylko umowy danego klienta
@@ -4006,17 +4010,40 @@ class PokazOfertyHelper {
 		return $active_deals_by_id;
 	}
 
+	public static function getDealsActiveOrBlockedWithInfo($S_ADDRESS_STREET, $ID_BILLING_USERS, $only_active = true, $only_active_or_blocked = true) {
+		$params = array();
+		$params['S_ADDRESS_STREET'] = $S_ADDRESS_STREET;
+		$params['ID_BILLING_USERS'] = $ID_BILLING_USERS;
+		$params['BLOCKED'] = '1';
+		$params['return_by'] = 'ID';
+		$params['P_DEALNUMBER'] = true;
+		$active_deals_by_id = self::get_deals_active($params);
+		self::deals_active_add_info($active_deals_by_id, $ID_BILLING_USERS, $only_active, $only_active_or_blocked);
+		return $active_deals_by_id;
+	}
+
+	public static function getDealsActiveOrBlockedByUser($ID_BILLING_USERS, $only_active = true, $only_active_or_blocked = true) {
+		$params = array();
+		$params['ID_BILLING_USERS'] = $ID_BILLING_USERS;
+		$params['BLOCKED'] = '1';
+		$params['return_by'] = 'ID';
+		$params['P_DEALNUMBER'] = true;
+		$active_deals_by_id = self::get_deals_active($params);
+		self::deals_active_add_info($active_deals_by_id, $ID_BILLING_USERS, $only_active, $only_active_or_blocked);
+		return $active_deals_by_id;
+	}
+
 	public static function get_deals_active_by_user($ID_BILLING_USERS, $only_active = true) {
 		$active_deals_by_id = self::get_deals_active(array('ID_BILLING_USERS'=>$ID_BILLING_USERS, 'return_by'=>'ID', 'P_DEALNUMBER'=>true));
 		self::deals_active_add_info($active_deals_by_id, $ID_BILLING_USERS, $only_active);
 		return $active_deals_by_id;
 	}
 
-	public static function deals_active_add_info(&$active_deals_by_id, $ID_BILLING_USERS, $only_active = false) {
+	public static function deals_active_add_info(&$active_deals_by_id, $ID_BILLING_USERS, $only_active = false, $only_active_or_blocked = false) {
 		if (empty($active_deals_by_id)) {
 			return;
 		}
-		$uslugi = self::get_services_by_user_deals($ID_BILLING_USERS, array_keys($active_deals_by_id), $only_active);
+		$uslugi = self::get_services_by_user_deals($ID_BILLING_USERS, array_keys($active_deals_by_id), $only_active, $only_active_or_blocked);
 		foreach ($active_deals_by_id as $k_deal_id => $v_deal) {
 			if (array_key_exists($k_deal_id, $uslugi)) {
 				$active_deals_by_id[$k_deal_id]->services = $uslugi[$k_deal_id];
@@ -4058,6 +4085,11 @@ class PokazOfertyHelper {
 		}
 	}
 
+	public static function getDealsActiveOrBlocked($params = array()) {
+		$params['BLOCKED'] = '1';
+		return self::get_deals_active($params);
+	}
+
 	/**
 	 * @param array $params
 	 *   $params['S_ADDRESS_STREET'] - tylko umowy na danym adresie
@@ -4074,6 +4106,7 @@ class PokazOfertyHelper {
 		Lib::loadClass('ColumnDealsStatus');
 		ColumnDealsStatus::run_update($forceUpdate, $dbg_msgs);
 
+		$db = DB::getDB();
 		$active_deals = array();
 		$return_by = V::get('return_by', '', $params);
 		$sql_left_join = "";
@@ -4093,7 +4126,11 @@ class PokazOfertyHelper {
 			$sql_select_arr []= "d.`S_ADDRESS_STREET`";
 		}
 		$sql_where_arr = array();
-		$sql_where_arr []= "ds.`DEALS_ACTIVE`=1";
+		if ('' != V::get('BLOCKED', '', $params)) {
+			$sql_where_arr []= "(ds.`DEALS_ACTIVE`=1 or ds.`DEALS_BLOCKED`=1)";
+		} else {
+			$sql_where_arr []= "ds.`DEALS_ACTIVE`=1";
+		}
 		if ('' != ($user_id = V::get('ID_BILLING_USERS', '', $params))) {
 			$sql_where_arr []= "ds.`ID_BILLING_USERS`='" . $user_id . "'";
 		}
@@ -4102,19 +4139,19 @@ class PokazOfertyHelper {
 		}
 		$sql = "select " . implode("\n, ", $sql_select_arr) . "
 			from `temp_DEALS_STATUS` as ds
-				left join `BILLING_USERS_ADD` as bua on (bua.`id_users`=ds.`ID_BILLING_USERS`)
+				join `COMPANIES` as bua on (bua.`ID`=ds.`ID_BILLING_USERS`)
 				" . $sql_left_join . "
 			where " . implode("\n and ", $sql_where_arr) . "
 			order by ds.`ID_DEALS` DESC
 		";
 		if(V::get('DBG_SQL', 0, $_GET, 'int') > 0){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
 		DEBUG_S(6, "dbg sql:", $sql, __FILE__, __FUNCTION__, __LINE__);
-		$res = DB::query($sql);
-		while ($r = DB::fetch($res)) {
+		$res = $db->query($sql);
+		while ($r = $db->fetch($res)) {
 			if ($return_by == 'ID') {
-				$active_deals [$r->ID_DEALS]= $r;
+				$active_deals[$r->ID_DEALS] = $r;
 			} else {
-				$active_deals [$r->ID_BILLING_USERS] []= $r;
+				$active_deals[$r->ID_BILLING_USERS][] = $r;
 			}
 		}
 		DEBUG_S(6, "dbg active_deals:", $active_deals, __FILE__, __FUNCTION__, __LINE__);
@@ -4141,7 +4178,7 @@ class PokazOfertyHelper {
 		return null;
 	}
 
-	public static function get_services_by_user_deals($user_id, $deals_ids = array(), $only_active = false) {
+	public static function get_services_by_user_deals($user_id, $deals_ids = array(), $only_active = false, $only_active_or_blocked = false) {
 		$deals = array();
 		if (empty($deals_ids)) {
 			return $deals;
@@ -4201,8 +4238,14 @@ class PokazOfertyHelper {
 
 			$r->A_STATUS_DESC = self::get_l2_list_status_name($r->_status);
 
-			if ($only_active && !in_array($r->_status, array('NORMAL'))) {
-				continue;
+			if ($only_active_or_blocked) {
+				if (!in_array($r->_status, array('NORMAL','OFF_SOFT'))) {
+					continue;
+				}
+			} else if ($only_active) {
+				if (!in_array($r->_status, array('NORMAL'))) {
+					continue;
+				}
 			}
 
 			// TODO: P_SERVICE used?