Explorar o código

Merge branch 'master' into fix-acl

Piotr Labudda %!s(int64=10) %!d(string=hai) anos
pai
achega
f970d3f4b7

+ 1 - 1
SE/.config.php

@@ -371,7 +371,7 @@ $A_STATUS_L2_SQL="if(SV.HANGUP_STATUS=SV.A_STATUS
     // 		  left join BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
 
 
-$A_STATUS_L2_SQL_L1="if(LIST_status.ses_users2='NORMAL',".$A_STATUS_L2_SQL.",LIST_status.ses_users2)"; //po upgradzie tej zmiennej nie kasowac poprzedniej! bo sie przydaje!
+$A_STATUS_L2_SQL_L1="if(LIST_status.ses_users2='NORMAL',".$A_STATUS_L2_SQL.",if ($A_STATUS_L2_SQL='NORMAL',LIST_status.ses_users2,$A_STATUS_L2_SQL))";
 	//@2012-10-06 definicja pola A_STATUS na podstawie danych z L2 dla zalozen , ze tabela SERVICES jest podlaczona join SERVICES as SV 
     //        left join SERVICES as SV on SV.ID=U.ID_SERVICES
     // 		  left join BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS

+ 3 - 1
SE/procesy5.php

@@ -2760,7 +2760,9 @@ function tree_callback__show_item_from_CRM_LISTA_ZASOBOW( &$r, &$tree ) {
 			$external_ids_allowed_type[] = 'KOMPUTER';  
 			$external_ids_allowed_type[] = 'MATERIAL_EKSPLOATACYJNY';
 			$external_ids_allowed_type[] = 'SOFTWARE';
-			$external_ids_allowed_type[] = 'OBSZAR';			
+			$external_ids_allowed_type[] = 'OBSZAR';
+			$external_ids_allowed_type[] = 'DOKUMENTY';			
+			$external_ids_allowed_type[] = 'SEJF';			
 			
 			if (in_array($r->TYPE, $external_ids_allowed_type)) {
 				echo '<span class="external-ids">' . "{";

+ 4 - 0
SE/se-lib/Billing_html.php

@@ -734,6 +734,10 @@ $do_rozliczenia = $this->SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI('PRAWO',$fv_naglowek['
 				}
 	}
 
+	function show_doc_BILLING_NUMBERS_TYPE_CLASS_SELL_MA($ID_BILLING_NUMBERS) {
+		echo "<br> TODO " . __CLASS__ . '->' . __FUNCTION__ . '()';
+	}
+
 	function bm_show_document($ID_BILLING_NUMBERS) {
 		$doc = $this->get_document_type($ID_BILLING_NUMBERS);
 		DEBUG_S(3,'Doctype',$doc,__FILE__,__FUNCTION__,__LINE__);

+ 4 - 4
SE/superedit-SYNC_GIS_TABLES.php

@@ -477,8 +477,8 @@ function SYNC_GIS_TABLES() {
 //	gis_opto_calculations('Inwestycje_Planowane','gid','Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84','Rozdzielcza_Kabel_Swiatlowodowy_wsg84','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ');
 	    gis_opto_calculations('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84','Rozdzielcza_Kabel_Swiatlowodowy_wsg84','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0');
 
-//	gis_opto_calculations('Inwestycje_Planowane','gid','Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_koszt','Rozdzielcza_Kabel_Swiatlowodowy_wsg84','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ','koszt_jedn');
-		gis_opto_calculations('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_koszt','Rozdzielcza_Kabel_Swiatlowodowy_wsg84','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0','koszt_jedn');
+//	gis_opto_calculations('Inwestycje_Planowane','gid','Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_koszt','Rozdzielcza_Kabel_Swiatlowodowy_wsg84','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ','cena_jedn');
+		gis_opto_calculations('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_koszt','Rozdzielcza_Kabel_Swiatlowodowy_wsg84','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0','cena_jedn');
 	
 //	gis_opto_calculations('Inwestycje_Planowane','gid','Agr_metrow_mikrorurek_5szt','Rozdzielcza_Pakiet5MikrorurekMagistrala_WSG84','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ');
 	    gis_opto_calculations('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_metrow_mikrorurek_5szt','Rozdzielcza_Pakiet5MikrorurekMagistrala_WSG84','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0');
@@ -503,8 +503,8 @@ DEBUG_S(-3,'CheckPoint',null,__FILE__,__FUNCTION__,__LINE__);
 //	gis_opto_calculations_count('Inwestycje_Planowane','gid','Agr_ilosc_wezlow','Rozdzielcza_wezly','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ');
 		gis_opto_calculations_count('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_ilosc_wezlow','TELBOXES','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0');
 
-//	gis_opto_calculations_count('Inwestycje_Planowane','gid','Agr_ilosc_wezlow_koszt','Rozdzielcza_wezly','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ','koszt_jedn');
-		gis_opto_calculations_count('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_ilosc_wezlow_koszt','TELBOXES','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0','koszt_jedn');
+//	gis_opto_calculations_count('Inwestycje_Planowane','gid','Agr_ilosc_wezlow_koszt','Rozdzielcza_wezly','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT" ','cena_jedn');
+		gis_opto_calculations_count('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_ilosc_wezlow_koszt','TELBOXES','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0','cena_jedn');
 	
 //	gis_opto_calculations_sum('Inwestycje_Planowane','gid','Agr_Rozdzielcza_koszty_dodatkowe_wsg84','Rozdzielcza_koszty_dodatkowe_wsg84','the_geom','******F**','and t1."ID_PROJECT"=t2."ID_PROJECT"','Wartosc_kosztu');
 		gis_opto_calculations_sum('IN7_MK_BAZA_DYSTRYBUCJI',array('ID','gid'),'Agr_Rozdzielcza_koszty_dodatkowe_wsg84','Rozdzielcza_koszty_dodatkowe_wsg84','the_geom','******F**','and t1."ID"::int=t2."ID_PROJECT"::int and t1."ID"!=0','Wartosc_kosztu');	

+ 202 - 24
SE/superedit-USERS2_WINDYKACJA_STATUS.php

@@ -2118,9 +2118,20 @@ body{font-family:arial;line-height:1.4;}
 					}
 					$docNr = $v_doc->get('nr');
 					$docNrLabel = $v_doc->get('NUMBER') . '/' . $v_doc->get('ID_BILLING_PREFIXES');
+					/* links fomr l1:
+					 *   FV: https://l1.webone.pl/modules/make_billing/edit.php?mod=make_billing&form=html_faktura&adm=edit&uid=4014&fpos=&dz=&close=0&doc=799413&doctype=1
+					 *   KOR: https://l1.webone.pl/modules/make_billing/edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=4014&fpos=&dz=&close=0&doc=809557&doctype=3
+					 */
 					if ('FVAT' == $v_doc->get_type()) {
 						$out_tr['ID'] .= ' <a href="index.php?FUNCTION_INIT=bm_show_document&ARG1_VAL=' . $docNr . '" target="_blank">'."({$docNrLabel})".'</a>';
 					}
+					else if ('KORV' == $v_doc->get_type()) {
+						// https://biuro.biall-net.pl/dev-pl/se-master/index.php?FUNCTION_INIT=bm_show_document&ARG1_VAL=809557
+						$remoteFvNum = $v_doc->get('FV_NUMBER');
+						$korNr = $v_doc->get('ID_BILLING_NUMBERS');
+						$korTitle = "Korekta dotycząca faktury nr: {$remoteFvNum}";
+						$out_tr['ID'] .= ' <a href="index.php?FUNCTION_INIT=bm_show_document&ARG1_VAL=' . $korNr . '" target="_blank" title="'.$korTitle.'">'."({$docNrLabel})".'</a>';
+					}
 					$out_tr['nr'] = $docNrLabel;
 					$out_tr['winien'] = number_format($v_doc->get('WINIEN'), 2, ',', ' ');
 					$out_tr['ma'] = number_format($v_doc->get('MA'), 2, ',', ' ');
@@ -2325,6 +2336,167 @@ body{font-family:arial;line-height:1.4;}
 		echo'<br />';
 		echo'<br />';
 		WindykacjaStatsHelper::update_stats($user, $billing_docs);
+
+		{// srv hist
+			$srvHist = array();
+			$db = DB::getDB();
+			$sql = <<<SQL
+	select fvPos.`ID` as fvPos__ID
+		, fvPos.`DATE_FROM` as fvPos__DATE_FROM
+		, fvPos.`DATE_TO` as fvPos__DATE_TO
+		, fvPos.`ID_SERVICES` as fvPos__ID_SERVICES
+		, (select srv.`NAME_LIST_SERVICES` from `billing2013`.`SERVICES` srv where srv.`ID`=fvPos.`ID_SERVICES` limit 1) as srv__NAME_LIST_SERVICES
+		, fvPos.`AMMOUNT` as fvPos__AMMOUNT
+		, fvPos.`PRICE` as fvPos__PRICE
+		, fvPos.`VAT` as fvPos__VAT
+--		, fvPos.`ID_BILLS_FVAT` as fvPos__ID_BILLS_FVAT
+		, fvPos.`DESCR` as fvPos__DESCR
+--		, fvPos.`id_list_services` as fvPos__id_list_services
+--		, fvPos.`id_list_sww` as fvPos__id_list_sww
+--		, fvPos.`VAT_NAME` as fvPos__VAT_NAME
+--		, fvPos.`ID_OFFERS` as fvPos__ID_OFFERS
+--		, 'fv', fv.*
+--		, fv.`ID` as fv__ID
+		, fv.`ID_BILLING_NUMBERS` as fv__ID_BILLING_NUMBERS
+--		, fv.`ID_BILLING_USERS` as fv__ID_BILLING_USERS
+--		, fv.`id_owner` as fv__id_owner
+		, fv.`BILL_DATE` as fv__BILL_DATE
+		, fv.`SELL_DATE` as fv__SELL_DATE
+--		, fv.`TIMESTAMP` as fv__TIMESTAMP
+		, fv.`PAYMENT_TERM` as fv__PAYMENT_TERM
+--		, fv.`PAYMENT_TYPE` as fv__PAYMENT_TYPE
+--		, fv.`ID_CURRENCY` as fv__ID_CURRENCY
+--		, fv.`ID_FK_DEKRET` as fv__ID_FK_DEKRET
+--		, fv.`ID_FK_ROZRACH` as fv__ID_FK_ROZRACH
+--		, fv.`OPEN` as fv__OPEN
+--		, fv.`FK_ZAKSIEG` as fv__FK_ZAKSIEG
+		, fv.`IF_KORV` as fv__IF_KORV
+--		, 'fvNum', fvNum.*
+--		, fvNum.`ID` as fvNum__ID
+--		, fvNum.`TIMESTAMP` as fvNum__TIMESTAMP
+--		, fvNum.`ID_BILLING_NUMBERS_TYPE` as fvNum__ID_BILLING_NUMBERS_TYPE
+--		, fvNum.`ID_BILLING_PREFIXES` as fvNum__ID_BILLING_PREFIXES
+		, fvNum.`NUMBER` as fvNum__NUMBER
+--		, fvNum.`ID_BILLING_USERS` as fvNum__ID_BILLING_USERS
+		, fvNum.`FOREIGN_ID_BILLING_NUMBERS` as fvNum__FOREIGN_ID_BILLING_NUMBERS
+--		, fvNum.`U_ID` as fvNum__U_ID
+--		, fvNum.`BILLING_OWNER` as fvNum__BILLING_OWNER
+--		, 'korPos', korPos.*
+		, korPos.`ID` as korPos__ID
+--		, korPos.`ID_BILLS_FVAT` as korPos__ID_BILLS_FVAT
+		, korPos.`DESCR` as korPos__DESCR
+		, korPos.`ID_SERVICES` as korPos__ID_SERVICES
+		, korPos.`DATE_FROM` as korPos__DATE_FROM
+		, korPos.`DATE_TO` as korPos__DATE_TO
+		, korPos.`AMMOUNT` as korPos__AMMOUNT
+		, korPos.`PRICE` as korPos__PRICE
+		, korPos.`VAT` as korPos__VAT
+--		, korPos.`id_list_services` as korPos__id_list_services
+--		, korPos.`id_list_sww` as korPos__id_list_sww
+--		, korPos.`VAT_NAME` as korPos__VAT_NAME
+--		, korPos.`N_DESCR` as korPos__N_DESCR
+--		, korPos.`N_ID_SERVICES` as korPos__N_ID_SERVICES
+--		, korPos.`N_DATE_FROM` as korPos__N_DATE_FROM
+--		, korPos.`N_DATE_TO` as korPos__N_DATE_TO
+--		, korPos.`N_AMMOUNT` as korPos__N_AMMOUNT
+--		, korPos.`N_PRICE` as korPos__N_PRICE
+--		, korPos.`N_VAT` as korPos__N_VAT
+--		, korPos.`N_id_list_services` as korPos__N_id_list_services
+--		, korPos.`N_id_list_sww` as korPos__N_id_list_sww
+--		, korPos.`N_VAT_NAME` as korPos__N_VAT_NAME
+		, korPos.`TYP_KOREKTY` as korPos__TYP_KOREKTY
+	from `billing2013`.`BILLS_FVAT_POS` fvPos
+		join `billing2013`.`BILLS_FVAT` fv on (fv.`ID`=fvPos.`ID_BILLS_FVAT`)
+		join `billing2013`.`BILLING_NUMBERS` fvNum on(fvNum.`ID`=fv.`ID_BILLING_NUMBERS`)
+		left join `billing2013`.`BILLS_KORV_POS` korPos on(
+			korPos.`ID_BILLS_FVAT`=(
+				select kor.`ID`
+				from `billing2013`.`BILLS_KORV` kor
+				where kor.`REMOTE_ID_BILLING_NUMBERS`=fvNum.`ID`
+			)
+			and korPos.`ID_SERVICES`=fvPos.`ID_SERVICES`
+		)
+	where fv.`ID_BILLING_USERS`='{$user->ID}'
+	order by fv.`ID` DESC
+SQL;
+			//echo'<pre>srvHist:sql: ';print_r($sql);echo'</pre>';
+			$idxDates = array();
+			$idxSrv = array();
+			$idxHasKor = array();
+			$res = $db->query($sql);
+			while ($r = $db->fetch($res)) {
+				$srvHist[$r->fvPos__ID] = $r;
+				$month = substr($r->fv__BILL_DATE, 0, 7);
+				$idSrv = $r->fvPos__ID_SERVICES;
+				if (!empty($r->fv__BILL_DATE)) {
+					if (!array_key_exists($month, $idxDates)) $idxDates[$month] = array();
+					$idxDates[$month][$r->fvPos__ID] = $idSrv;
+				}
+				if (!empty($idSrv)) {
+					$idxSrv[$idSrv] = $r->srv__NAME_LIST_SERVICES;
+				}
+				if ($r->korPos__ID > 0) {
+					$isKorZero = ($r->korPos__AMMOUNT * $r->korPos__PRICE == -1 * $r->fvPos__AMMOUNT * $r->fvPos__PRICE);
+					$idxHasKor[$month][$idSrv][] = $isKorZero;
+				}
+			}
+			krsort($idxDates);
+			?>
+		<div class="container">
+			<script>
+				function showHideSrvHist() {
+					jQuery('#srvHist').toggle();
+					return false;
+				}
+			</script>
+			<h3>Historia usług <button class="btn btn-xs btn-danger" onclick="return showHideSrvHist()">+/-</button></h3>
+			<table class="table table-bordered" id="srvHist" style="display:none">
+				<thead>
+					<tr>
+						<th style="padding:2px"><nobr class="pull-right">Usługi</nobr></th>
+						<?php foreach ($idxSrv as $idSrv => $srvType) : ?>
+							<th style="padding:2px"><?php echo $idSrv; ?></th>
+						<?php endforeach; ?>
+					</tr>
+					<tr>
+						<th style="padding:2px"><nobr>Data</nobr></th>
+						<?php foreach ($idxSrv as $idSrv => $srvType) : ?>
+							<th style="padding:2px"><?php echo $srvType; ?></th>
+						<?php endforeach; ?>
+					</tr>
+				</thead>
+				<tbody>
+					<?php foreach ($idxDates as $month => $posIds) : ?>
+						<tr>
+							<td style="padding:2px"><?php echo $month; ?></td>
+							<?php foreach ($idxSrv as $idSrv => $srvType) : ?>
+							<?php if (in_array($idSrv, $posIds)) : ?>
+								<?php if (!empty($idxHasKor[$month][$idSrv])) : ?>
+									<?php if (count($idxHasKor[$month][$idSrv]) > 1) : ?>
+										<td style="padding:2px" class="danger"><b title="Faktury i Korekty w tym na 0"><?php echo count($idxHasKor[$month][$idSrv]); ?> * FV (FV - KOR = 0)</b></td>
+									<?php elseif (true == $idxHasKor[$month][$idSrv][0]) : ?>
+										<td style="padding:2px" class="danger"><b title="Faktura i Korekta na 0">FV - KOR = 0</b></td>
+									<?php else : ?>
+										<td style="padding:2px" class="warning"><b title="Faktura i Korekta">FV - KOR &gt; 0</b></td>
+									<?php endif; ?>
+								<?php else : ?>
+									<td style="padding:2px" class="success"><b title="brak korekty">FV</b></td>
+								<?php endif; ?>
+							<?php else : ?>
+								<td style="padding:2px"><i class="muted">---</i></td>
+							<?php endif; ?>
+						<?php endforeach; ?>
+						</tr>
+					<?php endforeach; ?>
+				</tbody>
+			</table>
+		</div>
+			<?php
+			//echo'<pre>idxHasKor: ';print_r($idxHasKor);echo'</pre>';
+			//echo'<pre>idxDates: ';print_r($idxDates);echo'</pre>';
+			//echo'<pre>idxSrv: ';print_r($idxSrv);echo'</pre>';
+			//echo'<pre>srvHist: ';print_r($srvHist);echo'</pre>';
+		}// srv hist
 	}
 
 	public static function view_faktura($faktura_id) {
@@ -5129,16 +5301,16 @@ class WindykacjaStatsModel {
 				, BILLS_FVAT_POS.ID_BILLS_FVAT
 				, sum(round((round(BILLS_FVAT_POS.AMMOUNT * BILLS_FVAT_POS.PRICE, 2)) * (1 + BILLS_FVAT_POS.VAT / 100), 2)) as WARTOSC
 				-- , count(BILLS_FVAT_POS.PRICE) as ILOSC_POZYCJI
-				, `NUMBER` as `NUMBER`
-				, `ID_BILLING_PREFIXES` as `ID_BILLING_PREFIXES`
+				, `BILLING_NUMBERS`.`NUMBER` as `NUMBER`
+				, `BILLING_NUMBERS`.`ID_BILLING_PREFIXES` as `ID_BILLING_PREFIXES`
 			from `BILLS_FVAT`
-				left join `BILLS_FVAT_POS` on BILLS_FVAT.ID=BILLS_FVAT_POS.ID_BILLS_FVAT
-				left join `BILLING_NUMBERS` on (`BILLING_NUMBERS`.`ID`=`BILLS_FVAT`.`ID_BILLING_NUMBERS`)
+				left join `BILLING_NUMBERS` on(`BILLING_NUMBERS`.`ID`=`BILLS_FVAT`.`ID_BILLING_NUMBERS`)
+				left join `BILLS_FVAT_POS` on(`BILLS_FVAT_POS`.`ID_BILLS_FVAT`=`BILLS_FVAT`.`ID`)
 			where {$sql_where}
 			group by BILLS_FVAT.ID
 			order by BILLS_FVAT.ID_BILLING_NUMBERS ASC
 		";
-		//echo'<pre>sql1:';print_r($sql);echo'</pre>';
+		//echo'<pre>sql1: L.' . __LINE__ . "\n";print_r($sql);echo'</pre>';
 //echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;">';print_r($sql);echo'</pre>';
 		$res = $db_webone->query($sql);
 		while ($h = $db_webone->fetch_assoc($res)) {
@@ -5204,35 +5376,41 @@ class WindykacjaStatsModel {
 					where {$bill_type['TABLE']}.ID_BILLING_USERS='{$user->ID}'
 						{$sql_where}
 				";
-				//echo'<pre>sql2:';print_r($sql);echo'</pre>';
+				//echo'<pre>sql2: L.' . __LINE__ . "\n";print_r($sql);echo'</pre>';
 				$res = $db_webone->query($sql);
 				while ($h = $db_webone->fetch_assoc($res)) {
 					$billing_docs->add_bill_doc($h['BILL_DATE'], $bill_type['TYPE'], $h);
 				}
 			}
 			else if ($bill_type['CLASS'] == 'SELL_MA') {
-				$sql_where = ($date_limit)? " and {$bill_type['TABLE']}.BILL_DATE <= '{$date_limit}' " : "";
-				$sql = "select {$bill_type['TABLE']}.ID
-						, count({$bill_type['TABLE']}_POS.ID) as cnt
-						, {$bill_type['TABLE']}_POS.ID_BILLS_FVAT
-						, {$bill_type['TABLE']}.ID_CURRENCY
-						, round(sum(({$bill_type['TABLE']}_POS.N_AMMOUNT * {$bill_type['TABLE']}_POS.N_PRICE) * ( 1 + {$bill_type['TABLE']}_POS.N_VAT / 100)),2) as WINIEN
+				$sql_where = ($date_limit)? " and t.BILL_DATE <= '{$date_limit}' " : "";
+				$sql = "select t.ID
+						, count(t_pos.ID) as cnt
+						, t_pos.ID_BILLS_FVAT
+						, t.ID_CURRENCY
+						, round(sum((t_pos.N_AMMOUNT * t_pos.N_PRICE) * ( 1 + t_pos.N_VAT / 100)),2) as WINIEN
 						, round(sum( 
-								(({$bill_type['TABLE']}_POS.AMMOUNT * {$bill_type['TABLE']}_POS.PRICE) * ( 1 + {$bill_type['TABLE']}_POS.VAT / 100))
-								- ({$bill_type['TABLE']}_POS.N_AMMOUNT * {$bill_type['TABLE']}_POS.N_PRICE * {$bill_type['TABLE']}_POS.N_VAT / 100)
-								+ ({$bill_type['TABLE']}_POS.N_AMMOUNT * {$bill_type['TABLE']}_POS.N_PRICE * {$bill_type['TABLE']}_POS.VAT / 100)
+								((t_pos.AMMOUNT * t_pos.PRICE) * ( 1 + t_pos.VAT / 100))
+								- (t_pos.N_AMMOUNT * t_pos.N_PRICE * t_pos.N_VAT / 100)
+								+ (t_pos.N_AMMOUNT * t_pos.N_PRICE * t_pos.VAT / 100)
 							),2) as MA
-						, {$bill_type['TABLE']}.ID_BILLING_NUMBERS , {$bill_type['TABLE']}.OPEN , {$bill_type['TABLE']}.FK_ZAKSIEG
-						, {$bill_type['TABLE']}.IF_KORV , {$bill_type['TABLE']}.BILL_DATE , {$bill_type['BILLING_NUMBERS_TABLE']}.NUMBER
-					from {$bill_type['TABLE']}
-						left join {$bill_type['BILLING_NUMBERS_TABLE']} on {$bill_type['BILLING_NUMBERS_TABLE']}.ID={$bill_type['TABLE']}.ID_BILLING_NUMBERS
-						left join {$bill_type['TABLE']}_POS on {$bill_type['TABLE']}.ID={$bill_type['TABLE']}_POS.ID_BILLS_FVAT
-					where {$bill_type['TABLE']}.ID_BILLING_USERS='{$user->ID}'
+						, t.ID_BILLING_NUMBERS
+						, t.OPEN
+						, t.FK_ZAKSIEG
+						, t.IF_KORV , t.BILL_DATE
+						, t_num.`NUMBER`
+						, t_num.`ID_BILLING_PREFIXES`
+						, fv_num.`NUMBER` as FV_NUMBER
+					from `{$bill_type['TABLE']}` t
+						left join `{$bill_type['BILLING_NUMBERS_TABLE']}` t_num on (t_num.`ID`=t.`ID_BILLING_NUMBERS`)
+						left join `{$bill_type['BILLING_NUMBERS_TABLE']}` fv_num on (fv_num.`ID`=t.`REMOTE_ID_BILLING_NUMBERS`)
+						left join `{$bill_type['TABLE']}_POS` t_pos on (t_pos.`ID_BILLS_FVAT`=t.`ID`)
+					where t.`ID_BILLING_USERS`='{$user->ID}'
 						{$sql_where}
-					group by {$bill_type['TABLE']}.ID
-					order by {$bill_type['TABLE']}.ID
+					group by t.`ID`
+					order by t.`ID`
 				";
-				//echo'<pre>sql3:';print_r($sql);echo'</pre>';
+				//echo'<pre>sql3: L.' . __LINE__ . "\n";print_r($sql);echo'</pre>';
 				$res = $db_webone->query($sql);
 				while ($h = $db_webone->fetch_assoc($res)) {
 					$billing_docs->add_bill_doc($h['BILL_DATE'], $bill_type['TYPE'], $h);