Przeglądaj źródła

Billing support faktury

a.binder 11 lat temu
rodzic
commit
597e2d6ca3

+ 2001 - 0
SE/se-lib/Billing.php

@@ -0,0 +1,2001 @@
+<?php
+
+	Lib::loadClass( 'TableAcl' );
+	Lib::loadClass( 'UserAcl' );
+
+
+class Billing {
+
+
+	function __construct($DATABASE) {
+		$this->db=DB::getDB($DATABASE);
+		DEBUG_S(3,'DB',array($this->db,$DATABASE),__FILE__,__FUNCTION__,__LINE__);
+		
+		//if(empty($this->db->_zasob_id)) die('You must set in config database for billing zasob_id variable');
+		if(empty($DATABASE)) die('You must set in config database for billing zasob_id variable');
+
+		//$this->TableAcl->GetTablesByDbId=TableAcl::GetTablesByDbId($this->db->_zasob_id);
+		$this->TableAcl->GetTablesByDbId=TableAcl::GetTablesByDbId($DATABASE);
+		DEBUG_S(3,'TableAcl->GetTablesByDbId',$this->TableAcl,__FILE__,__FUNCTION__,__LINE__);
+
+	}
+
+
+	function set_client_filter($ID_BILLING_USERS) {
+		$this->set_client_filter=$ID_BILLING_USERS;
+		
+	}
+
+
+	function show_doc_BILLING_NUMBER_TYPE_header($ID_BILLING_NUMBERS) {
+		$sql="select ID,ID_BILLING_PREFIXES,NUMBER,ID_BILLING_USERS,U_ID,BILLING_OWNER from BILLING_NUMBERS where ID=".$ID_BILLING_NUMBERS ;
+		$res=$this->db->query($sql);
+		while($h=$this->db->fetch($res)) {
+			return $h;
+		}
+	}
+	
+	
+	
+	function show_doc_BILLING_NUMBERS_TYPE_CLASS_FINANCE($ID_BILLING_NUMBERS) {
+		self::add_require_perm('BILLING_NUMBERS','ID','R');
+		self::check_perms();
+		$result_BILLING_NUMBERS_TYPE=self::get_document_type($ID_BILLING_NUMBERS);
+		$header=self::show_doc_BILLING_NUMBER_TYPE_header($ID_BILLING_NUMBERS);				
+			$sql="select * from ".$result_BILLING_NUMBERS_TYPE['TABLE']." where ID_BILLING_NUMBERS=".$header->ID;
+			$res=$this->db->query($sql); 
+			$docum=$this->db->fetch($res);
+		$client=self::BILLING_USERS_ADD($header->ID_BILLING_USERS);
+		$author=self::BILLING_USERS_ADD($header->U_ID);
+		$owner=self::BILLING_OWNER($client->BILLING_OWNER);
+
+
+		$doc->author=$author;
+		$doc->header=$header;
+		$doc->result_BILLING_NUMBERS_TYPE=$result_BILLING_NUMBERS_TYPE;
+		$doc->client=$client;
+		$doc->owner=$owner;
+		$doc->docum=$docum;
+		
+		return $doc;
+
+		
+	}
+	
+	
+	function show_doc_BILLING_NUMBERS_TYPE_CLASS_SELL_WINIEN($ID_BILLING_NUMBERS) {
+		
+		
+				self::add_require_perm('BILLING_NUMBERS','ID','R');
+				self::check_perms();
+
+		
+		
+				$result_BILLING_NUMBERS_TYPE=self::get_document_type($ID_BILLING_NUMBERS);
+				DEBUG_S(3,'result_BILLING_NUMBERS_TYPE',$result_BILLING_NUMBERS_TYPE,__FILE__,__FUNCTION__,__LINE__);
+
+				$header=self::show_doc_BILLING_NUMBER_TYPE_header($ID_BILLING_NUMBERS);
+				DEBUG_S(3,'header',$header,__FILE__,__FUNCTION__,__LINE__);
+				
+				$sql="select * from ".$result_BILLING_NUMBERS_TYPE['TABLE']." where ID_BILLING_NUMBERS=".$header->ID;
+				$res=$this->db->query($sql); 
+				$docum=$this->db->fetch($res);
+
+				$sqlbl = "
+				select ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".NUMBER , ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID , 
+				 ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT,  ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT_NAME,  ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT,
+				 ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_SERVICES,".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.DESCR ,
+				 ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID as POS_ID , ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE  ,".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT, 
+				 ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.DATE_FROM , ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.DATE_TO ,
+				 ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT as WARTOSC ,".$result_BILLING_NUMBERS_TYPE[TABLE].".PAYMENT_TYPE ,
+				  LIST_SERVICES.description , list_sww.name as SWW_NAME ,
+				  LIST_SERVICES2.description as description2, LIST_SERVICES2.jednostka_miary as jednostka_miary2
+				  from ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." 
+				left join  ".$result_BILLING_NUMBERS_TYPE[TABLE]." on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS=".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID  
+				left join ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT
+				  left join SERVICES on SERVICES.ID=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_SERVICES
+				  left join LIST_SERVICES on LIST_SERVICES.name=SERVICES.NAME_LIST_SERVICES
+				  left join LIST_SERVICES as LIST_SERVICES2 on LIST_SERVICES2.id=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.id_list_services 
+				  left join list_sww on ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.id_list_sww=list_sww.id
+
+				 where   ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS = '".$ID_BILLING_NUMBERS."' 
+				";
+				//echo "<br>SQL ".$sqlbl;
+				$res=$this->db->query($sqlbl);
+				$i=1;
+						
+				$docum->razem_netto=0;
+				$docum->razem_brutto=0;
+
+				while($h=$this->db->fetch($res)) {
+					$pos[$i]=$h;
+
+						unset($name);
+						if($h->description)    $name=$h->description."(ID: ".$h->ID_SERVICES.") " ;
+						else if($h->description2) $name=$h->description2  ;
+						else $name=" Pozostałe usługi ";
+				
+						if($h->DESCR) $name.="<br>".$h->DESCR." ";
+						if($h->DATE_FROM) $name.="<br><nobr> okres od ".$h->DATE_FROM."</nobr>" ;
+						# 2008-03-06 Bzyk :: odjecie jednego dnia od daty 'do'
+						#if($all4['DATE_TO']) $name.="<nobr> do ".$all4['DATE_TO']."</nobr>" ;
+						if($h->DATE_TO) $name.="<nobr> do ".date("Y-m-d",strtotime($h->DATE_TO. " - 1 day"))."</nobr>" ;
+						
+						if($h->VAT_NAME) $VAT_CLASS=$h->VAT_NAME ; else $VAT_CLASS="zw.";
+						if($h->jednostka_miary2)  $jednostka_miary2=$h->jednostka_miary2 ; else  $jednostka_miary2="mc";
+						$allvat=self::formatuj_grosze($h->AMMOUNT*$h->PRICE*$h->VAT/100);
+						$netto=self::formatuj_grosze($h->PRICE*$h->AMMOUNT);
+
+						
+						
+						$docum->sqix_total[TOTAL][NETTO]+=$h->AMMOUNT*$h->PRICE ; 
+						$docum->sqix_total[TOTAL][BRUTTO]+=($h->AMMOUNT*$h->PRICE)+($h->AMMOUNT*$h->PRICE*$h->VAT/100) ; 
+						$docum->sqix_total[TOTAL][KW_VAT]+=($h->AMMOUNT*$h->PRICE*$h->VAT/100) ; 
+						$docum->sqix_total[$VAT_CLASS][NETTO]+=$h->AMMOUNT*$h->PRICE ; 
+						$docum->sqix_total[$VAT_CLASS][BRUTTO]+=($h->AMMOUNT*$h->PRICE)+($h->AMMOUNT*$h->PRICE*$h->VAT/100) ; 
+						$docum->sqix_total[$VAT_CLASS][KW_VAT]+=($h->AMMOUNT*$h->PRICE*$h->VAT/100) ; 
+  						
+
+						$docum->razem_netto+=$netto;
+						$docum->razem_vat += $allvat;
+						$docum->razem_brutto=$docum->razem_brutto+$docum->razem_netto;
+
+
+						$pos[$i]->netto=$netto;
+						$pos[$i]->name=$name;
+						$pos[$i]->pos_number=$i;
+						$pos[$i]->VAT_CLASS=$VAT_CLASS;
+						$pos[$i]->jednostka_miary2=$jednostka_miary2;
+						$pos[$i]->allvat=$allvat;
+
+						$i++;
+				}
+				
+				
+				DEBUG_S(3,'pos',$pos,__FILE__,__FUNCTION__,__LINE__);
+				DEBUG_S(3,'docum',$docum,__FILE__,__FUNCTION__,__LINE__);
+
+				$client=self::BILLING_USERS_ADD($header->ID_BILLING_USERS);
+				$author=self::BILLING_USERS_ADD($header->U_ID);
+
+				 			    
+				DEBUG_S(3,'client',$client,__FILE__,__FUNCTION__,__LINE__);
+    
+				$owner=self::BILLING_OWNER($client->BILLING_OWNER);
+				    
+				DEBUG_S(3,'owner',$owner,__FILE__,__FUNCTION__,__LINE__);
+				
+				$pay_option=self::LIST_FORM_PAY($docum->PAYMENT_TYPE,$owner->id_list_form_pay);
+				
+				
+				$doc->author=$author;
+				$doc->header=$header;
+				$doc->result_BILLING_NUMBERS_TYPE=$result_BILLING_NUMBERS_TYPE;
+				$doc->client=$client;
+				$doc->owner=$owner;
+				$doc->docum=$docum;
+				$doc->pos=$pos;
+				$doc->pay_option=$pay_option;
+				return $doc;
+
+	}
+
+/*
+	function get_CLASS_SELL_WINIEN_POS($result_BILLING_NUMBERS_TYPE,$POS_ID) {
+		//sciagniecie dokladnych info dla pozycji - nr uslugi / oferty itp
+		 $sql4 = "SELECT ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.* , LIST_SERVICES.description , list_sww.name as SWW_NAME ,
+				     LIST_SERVICES2.description as description2, LIST_SERVICES2.jednostka_miary as jednostka_miary2
+				     FROM ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS 
+				     left join SERVICES on SERVICES.ID=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_SERVICES
+				     left join LIST_SERVICES on LIST_SERVICES.name=SERVICES.NAME_LIST_SERVICES
+				     left join LIST_SERVICES as LIST_SERVICES2 on LIST_SERVICES2.id=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.id_list_services 
+				     left join list_sww on ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.id_list_sww=list_sww.id
+				     
+				     WHERE ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID=".$POS_ID;
+				//    echo "$sql4<br><br>";
+				    $result4 = $this->db->query($sql4);
+				    $all4 = $this->db->fetch($result4);
+					return $all4;
+		
+	}
+*/
+	function check_perms() {
+		foreach($this->add_require_perm as $table_name=>$column_array)  {
+			$acl= new TableAcl;
+			$acl_=$acl->getInstance($this->TableAcl->GetTablesByDbId[$table_name]);
+			//$acl=UserAcl::getTableAcl($this->TableAcl->GetTablesByDbId[$table_name]);
+			DEBUG_S(3,'acl for table '.$table_name." (".$this->TableAcl->GetTablesByDbId[$table_name].")",$acl_,__FILE__,__FUNCTION__,__LINE__);
+
+			foreach($column_array as $column_name=>$rwxc) {
+				$colId=$acl_->getFieldIdByName($column_name);
+				if($acl_->hasFieldPerm($colId,$rwxc)) {
+					
+				} else die('Not sufficient privileges for function - need '.$rwxc.' for table '.$table_name.' column '.$column_name);
+				
+			}
+		}
+		
+	}
+	
+	function add_require_perm($table_name,$column_name,$rwxc) {
+		$this->add_require_perm[$table_name][$column_name]=$rwxc;
+		
+	}
+	
+	
+	function BILLING_OWNER($ID_BILLING_OWNER) {
+		$sql="select * from BILLING_OWNER where id=".$ID_BILLING_OWNER;
+		$res=$this->db->query($sql);
+		while($h=$this->db->fetch($res)) {
+			return $h;
+		} 
+	}
+
+
+	function LIST_FORM_PAY($id_used_pay_type=null,$user_accessible_pay_type=null) {
+		if(!empty($id_used_pay_type)) {
+		    $sqlpay = "SELECT * FROM list_form_pay WHERE id=".$id_used_pay_type;
+		    $resultpay = $this->db->query($sqlpay);
+		    $allpay = $this->db->fetch($resultpay);
+		  } else {
+		    $sqlpay = "SELECT * FROM list_form_pay WHERE id=".$user_accessible_pay_type;
+		    $resultpay = $this->db->query($sqlpay);
+		    $allpay = $this->db->fetch($resultpay);
+		
+		  }
+		return $allpay ;
+
+		
+	}
+
+	function BILLING_USERS_ADD($ID_BILLING_USERS) {
+					 $sqlp="select * from COMPANIES where ID='".$ID_BILLING_USERS."'";
+
+				    $resultp = DB::query($sqlp);
+				    
+				    $fp=DB::fetch($resultp);
+				    return($fp);
+
+	}
+
+
+
+
+//VERSION 2004-07-07 0.96
+
+//STRUKTURA KONTA Bankowa
+//NN BBBB BBBB FFFF KKKK KKKK KKKK
+//NN - suma kontrolna, BBBBBBBB 8 znakow numeru rozliczeniowego BZWBK
+//FFFF - 4 znaki identyfikujace firme
+//KKKKKKKKKKKK - 12 znakow identyfikujacych klienta Firmy
+// NASZA STRUKTURA 12 znakow klienta Firmy KKKKKKKKKKKK -> DDPP PPPP PPPP
+// DD - 2 ostatnie znaki ID_BILLING_NUMBERS  (z tabeli BILLING_ACCOUNTS_FILES )
+// PP PPPP PPPP - 10 znakow identyfikujacych klienta
+
+
+
+function bankowy_chk($nrb) {
+   global $ERROR ;
+    $nrb=preg_replace("/[^0-9]/","",$nrb);
+    if (strlen($nrb)<>26) return 0;
+	$nrb .="252100";
+	$wagi = array(57,93,19,31,71,75,56,25,51,73,17,89,38,62,45,53,15,50,5,49,34,81,76,27,90,9,30,3,10,1);
+	for ($i=0; $i<30;$i++){
+	    $suma += $nrb[$i+2]*$wagi[$i];
+	}
+	$liczba = sprintf("%02d", 98 - $suma%97);
+	if ($nrb[0]==$liczba[0] and $nrb[1]==$liczba[1]){
+	    return 1;
+	}
+  	echo "ERROR Nieprawidlowy numer konta $nrb \n" ;
+        $ERROR = $ERROR . " ERROR Nieprawidlowy numer konta $nrb \n" ;
+	return 0;
+}
+
+//FUNKCJA DO LICZENIA MODULO
+function my_bcmod( $x, $y )
+{
+   // how many numbers to take at once? carefull not to exceed (int)
+   $take = 5;    
+   $mod = '';
+   do
+   {
+       $a = (int)$mod.substr( $x, 0, $take );
+       $x = substr( $x, $take );
+       $mod = $a % $y;    
+   } 
+   while ( strlen($x) );
+   return (int)$mod;
+}
+
+
+function bankowy_input($numer_input) {
+ $SUMA_PLIKU="0";
+ $SUMA="0";
+ $numer_input=str_replace("\n\n","\n",$numer_input);
+ $wiersze = explode("\n" , $numer_input);
+//print_r($liczba_linii);
+ $liczba_linii=sizeof($wiersze) ;
+ //TODO zastapic petla
+ if($wiersze[$liczba_linii]=='') $liczba_linii--;
+  if($wiersze[$liczba_linii]=='') $liczba_linii--;
+   if($wiersze[$liczba_linii]=='') $liczba_linii--;
+    if($wiersze[$liczba_linii]=='') $liczba_linii--;
+     if($wiersze[$liczba_linii]=='') $liczba_linii--;
+
+ $liczba_linii_crc=$liczba_linii-1 ;
+
+   $PLIK_STOPKA=explode('|',$wiersze[($liczba_linii)]) ;
+  $SUMA_PLIKU_WYKAZANA="$PLIK_STOPKA[1]";
+  echo "Liczba linii to $liczba_linii , ostatnia linia to ".$wiersze[$liczba_linii]." : ";
+
+  $last_odczyt_2="1";
+  
+for($i2=0; $i2<=$liczba_linii_crc;$i2++) {
+
+  $linia_array=$wiersze[$i2] ;
+  $linia_array_long=strlen($linia_array);
+// echo "<hr>LECE LINIE $i2 ($linia_array) a suma kontrola to $SUMA | $SUMA_PLIKU \n";
+// sleep(1);
+   for ($i=0; $i<$linia_array_long;$i=$i+2){
+
+    $znak1=$linia_array[$i] ;
+     $znak2=$linia_array[$i+1] ;
+    $znak1_asc=ord($znak1) ;
+     $znak2_asc=ord($znak2) ;
+    if($znak1_asc>=127) $znak1_asc="127" ;
+     if($znak2_asc>=127) $znak2_asc="127" ;
+     if($last_odczyt_2==0) {
+//      $znak2_asc="0";
+      $last_odczyt_2="1" ;
+//      echo "<b>Zmusilem B=0, bo z przeniesienia, czy aby dobrze??? </b>";
+     } else if(!$znak2_asc) { 
+       $znak2_asc="0";   
+//	echo "NIEBYLOZNAKU2";
+        $last_odczyt_2="0";
+      } 
+     $SUMA_LOCAL = 217 * $znak1_asc + $znak2_asc ;
+//     echo "*SUMA_LOCAL(+ $SUMA) = $SUMA_LOCAL = 217 * $znak1_asc + $znak2_asc *";
+     $SUMA=$SUMA + $SUMA_LOCAL ;
+//     echo "SUMA PO DODANIU TO $SUMA \n";
+      if($SUMA > 65535) $SUMA=$SUMA-65535 ; 
+     $SUMA=$SUMA * 2 ;
+     if($SUMA>65535) $SUMA=$SUMA-65535  ;     
+//     echo "SUMA3 PO DODANIU TO $SUMA \n";
+    $lk_local_1=ord($linia_array[$i]);
+//    echo "LK($linia_array[$i],".$linia_array[($i+1)].") = * $znak1_asc , $znak2_asc * " ;
+   }
+ $SUMA_PLIKU=$SUMA_PLIKU + $SUMA ;
+ $SUMA="0";
+ } //EOF $i2
+ echo " SUMA PLIKU = $SUMA_PLIKU  , wykazana suma w pliku to $SUMA_PLIKU_WYKAZANA \n";
+if($SUMA_PLIKU==$SUMA_PLIKU_WYKAZANA) return $SUMA_PLIKU ;
+
+}
+
+
+
+function bankowy_make($nrb) {
+    $nrb=preg_replace("/[^0-9]/","",$nrb);
+//    echo "STRLEN (nrb) = ".strlen($nrb);
+    if (strlen($nrb)<>24) return 0;
+	$nrb .="252100";
+        $modulo=self::my_bcmod($nrb,97) ;
+//	echo "MODULO TU $modulo";
+        $modulo= 98 - $modulo ;
+	if(strlen($modulo)==1) $modulo="0".$modulo ;
+	return $modulo ;
+//	$liczba = sprintf("%02d", 98 - $suma%97);
+	if ($nrb[0]==$liczba[0] and $nrb[1]==$liczba[1]){
+	    return 1;
+	}
+	return 0;
+}
+
+
+//$numer="1090 1098 0000 1001 0253 7156 "; //numer z liczba kontrola inna				
+//$numer="07109010790417338226000401";
+//$numer="7632547653245732654";
+//$numer="7632547653245732654f4365435";
+//if(!$numer_chk) $numer_chk="46 1090 1098 0000 0001 0253 7156";
+
+
+function bankowy_make_nrach($NR_RACH_MASS_PAY,$ID_BILLING_USERS,$ID_BILLING_NUMBERS) {
+//echo "TTUTAJ <hr> AASDADS f. bankowy_make_nrach($NR_RACH_MASS_PAY,$ID_BILLING_USERS,$ID_BILLING_NUMBERS) <br>";
+$ID_BILLING_USERS=str_pad($ID_BILLING_USERS,10,0,STR_PAD_LEFT) ;
+$ID_BILLING_NUMBERS=str_pad($ID_BILLING_NUMBERS,2,0,STR_PAD_LEFT) ; 
+$ID_BILLING_NUMBERS=substr($ID_BILLING_NUMBERS,-2) ; 
+$NN=self::bankowy_make($NR_RACH_MASS_PAY.$ID_BILLING_NUMBERS.$ID_BILLING_USERS) ;
+if($NN) return $NN.$NR_RACH_MASS_PAY.$ID_BILLING_NUMBERS.$ID_BILLING_USERS ;
+
+}
+
+
+function bankowy_formatuj_nrach($NR_RACH_MASS_PAY) {
+ if($NR_RACH_MASS_PAY) { 
+  unset($NR_RACH_MASS_PAY_FORMATTED);
+  for($i=4; $i<(strlen($NR_RACH_MASS_PAY)); $i=$i+4) {
+   $NR_RACH_MASS_PAY_FORMATTED=" ".substr($NR_RACH_MASS_PAY,-$i,4).$NR_RACH_MASS_PAY_FORMATTED;
+  } $NR_RACH_MASS_PAY_FORMATTED=substr($NR_RACH_MASS_PAY,0,$i-strlen($NR_RACH_MASS_PAY))." ".$NR_RACH_MASS_PAY_FORMATTED ;
+ }
+return $NR_RACH_MASS_PAY_FORMATTED ;
+}
+
+
+
+
+
+
+	function lista_faktur() {
+		
+		self::add_require_perm('BILLS_FVAT','ID','R');
+		//self::add_require_perm('BILLS_FVAT','ID_CURRENCY','R');
+		self::add_require_perm('BILLS_FVAT_POS','ID','X');
+		self::check_perms();
+		
+
+		//TODO check if has perms for that...
+		
+		$sql7= "select BILLS_FVAT.ID, count(BILLS_FVAT_POS.ID) as count_BILLS_FVAT_POS_ID, BILLS_FVAT_POS.ID_BILLS_FVAT, BILLS_FVAT.ID_CURRENCY, 
+		sum((BILLS_FVAT_POS.AMMOUNT * BILLS_FVAT_POS.PRICE) * ( 1 + BILLS_FVAT_POS.VAT / 100))
+		 as WARTOSC ,BILLS_FVAT.ID_BILLING_NUMBERS , BILLS_FVAT.OPEN , BILLS_FVAT.FK_ZAKSIEG ,
+		BILLS_FVAT.IF_KORV , BILLING_NUMBERS.TIMESTAMP , BILLING_NUMBERS.ID_BILLING_PREFIXES , BILLING_NUMBERS.NUMBER ,BILLING_NUMBERS.ID as BILLING_NUMBERS_ID
+		, BILLS_FVAT.SELL_DATE 	, BILLING_NUMBERS.ID_BILLING_USERS
+		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
+		where   BILLS_FVAT.ID_BILLING_USERS='".$this->set_client_filter."' group by BILLS_FVAT.ID order by BILLS_FVAT.ID ";
+		
+		
+		DEBUG_S(3,'zap_sql_do_fv',$sql7,__FILE__,__FUNCTION__,__LINE__);
+		$result7 = $this->db->query($sql7);
+		
+		while($h=$this->db->fetch_assoc($result7)) {
+			$result7_arr[]=$h;	
+		}
+		
+		DEBUG_S(3,'lista_faktur',array($sql7,$result7_arr),__FILE__,__FUNCTION__,__LINE__);
+		
+		return $result7_arr;
+	}
+
+
+	function lista_korekt($ID_BILLING_NUMBERS) {
+	
+	
+		self::add_require_perm('BILLS_KORV','ID','R');
+		//self::add_require_perm('BILLS_FVAT','ID_CURRENCY','R');
+		self::add_require_perm('BILLS_KORV_POS','ID','X'); //TODO
+//		self::check_perms();
+
+		
+						$KORV_TABLE="BILLS_KORV"; $KORV_ID_BILLING_NUMBERS_TYPE="3";  //TODO przechwytywac te parametry...
+						$sql= "select $KORV_TABLE.ID as KORV_ID , count(".$KORV_TABLE."_POS.ID) as count_POS_ID , ".$KORV_TABLE."_POS.ID_BILLS_FVAT, ".$KORV_TABLE.".ID_CURRENCY, 
+						round(sum(
+						 ((".$KORV_TABLE."_POS.AMMOUNT * ".$KORV_TABLE."_POS.PRICE) * ( 1 + ".$KORV_TABLE."_POS.VAT / 100))
+						- (".$KORV_TABLE."_POS.N_AMMOUNT * ".$KORV_TABLE."_POS.N_PRICE * ".$KORV_TABLE."_POS.N_VAT / 100)
+						+ (".$KORV_TABLE."_POS.N_AMMOUNT * ".$KORV_TABLE."_POS.N_PRICE * ".$KORV_TABLE."_POS.VAT / 100)						
+						),2) as WARTOSC ,
+						round(sum((".$KORV_TABLE."_POS.N_AMMOUNT * ".$KORV_TABLE."_POS.N_PRICE) * ( 1 + ".$KORV_TABLE."_POS.N_VAT / 100)),2) as N_WARTOSC ,
+						 ".$KORV_TABLE.".ID_BILLING_NUMBERS , ".$KORV_TABLE.".OPEN , ".$KORV_TABLE.".FK_ZAKSIEG ,".$KORV_TABLE.".IF_KORV
+						 from ".$KORV_TABLE." left join ".$KORV_TABLE."_POS on ".$KORV_TABLE.".ID=".$KORV_TABLE."_POS.ID_BILLS_FVAT  
+						where   ".$KORV_TABLE.".REMOTE_ID_BILLING_NUMBERS_TYPE='1' and ".$KORV_TABLE.".REMOTE_ID_BILLING_NUMBERS='".$ID_BILLING_NUMBERS."' group by ".$KORV_TABLE.".ID order by ".$KORV_TABLE.".ID ";
+						
+						
+						DEBUG_S(3,'SQL lista_korekt',$sql,__FILE__,__FUNCTION__,__LINE__);
+		
+		
+				 $result_KORV=$this->db->query($sql);
+				 while($h=$this->db->fetch_assoc($result_KORV)) {
+					 $result_KORV_arr[]=$h;	
+				}
+				return $result_KORV_arr;
+		
+	}
+	
+	
+	
+	function lista_BILLING_NUMBERS_TYPE_CLASS_SELL_MA($result_BILLING_NUMBERS_TYPE) {
+				                        $sql= "select ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID, count(".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID), ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT, ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_CURRENCY,
+				                        round(sum(
+				                         ((".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE) * ( 1 + ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT / 100))
+				                        - (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_VAT / 100)
+				                        + (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT / 100)
+				                        ),2) as MA ,
+				                        round(sum((".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_PRICE) * ( 1 + ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.N_VAT / 100)),2) as WINIEN ,
+				                         ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS , ".$result_BILLING_NUMBERS_TYPE[TABLE].".OPEN , ".$result_BILLING_NUMBERS_TYPE[TABLE].".FK_ZAKSIEG ,
+							".$result_BILLING_NUMBERS_TYPE[TABLE].".IF_KORV , ".$result_BILLING_NUMBERS_TYPE[TABLE].".BILL_DATE , ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".NUMBER ,
+							".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_FK_DEKRET
+				                         from ".$result_BILLING_NUMBERS_TYPE[TABLE]." 
+							left join ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." on ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS
+							left join ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT
+				                        where ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS='".$this->set_client_filter."'
+				                        group by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID order by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID ";
+				//                      echo "KOREKTY $sql ";
+				
+					$result_KP=$this->db->query($sql); 
+				    $i=0;
+				    while($h=$this->db->fetch_assoc($result_KP)) {
+
+					    $result_KP_arr[$i]=$h;
+					    $result_KP_arr[$i]['ID_BILLING_NUMBERS_TYPE']=$result_BILLING_NUMBERS_TYPE['ID'];
+					    $result_KP_arr[$i]['CLASS']=$result_BILLING_NUMBERS_TYPE['CLASS'];
+						$result_KP_arr[$i]['TYPE']=$result_BILLING_NUMBERS_TYPE['TYPE'];
+						$i++;
+				    }
+				    	DEBUG_S(-3,'lista_BILLING_NUMBERS_TYPE_CLASS_SELL_MA',$result_KP_arr,__FILE__,__FUNCTION__,__LINE__);
+
+				    return $result_KP_arr;
+		
+
+				
+
+	}
+	
+	
+	function lista_BILLING_NUMBERS_TYPE_CLASS_FINANCE($result_BILLING_NUMBERS_TYPE) {
+		
+
+		$sql="select ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID,".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS , ".$result_BILLING_NUMBERS_TYPE[TABLE].".BILL_DATE , ".$result_BILLING_NUMBERS_TYPE[TABLE].".WINIEN , ".$result_BILLING_NUMBERS_TYPE[TABLE].".MA , 
+				     ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_FK_DEKRET, ".$result_BILLING_NUMBERS_TYPE[TABLE].".OPEN , ".$result_BILLING_NUMBERS_TYPE[TABLE].".FK_ZAKSIEG , ".$result_BILLING_NUMBERS_TYPE[TABLE].".do_dokumentu , ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".NUMBER , 
+				     ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_PREFIXES , ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE 
+				     from ".$result_BILLING_NUMBERS_TYPE[TABLE]." 
+				     left join ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." on ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS
+				where ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS='".$this->set_client_filter."' "; 
+				//	echo "<br> ".$sql ;
+				    $result_KP=$this->db->query($sql); 
+				    $i=0;
+				    while($h=$this->db->fetch_assoc($result_KP)) {
+
+					    $result_KP_arr[$i]=$h;
+					    $result_KP_arr[$i]['ID_BILLING_NUMBERS_TYPE']=$result_BILLING_NUMBERS_TYPE['ID'];
+					    $result_KP_arr[$i]['CLASS']=$result_BILLING_NUMBERS_TYPE['CLASS'];
+					    $result_KP_arr[$i]['TYPE']=$result_BILLING_NUMBERS_TYPE['TYPE'];
+
+						$i++;
+				    }
+				    return $result_KP_arr;
+		
+	}
+	
+	function get_BILLING_NUMBERS_TYPE() {
+		 //zwraca typy dowiazan do tabel fakturujacych
+		 $ID_BILLING_NUMBERS_ARR=array(4,5,7,3,8);      
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID in (".implode(',',$ID_BILLING_NUMBERS_ARR).")";
+		 $result_BILLING_NUMBERS_TYPE_res=$this->db->query($sql) ; 
+		 while ($result_BILLING_NUMBERS_TYPE=$this->db->fetch_assoc($result_BILLING_NUMBERS_TYPE_res)) {
+		 	$this->BILLING_NUMBERS_TYPE[$result_BILLING_NUMBERS_TYPE['ID']]=$result_BILLING_NUMBERS_TYPE;
+
+		 }
+		 DEBUG_S(-3,'get_BILLING_NUMBERS_TYPE',$this->BILLING_NUMBERS_TYPE,__FILE__,__FUNCTION__,__LINE__);
+	}
+	
+	function get_BILLING_NUMBERS_TYPE_all() {
+		 //zwraca typy dowiazan do tabel fakturujacych
+		 $ID_BILLING_NUMBERS_ARR=array(1,3,4,5,7,3,8);      
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID in (".implode(',',$ID_BILLING_NUMBERS_ARR).")";
+		 $result_BILLING_NUMBERS_TYPE_res=$this->db->query($sql) ; 
+		 while ($result_BILLING_NUMBERS_TYPE=$this->db->fetch_assoc($result_BILLING_NUMBERS_TYPE_res)) {
+		 	$this->BILLING_NUMBERS_TYPE_ALL[$result_BILLING_NUMBERS_TYPE['ID']]=$result_BILLING_NUMBERS_TYPE;
+
+		 }
+		 DEBUG_S(3,'get_BILLING_NUMBERS_TYPE',$this->BILLING_NUMBERS_TYPE_ALL,__FILE__,__FUNCTION__,__LINE__);
+	}
+
+	
+
+	function lista_dok_finansowych() {
+		//require $this->set_client_filter
+			$ret=array();
+		  foreach($this->BILLING_NUMBERS_TYPE as $ID_BILLING_NUMBERS_TYPE) {
+				 
+				if(method_exists($this,'lista_BILLING_NUMBERS_TYPE_CLASS_'.$ID_BILLING_NUMBERS_TYPE['CLASS'])) {
+				 	$func="lista_BILLING_NUMBERS_TYPE_CLASS_".$ID_BILLING_NUMBERS_TYPE['CLASS'];
+				 	$ret2=self::$func($ID_BILLING_NUMBERS_TYPE);
+				 	if(!empty($ret2)) 
+					    $ret=array_merge_recursive($ret,$ret2);
+
+				} else echo "<br> 214 UNSUPPORTED class ".$ID_BILLING_NUMBERS_TYPE['CLASS']; 
+				  
+				}
+			
+			DEBUG_S(-3,'lista_dok_finansowych',$ret,__FILE__,__FUNCTION__,__LINE__);
+
+			return $ret;
+
+	}
+	
+	function get_document_type($ID_BILLING_NUMBERS) {
+		if(empty($this->BILLING_NUMBERS_TYPE_ALL)) self::get_BILLING_NUMBERS_TYPE_all();
+		$sql="select ID_BILLING_NUMBERS_TYPE from BILLING_NUMBERS where ID=".$ID_BILLING_NUMBERS ;
+		$res=$this->db->query($sql);
+		//echo "<br>SQL ".$sql;
+		while($h=$this->db->fetch($res)) {
+			return $this->BILLING_NUMBERS_TYPE_ALL[$h->ID_BILLING_NUMBERS_TYPE];
+		}
+	}
+			
+		
+		//TODO funkcja do zastapienia przez ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA
+		function ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE_PARM) {
+		global $PETELKA,$execute_process , $uid , $process_services,$vdb,$ID_BILLING_NUMBERS_TYPE,$ERROR ,$result_BILLING_NUMBERS_TYPE ;
+		if(!$NAZWA_PROCESS_SERVICES_FIND_ID_LIST) $NAZWA_PROCESS_SERVICES_FIND_ID_LIST="NAZWA_PROCESS_SERVICES_FIND_ID_LIST" ;
+		if(($ID_BILLING_NUMBERS_TYPE_PARM) && (!$ID_BILLING_NUMBERS_TYPE)) $ID_BILLING_NUMBERS_TYPE=$ID_BILLING_NUMBERS_TYPE_PARM ;
+		//TEST 
+		//$ILE="1000" ; 
+		if($ILE) $LIMIT="limit 0,$ILE" ; else $LIMIT="" ;
+		
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID='$ID_BILLING_NUMBERS_TYPE'";
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql) ;
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]) ;
+		
+		if($result_BILLING_NUMBERS_TYPE["CLASS"]=='SELL_WINIEN') {
+		
+		if($_SESSION[DEBUG]>3) echo "<br>*Wyzwalam funkcje type2 ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE) ";
+		  $sql=" select BILLS_FVAT.ID_BILLING_NUMBERS,BILLS_FVAT.ID, BILLS_FVAT_POS.ID, BILLS_FVAT_POS.ID_BILLS_FVAT, BILLS_FVAT.ID_CURRENCY, 
+		 round(sum(
+		  (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT) +
+		  (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT / 100 ) 
+		 ),2)
+		  as WARTOSC  from BILLS_FVAT left join BILLS_FVAT_POS on BILLS_FVAT.ID=BILLS_FVAT_POS.ID_BILLS_FVAT  where
+		  BILLS_FVAT.OPEN='N' and BILLS_FVAT.ID_FK_DEKRET is NULL group by BILLS_FVAT.ID order by BILLS_FVAT.ID $LIMIT ; " ;
+		  $PROCESS_SERVICES_FIND_ID_2=$vdb->sql_query($sql) ;
+		   if($_SESSION[DEBUG]>2) echo "<br>$sql" ;
+		if(!(isset($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]))) $process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST] = array() ;
+		 while (  $PROCESS_SERVICES_FIND_ID = $vdb->sql_fetchrow($PROCESS_SERVICES_FIND_ID_2) ) {
+		  if(!(in_array($PROCESS_SERVICES_FIND_ID[0],$process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST])))  array_push($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST],$PROCESS_SERVICES_FIND_ID[0]) ; else  { 
+		   if($_SESSION[DEBUG]>3) echo "<br>Nie dodalem wartosci $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz poadny indeks juz w nim istnieje" ;
+		  }
+		 }
+		
+		if($_SESSION[DEBUG]>2) print_r($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) ;
+		 //    if($PETELKA<200) {
+		  if($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) biling_process_db_process_call('UPDATEFLAG',"$execute_process[REQUIREFLAG]") ;
+		 //                     } else echo "<hr> WYJATEK ERROR funkcja nie powinna  to isc dalej..." ;	
+		 //TEST
+		 //ZROB_OBCIAZENIE(NAZWA_PROCESS_SERVICES_FIND_ID_LIST,''); 
+		 //ZAMKNIJ_DOKUMENT(4) ;
+		 } else {
+		 $ERROR = $ERROR . "ERROR funkcji ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA: Nieoczekiwany wyjatek - oczekiwana klasa dokumentu SELL_WINIEN a podano (" . $result_BILLING_NUMBERS_TYPE["CLASS"] . ")" ;
+		 echo "$ERROR" ;
+		 }
+		
+		
+		} //EOF func. ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA
+		
+		
+		
+		function ZNAJDZ_ID_OTWARTYCH_FAKTUR_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE_PARM,$DOCTYPE_OPEN_CLOSE_PARAM) {
+		global  $vdbhost,$vdbuname,$vdbpass,$vdbname,$DOCTYPE_OPEN_CLOSE,$ERROR,$PETELKA,$execute_process , $uid , $process_services,$vdb,$ID_BILLING_NUMBERS_TYPE,$ERROR ,$result_BILLING_NUMBERS_TYPE ;
+		if(!$NAZWA_PROCESS_SERVICES_FIND_ID_LIST) $NAZWA_PROCESS_SERVICES_FIND_ID_LIST="NAZWA_PROCESS_SERVICES_FIND_ID_LIST" ;
+		if(($ID_BILLING_NUMBERS_TYPE_PARM) && (!$ID_BILLING_NUMBERS_TYPE)) $ID_BILLING_NUMBERS_TYPE=$ID_BILLING_NUMBERS_TYPE_PARM ;
+		
+		//MINIMALNA_WARTOSC_FAKTURY
+		$DOCTYPE_MINIMUM_VALUE="0.01"; //TODO ustawiac to gdzies globalnie
+		
+		//PARAMETRY TODO do przejmowania przez program
+		if(!$DOCTYPE_OPEN_CLOSE_PARAM) $DOCTYPE_OPEN_CLOSE_PARAM="ANY"; //OPEN or CLOSED or ANY - to wybierze nieksiegowane faktury, ktore nastepnie trzeba wyslac do abonentow, zamknac i zaksiegowac
+		if($DOCTYPE_OPEN_CLOSE_PARAM) $DOCTYPE_OPEN_CLOSE=$DOCTYPE_OPEN_CLOSE_PARAM ;
+		
+		
+		
+		if($DOCTYPE_OPEN_CLOSE==OPEN) $DOCTYPE_OPEN_CLOSE_PARAM_SQL="Y"; else
+		if($DOCTYPE_OPEN_CLOSE==CLOSED) $DOCTYPE_OPEN_CLOSE_PARAM_SQL="N"; else
+		if($DOCTYPE_OPEN_CLOSE==ANY) $DOCTYPE_OPEN_CLOSE_PARAM_SQL="%"; 
+		
+		
+		//TEST 
+		//$ILE="1000" ; 
+		//echo "ILE TO $ILE ";
+		if($ILE) $LIMIT="limit 0,$ILE" ; else $LIMIT="" ;
+		
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID='$ID_BILLING_NUMBERS_TYPE'";
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql) ;
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]) ;
+		
+		if($result_BILLING_NUMBERS_TYPE["CLASS"]=='SELL_WINIEN') {
+		
+		
+		  //WYKRYWAMY ODPOWIEDNIA TABELE DLA TYPU (NUMERACJI I DOKUMENTOW)
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID='$ID_BILLING_NUMBERS_TYPE' limit 0,1 ";
+		  $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql) ;
+		   $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]) ;
+		//     echo "$sql $result_BILLING_NUMBERS_TYPE[1] <br>";
+		
+		if($result_BILLING_NUMBERS_TYPE["CLASS"]=="SELL_WINIEN") {
+		    $sql=" select ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS,".$result_BILLING_NUMBERS_TYPE[TABLE].".ID, ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID, ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT, ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_CURRENCY, 
+		 round(sum(
+		  (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT) +
+		  (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT / 100 ) 
+		 ),2)
+		 as 'WARTOSC'  
+		    from ".$result_BILLING_NUMBERS_TYPE[TABLE]." left join ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT  
+		    where ".$result_BILLING_NUMBERS_TYPE[TABLE].".OPEN like '$DOCTYPE_OPEN_CLOSE_PARAM_SQL' and ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_FK_DEKRET is NULL group by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID order by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID $LIMIT ; " ;
+		           echo "$sql<br>";
+		  } else {
+		   $ERROR.="ERROR Nieobslugiwana klasa dokumentu " . $result_BILLING_NUMBERS_TYPE["CLASS"] ; echo "<br>$ERROR \n";
+		  } //EOF CLASS_CHECK $result_BILLING_NUMBERS_TYPE["CLASS"]
+		
+		if(!$ERROR) {
+		 if($_SESSION[DEBUG]>3) echo "<br>*Wyzwalam funkcje type2 ZNAJDZ_ID_OTWARTYCH_FAKTUR_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE,$DOCTYPE_OPEN_CLOSE_PARAM) ";
+		  $PROCESS_SERVICES_FIND_ID_2=$vdb->sql_query($sql) ;
+		//  echo "<br>$sql" ;
+		 if(!(isset($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]))) $process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST] = array() ;
+		  while (  $PROCESS_SERVICES_FIND_ID = $vdb->sql_fetchrow($PROCESS_SERVICES_FIND_ID_2) ) {
+		   if(!(in_array($PROCESS_SERVICES_FIND_ID[0],$process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]))) {
+		    if($PROCESS_SERVICES_FIND_ID[5]>$DOCTYPE_MINIMUM_VALUE) array_push($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST],$PROCESS_SERVICES_FIND_ID[0]) ;
+		    else {
+		     if($_SESSION[DEBUG]>3) echo "<br>Nie dodalem wartosci $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz wartosc dokumentu (".$PROCESS_SERVICES_FIND_ID[5].") jest mniejsza niz $DOCTYPE_MINIMUM_VALUE " ;
+		     $WARNING.="WARNING <br>Nie dodalem wartosci-dokumentu $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz wartosc dokumentu (".$PROCESS_SERVICES_FIND_ID[5].") jest mniejsza niz $DOCTYPE_MINIMUM_VALUE " ;
+		    }
+		   } else  { 
+		       if($_SESSION[DEBUG]>3) echo "<br>Nie dodalem wartosci $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz poadny indeks juz w nim istnieje" ;
+		      }
+		
+		  }
+		}
+		
+		
+		if($_SESSION[DEBUG]>2) print_r($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) ;
+		
+		  if($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) biling_process_db_process_call('UPDATEFLAG',"$execute_process[REQUIREFLAG]") ;
+		
+		 //TEST
+		 //ZROB_CO_TRZEBA_Z_DOKUMENTEM w sensie - umiesc w tabeli dowysylkowej w odpowiedniej postaci itp && after ..
+		  //ZAMKNIJ_DOKUMENT(4) ;
+		  //KSIEGUJ_DOKUMENT ?
+		 } else {
+		 $ERROR = $ERROR . "ERROR funkcji ZNAJDZ_ID_OTWARTYCH_FAKTUR_DO_ZAMKNIECIA: Nieoczekiwany wyjatek - oczekiwana klasa dokumentu SELL_WINIEN a podano (" . $result_BILLING_NUMBERS_TYPE["CLASS"] . ")" ;
+		 echo "$ERROR" ;
+		 }
+		
+		 return $process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST] ;
+		} //EOF func. ZNAJDZ_ID_OTWARTYCH_FAKTUR_DO_ZAMKNIECIA //funkcja ma zastapic ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA
+		
+		
+		
+		
+		
+		function ZNAJDZ_ID_FK_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE_PARM) {
+		global $PETELKA,$execute_process , $uid , $process_services,$vdb,$ID_BILLING_NUMBERS_TYPE,$result_BILLING_NUMBERS_TYPE ;
+		//TEST 
+		if(!$NAZWA_PROCESS_SERVICES_FIND_ID_LIST) $NAZWA_PROCESS_SERVICES_FIND_ID_LIST="NAZWA_PROCESS_SERVICES_FIND_ID_LIST" ;
+		if(($ID_BILLING_NUMBERS_TYPE_PARM) && (!$ID_BILLING_NUMBERS_TYPE)) $ID_BILLING_NUMBERS_TYPE=$ID_BILLING_NUMBERS_TYPE_PARM ;
+		//$ILE="1000" ; 
+		
+		 //TOOODOOO TODO
+		
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID='$ID_BILLING_NUMBERS_TYPE'";
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql) ;
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]) ;
+		if($ILE) $LIMIT="limit 0,$ILE" ; else $LIMIT="" ;
+		if($_SESSION[DEBUG]>3) echo "<br>*Wyzwalam funkcje type2 function ZNAJDZ_ID_FK_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE) ";
+		  $sql="select * from BILLING_NUMBERS_TYPE where TYPE='$TYPE' " ;
+		  $result_TYPE=$vdb->sql_query($sql) ;
+		  $result_TYPE=$vdb->sql_fetchrow($result_TYPE[0]) ;
+		
+		// print_r($result_TYPE) ;
+		  $sql=" select ID_BILLING_NUMBERS from ".$result_TYPE[TABLE]." where ID_FK_DEKRET is NULL  order by ID $LIMIT ; " ;
+		  $PROCESS_SERVICES_FIND_ID_2=$vdb->sql_query($sql) ;
+		//echo "<br>$sql" ;
+		if(!(isset($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]))) $process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST] = array() ;
+		 while (  $PROCESS_SERVICES_FIND_ID = $vdb->sql_fetchrow($PROCESS_SERVICES_FIND_ID_2) ) {
+		  if(!(in_array($PROCESS_SERVICES_FIND_ID[0],$process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST])))  array_push($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST],$PROCESS_SERVICES_FIND_ID[0]) ; else  { 
+		   if($_SESSION[DEBUG]>3) echo "<br>Nie dodalem wartosci $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz poadny indeks juz w nim istnieje" ;
+		  }
+		 }
+		
+		} //EOF func.
+		
+		
+		//TODO funkcja ta ma zastapic ZNAJDZ_ID_FK_DO_ZAMKNIECIA oraz ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA
+		function ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE_PARM) {
+		global $PETELKA,$execute_process , $uid , $process_services,$vdb,$ID_BILLING_NUMBERS_TYPE,$ERROR ,$result_BILLING_NUMBERS_TYPE ;
+		 //TODO czy ten oby warunek jest napewno konieczniy ?
+		if(($ID_BILLING_NUMBERS_TYPE_PARM) && (!$ID_BILLING_NUMBERS_TYPE)) $ID_BILLING_NUMBERS_TYPE=$ID_BILLING_NUMBERS_TYPE_PARM ;
+		if($ILE) $LIMIT="limit 0,$ILE" ; else $LIMIT="" ;
+		
+		 $sql="select * from BILLING_NUMBERS_TYPE where ID='$ID_BILLING_NUMBERS_TYPE'";
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql) ;
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]) ;
+		
+		if($_SESSION[DEBUG]>3) echo "<br>*Wyzwalam funkcje type2 ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA($NAZWA_PROCESS_SERVICES_FIND_ID_LIST,$ILE,$ID_BILLING_NUMBERS_TYPE) ";
+		
+		if($result_BILLING_NUMBERS_TYPE["CLASS"]=='SELL_WINIEN') {
+		  $sql=" select ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS,".$result_BILLING_NUMBERS_TYPE[TABLE].".ID, ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID, ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT, ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_CURRENCY, 
+		 round(sum(
+		  (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT) +
+		  (".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.PRICE * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.AMMOUNT * ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.VAT / 100 ) 
+		 ),2) as WARTOSC  
+		  from ".$result_BILLING_NUMBERS_TYPE[TABLE]." left join ".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE]."_POS.ID_BILLS_FVAT  
+		  left join ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." on ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS 
+		  where ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE='".$result_BILLING_NUMBERS_TYPE[ID]."' and 
+		  ".$result_BILLING_NUMBERS_TYPE[TABLE].".OPEN='N' and ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_FK_DEKRET is NULL group by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID order by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID $LIMIT ; " ;
+		  $PROCESS_SERVICES_FIND_ID_2=$vdb->sql_query($sql) ;
+		   if($_SESSION[DEBUG]>2) echo "<br>$sql<hr>" ;
+		if(!(isset($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]))) $process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST] = array() ;
+		 while (  $PROCESS_SERVICES_FIND_ID = $vdb->sql_fetchrow($PROCESS_SERVICES_FIND_ID_2) ) {
+		  if(!(in_array($PROCESS_SERVICES_FIND_ID[0],$process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST])))  array_push($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST],$PROCESS_SERVICES_FIND_ID[0]) ; else  { 
+		   if($_SESSION[DEBUG]>3) echo "<br>Nie dodalem wartosci $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz poadny indeks juz w nim istnieje" ;
+		  }
+		 }
+		
+		if($_SESSION[DEBUG]>2) print_r($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) ;
+		 //    if($PETELKA<200) {
+		  if($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) biling_process_db_process_call('UPDATEFLAG',"$execute_process[REQUIREFLAG]") ;
+		 //                     } else echo "<hr> WYJATEK ERROR funkcja nie powinna  to isc dalej..." ;	
+		
+		 } else if($result_BILLING_NUMBERS_TYPE["CLASS"]=='FINANCE') {
+		   $sql=" select ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS from ".$result_BILLING_NUMBERS_TYPE[TABLE]." 
+		    left join ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." on ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS 
+		    where ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_FK_DEKRET is NULL and 
+		     ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_USERS=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS and 
+		     ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE='".$result_BILLING_NUMBERS_TYPE[ID]."' 
+		    order by ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID $LIMIT ; " ;
+		    $PROCESS_SERVICES_FIND_ID_2=$vdb->sql_query($sql) ;
+		   if($_SESSION[DEBUG]>2)   echo "<br>$sql" ;
+		   if(!(isset($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]))) $process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST] = array() ;
+		    while (  $PROCESS_SERVICES_FIND_ID = $vdb->sql_fetchrow($PROCESS_SERVICES_FIND_ID_2) ) {
+		     if(!(in_array($PROCESS_SERVICES_FIND_ID[0],$process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST])))  array_push($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST],$PROCESS_SERVICES_FIND_ID[0]) ; else  { 
+		      if($_SESSION[DEBUG]>3) echo "<br>Nie dodalem wartosci $PROCESS_SERVICES_FIND_ID[0] do tablicy argumentow, gdyz poadny indeks juz w nim istnieje" ;
+		     }
+		    }
+		  if($_SESSION[DEBUG]>2) print_r($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) ;
+		  
+		 } else {
+		 $ERROR = $ERROR . "ERROR funkcji ZNAJDZ_ID_FAKTUR_DO_ZAMKNIECIA: Nieoczekiwany wyjatek - oczekiwana klasa dokumentu SELL_WINIEN lub FINANCE a podano (" . $result_BILLING_NUMBERS_TYPE["CLASS"] . ")" ;
+		 echo "$ERROR" ;
+		 }
+		
+		}
+		
+		
+		
+		//TODO_TEST_PROGRAM
+		function TEST_billing_financefunc() {
+		echo "<hr>WYZWALAM TESTOWA FUNKCJE DO USUNIECIA ASAP TEST_billing_financefunc dla parametrow ";
+		//ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA('NAZWA_PROCESS_SERVICES_FIND_ID_LIST','','1');
+		BILLING_SPRAWDZ_SPOJNOSC_TABEL('1') ;
+		}
+		
+		
+		
+		function BILLING_SPRAWDZ_SPOJNOSC_TABEL($ID_BILLING_NUMBERS_TYPE_PARM) {
+		global $PETELKA,$execute_process , $uid , $process_services,$vdb,$ID_BILLING_NUMBERS_TYPE,$ERROR ;
+		if(($ID_BILLING_NUMBERS_TYPE_PARM) && (!$ID_BILLING_NUMBERS_TYPE)) $ID_BILLING_NUMBERS_TYPE=$ID_BILLING_NUMBERS_TYPE_PARM ;
+		
+		
+		//TODO skasowac to unset, funkcja jak nie dostanie argumentu, to sprawdza wszystkie tabele...
+		//unset($ID_BILLING_NUMBERS_TYPE) ;
+		
+		 if($ID_BILLING_NUMBERS_TYPE) $sql="select * from BILLING_NUMBERS_TYPE where ID='$ID_BILLING_NUMBERS_TYPE'";
+		 else $sql="select * from  BILLING_NUMBERS_TYPE";
+		 $result2=$vdb->sql_query($sql) ;
+		
+		 $ir=0 ;
+		 while ( $result_BILLING_NUMBERS_TYPE = $vdb->sql_fetchrow($result2) ) {
+		 if($result_BILLING_NUMBERS_TYPE["CLASS"]) {
+		  $sql=" select ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID as ID_TABELI_NUMERACJI, 
+		         ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID as ID_TABELI_DOKUMENTOW, ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_USERS as PLATNIK_Z_TABELI_NUMERACJI , 
+			 ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS as PLATNIK_TABELI_DOKUMENTOW, 
+			 ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE as TYP_DOKU_TABELI_NUMERACJI, '".$result_BILLING_NUMBERS_TYPE[ID]."' as TYP_DOKU_TABELI_DOKUMENTOW
+		 	 from ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."
+		         left join ".$result_BILLING_NUMBERS_TYPE[TABLE]." on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS=".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID
+		   	 where ( ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_USERS!=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS )  or (
+		  	 ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE!='".$result_BILLING_NUMBERS_TYPE[ID]."' 
+		          and ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID is not NULL 
+		          ) or ( ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID is NULL and ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE='".$result_BILLING_NUMBERS_TYPE[ID]."')
+		         
+		         ";
+		  $result=$vdb->sql_query($sql) ;
+		//  echo "<br>$sql<hr>" ;
+		  echo "<table border=1 width=100%><tr><td colspan=4>";
+		  echo " Rezultat testu spojnosci dla typu dokumentu <b>".$result_BILLING_NUMBERS_TYPE[TYPE]." </b> (".$result_BILLING_NUMBERS_TYPE[ID].") <br>Porownanie spojnosci podrzednej tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." do ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." : ";
+		  echo "</td></tr>";
+		   $i=0;
+		   while ( $h = $vdb->sql_fetchrow($result) ) {
+		    echo "<tr><td>";
+		      echo "$i</td><td><font color=red> Blad w spojnosci dla tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]."</font></td> ";
+		      if($h[4]<>$h[5]) echo "<td>Brak spojnosci w typach dokumentow ( $h[4] !=  $h[5] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		       else if($h[2]<>$h[3]) echo "<td>Brak spojnosci w platnikach ( $h[2] !=  $h[3] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		      if($h[1]) echo "<td>Problem lezy w tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."  (ID=$h[0]) oraz tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." (ID=$h[1]) </td>";     
+		       else  echo "<td>Problem lezy w tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."  (ID=$h[0]), nie ma oczekiwanego wpisu w tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." </td>";     
+		    echo "</tr>";
+		    $i++ ;
+		    $ir++ ;
+		   }
+		  echo "<tr><td colspan=4>";
+		  if($i==0) echo "<font color=green> Spojnosc tabeli OK</font>" ; else echo "<font color=red> <b> Wystapilo $i bled(ow) w spojnosci tabeli, niezwlocznie nalezy dokonac stosownych napraw</b>, dalsze uzywanie programu grozi powaznymi szkodliwymi nastepstwami</font>";
+		  echo "</td></tr></table>";
+		
+		
+		  $sql=" select ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID as ID_TABELI_NUMERACJI, 
+		         ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID as ID_TABELI_DOKUMENTOW, ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_USERS as PLATNIK_Z_TABELI_NUMERACJI , 
+			 ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS as PLATNIK_TABELI_DOKUMENTOW, 
+			 ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID_BILLING_NUMBERS_TYPE as TYP_DOKU_TABELI_NUMERACJI, '".$result_BILLING_NUMBERS_TYPE[ID]."' as TYP_DOKU_TABELI_DOKUMENTOW
+		 	 from ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."
+		         right join ".$result_BILLING_NUMBERS_TYPE[TABLE]." on ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS=".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID
+		   	 where ( ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE].".ID is NULL )  
+		         
+		         ";
+		  $result=$vdb->sql_query($sql) ;
+		//  echo "<br>$sql<hr>" ;
+		  echo "<table border=1 width=100%><tr><td colspan=4>";
+		  echo " Rezultat testu spojnosci dla typu dokumentu <b>".$result_BILLING_NUMBERS_TYPE[TYPE]." </b> (".$result_BILLING_NUMBERS_TYPE[ID].") <br>Porownanie spojnosci nadrzêdnej tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." do ".$result_BILLING_NUMBERS_TYPE[TABLE]."   : ";
+		  echo "</td></tr>";
+		   $i=0;
+		   while ( $h = $vdb->sql_fetchrow($result) ) {
+		    echo "<tr><td>";
+		      echo "$i</td><td><font color=red> Blad w spojnosci dla tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]."</font></td> ";
+		      if($h[4]<>$h[5]) echo "<td>Brak spojnosci w typach dokumentow ( $h[4] !=  $h[5] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		       else if($h[2]<>$h[3]) echo "<td>Brak spojnosci w platnikach ( $h[2] !=  $h[3] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		      if($h[1]) echo "<td>Problem lezy w tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."  (ID=$h[0]) oraz tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." (ID=$h[1]) </td>";     
+		       else  echo "<td>Problem lezy w tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."  (ID=$h[0]), nie ma oczekiwanego wpisu w tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." </td>";     
+		    echo "</tr>";
+		    $i++ ;
+		    $ir++ ;
+		   }
+		  echo "<tr><td colspan=4>";
+		  if($i==0) echo "<font color=green> Spojnosc tabeli OK</font>" ; else echo "<font color=red> <b> Wystapilo $i bled(ow) w spojnosci tabeli, niezwlocznie nalezy dokonac stosownych napraw</b>, dalsze uzywanie programu grozi powaznymi szkodliwymi nastepstwami</font>";
+		  echo "</td></tr></table>";
+		
+		
+		   }
+		
+		
+		
+		
+		  $sql="select BILLING_ACCOUNTS_FILES.ID as ID_TABELI_PLATNOSCI,
+		   ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID as ID_TABELI_DOKUMENTOW , 
+		   BILLING_ACCOUNTS_FILES.ID_BILLING_USERS as PLATNIK_Z_TABELI_PLATNOSCI ,
+		   ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS as PLATNIK_TABELI_DOKUMENTOW,
+		   BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS_TYPE as TYP_DOKU_TABELI_PLATNOSCI,
+		   '".$result_BILLING_NUMBERS_TYPE[ID]."' as TYP_DOKU_TABELI_DOKUMENTOW
+		   from BILLING_ACCOUNTS_FILES
+		   left join ".$result_BILLING_NUMBERS_TYPE[TABLE]." 
+		    on BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS 
+		   where BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS_TYPE='".$result_BILLING_NUMBERS_TYPE[ID]."' 
+		   and ( ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID is NULL 
+		   or BILLING_ACCOUNTS_FILES.ID is NULL 
+		   or BILLING_ACCOUNTS_FILES.ID_BILLING_USERS!=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS
+		   )";
+		
+		  $result=$vdb->sql_query($sql) ;
+		//  echo "<br>$sql<hr>" ;
+		  echo "<table border=1 width=100%><tr><td colspan=4>";
+		  echo " Rezultat testu spojnosci dla typu dokumentu <b>".$result_BILLING_NUMBERS_TYPE[TYPE]." </b> (".$result_BILLING_NUMBERS_TYPE[ID].") <br>Porownanie spojnosci podrzednej tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." do BILLING_ACCOUNT_FILES (tabeli analityki) : ";
+		//  echo "</td></tr>";
+		   $i=0;
+		   while ( $h = $vdb->sql_fetchrow($result) ) {
+		    echo "<tr><td>";
+		      echo "$i</td><td><font color=red> Blad w spojnosci dla tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]."</font></td> ";
+		      if($h[4]<>$h[5]) echo "<td>Brak spojnosci w typach dokumentow ( $h[4] !=  $h[5] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		       else if($h[2]<>$h[3]) echo "<td>Brak spojnosci w <b>analityce</b> ( $h[2] !=  $h[3] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		      if($h[1]) echo "<td>Problem lezy w tabeli BILLING_ACCOUNTS_FILES (ID=$h[0]) oraz tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." (ID=$h[1]) </td>";     
+		       else  echo "<td>Problem lezy w tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."  (ID=$h[0]), nie ma oczekiwanego wpisu w tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." </td>";     
+		    echo "</tr>";
+		    $i++ ;
+		    $ir++ ;
+		   }
+		  echo "<tr><td colspan=4>";
+		  if($i==0) echo "<font color=green> Spojnosc tabeli OK</font>" ; else echo "<font color=red> <b> Wystapilo $i bled(ow) w spojnosci tabeli, niezwlocznie nalezy dokonac stosownych napraw</b>, dalsze uzywanie programu grozi powaznymi szkodliwymi nastepstwami</font>";
+		  echo "</td></tr></table>";
+		
+		
+		
+		
+		
+		
+		  $sql="select BILLING_ACCOUNTS_FILES.ID as ID_TABELI_PLATNOSCI,
+		   ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID as ID_TABELI_DOKUMENTOW , 
+		   BILLING_ACCOUNTS_FILES.ID_BILLING_USERS as PLATNIK_Z_TABELI_PLATNOSCI ,
+		   ".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS as PLATNIK_TABELI_DOKUMENTOW,
+		   BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS_TYPE as TYP_DOKU_TABELI_PLATNOSCI,
+		   '".$result_BILLING_NUMBERS_TYPE[ID]."' as TYP_DOKU_TABELI_DOKUMENTOW
+		   from BILLING_ACCOUNTS_FILES
+		   right join ".$result_BILLING_NUMBERS_TYPE[TABLE]." 
+		    on BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_NUMBERS 
+		   where ".$result_BILLING_NUMBERS_TYPE[TABLE].".FK_ZAKSIEG='Y' 
+		   and ( BILLING_ACCOUNTS_FILES.ID is NULL 
+		   or BILLING_ACCOUNTS_FILES.ID_BILLING_USERS!=".$result_BILLING_NUMBERS_TYPE[TABLE].".ID_BILLING_USERS
+		   )";
+		
+		  $result=$vdb->sql_query($sql) ;
+		//  echo "<br>$sql<hr>" ;
+		  echo "<table border=1 width=100%><tr><td colspan=4>";
+		  echo " Rezultat testu spojnosci dla typu dokumentu <b>".$result_BILLING_NUMBERS_TYPE[TYPE]." </b> (".$result_BILLING_NUMBERS_TYPE[ID].") <br>Porownanie spojnosci podrzednej tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." do BILLING_ACCOUNT_FILES (tabeli analityki) : ";
+		  echo "</td></tr>";
+		   $i=0;
+		   while ( $h = $vdb->sql_fetchrow($result) ) {
+		    echo "<tr><td>";
+		      echo "$i</td><td><font color=red> Blad w spojnosci dla tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]."</font></td> ";
+		      if($h[4]<>$h[5]) echo "<td>Brak spojnosci w typach dokumentow ( $h[4] !=  $h[5] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		       else if($h[2]<>$h[3]) echo "<td>Brak spojnosci w <b>analityce</b> ( $h[2] !=  $h[3] ) PROBLEM NALEZY NIEZWLOCZNIE ZGLOSIC DO ADMINISTRATORA</td>" ;
+		      if(($h[0]) && ($h[1])) echo "<td>Problem lezy w tabeli BILLING_ACCOUNTS_FILES (ID=$h[0]) oraz tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." (ID=$h[1]) </td>";     
+		       else echo "<td>Problem lezy w tabeli ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]."  (ID=$h[0]), nie ma oczekiwanego wpisu w tabeli ".$result_BILLING_NUMBERS_TYPE[TABLE]." </td>";     
+		    echo "</tr>";
+		    $i++ ;
+		    $ir++ ;
+		   }
+		  echo "<tr><td colspan=4>";
+		  if($i==0) echo "<font color=green> Spojnosc tabeli OK</font>" ; else echo "<font color=red> <b> Wystapilo $i bled(ow) w spojnosci tabeli, niezwlocznie nalezy dokonac stosownych napraw</b>, dalsze uzywanie programu grozi powaznymi szkodliwymi nastepstwami</font>";
+		  echo "</td></tr></table>";
+		
+		
+		
+		
+		
+		  } 
+		
+		
+		if($ir<>0)echo "<br><font color=red>ogolnie bledow (<b>$ir</b>)</font>";
+		echo "<font size=-3> func.by sqix at 2004-06-28 6:05 status 0.9</font>";
+		   if($ir==0) return "OK" ;
+		}
+		
+		
+		
+		
+		
+		function KSIEGUJ_FAKTURY($ID_BILLING_NUMBERS_TYPE) {
+		global $process_services,$result_BILLING_NUMBERS_TYPE ;
+		if(!$ID_BILLING_NUMBERS_TYPE) $ID_BILLING_NUMBERS_TYPE="6" ;
+		 ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA('NAZWA_PROCESS_SERVICES_FIND_ID_LIST','','1')  ;
+		 if($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) {
+		 if($_SESSION[DEBUG]>2) echo "<br>function KSIEGUJ_FAKTURY(): Ksieguje nastepujace ID faktur:" ;
+		  foreach($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST] as $ID_SERVICES_WYPIS) {
+		   if($_SESSION[DEBUG]>3)   echo "$ID_SERVICES_WYPIS , ";
+		   ZAMKNIJ_DOKUMENT($ID_SERVICES_WYPIS,$result_BILLING_NUMBERS_TYPE) ;
+		  } 
+		 } else echo "<br> function KSIEGUJ_FAKTURY(): Brak faktur do zaksiegowania" ;
+		}
+		
+		
+		function KSIEGUJ_KP() {
+		global $process_services,$result_BILLING_NUMBERS_TYPE ;
+		 ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA('NAZWA_PROCESS_SERVICES_FIND_ID_LIST','','4')  ;
+		 if($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) {
+		  if($_SESSION[DEBUG]>2) echo "<br>function KSIEGUJ_KP(): Ksieguje nastepujace ID KSIEGUJ_KP:" ;
+		  foreach($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST] as $ID_SERVICES_WYPIS) {
+		   if($_SESSION[DEBUG]>3) echo "$ID_SERVICES_WYPIS , ";
+		   ZAMKNIJ_DOKUMENT($ID_SERVICES_WYPIS,$result_BILLING_NUMBERS_TYPE) ;
+		  } 
+		 } else echo "<br> function KSIEGUJ_KP(): Brak KP do zaksiegowania" ;
+		}
+		
+		function KSIEGUJ_KW() {
+		global $process_services,$result_BILLING_NUMBERS_TYPE ;
+		 ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA('NAZWA_PROCESS_SERVICES_FIND_ID_LIST','','5')  ;
+		 if($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) {
+		  if($_SESSION[DEBUG]>2) echo "<br>function KSIEGUJ_KP(): Ksieguje nastepujace ID KSIEGUJ_KW:" ;
+		  foreach($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST] as $ID_SERVICES_WYPIS) {
+		   if($_SESSION[DEBUG]>3) echo "$ID_SERVICES_WYPIS , ";
+		   ZAMKNIJ_DOKUMENT($ID_SERVICES_WYPIS,$result_BILLING_NUMBERS_TYPE) ;
+		  } 
+		 } else echo "<br> function KSIEGUJ_KW(): Brak KW do zaksiegowania" ;
+		}
+		
+		
+		function KSIEGUJ_WB_MASS() {
+		global $process_services,$result_BILLING_NUMBERS_TYPE ;
+		 ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA('NAZWA_PROCESS_SERVICES_FIND_ID_LIST','100','7')  ;
+		 if($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) {
+		 if($_SESSION[DEBUG]>1) echo "<br>function KSIEGUJ_WB_MASS(): Ksieguje nastepujace ID KSIEGUJ_WB_MASS:" ;
+		  foreach($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST] as $ID_SERVICES_WYPIS) {
+		   if($_SESSION[DEBUG]>2)   echo "$ID_SERVICES_WYPIS , ";
+		   ZAMKNIJ_DOKUMENT($ID_SERVICES_WYPIS,$result_BILLING_NUMBERS_TYPE) ;
+		  } 
+		 } else echo "<br> function KSIEGUJ_WB_MASS(): Brak WB_MASS do zaksiegowania" ;
+		}
+		
+		
+		function KSIEGUJ_WB() {
+		global $process_services,$result_BILLING_NUMBERS_TYPE ;
+		 ZNAJDZ_ID_DOWOLNEGO_TYPU_DO_ZAMKNIECIA('NAZWA_PROCESS_SERVICES_FIND_ID_LIST','','8')  ;
+		 if($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) {
+		 if($_SESSION[DEBUG]>1) echo "<br>function KSIEGUJ_WB(): Ksieguje nastepujace ID KSIEGUJ_WB:" ;
+		  foreach($process_services[NAZWA_PROCESS_SERVICES_FIND_ID_LIST] as $ID_SERVICES_WYPIS) {
+		   if($_SESSION[DEBUG]>2)   echo "$ID_SERVICES_WYPIS , ";
+		   ZAMKNIJ_DOKUMENT($ID_SERVICES_WYPIS,$result_BILLING_NUMBERS_TYPE) ;
+		  } 
+		 } else echo "<br> function KSIEGUJ_WB(): Brak WB do zaksiegowania" ;
+		}
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		
+		//UWAGA FUNKCJA PRZYJMUJE DRUGI PARAMETR Z ARRAYA select * from BILLING_NUMBERS_TYPE where ID='typ_doc'
+		function ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS,$result_BILLING_NUMBERS_TYPE) {
+		global $ERROR,$vdb,$execute_process,$process_services,$uid ;
+		//$_SESSION[DEBUG]=4;
+		if($_SESSION[DEBUG]>3) { 
+		 echo "<br>F.ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS,$result_BILLING_NUMBERS_TYPE) <br> ";
+		  print_r($result_BILLING_NUMBERS_TYPE) ;
+		  }
+		 $sql="select t2.* from ".$result_BILLING_NUMBERS_TYPE[BILLING_NUMBERS_TABLE]." as t1, BILLING_NUMBERS_TYPE as t2 where t1.ID_BILLING_NUMBERS_TYPE=t2.ID and t1.ID='$ID_BILLING_NUMBERS'" ;
+		 $sql="select * from BILLING_NUMBERS_TYPE  where TYPE='$result_BILLING_NUMBERS_TYPE'" ;
+		//echo "<br>$sql" ;
+		// $result_TABLE_NAME=$vdb->sql_query("$sql") ;
+		// $result_TABLE_NAME=$vdb->sql_fetchrow($result_TABLE_NAME[0]);
+		//   print_r($result_BILLING_NUMBERS_TYPE) ;
+		   $result_TABLE_NAME=$result_BILLING_NUMBERS_TYPE ;
+			
+		
+		 if($result_TABLE_NAME["CLASS"]=="SELL_WINIEN") {
+			$WINIEN_MA="WINIEN";
+		  $sql="select  ".$result_TABLE_NAME[TABLE].".ID, ".$result_TABLE_NAME[TABLE].".ID_FK_DEKRET, 
+		   ".$result_TABLE_NAME[TABLE].".OPEN ,  ".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS,
+		   count(".$result_TABLE_NAME[TABLE]."_POS.ID), ".$result_TABLE_NAME[TABLE]."_POS.ID_BILLS_FVAT, 
+		   ".$result_TABLE_NAME[TABLE].".ID_CURRENCY, 
+		 round(sum(
+		  (".$result_TABLE_NAME[TABLE]."_POS.PRICE * ".$result_TABLE_NAME[TABLE]."_POS.AMMOUNT) +
+		  (".$result_TABLE_NAME[TABLE]."_POS.PRICE * ".$result_TABLE_NAME[TABLE]."_POS.AMMOUNT * ".$result_TABLE_NAME[TABLE]."_POS.VAT / 100 ) 
+		 ),2) as WARTOSC ,
+		  ".$result_TABLE_NAME[TABLE].".ID_BILLING_USERS 
+		  from ".$result_TABLE_NAME[TABLE]." left join ".$result_TABLE_NAME[TABLE]."_POS on ".$result_TABLE_NAME[TABLE].".ID=".$result_TABLE_NAME[TABLE]."_POS.ID_BILLS_FVAT  
+		  left join ".$result_TABLE_NAME[BILLING_NUMBERS_TABLE]." on ".$result_TABLE_NAME[BILLING_NUMBERS_TABLE].".ID=".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS
+		  where ".$result_TABLE_NAME[BILLING_NUMBERS_TABLE].".ID_BILLING_USERS=".$result_TABLE_NAME[TABLE].".ID_BILLING_USERS and 
+		  ".$result_TABLE_NAME[TABLE].".OPEN='N' and ".$result_TABLE_NAME[TABLE].".FK_ZAKSIEG='N' and ".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' group by ".$result_TABLE_NAME[TABLE].".ID order by ".$result_TABLE_NAME[TABLE].".ID ";
+		   if($_SESSION[DEBUG]>2)  echo "<br> $sql<hr>" ;
+		  $result_BIGJOIN=$vdb->sql_query("$sql") ;
+		  $result_BIGJOIN=$vdb->sql_fetchrow("$result_BIGJOIN[0]") ;
+		  if(($result_BIGJOIN[1]==0) || (!($result_BIGJOIN[1]))) {
+		   $WARTOSC_DOK=$result_BIGJOIN[7] ; $ID_BILLING_USERS_DOK=$result_BIGJOIN[8] ;
+		   if($_SESSION[DEBUG]>3) echo "<br> WARTOSC_DOK $WARTOSC_DOK , ID_BILLING_USERS_DOK  $ID_BILLING_USERS_DOK ";
+		
+		    if(VERIFYUPDATE_BILLING_ACCOUNTS($ID_BILLING_USERS_DOK)) {
+			if($WARTOSC_DOK<0)  {
+			       $WARTOSC_DOK= -$WARTOSC_DOK ;
+			       $WINIEN_MA="MA";
+			}
+		
+		     $sql="insert into BILLING_ACCOUNTS_FILES ( ID ,ID_BILLING_USERS ,ID_BILLING_NUMBERS_TYPE,ID_BILLING_NUMBERS ,$WINIEN_MA ,A_RECORD_CREATE_AUTHOR ) values
+		     ('','$ID_BILLING_USERS_DOK','$result_TABLE_NAME[ID]','$ID_BILLING_NUMBERS','$WARTOSC_DOK','$uid')"       ;
+		//TODO DEBUG...
+		//	die("FORCED DIE SQL:::: $sql  ::: at line 491");
+		
+		     $result_B_A_L_INSERT=$vdb->sql_query("$sql") ;
+		     if($result_B_A_L_INSERT) { 
+		      $result_B_A_L_INSERT=$vdb->sql_nextid();
+		      $sql="update ".$result_TABLE_NAME[TABLE]." set ID_FK_DEKRET='$result_B_A_L_INSERT' ,  OPEN='N' , FK_ZAKSIEG='Y' where ID='$result_BIGJOIN[0]'";
+		       $result_DOK_UPDATE=$vdb->sql_query($sql) ;
+		   if($_SESSION[DEBUG]>3)       echo "<br>result_DOK_UPDATE to $result_DOK_UPDATE " ;
+		
+		   if($_SESSION[DEBUG]>3)     echo "<br>STEP2 - SZUKAM I ROZLICZNAM NIEROZLICZONA TRANSAKCJE KSIEGOWEA po odpowiedniej stronie i w  jakiej wysokosci" ;
+		     $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI('LEWO',$ID_BILLING_USERS_DOK,$WARTOSC_DOK,'',$ID_BILLING_NUMBERS,'TYLKO_ROZLICZ') ;
+		
+		     } else { 
+		      //funkcja nie wykonala ksiegowania i napotkala na opor, wyglada na to, ze sa dane w tabeli z wplatami nie zaznaczone w fakturach
+		      echo "<br>function ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS) Probuje naprawic bledna spojnosc tabel... TODO" ; 
+		
+		     }
+		    }
+		  } else echo "<br> Error , niespojne dane dla function ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS) ";
+		
+		   
+		
+		 } else  if($result_TABLE_NAME["CLASS"]=="SELL_MA") {
+		
+			$WINIEN_MA="WINIEN";
+		  $sql="select  ".$result_TABLE_NAME[TABLE].".ID, ".$result_TABLE_NAME[TABLE].".ID_FK_DEKRET, 
+		   ".$result_TABLE_NAME[TABLE].".OPEN ,  ".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS,
+		   count(".$result_TABLE_NAME[TABLE]."_POS.ID), ".$result_TABLE_NAME[TABLE]."_POS.ID_BILLS_FVAT, 
+		   ".$result_TABLE_NAME[TABLE].".ID_CURRENCY, 
+		 round(sum(
+		  ((".$result_TABLE_NAME[TABLE]."_POS.PRICE * ".$result_TABLE_NAME[TABLE]."_POS.AMMOUNT) +  (".$result_TABLE_NAME[TABLE]."_POS.PRICE * ".$result_TABLE_NAME[TABLE]."_POS.AMMOUNT * ".$result_TABLE_NAME[TABLE]."_POS.VAT / 100 ))
+		   -(".$result_TABLE_NAME[TABLE]."_POS.N_AMMOUNT * ".$result_TABLE_NAME[TABLE]."_POS.N_PRICE * ".$result_TABLE_NAME[TABLE]."_POS.N_VAT / 100)
+		   +(".$result_TABLE_NAME[TABLE]."_POS.N_AMMOUNT * ".$result_TABLE_NAME[TABLE]."_POS.N_PRICE * ".$result_TABLE_NAME[TABLE]."_POS.VAT / 100)
+		
+		 ),2) as WARTOSC ,
+		  ".$result_TABLE_NAME[TABLE].".ID_BILLING_USERS , ".$result_TABLE_NAME[TABLE].".REMOTE_ID_BILLING_NUMBERS 
+		  from ".$result_TABLE_NAME[TABLE]." left join ".$result_TABLE_NAME[TABLE]."_POS on ".$result_TABLE_NAME[TABLE].".ID=".$result_TABLE_NAME[TABLE]."_POS.ID_BILLS_FVAT  
+		  left join ".$result_TABLE_NAME[BILLING_NUMBERS_TABLE]." on ".$result_TABLE_NAME[BILLING_NUMBERS_TABLE].".ID=".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS
+		  where ".$result_TABLE_NAME[BILLING_NUMBERS_TABLE].".ID_BILLING_USERS=".$result_TABLE_NAME[TABLE].".ID_BILLING_USERS and 
+		  ".$result_TABLE_NAME[TABLE].".OPEN='N' and ".$result_TABLE_NAME[TABLE].".FK_ZAKSIEG='N' and ".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' group by ".$result_TABLE_NAME[TABLE].".ID order by ".$result_TABLE_NAME[TABLE].".ID ";
+		   if($_SESSION[DEBUG]>2)  echo "<br> $sql<hr>" ;
+		  $result_BIGJOIN=$vdb->sql_query("$sql") ;
+		  $result_BIGJOIN=$vdb->sql_fetchrow("$result_BIGJOIN[0]") ;
+		
+		  if(($result_BIGJOIN[1]==0) || (!($result_BIGJOIN[1]))) {
+		   $WARTOSC_DOK=$result_BIGJOIN[7] ; $ID_BILLING_USERS_DOK=$result_BIGJOIN[8] ;
+		   if($_SESSION[DEBUG]>3) echo "<br> WARTOSC_DOK $WARTOSC_DOK , ID_BILLING_USERS_DOK  $ID_BILLING_USERS_DOK ";
+		
+		    if(VERIFYUPDATE_BILLING_ACCOUNTS($ID_BILLING_USERS_DOK)) {
+		
+			if($WARTOSC_DOK<0)  {
+			       $FINANCE_KSIEGOWANIE="PRAWO" ; $FINANCE_KSIEGOWANIE_KWOTA=-$WARTOSC_DOK ; 
+			       $WARTOSC_DOK= -$WARTOSC_DOK ;
+			       $WINIEN_MA="MA";
+		
+			} else {
+				$FINANCE_KSIEGOWANIE="LEWO" ;  $FINANCE_KSIEGOWANIE_KWOTA=$WARTOSC_DOK ; 
+		 	        $WINIEN_MA="WINIEN";
+			}
+		
+		
+		
+		//      if(($result_FK[WINIEN])&& ((!$result_FK[MA]>0) || ($result_FK[MA]=='0.00') )) { $FINANCE_KSIEGOWANIE="LEWO" ;  $FINANCE_KSIEGOWANIE_KWOTA=$result_FK[WINIEN] ; } else
+		//      if(($result_FK[MA])&& ((!$result_FK[WINIEN]>0) || ($result_FK[WINIEN]=='0.00'))) { $FINANCE_KSIEGOWANIE="PRAWO" ; $FINANCE_KSIEGOWANIE_KWOTA=$result_FK[MA] ; } else
+		//     $ERROR = $ERROR . "Problem z dokumentem $ID_BILLING_NUMBERS , (wartosci po obu stronach) ksiegowanie niemozliwe" ;
+		
+		
+		
+		
+		     $sql="insert into BILLING_ACCOUNTS_FILES ( ID ,ID_BILLING_USERS ,ID_BILLING_NUMBERS_TYPE,ID_BILLING_NUMBERS ,$WINIEN_MA ,A_RECORD_CREATE_AUTHOR ) values
+		     ('','$ID_BILLING_USERS_DOK','$result_TABLE_NAME[ID]','$ID_BILLING_NUMBERS','$WARTOSC_DOK','$uid')"       ;
+		//TODO DEBUG...
+		//	die("FORCED DIE SQL:::: $sql  ::: at line 553");
+		
+		     $result_B_A_L_INSERT=$vdb->sql_query("$sql") ;
+		     if($result_B_A_L_INSERT) { 
+		      $result_B_A_L_INSERT=$vdb->sql_nextid();
+		      $sql="update ".$result_TABLE_NAME[TABLE]." set ID_FK_DEKRET='$result_B_A_L_INSERT' ,  OPEN='N' , FK_ZAKSIEG='Y' where ID='$result_BIGJOIN[0]'";
+		       $result_DOK_UPDATE=$vdb->sql_query($sql) ;
+		   if($_SESSION[DEBUG]>3)       echo "<br>result_DOK_UPDATE to $result_DOK_UPDATE " ;
+		
+		   if($_SESSION[DEBUG]>3)     echo "<br>STEP2 - SZUKAM I ROZLICZNAM NIEROZLICZONA TRANSAKCJE KSIEGOWEA po odpowiedniej stronie i w  jakiej wysokosci --  $FINANCE_KSIEGOWANIE , $result_BIGJOIN[REMOTE_ID_BILLING_NUMBERS] " ;
+		//BYLO2004-08-02     $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI('LEWO',$ID_BILLING_USERS_DOK,$WARTOSC_DOK,'',$ID_BILLING_NUMBERS,'TYLKO_ROZLICZ') ;
+		
+		//bylo 2005-01-13 problemy z korektami w rozrachunkach - minusy
+		//     $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI("$FINANCE_KSIEGOWANIE",$ID_BILLING_USERS_DOK,$WARTOSC_DOK,'',$ID_BILLING_NUMBERS,'TYLKO_ROZLICZ',"$result_BIGJOIN[REMOTE_ID_BILLING_NUMBERS]") ;
+		
+		
+		      $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI("$FINANCE_KSIEGOWANIE",$ID_BILLING_USERS_DOK,$FINANCE_KSIEGOWANIE_KWOTA,'',$ID_BILLING_NUMBERS,'TYLKO_ROZLICZ',"$result_BIGJOIN[REMOTE_ID_BILLING_NUMBERS]") ;
+		
+		//     $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($FINANCE_KSIEGOWANIE,$result_FK[ID_BILLING_USERS],$FINANCE_KSIEGOWANIE_KWOTA,'',$ID_BILLING_NUMBERS,'KSIEGUJ_I_ROZLICZ',"$result_FK[do_dokumentu]") ;
+		     } else { 
+		      //funkcja nie wykonala ksiegowania i napotkala na opor, wyglada na to, ze sa dane w tabeli z wplatami nie zaznaczone w fakturach
+		      echo "<br>function ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS) Probuje naprawic bledna spojnosc tabel... TODO" ; 
+		
+		     }
+		    }
+		  } else echo "<br> Error , niespojne dane dla function ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS) ";
+		
+		   
+		
+		 } else if($result_TABLE_NAME["CLASS"]=="FINANCE")  {
+		if($_SESSION[DEBUG]>2)   echo "<br> CLASS FINANCE is at DEVELOPPING_NOW" ;
+		
+		   $sql="select * from ".$result_TABLE_NAME[TABLE]." where ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' " ;
+		    $result_FK=$vdb->sql_query($sql) ;
+		    $result_FK=$vdb->sql_fetchrow($result_FK[0]) ;
+		//   echo "<br>$sql     *** jaka kwota?" ;
+		    if($_SESSION[DEBUG]>3) echo "<br>result_FK[WINIEN] $result_FK[WINIEN] result_FK[MA] $result_FK[MA] ***";
+		
+		    if($_SESSION[DEBUG]>3)    echo "<br>STEP1 - Ksiegowanie-rozliczanie na WINIEN (LEWO) czy na MA (PRAWO) ";
+		     if($result_FK) {
+		      if(($result_FK[WINIEN])&& ((!$result_FK[MA]>0) || ($result_FK[MA]=='0.00') )) { $FINANCE_KSIEGOWANIE="LEWO" ;  $FINANCE_KSIEGOWANIE_KWOTA=$result_FK[WINIEN] ; } else
+		      if(($result_FK[MA])&& ((!$result_FK[WINIEN]>0) || ($result_FK[WINIEN]=='0.00'))) { $FINANCE_KSIEGOWANIE="PRAWO" ; $FINANCE_KSIEGOWANIE_KWOTA=$result_FK[MA] ; } else
+		      $ERROR = $ERROR . "Problem z dokumentem $ID_BILLING_NUMBERS , (wartosci po obu stronach) ksiegowanie niemozliwe" ;
+		     } else $ERROR = $ERROR . "Problem z dokumentem $ID_BILLING_NUMBERS (brak niezbednych danych) ksiegowanie niemozliwe " ;
+		    if($_SESSION[DEBUG]>3)    echo "... <b>$FINANCE_KSIEGOWANIE ($FINANCE_KSIEGOWANIE_KWOTA)</b>" ;
+		    if($_SESSION[DEBUG]>3)    echo "<br>STEP2 - szukam NIEROZLICZONEJ TRANSAKCJI KSIEGOWEJ po odpowiedniej stronie i w  jakiej wysokosci" ;
+		     $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($FINANCE_KSIEGOWANIE,$result_FK[ID_BILLING_USERS],$FINANCE_KSIEGOWANIE_KWOTA,'',$ID_BILLING_NUMBERS,'KSIEGUJ_I_ROZLICZ',"$result_FK[do_dokumentu]") ;
+		   
+		    if($_SESSION[DEBUG]>3)    echo "<br>STEP3 - Umieszczam rekord w analityce w roznych konfiguracjach rozrachunkowych, zaleznych od zmiennej result_S_N_R" ;
+		//    print_r($result_S_N_R) ;   
+		//     UMIESC_DOKUMENT_FK_W_ANALITYCE_I_ROZLICZ($ID_BILLING_NUMBERS,$result_S_N_R) ;
+		    if($_SESSION[DEBUG]>3)    echo "<br>STEP4 -  Obliczam w jakiej wartosci ta transakcja jest jeszcze " ;
+		
+		   
+		 } else echo "<br> Nie supportowana klasa  dokumentu <b>$result_TABLE_NAME[CLASS] </b> ";
+		
+		
+		if($ERROR)  echo "<font color=red><br>$ERROR</font>" ; else return 1;
+		} //EOF func.
+		
+		
+		function float1($val) 
+		{ 
+		   $x = intval(100*$val)/100; 
+		   if ($x == intval($x)) return "".$x.".00"; 
+		   else return intval(100*$val)/100; 
+		} 
+		
+		
+		function DO_DOKUMENTU_MAKESQL($do_dokumentu,$KROK) {
+		//JEZELI FAKTURA TYCZY SIE KILKU DOKUMENTOW TO SEPARATOREM JEST SPACJA
+		$do_dokumentu_arr=explode(' ',$do_dokumentu) ; 
+		
+		 if($KROK==0) {
+		if($_SESSION[DEBUG]>3)  echo "<br>KROK1 DO DOKUMENTU $do_dokumentu - Rozliczenie okreslonej transakcji" ; 
+		  //KROK - zakladamy ze zmienna zawiera dokladne ID_BILLING_NUMBERS
+		    if($do_dokumentu_arr[1]) {
+		     foreach($do_dokumentu_arr as $wypis) {
+		     if(!$sql) $sql=" and ( t1.ID_BILLING_NUMBERS='$wypis' " ; else  $sql.=" or t1.ID_BILLING_NUMBERS='$wypis' " ;
+		     } $sql.=" )";
+		    } else {
+		      $sql="and t1.ID_BILLING_NUMBERS='$do_dokumentu' ";
+		    } //do_dokumentu_arr else istnieje
+		 } else if($KROK==1) {
+		  //KROK - zakladamy ze zmienna zawiera 2 ostatnie znaki ID_BILLING_NUMBERS
+		   if($_SESSION[DEBUG]>3)   echo "<br>KROK2 DO DOKUMENTU $do_dokumentu - Rozliczenie okreslonej transakcji wg ostatnich 2-ch znakow dokumentu (np. platnosci masowe)" ; 
+		   $sql=" and  t1.ID_BILLING_NUMBERS like '%$do_dokumentu' " ;
+		 } else {
+		  //KROK - zakladamy ze zmienna zawiera bledne ID_BILLING_NUMBERS
+		 $sql="" ;
+		 }
+		
+		//echo "<br>$sql i krok $KROK  ... ";
+		return $sql;
+		}
+		
+		
+		function SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,$KWOTA,$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,$ACTION,$do_dokumentu) {
+		if($_SESSION[DEBUG]>2) echo "<br> function SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,$KWOTA,$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,$ACTION,$do_dokumentu) <br>"; 
+		 global $vdb,$ERROR ;
+		 if($LEWO_PRAWO=="PRAWO") {
+		 $WHERE="WINIEN" ;
+		 $WHERE_PRIM="MA" ;
+		 } else if($LEWO_PRAWO=="LEWO") {
+		 $WHERE="MA" ;
+		 $WHERE_PRIM="WINIEN" ;
+		 } 
+		 if($ID_BILLING_NUMBERS) {
+		 $WHERE_ID_BILLING_NUMBERS=" t1.ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' and " ;
+		 }
+		
+		 $WARIANT=$LEWO_PRAWO."0" ;
+		
+		if(strlen($do_dokumentu)<>0) $KROK=0; else  $KROK=2 ;
+		 for(;$KROK<=2;$KROK++) {
+		
+		// $vdb->sql_query('lock tables BILLING_ACCOUNTS_FILES WRITE') ;
+		
+		//Bylo przed 2005-01-13 - problem z kilkoma dokumentami i joinem - zle sumowalo mozna joinowac tylko raz samego siebie
+		// $sql="  select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,  t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t3.ID), sum(t3.ID_FIN_MA_VAL) as ROZ_MA,  t1.WINIEN - sum(t2.ID_FIN_WINIEN_VAL) - sum(t3.ID_FIN_MA_VAL)   as POZ_WINIEN, t1.MA -  sum(t3.ID_FIN_MA_VAL)  - sum(t2.ID_FIN_WINIEN_VAL) as POZ_MA from BILLING_ACCOUNTS_FILES as t1  left join BILLING_ACCOUNTS_FILES as t2 on t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN left join BILLING_ACCOUNTS_FILES as t3 on t1.ID_BILLING_NUMBERS=t3.ID_FIN_MA  where  t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE_PRIM." = 0 and  t1.".$WHERE." > 0 and  $WHERE_ID_BILLING_NUMBERS t1.ID_BILLING_USERS=".$ID_BILLING_USERS." ".DO_DOKUMENTU_MAKESQL($do_dokumentu,$KROK)."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+		
+		 $sql="  select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,
+		 t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t2.ID), sum(t2.ID_FIN_MA_VAL) as ROZ_MA,
+		 t1.WINIEN - sum(t2.ID_FIN_WINIEN_VAL) - sum(t2.ID_FIN_MA_VAL)   as POZ_WINIEN, t1.MA -  sum(t2.ID_FIN_MA_VAL)  - sum(t2.ID_FIN_WINIEN_VAL) as POZ_MA
+		
+		from BILLING_ACCOUNTS_FILES as t1 
+		left join BILLING_ACCOUNTS_FILES as t2 on  t2.ID_BILLING_USERS=".$ID_BILLING_USERS." and ( t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN or t1.ID_BILLING_NUMBERS=t2.ID_FIN_MA  )
+		where
+		 t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE_PRIM." = 0 and  t1.".$WHERE." > 0 and 
+		 $WHERE_ID_BILLING_NUMBERS
+		 t1.ID_BILLING_USERS=".$ID_BILLING_USERS." ".self::DO_DOKUMENTU_MAKESQL($do_dokumentu,$KROK)."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+		
+			 if($_SESSION[DEBUG]>3) echo "<br> krok: $KROK SQL(SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI) to $sql ***";
+		
+		 $result_S_N_R=$this->db->query($sql); 
+		 $result_S_N_R=$this->db->fetch_assoc($result_S_N_R);
+		 
+		 DEBUG_S(3,'result_S_N_R',array($result_S_N_R,$sql),__FILE__,__FUNCTION__,__LINE__);
+		  if($result_S_N_R) break ; 
+		// $vdb->sql_query('unlock tables') ;
+		// echo "<br>$sql<hr>";
+		 } //EOF for $do_dokumentu petla KROK
+		
+		 
+		
+		 if($result_S_N_R) {
+		//    print_r($result_S_N_R) ;
+			
+		 $POZ_S_N_R_KWOTA = $result_S_N_R[$WHERE]-$result_S_N_R["ROZ_".$WHERE]-$result_S_N_R["ROZ_".$WHERE_PRIM] ;
+		   $result_S_N_R[POZ_S_N_R_KWOTA] = $POZ_S_N_R_KWOTA ;
+		   $result_S_N_R[WHERE] = $WHERE ;
+		   $result_S_N_R[WHERE_PRIM] = $WHERE_PRIM ;
+		 $POZ_S_N_R_KWOTA =  round($POZ_S_N_R_KWOTA,2); 
+		 $KWOTA = round($KWOTA,2);
+		  
+		if($_SESSION[DEBUG]>3)   echo "<br> Usiluje rozliczyc kwote $KWOTA do  <font color=green>( ". $result_S_N_R[$WHERE]."-".$result_S_N_R["ROZ_".$WHERE]."-".$result_S_N_R["ROZ_".$WHERE_PRIM]." ) </font> <b> $POZ_S_N_R_KWOTA ?=?=? $KWOTA </b> 
+		$POZ_S_N_R_KWOTA_2 ==??== $KWOTA_2 ||| result_S_N_R[ACTION_LOCAL_VAL]==$result_S_N_R[ACTION_LOCAL_VAL] result_S_N_R[ACTION_LOCAL_STRONA]==$result_S_N_R[ACTION_LOCAL_STRONA] 
+		   " ;   
+		
+		
+		if(!$KWOTA) {
+		if($_SESSION[DEBUG]>3) echo "<br><b> WYKRYWAM KWOTE ZALEGLOSCI DLA $SRC_ID_BILLING_NUMBERS, ($ACTION) </b>" ;
+		//Bylo przed 2005-01-13 - problem z kilkoma dokumentami i joinem - zle sumowalo mozna joinowac tylko raz samego siebie
+		// $sql=" select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,  t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t3.ID), sum(t3.ID_FIN_MA_VAL) as ROZ_MA,  t1.WINIEN - sum(t2.ID_FIN_WINIEN_VAL) - sum(t3.ID_FIN_MA_VAL)   as POZ_WINIEN, t1.MA -  sum(t3.ID_FIN_MA_VAL)  - sum(t2.ID_FIN_WINIEN_VAL) as POZ_MA from BILLING_ACCOUNTS_FILES as t1 left join BILLING_ACCOUNTS_FILES as t2 on t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN left join BILLING_ACCOUNTS_FILES as t3 on t1.ID_BILLING_NUMBERS=t3.ID_FIN_MA where t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE." = 0 and  t1.".$WHERE_PRIM." > 0 and  t1.ID_BILLING_NUMBERS='$SRC_ID_BILLING_NUMBERS' and t1.ID_BILLING_USERS=".$ID_BILLING_USERS."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+		
+		 $sql=" select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,
+		 t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t2.ID), sum(t2.ID_FIN_MA_VAL) as ROZ_MA,
+		 t1.WINIEN - sum(t2.ID_FIN_WINIEN_VAL) - sum(t2.ID_FIN_MA_VAL)   as POZ_WINIEN, t1.MA -  sum(t2.ID_FIN_MA_VAL)  - sum(t2.ID_FIN_WINIEN_VAL) as POZ_MA
+		from BILLING_ACCOUNTS_FILES as t1 
+		left join BILLING_ACCOUNTS_FILES as t2 on  t2.ID_BILLING_USERS=".$ID_BILLING_USERS." and ( t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN or t1.ID_BILLING_NUMBERS=t2.ID_FIN_MA )
+		where
+		 t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE." = 0 and  t1.".$WHERE_PRIM." > 0 and 
+		 t1.ID_BILLING_NUMBERS='$SRC_ID_BILLING_NUMBERS' and
+		 t1.ID_BILLING_USERS=".$ID_BILLING_USERS."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+		//echo "<br>$sql   " ;
+		 $result_S_N_R_K=$this->db->query($sql); $result_S_N_R_K=$this->db->fetch_assoc($result_S_N_R_K);
+		 $KWOTA = $result_S_N_R_K[$WHERE_PRIM]-$result_S_N_R_K["ROZ_".$WHERE_PRIM]-$result_S_N_R_K["ROZ_".$WHERE] ;
+		
+		 DEBUG_S(3,'result_S_N_R_K',array($result_S_N_R_K,$sql),__FILE__,__FUNCTION__,__LINE__);
+
+		if($_SESSION[DEBUG]>3) echo "..... <font color=red> <b>WYKRYLEM POZOSTALA KWOTE KWOTE $KWOTA (a nasza to $POZ_S_N_R_KWOTA) </b></font>" ;
+		// print_r($result_S_N_R_K) ;
+		
+		}
+		
+		 if(round($POZ_S_N_R_KWOTA,2) == round($KWOTA,2)) {
+		     $result_S_N_R[ACTION_REMOTE_VAL] = "0" ;   $result_S_N_R[ACTION_LOCAL_VAL] = "$KWOTA" ;
+		     $result_S_N_R[ACTION_REMOTE_STRONA] = "$WHERE" ;   $result_S_N_R[ACTION_LOCAL_STRONA] = "$WHERE" ;
+		if($_SESSION[DEBUG]>3)     echo "  <b> NASZ DOKUMENT ($KWOTA) W CALOSCI ROZLICZA DOKUMENT $result_S_N_R[NR_DOK] oraz SAM SIEBIE </b>  result_S_N_R[ACTION_LOCAL_VAL]==$result_S_N_R[ACTION_LOCAL_VAL] result_S_N_R[ACTION_LOCAL_STRONA]==$result_S_N_R[ACTION_LOCAL_STRONA] result_S_N_R[ACTION_REMOTE_VAL]==$result_S_N_R[ACTION_REMOTE_VAL] result_S_N_R[ACTION_REMOTE_STRONA]==$result_S_N_R[ACTION_REMOTE_STRONA]  " ;
+		     $WARIANT=$LEWO_PRAWO."3" ;   
+		 } else if(round($POZ_S_N_R_KWOTA,2) > round($KWOTA,2) ) {
+		     $WARIANT=$LEWO_PRAWO."1" ;
+		     $result_S_N_R[ACTION_REMOTE_VAL] = "" ;   $result_S_N_R[ACTION_LOCAL_VAL] = "$KWOTA" ;
+		     $result_S_N_R[ACTION_REMOTE_STRONA] = "" ;   $result_S_N_R[ACTION_LOCAL_STRONA] = "$WHERE" ;
+		if($_SESSION[DEBUG]>3)     echo "  <b> NASZ DOKUMENT ($KWOTA) W CALOSCI ROZLICZA SIE NA DOKUMENCIE $result_S_N_R[NR_DOK] </b>  result_S_N_R[ACTION_LOCAL_VAL]==$result_S_N_R[ACTION_LOCAL_VAL] result_S_N_R[ACTION_LOCAL_STRONA]==$result_S_N_R[ACTION_LOCAL_STRONA] " ;
+		 } else  if(round($POZ_S_N_R_KWOTA,2) < round($KWOTA,2) ) {
+		     $WARIANT=$LEWO_PRAWO."2" ;
+		//     $result_S_N_R[NR_DOK] = "$SRC_ID_BILLING_NUMBERS" ;
+		     $result_S_N_R[ACTION_REMOTE_VAL] = "$POZ_S_N_R_KWOTA" ;   $result_S_N_R[ACTION_LOCAL_VAL] = "" ;
+		     $result_S_N_R[ACTION_REMOTE_STRONA] = "$WHERE" ;   $result_S_N_R[ACTION_LOCAL_STRONA] = "" ;
+		if($_SESSION[DEBUG]>3)     echo "  <b> WARIANT2  NASZ DOKUMENT ($KWOTA) W CALOSCI ROZLICZA DOKUMENT $result_S_N_R[NR_DOK] kwota $POZ_S_N_R_KWOTA i zostaje reszta :$POZ_S_N_R_KWOTA ( $POZ_S_N_R_KWOTA ) < ( $KWOTA)  </b> result_S_N_R[ACTION_REMOTE_VAL]==$result_S_N_R[ACTION_REMOTE_VAL] result_S_N_R[ACTION_REMOTE_STRONA]==$result_S_N_R[ACTION_REMOTE_STRONA] " ;
+		   
+		 } else $ERROR = $ERROR . "<br> Niedopuszczalny wyjatek w funkcji SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI" ;
+		
+		
+		
+		 }
+		if($_SESSION[DEBUG]>3) echo "<br> Wariant to $WARIANT a akcja to $ACTION EOL"; 
+		
+		
+		// print_r($result_S_N_R);
+		 if(!$ERROR) {
+		  if($ACTION=="KSIEGUJ_I_ROZLICZ") {
+		   if($WARIANT==$LEWO_PRAWO."0") { if($_SESSION[DEBUG]>3)  echo "<br> TYLKO KSIEGUJE_DOKUMENT_FK($SRC_ID_BILLING_NUMBERS)" ;
+		   ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS);
+		   } else if($WARIANT==$LEWO_PRAWO."1") {
+			if($_SESSION[DEBUG]>3)    echo "<b> Na prawde probuje zrobic $ACTION W1 </b>... ";
+		     ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS, array( "ID_FIN_".$WHERE => $result_S_N_R[NR_DOK] , "ID_FIN_".$WHERE."_VAL" => "$KWOTA"  ) );
+		   } else if($WARIANT==$LEWO_PRAWO."2") {
+			if($_SESSION[DEBUG]>3)    echo "<b> Na prawde probuje zrobic $ACTION W2 </b> ... ";
+		     $RES_ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ=ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS);
+		     if($RES_ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ==1) {
+		
+		     $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R[NR_DOK],array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "$POZ_S_N_R_KWOTA" , "WHERE" => "$WHERE"  ))   ; 
+		    //TODO TU PISZE TERAZ
+		    //     $result_S_N_R=SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($FINANCE_KSIEGOWANIE,$result_FK[ID_BILLING_USERS],$FINANCE_KSIEGOWANIE_KWOTA,'',$ID_BILLING_NUMBERS,'KSIEGUJ_I_ROZLICZ') ;
+		  if($_SESSION[DEBUG]>3)      echo "<font color=#444444><br>TODO TESTING rozliczanie dokumentu w petli... SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,$KWOTA,$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,$ACTION) </font>";
+			//TODO pytanie czy zapodawac w tym momencie ID_BILLING_NUMBERS ??? chyba nie
+		      SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,'',$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,'TYLKO_ROZLICZ') ;
+		
+		     } else $ERROR = $ERROR . "<br> f. ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS) nie wpisala dokumentu prawidlowo, nie rozliczono dokumentu z z uwagi  na problem " ;
+		   } else if($WARIANT==$LEWO_PRAWO."3") {
+			if($_SESSION[DEBUG]>3)    echo "<b> Na prawde probuje zrobic $ACTION W3 </b>... ";
+		     $RES_ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ=ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS, array( "ID_FIN_".$WHERE => $result_S_N_R[NR_DOK] , "ID_FIN_".$WHERE."_VAL" => "$KWOTA"  ) );
+		     if($RES_ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ==1) {
+		     $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R[NR_DOK],array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "0" , "WHERE" => "$WHERE"  ))   ; 
+		     } else $ERROR = $ERROR . "<br> f. ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS) nie wpisala dokumentu prawidlowo, nie rozliczono dokumentu z z uwagi  na problem " ;
+		       if($ERROR) echo $ERROR ;
+		   }
+		  } else if($ACTION=="TYLKO_ROZLICZ") {
+		if($_SESSION[DEBUG]>3)    echo "<br> TYLKO_ROZLICZ_W_TOKU ********** "  ;
+		
+		   if($WARIANT==$LEWO_PRAWO."0") { if($_SESSION[DEBUG]>3) echo "<br> TYLKO KSIEGUJE_DOKUMENT_FK($SRC_ID_BILLING_NUMBERS)" ;
+		if($_SESSION[DEBUG]>2)   echo "ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS)" ;
+		   } else if($WARIANT==$LEWO_PRAWO."1") {
+		if($_SESSION[DEBUG]>3)    echo "<b> Na prawde probuje zrobic $ACTION W1 </b>... ";
+		     $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($SRC_ID_BILLING_NUMBERS,array( "ID_FIN_".$WHERE => $result_S_N_R[NR_DOK] , "ID_FIN_".$WHERE."_VAL" => "$KWOTA" , "WHERE" => "$WHERE"  ))   ; 
+		//     ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS, array( "ID_FIN_".$WHERE => $result_S_N_R[NR_DOK] , "ID_FIN_".$WHERE."_VAL" => "$KWOTA"  ) );
+		   } else if($WARIANT==$LEWO_PRAWO."2") {
+		if($_SESSION[DEBUG]>3)    echo "<b> Na prawde probuje zrobic $ACTION W2 </b> ... ";
+		//     $RES_ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ=ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS);
+		//     if($RES_ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ==1) {
+		
+		     $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R[NR_DOK],array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "$POZ_S_N_R_KWOTA" , "WHERE" => "$WHERE"  ))   ; 
+		if($_SESSION[DEBUG]>3)     echo "<font color=#444444><br>TODO TESTING rozliczanie dokumentu w petli... SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,$KWOTA,$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,$ACTION) </font>";
+		      if($RES_ROZLICZ_DOKUMENT_FK) SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,'',$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,'TYLKO_ROZLICZ') ;
+		
+		//     } else $ERROR = $ERROR . "<br> f. ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($SRC_ID_BILLING_NUMBERS) nie wpisala dokumentu prawidlowo, nie rozliczono dokumentu z z uwagi  na problem " ;
+		   } else if($WARIANT==$LEWO_PRAWO."3") {
+		if($_SESSION[DEBUG]>3)    echo "<b> Na prawde probuje zrobic $ACTION W3 linia 864 </b>... ";
+		     $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($SRC_ID_BILLING_NUMBERS,array( "ID_FIN_".$WHERE => $result_S_N_R[NR_DOK] , "ID_FIN_".$WHERE."_VAL" => "$KWOTA" , "WHERE" => "$WHERE"  )) ; 
+			echo "<br> res1/2::$RES_ROZLICZ_DOKUMENT_FK " ;
+		     $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R[NR_DOK],array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "0" , "WHERE" => "$WHERE"  ))  ; 
+			echo "<br> res2/2::$RES_ROZLICZ_DOKUMENT_FK " ;
+		   }
+		
+		
+		  }
+		
+		
+		
+		  return $result_S_N_R ;
+		 }
+		// echo "<br>$sql" ;
+		
+		}
+		
+		
+		function ROZLICZ_DOKUMENT_FK($ID_BILLING_NUMBERS,$FLAGI) {
+		global $vdb, $ERROR ,$uid ;
+		
+		 $sql="update BILLING_ACCOUNTS_FILES set ID_FIN_".$FLAGI[WHERE]."='". $FLAGI["ID_FIN_".$FLAGI[WHERE]]."', ID_FIN_".$FLAGI[WHERE]."_VAL='". $FLAGI["ID_FIN_".$FLAGI[WHERE]."_VAL"]."' where ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' "   ;
+		 $result_UPD_BAF=$vdb->sql_query($sql); 
+		if($_SESSION[DEBUG]>3) echo "<hr><font color=blue> $sql</font> , result == $result_UPD_BAF *** " ;
+		 if(!($result_UPD_BAF)) $ERROR = $ERROR . "<br> f. ROZLICZ_DOKUMENT_FK($ID_BILLING_NUMBERS,$FLAGI) nie zaktualizowala informacji rozliczeniowych ($sql) TODO" ;
+		 return $result_UPD_BAF ;
+		
+		} //EOF func
+		
+		function ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($ID_BILLING_NUMBERS,$FLAGI) {
+		global $vdb, $ERROR ;
+		
+		
+		//print_r($FLAGI) ;
+		//FLAGI=(ID_W,W$,ID_M,M$)
+		if($FLAGI[ID_FIN_WINIEN]) {
+		$FLAGI_FIELDS=", ID_FIN_WINIEN , ID_FIN_WINIEN_VAL" ;
+		$FLAGI_VAL=", '$FLAGI[ID_FIN_WINIEN]', '$FLAGI[ID_FIN_WINIEN_VAL]' " ; 
+		$COMA="," ;
+		              }
+		
+		if($FLAGI[ID_FIN_MA]) {
+		if(!$FLAGI_FIELDS) $COMA="," ;
+		$FLAGI_FIELDS="$FLAGI_FIELDS $COMA ID_FIN_MA, ID_FIN_MA_VAL" ;
+		$FLAGI_VAL="$FLAGI_VAL $COMA '$FLAGI[ID_FIN_MA]','$FLAGI[ID_FIN_MA_VAL]' " ; 
+		$COMA="," ;
+		              }
+		
+		if($_SESSION[DEBUG]>3) echo "<br> Flagi VAL $FLAGI_FIELDS ||||  $FLAGI_VAL EOL .... ";
+		
+		 $sql="select t2.* from BILLING_NUMBERS as t1, BILLING_NUMBERS_TYPE as t2 where t1.ID_BILLING_NUMBERS_TYPE=t2.ID and t1.ID='$ID_BILLING_NUMBERS'" ;
+		 $result_TABLE_NAME=$vdb->sql_query("$sql") ;
+		 $result_TABLE_NAME=$vdb->sql_fetchrow($result_TABLE_NAME[0]);
+		 
+		//echo "<br>$sql";
+		
+		 if($result_TABLE_NAME["CLASS"]=="FINANCE") {
+		
+		  $sql="select  ".$result_TABLE_NAME[TABLE].".ID, ".$result_TABLE_NAME[TABLE].".ID_FK_DEKRET, 
+		   ".$result_TABLE_NAME[TABLE].".OPEN ,  ".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS,
+		   ".$result_TABLE_NAME[TABLE].".ID_CURRENCY, ".$result_TABLE_NAME[TABLE].".WINIEN , ".$result_TABLE_NAME[TABLE].".MA ,  
+		   ".$result_TABLE_NAME[TABLE].".ID_BILLING_USERS 
+		  from ".$result_TABLE_NAME[TABLE]."  where 
+		  ".$result_TABLE_NAME[TABLE].".OPEN='N' and ".$result_TABLE_NAME[TABLE].".FK_ZAKSIEG='N' and ".$result_TABLE_NAME[TABLE].".ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' ";
+		//  echo "<br> $sql *********** " ;
+		  $result_BIGJOIN=$vdb->sql_query("$sql") ;
+		  $result_BIGJOIN=$vdb->sql_fetchrow("$result_BIGJOIN[0]") ;
+		
+		  if(($result_BIGJOIN[1]==0) || (!($result_BIGJOIN[1]))) {
+		//print_r($result_BIGJOIN);
+		   $WARTOSC_DOK_WINIEN=$result_BIGJOIN[5] ; $WARTOSC_DOK_MA=$result_BIGJOIN[6] ;  $ID_BILLING_USERS_DOK=$result_BIGJOIN[7] ;
+		    if($_SESSION[DEBUG]>3)   echo "<br> WARTOSC_DOK_WINIEN: $WARTOSC_DOK_WINIEN , WARTOSC_DOK_MA: $WARTOSC_DOK_MA , ID_BILLING_USERS_DOK , $ID_BILLING_USERS_DOK  ***--** ";
+		
+		    if(VERIFYUPDATE_BILLING_ACCOUNTS($ID_BILLING_USERS_DOK)) {
+		     $sql="insert into BILLING_ACCOUNTS_FILES ( ID ,ID_BILLING_USERS ,ID_BILLING_NUMBERS_TYPE,ID_BILLING_NUMBERS ,WINIEN,MA ,A_RECORD_CREATE_AUTHOR $FLAGI_FIELDS ) values
+		     ('','$ID_BILLING_USERS_DOK','$result_TABLE_NAME[ID]','$ID_BILLING_NUMBERS','$WARTOSC_DOK_WINIEN','$WARTOSC_DOK_MA','$uid' $FLAGI_VAL )"       ;
+		    if($_SESSION[DEBUG]>3) echo "<br>$sql ---- TYLKO_KSIEGUJ_SQL";
+		     $result_B_A_L_INSERT=$vdb->sql_query("$sql") ;
+		     if($result_B_A_L_INSERT) { 
+		      $result_B_A_L_INSERT=$vdb->sql_nextid();
+		      $sql="update ".$result_TABLE_NAME[TABLE]." set ID_FK_DEKRET='$result_B_A_L_INSERT' ,  OPEN='N' , FK_ZAKSIEG='Y' where ID='$result_BIGJOIN[0]'";
+		       $result_DOK_UPDATE=$vdb->sql_query($sql) ;
+		    if($_SESSION[DEBUG]>3)       echo "<br>result_DOK_UPDATE to $result_DOK_UPDATE " ;
+		       return $result_DOK_UPDATE ;
+		     } else { 
+		      //funkcja nie wykonala ksiegowania i napotkala na opor, wyglada na to, ze sa dane w tabeli z wplatami nie zaznaczone w fakturach
+		      echo "<br>function ZAMKNIJ_DOKUMENT($ID_BILLING_NUMBERS) Probuje naprawic bledna spojnosc tabel... TODO" ; 
+		     } } }
+		
+		
+		
+		
+		 } //EOF if CLASS==FINANCE
+		
+		} //EOF FUNC
+		
+		
+		
+		function VERIFYUPDATE_BILLING_ACCOUNTS($ID_BILLING_USERS) {
+		global  $process_services,$execute_process,$ERROR,$process_services,$vdb,$uid ;
+		  $sql="select * from BILLING_ACCOUNTS where ID_BILLING_USERS='$ID_BILLING_USERS'" ;
+		  $result_BILLING_ACCOUNTS=$vdb->sql_query("$sql") ; 
+		  $result_BILLING_ACCOUNTS=$vdb->sql_fetchrow("$result_BILLING_ACCOUNTS[0]") ; 
+		
+		if($ID_BILLING_USERS) {
+		 if($result_BILLING_ACCOUNTS[ID]) {
+		    if($_SESSION[DEBUG]>3) echo "<br>Detected existing account (ID=$result_BILLING_ACCOUNTS[ID])" ;
+		 return "$result_BILLING_ACCOUNTS[ID]" ;
+		
+		 } else {
+		  $sql="insert into BILLING_ACCOUNTS (ID,ID_BILLING_USERS,WINIEN,MA) values ('','$ID_BILLING_USERS','0','0') " ;
+		  $result_BILLING_ACCOUNTS_2=$vdb->sql_query("$sql") ;
+		   if($result_BILLING_ACCOUNTS_2) {
+		    $result_BILLING_NUMBERS=$vdb->sql_nextid();
+			if($_SESSION[DEBUG]>3)    echo "<br> Utworzono nowy wpis w tablicy zobowiazan (ID=$result_BILLING_NUMBERS)" ;
+		    return "$result_BILLING_NUMBERS"; 
+		   }
+		 }
+		 
+		} else echo "<br>BLAD function VERIFYUPDATE_BILLING_ACCOUNTS($ID_BILLING_USERS) oczekuje argumentu.";
+		} //EOF func
+		
+		
+		
+		
+		
+		function UAKTUALNIJ_KONTA($ID_BILLING_USERS) {
+		global  $process_services,$execute_process,$ERROR,$process_services,$vdb,$uid ;
+		//TODO where zeby robilo tylko ten rok... i bylo szybsze...
+		if($ID_BILLING_USERS) {
+		  $sql=" create temporary table TEMP_BILLING_ACCOUNTS select ID_BILLING_USERS,sum(WINIEN) as WINIEN ,sum(MA) as MA ,max(TIMESTAMP) as TIMESTAMP 
+		  from BILLING_ACCOUNTS_FILES where ID_BILLING_USERS='$ID_BILLING_USERS' group by ID_BILLING_USERS " ;
+		
+		  $sql_till=" create temporary table TEMP_BILLING_ACCOUNTS_TILL select BILLING_ACCOUNTS_FILES.ID_BILLING_USERS,sum(BILLING_ACCOUNTS_FILES.WINIEN) as WINIEN ,sum(BILLING_ACCOUNTS_FILES.MA) as MA ,max(BILLING_ACCOUNTS_FILES.TIMESTAMP) as TIMESTAMP ,YEAR(BILLING_NUMBERS.TIMESTAMP) as TILL
+		  from BILLING_ACCOUNTS_FILES  inner join BILLING_NUMBERS on BILLING_NUMBERS.ID=BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS
+		  where BILLING_ACCOUNTS_FILES.ID_BILLING_USERS='$ID_BILLING_USERS' and YEAR(BILLING_NUMBERS.TIMESTAMP) < YEAR(NOW())
+		  group by BILLING_ACCOUNTS_FILES.ID_BILLING_USERS,YEAR(BILLING_NUMBERS.TIMESTAMP)  " ;
+		// echo "<br> $sql_till <br>";
+		 } else {
+		  $sql=" create temporary table TEMP_BILLING_ACCOUNTS select ID_BILLING_USERS,sum(WINIEN) as WINIEN ,sum(MA) as MA ,max(TIMESTAMP) as TIMESTAMP 
+		  from BILLING_ACCOUNTS_FILES  group by ID_BILLING_USERS  " ;
+		  $sql_till=" create temporary table TEMP_BILLING_ACCOUNTS_TILL select BILLING_ACCOUNTS_FILES.ID_BILLING_USERS,sum(BILLING_ACCOUNTS_FILES.WINIEN) as WINIEN ,sum(BILLING_ACCOUNTS_FILES.MA) as MA ,max(BILLING_ACCOUNTS_FILES.TIMESTAMP) as TIMESTAMP ,YEAR(BILLING_NUMBERS.TIMESTAMP) as TILL
+		  from BILLING_ACCOUNTS_FILES  inner join BILLING_NUMBERS on BILLING_NUMBERS.ID=BILLING_ACCOUNTS_FILES.ID_BILLING_NUMBERS
+		  where YEAR(BILLING_NUMBERS.TIMESTAMP) < YEAR(NOW())
+		  group by BILLING_ACCOUNTS_FILES.ID_BILLING_USERS,YEAR(BILLING_NUMBERS.TIMESTAMP)  " ;
+		// echo "<br> $sql_till <br>";
+		 }
+		 $result_CREATE=$vdb->sql_query($sql) ;
+		 $result_CREATE_TILL=$vdb->sql_query($sql_till) ;
+		
+		 $sql="alter table TEMP_BILLING_ACCOUNTS add UNIQUE(ID_BILLING_USERS)";
+		 $result_ALTER=$vdb->sql_query($sql); 
+		
+		 $sql="alter table TEMP_BILLING_ACCOUNTS_TILL add INDEX(ID_BILLING_USERS,TILL)";
+		 $result_ALTER_TILL=$vdb->sql_query($sql); 
+		 
+		 $sql="update BILLING_ACCOUNTS, TEMP_BILLING_ACCOUNTS set BILLING_ACCOUNTS.WINIEN=TEMP_BILLING_ACCOUNTS.WINIEN, BILLING_ACCOUNTS.MA=TEMP_BILLING_ACCOUNTS.MA , BILLING_ACCOUNTS.TIMESTAMP=TEMP_BILLING_ACCOUNTS.TIMESTAMP where BILLING_ACCOUNTS.ID_BILLING_USERS=TEMP_BILLING_ACCOUNTS.ID_BILLING_USERS ";
+		 $result_UPDATE=$vdb->sql_query($sql); 
+		
+		 $sql="insert ignore  into BILLING_ACCOUNTS_TILL (ID_BILLING_USERS ,WINIEN ,MA ,TIMESTAMP ,TILL ) select TEMP_BILLING_ACCOUNTS_TILL.ID_BILLING_USERS,TEMP_BILLING_ACCOUNTS_TILL.WINIEN, TEMP_BILLING_ACCOUNTS_TILL.MA , TEMP_BILLING_ACCOUNTS_TILL.TIMESTAMP , TEMP_BILLING_ACCOUNTS_TILL.TILL from TEMP_BILLING_ACCOUNTS_TILL ";
+		 $result_INSERT_TILL=$vdb->sql_query($sql);
+		// echo "<br> $sql <br> ";
+		
+		 $sql="update BILLING_ACCOUNTS_TILL, TEMP_BILLING_ACCOUNTS_TILL set BILLING_ACCOUNTS_TILL.WINIEN=TEMP_BILLING_ACCOUNTS_TILL.WINIEN, BILLING_ACCOUNTS_TILL.MA=TEMP_BILLING_ACCOUNTS_TILL.MA , BILLING_ACCOUNTS_TILL.TIMESTAMP=TEMP_BILLING_ACCOUNTS_TILL.TIMESTAMP , BILLING_ACCOUNTS_TILL.TILL=TEMP_BILLING_ACCOUNTS_TILL.TILL  where BILLING_ACCOUNTS_TILL.ID_BILLING_USERS=TEMP_BILLING_ACCOUNTS_TILL.ID_BILLING_USERS and BILLING_ACCOUNTS_TILL.TILL=TEMP_BILLING_ACCOUNTS_TILL.TILL ";
+		 $result_UPDATE_TILL=$vdb->sql_query($sql);
+		// echo "<br>result_UPDATE_TILL::  $sql  <br>";
+		
+		 $sql="drop table TEMP_BILLING_ACCOUNTS";
+		 $result_DROP=$vdb->sql_query($sql) ;
+		//  echo "<br>Result: $result_CREATE , $result_CREATE_TILL , $result_ALTER , $result_ALTER_TILL , $result_UPDATE ,i: $result_INSERT_TILL , $result_UPDATE_TILL ,$result_DROP " ;
+		 
+		 if($ID_BILLING_USERS) {
+		  if(($result_CREATE==1)&&($result_ALTER==1)&&($result_UPDATE==1)&&($result_DROP)) return "OK" ; else {
+		   echo "<br> function UAKTUALNIJ_KONTA($ID_BILLING_USERS) error with update accounts CREATE,ALTER,UPDATE,DROP: $result_CREATE , $result_ALTER , $result_UPDATE ,$result_DROP "; 
+		  }
+		 } else {
+		  if(($result_CREATE)&&($result_ALTER)&&($result_UPDATE)&&($result_DROP)) {
+		   echo "<br>function UAKTUALNIJ_KONTA($ID_BILLING_USERS) zaktualizowalo $result_UPDATE rekordow" ;
+		   return "$result_UPDATE";
+		  } else {
+		   echo "<br> function UAKTUALNIJ_KONTA($ID_BILLING_USERS) error with update accounts CREATE,ALTER,UPDATE,DROP: $result_CREATE , $result_ALTER , $result_UPDATE ,$result_DROP ";    
+		  }
+		 }
+		
+		
+		} //EOF func
+		
+		
+		
+		
+		
+		
+		//@2012-02-06 - funkcja ktora ma rozliczac dokumenty do wyzwalania, jak jest z czyms problem, podamy jako argument numer rekordu dziennika
+		function ROZLICZ_1_TRANSAKCJE($SRC_ID_BILLING_NUMBERS) {
+		//$SRC_ID_BILLING_NUMBERS='394581'; //TODO tutaj wyzwalac parametr numer ID_BILLING_NUMBERS dla nie rozliczonej transakcji
+		//$SRC_ID_BILLING_NUMBERS='485763485763'; //TODO@2012-03-13 sprawdzamy nierozlicozne ostatnie KPna 1300 PLN, sa stare nierozliczone faktury
+		//$SRC_ID_BILLING_NUMBERS='440803'; 
+		
+		
+		echo "<br>f.ROZLICZ_1_TRANSAKCJE , dla argumentu numeru ID_BILLING_NUMBERS: ".$ID_BILLING_NUMBERS." <br> \n";
+		global $vdb, $result_BILLING_NUMBERS_TYPE ;
+		//szukamy jaki dokument ma typ:
+		 
+		 if(!isset($SRC_ID_BILLING_NUMBERS)) die("Funkcja potrzebuje argumentu - nr ID_BILLING_NUMERS do rozliczenia");
+		 
+		$sql="select t1.*, t3.WINIEN, t3.MA, t3.ID_BILLING_USERS  , t3.ID_BILLING_NUMBERS from BILLING_NUMBERS_TYPE as t1
+			 right join BILLING_NUMBERS as t2 on t2.ID_BILLING_NUMBERS_TYPE=t1.ID  
+			 	right join BILLING_ACCOUNTS_FILES as t3 on t3.ID_BILLING_NUMBERS=t2.ID			
+		
+				where t2.ID='".$SRC_ID_BILLING_NUMBERS."'  and t3.ID_FIN_WINIEN is NULL and  t3.ID_FIN_MA is NULL  limit 1 ";
+				echo "<pre><br>".$sql."<br></pre>";
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql) ;
+		 $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]) ;
+		
+		 if($result_BILLING_NUMBERS_TYPE) {
+		        $ID_BILLING_USERS=$result_BILLING_NUMBERS_TYPE['ID_BILLING_USERS'];
+		       // $ID_BILLING_NUMBERS=$result_BILLING_NUMBERS_TYPE['ID_BILLING_NUMBERS'];
+		        $SRC_ID_BILLING_NUMBERS=$result_BILLING_NUMBERS_TYPE['ID_BILLING_NUMBERS'];
+		      if($result_BILLING_NUMBERS_TYPE['WINIEN']>0) {
+		      	 $LEWO_PRAWO="PRAWO" ;
+		      	 $KWOTA=$result_BILLING_NUMBERS_TYPE['WINIEN'] ; 
+		      }	
+		      if($result_BILLING_NUMBERS_TYPE['MA']>0) {
+		      	 $LEWO_PRAWO="LEWO" ; 
+		      	 $KWOTA=$result_BILLING_NUMBERS_TYPE['MA'] ;
+		      } 
+		      $ERROR = $ERROR . "Problem z dokumentem $ID_BILLING_NUMBERS , (wartosci po obu stronach) ksiegowanie niemozliwe" ;
+		   }
+		
+		echo "f.ROZLICZ_1_TRANSAKCJE";
+		
+		print_r($result_BILLING_NUMBERS_TYPE);
+		//$LEWO_PRAWO='LEWO';
+		
+		echo "<br> Bedziemy odpalac SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI(LEWO_PRAWO,ID_BILLING_USERS,KWOTA,ID_BILLING_NUMBERS,SRC_ID_BILLING_NUMBERS,ACTION,do_dokumentu)=(".$LEWO_PRAWO.",".$ID_BILLING_USERS.",".$KWOTA.",".$ID_BILLING_NUMBERS.",".$SRC_ID_BILLING_NUMBERS.",".$ACTION.",".$do_dokumentu.") <br> ";
+		//odpalamy funkcje SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI dla LEWO lub PRAWO
+		// $KWOTA - moze byc pusta - system wykryje
+		//
+		//function SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI($LEWO_PRAWO,$ID_BILLING_USERS,$KWOTA,$ID_BILLING_NUMBERS,$SRC_ID_BILLING_NUMBERS,$ACTION,$do_dokumentu) {
+		
+		
+		
+		
+		
+		//BEGIN wklejenie z funkcji SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI
+								
+								 if($LEWO_PRAWO=="PRAWO") {
+								 $WHERE="WINIEN" ;
+								 $WHERE_PRIM="MA" ;
+								 } else if($LEWO_PRAWO=="LEWO") {
+								 $WHERE="MA" ;
+								 $WHERE_PRIM="WINIEN" ;
+								 } 
+								 if($ID_BILLING_NUMBERS) {
+								 $WHERE_ID_BILLING_NUMBERS=" t1.ID_BILLING_NUMBERS='$ID_BILLING_NUMBERS' and " ;
+								 }
+								
+								 $WARIANT=$LEWO_PRAWO."0" ;
+								
+								if(strlen($do_dokumentu)<>0) $KROK=0; else  $KROK=2 ;
+								 for(;$KROK<=2;$KROK++) {
+								
+								echo "<br> 1141 LEWO_PRAWO to ".$LEWO_PRAWO." , WHERE to ".$WHERE." <br>";
+								// $vdb->sql_query('lock tables BILLING_ACCOUNTS_FILES WRITE') ;
+								
+								//Bylo przed 2005-01-13 - problem z kilkoma dokumentami i joinem - zle sumowalo mozna joinowac tylko raz samego siebie
+								// $sql="  select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,  t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t3.ID), sum(t3.ID_FIN_MA_VAL) as ROZ_MA,  t1.WINIEN - sum(t2.ID_FIN_WINIEN_VAL) - sum(t3.ID_FIN_MA_VAL)   as POZ_WINIEN, t1.MA -  sum(t3.ID_FIN_MA_VAL)  - sum(t2.ID_FIN_WINIEN_VAL) as POZ_MA from BILLING_ACCOUNTS_FILES as t1  left join BILLING_ACCOUNTS_FILES as t2 on t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN left join BILLING_ACCOUNTS_FILES as t3 on t1.ID_BILLING_NUMBERS=t3.ID_FIN_MA  where  t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE_PRIM." = 0 and  t1.".$WHERE." > 0 and  $WHERE_ID_BILLING_NUMBERS t1.ID_BILLING_USERS=".$ID_BILLING_USERS." ".DO_DOKUMENTU_MAKESQL($do_dokumentu,$KROK)."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+									 //Jakas transakcja obca ktora szukamy - sprawdzamy jak jest rozliczona -> $POZ_S_N_R_KWOTA
+		
+								 $sql="  select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,
+								 t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t2.ID) as MAX_ID_1 , sum(t2.ID_FIN_MA_VAL) as ROZ_MA,
+								 t1.WINIEN - coalesce(sum(t2.ID_FIN_WINIEN_VAL),0) - coalesce(sum(t2.ID_FIN_MA_VAL),0)   as POZ_WINIEN,
+								  t1.MA -  coalesce(sum(t2.ID_FIN_MA_VAL),0)  - coalesce(sum(t2.ID_FIN_WINIEN_VAL),0) as POZ_MA
+								
+								from BILLING_ACCOUNTS_FILES as t1 
+								left join BILLING_ACCOUNTS_FILES as t2 on t2.ID_BILLING_USERS=".$ID_BILLING_USERS." and ( t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN or t1.ID_BILLING_NUMBERS=t2.ID_FIN_MA )
+								where
+								 t1.ID_BILLING_NUMBERS!='".$SRC_ID_BILLING_NUMBERS."' and 
+								 t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE." = 0 and  t1.".$WHERE_PRIM." > 0  
+		
+								 and
+								 $WHERE_ID_BILLING_NUMBERS
+								 t1.ID_BILLING_USERS=".$ID_BILLING_USERS." ".DO_DOKUMENTU_MAKESQL($do_dokumentu,$KROK)."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+								
+								     //if($_SESSION[DEBUG]>3)
+								      echo "<br> krok: $KROK SQL(SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI) to <pre>".$sql."</pre> ***";
+								
+								 $result_S_N_R=$vdb->sql_query($sql); $result_S_N_R=$vdb->sql_fetchrow($result_S_N_R[0]);
+								  if($result_S_N_R) break ; 
+								// $vdb->sql_query('unlock tables') ;
+								// echo "<br>$sql<hr>";
+								 } //EOF for $do_dokumentu petla KROK
+								
+								 
+								
+								 if($result_S_N_R) {
+								echo"<pre>result_S_N_R WHERE=(".$WHERE."):\n";    print_r($result_S_N_R) ; echo"</pre>";
+								    //Jakas transakcja opca ktora znalezlismy - sprawdzamy jak jest rozliczona -> $POZ_S_N_R_KWOTA
+								 $POZ_S_N_R_KWOTA = $result_S_N_R[$WHERE_PRIM]-abs($result_S_N_R["ROZ_".$WHERE])-abs($result_S_N_R["ROZ_".$WHERE_PRIM]) ;
+								   $result_S_N_R[POZ_S_N_R_KWOTA] = $POZ_S_N_R_KWOTA ;
+								   $result_S_N_R[WHERE] = $WHERE ;
+								   $result_S_N_R[WHERE_PRIM] = $WHERE_PRIM ;
+								   $MAX_ID_1=$result_S_N_R['MAX_ID_1'];
+		
+								 $POZ_S_N_R_KWOTA =  round($POZ_S_N_R_KWOTA,2); 
+								 $KWOTA = round($KWOTA,2);
+								  
+								//if($_SESSION[DEBUG]>3) 
+								  echo "<br> Usiluje rozliczyc kwote $KWOTA do  <font color=green>( ". $result_S_N_R[$WHERE]."-".$result_S_N_R["ROZ_".$WHERE]."-".$result_S_N_R["ROZ_".$WHERE_PRIM]." ) </font> <b> $POZ_S_N_R_KWOTA ?=?=? $KWOTA </b> 
+								$POZ_S_N_R_KWOTA_2 ==??== $KWOTA_2 ||| result_S_N_R[ACTION_LOCAL_VAL]==$result_S_N_R[ACTION_LOCAL_VAL] result_S_N_R[ACTION_LOCAL_STRONA]==$result_S_N_R[ACTION_LOCAL_STRONA] 
+								 <br>  POZ_S_N_R_KWOTA== ".$POZ_S_N_R_KWOTA." EOL<br>" ;   
+								
+								
+								
+		
+		
+		 			//if($_SESSION[DEBUG]>3) 
+		 			echo "<br><b> WYKRYWAM KWOTE ZALEGLOSCI DLA $SRC_ID_BILLING_NUMBERS, ($ACTION) </b>" ;
+		 			//Bylo przed 2005-01-13 - problem z kilkoma dokumentami i joinem - zle sumowalo mozna joinowac tylko raz samego siebie
+		 			// $sql=" select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,  t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t3.ID), sum(t3.ID_FIN_MA_VAL) as ROZ_MA,  t1.WINIEN - sum(t2.ID_FIN_WINIEN_VAL) - sum(t3.ID_FIN_MA_VAL)   as POZ_WINIEN, t1.MA -  sum(t3.ID_FIN_MA_VAL)  - sum(t2.ID_FIN_WINIEN_VAL) as POZ_MA from BILLING_ACCOUNTS_FILES as t1 left join BILLING_ACCOUNTS_FILES as t2 on t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN left join BILLING_ACCOUNTS_FILES as t3 on t1.ID_BILLING_NUMBERS=t3.ID_FIN_MA where t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE." = 0 and  t1.".$WHERE_PRIM." > 0 and  t1.ID_BILLING_NUMBERS='$SRC_ID_BILLING_NUMBERS' and t1.ID_BILLING_USERS=".$ID_BILLING_USERS."  group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+		 			//tutaj sprawdzamy rodzima transakcje...
+		 			 $sql=" select t1.ID_BILLING_NUMBERS AS NR_DOK ,t1.ID_BILLING_USERS as PLATNIK ,t1.WINIEN,t1.MA , t1.ID_FIN_WINIEN as ID_F_W, t1.ID_FIN_WINIEN_VAL as F_WINIEN_V,
+		 			 t1.ID_FIN_MA as ID_F_M, t1.ID_FIN_MA_VAL as F_MA_V, max(t2.ID), sum(t2.ID_FIN_WINIEN_VAL) as ROZ_WINIEN , max(t2.ID), sum(t2.ID_FIN_MA_VAL) as ROZ_MA,
+		 			 t1.WINIEN - coalesce(sum(t2.ID_FIN_WINIEN_VAL),0) - coalesce(sum(t2.ID_FIN_MA_VAL),0)   as POZ_WINIEN,
+		 			  t1.MA -  coalesce(sum(t2.ID_FIN_MA_VAL),0)  - coalesce(sum(t2.ID_FIN_WINIEN_VAL),0) as POZ_MA
+		 			from BILLING_ACCOUNTS_FILES as t1 
+		 			left join BILLING_ACCOUNTS_FILES as t2 on t2.ID_BILLING_USERS=".$ID_BILLING_USERS." and ( t1.ID_BILLING_NUMBERS=t2.ID_FIN_WINIEN or t1.ID_BILLING_NUMBERS=t2.ID_FIN_MA )
+		 			where
+		 			 t1.ID_BILLING_USERS=".$ID_BILLING_USERS." and  t1.ID_FIN_WINIEN is NULL and t1.ID_FIN_MA is NULL and t1.".$WHERE_PRIM." = 0 and  t1.".$WHERE." > 0 and 
+		 			 t1.ID_BILLING_NUMBERS='$SRC_ID_BILLING_NUMBERS' group by t1.ID_BILLING_NUMBERS   limit 0,1   ";
+		 			echo "<br><pre>".$sql."</pre>   " ;
+		 			
+		 			 $result_S_N_R_K=$vdb->sql_query($sql); $result_S_N_R_K=$vdb->sql_fetchrow($result_S_N_R_K[0]);
+		//@2012-03-13 bylo 	$KWOTA = $result_S_N_R_K[$WHERE_PRIM]-$result_S_N_R_K["ROZ_".$WHERE_PRIM]-$result_S_N_R_K["ROZ_".$WHERE] ;
+		 			 $KWOTA = $result_S_N_R_K[$WHERE]+$result_S_N_R_K[$WHERE_PRIM]-$result_S_N_R_K["ROZ_".$WHERE_PRIM]-$result_S_N_R_K["ROZ_".$WHERE] ;
+		
+					 $KWOTA=abs($KWOTA); //todo@2012-03-13 testing!!!
+			
+					 echo "<br>result_S_N_R_K[WHERE_PRIM](".$WHERE_PRIM.")=".$result_S_N_R_K[$WHERE_PRIM];
+					 echo "<br>result_S_N_R_K[ROZ_WHERE_PRIM]=".$result_S_N_R_K["ROZ_".$WHERE_PRIM];
+					 echo "<br>result_S_N_R_K[ROZ_WHERE](".$WHERE.")=".$result_S_N_R_K["ROZ_".$WHERE];
+					 echo "<pre>";print_r($result_S_N_R_K);echo "\n bo KWOTA==</pre>";
+		
+		
+		 			//if($_SESSION[DEBUG]>3) 
+		 			echo "..... <font color=red> <b>WYKRYLEM POZOSTALA KWOTE KWOTE $KWOTA (a nasza to $POZ_S_N_R_KWOTA) </b></font>" ;
+		 			// print_r($result_S_N_R_K) ;
+		 			
+					 			
+					 if(round($POZ_S_N_R_KWOTA,2) == round($KWOTA,2)) {
+					     $result_S_N_R[ACTION_REMOTE_VAL] = "0" ;   $result_S_N_R[ACTION_LOCAL_VAL] = "$KWOTA" ;
+					     $result_S_N_R[ACTION_REMOTE_STRONA] = "$WHERE" ;   $result_S_N_R[ACTION_LOCAL_STRONA] = "$WHERE" ;
+					//if($_SESSION[DEBUG]>3)  
+					   echo "  <b> Wariant 3 : NASZ DOKUMENT ($KWOTA) W CALOSCI ROZLICZA DOKUMENT $result_S_N_R[NR_DOK] oraz SAM SIEBIE </b>  result_S_N_R[ACTION_LOCAL_VAL]==$result_S_N_R[ACTION_LOCAL_VAL] result_S_N_R[ACTION_LOCAL_STRONA]==$result_S_N_R[ACTION_LOCAL_STRONA] result_S_N_R[ACTION_REMOTE_VAL]==$result_S_N_R[ACTION_REMOTE_VAL] result_S_N_R[ACTION_REMOTE_STRONA]==$result_S_N_R[ACTION_REMOTE_STRONA]  " ;
+					     $WARIANT=$LEWO_PRAWO."3" ;   
+					 } else if(round($POZ_S_N_R_KWOTA,2) > round($KWOTA,2) ) {
+					     $WARIANT=$LEWO_PRAWO."1" ;
+					     $result_S_N_R[ACTION_REMOTE_VAL] = "" ;   $result_S_N_R[ACTION_LOCAL_VAL] = "$KWOTA" ;
+					     $result_S_N_R[ACTION_REMOTE_STRONA] = "" ;   $result_S_N_R[ACTION_LOCAL_STRONA] = "$WHERE" ;
+					//if($_SESSION[DEBUG]>3) 
+					    echo "  <b>Wariant 1 : NASZ DOKUMENT ( POZ_S_N_R_KWOTA &gt; $KWOTA (KWOTA)) W CALOSCI ROZLICZA SIE NA DOKUMENCIE $result_S_N_R[NR_DOK]  </b>  result_S_N_R[ACTION_LOCAL_VAL]==$result_S_N_R[ACTION_LOCAL_VAL] result_S_N_R[ACTION_LOCAL_STRONA]==$result_S_N_R[ACTION_LOCAL_STRONA] " ;
+					 } else  if(round($POZ_S_N_R_KWOTA,2) < round($KWOTA,2) ) {
+					     $WARIANT=$LEWO_PRAWO."2" ;
+					//     $result_S_N_R[NR_DOK] = "$SRC_ID_BILLING_NUMBERS" ;
+					     $result_S_N_R[ACTION_REMOTE_VAL] = "$POZ_S_N_R_KWOTA" ;   $result_S_N_R[ACTION_LOCAL_VAL] = "" ;
+					     $result_S_N_R[ACTION_REMOTE_STRONA] = "$WHERE" ;   $result_S_N_R[ACTION_LOCAL_STRONA] = "" ;
+					//if($_SESSION[DEBUG]>3)    
+					 echo "  <b> WARIANT 2 : NASZ DOKUMENT ($KWOTA) W CALOSCI ROZLICZA DOKUMENT $result_S_N_R[NR_DOK] kwota $POZ_S_N_R_KWOTA i zostaje reszta :$POZ_S_N_R_KWOTA ( $POZ_S_N_R_KWOTA ) < ( $KWOTA)  </b> result_S_N_R[ACTION_REMOTE_VAL]==$result_S_N_R[ACTION_REMOTE_VAL] result_S_N_R[ACTION_REMOTE_STRONA]==$result_S_N_R[ACTION_REMOTE_STRONA] " ;
+					   
+					 } else $ERROR = $ERROR . "<br> Niedopuszczalny wyjatek w funkcji SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI" ;
+					
+					
+					/////////BEGIN
+						  if(($WARIANT==$LEWO_PRAWO."1")) {
+						   echo "\nJade wariant 1 ROZLICZ_DOKUMENT_FK(".$SRC_ID_BILLING_NUMBERS.",array( ID_FIN_".$WHERE_PRIM." => ".$result_S_N_R['NR_DOK']." , ID_FIN_".$WHERE_PRIM."_VAL => ".$KWOTA." , WHERE => ".$WHERE_PRIM."  )) "  ;
+		    			   $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($SRC_ID_BILLING_NUMBERS,array( "ID_FIN_".$WHERE_PRIM => $result_S_N_R['NR_DOK'] , "ID_FIN_".$WHERE_PRIM."_VAL" => "$KWOTA" , "WHERE" => "$WHERE_PRIM"  ))   ; 
+						  } else if($WARIANT==$LEWO_PRAWO."2") {
+						   echo "Jade wariant 2 - tested @2012-02-04 ale trzeba uncomment w poczekaniu na przypadek (bindera)";
+						   	echo "\nJade wariant 2 ROZLICZ_DOKUMENT_FK(".$result_S_N_R['NR_DOK'].",array( ID_FIN_".$WHERE." => ".$SRC_ID_BILLING_NUMBERS." , ID_FIN_".$WHERE."_VAL => ".$POZ_S_N_R_KWOTA." , WHERE => ".$WHERE."  )) "  ;
+		    			  $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R['NR_DOK']  , array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "$POZ_S_N_R_KWOTA" , "WHERE" => "$WHERE"  ))   ; 
+		
+						  } else if($WARIANT==$LEWO_PRAWO."3") {
+						   echo "Jade wariant 3";
+						   				   	//echo "\nJade wariant 3 ROZLICZ_DOKUMENT_FK(".$result_S_N_R['NR_DOK'].",array( ID_FIN_".$WHERE." => ".$SRC_ID_BILLING_NUMBERS." , ID_FIN_".$WHERE."_VAL => ".$POZ_S_N_R_KWOTA." , WHERE => ".$WHERE."  )) "  ;
+											//$RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R[NR_DOK],array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "$POZ_S_N_R_KWOTA" , "WHERE" => "$WHERE"  ))   ; 
+		
+		
+											 $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($SRC_ID_BILLING_NUMBERS,array( "ID_FIN_".$WHERE => $result_S_N_R['NR_DOK'] , "ID_FIN_".$WHERE."_VAL" => "$KWOTA" , "WHERE" => "$WHERE"  )) ; 
+												echo "<br> res1/2::$RES_ROZLICZ_DOKUMENT_FK " ;
+											   $RES_ROZLICZ_DOKUMENT_FK=ROZLICZ_DOKUMENT_FK($result_S_N_R['NR_DOK'],array( "ID_FIN_".$WHERE => $SRC_ID_BILLING_NUMBERS , "ID_FIN_".$WHERE."_VAL" => "0" , "WHERE" => "$WHERE"  ))  ; 
+												echo "<br> res2/2::$RES_ROZLICZ_DOKUMENT_FK " ;
+						  }
+		
+						echo "<pre> \n Rozliczam dokument FK <br>\n";
+						 print_r($RES_ROZLICZ_DOKUMENT_FK);
+						echo "</pre>";
+					////////EOF
+					
+					
+					}
+		 			
+		 			
+		 	/////////////////////
+		 	
+		 
+		 			
+		//EOF wklejenie z funkcji SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI
+		
+		} //eof func.
+		
+		
+		//@2012-02-04 binder arkadiusz
+		//funkcja do wyszukiwania wszystkich nierozliczonych transakcji w BILLING_ACCOUNT_FILES - szuka i rozlicza
+		//jak poda sie platnika, to uporzadkuje jego transakcje, jak sie nie poda, bedzie starac sie rozliczac wszystkie
+		
+		function UPORZADKUJ_NIEROZLICZONE_TRANSAKCJE($ID_BILLING_USERS_1){
+		
+		//$ID_BILLING_USERS_1=7446	; //TODO@2012-03-12 nie rozlicza chyba czegos co powinno
+		//$ID_BILLING_USERS_1=5147	; //TODO@2012-03-12 testowany  nie rozwiazane rozliczenia po obydwu stronach
+		
+		
+		 	if(isset($ID_BILLING_USERS_1)) $and=" and ID_BILLING_USERS='".$ID_BILLING_USERS_1."' ";
+		//	$sql="select ID_BILLING_NUMBERS, ID_BILLING_USERS from BILLING_ACCOUNTS_FILES  where ID_FIN_WINIEN is NULL and ID_FIN_MA is NULL ".$and;
+		$sql="SELECT 
+			`ID_BILLING_USERS` , 
+			`ID_BILLING_NUMBERS` , count(*) as ILOSC , 
+			sum(if(`WINIEN`>0,1,0)) as WINIENN , sum(if(`MA`>1,1,0)) as MAA
+			 FROM `BILLING_ACCOUNTS_FILES` WHERE 
+			`ID_FIN_WINIEN` IS NULL and `ID_FIN_MA` IS NULL ".$and."
+			group by ID_BILLING_USERS 
+			having ILOSC>2 and  (WINIENN>=1 and MAA>=1) "; //Wyszukujemy rozrachunki, ktore maja przynajmniej po jednej transakcji nierozliczonej po kazdej ze stron
+		
+			$result2=$vdb->sql_query($sql) ;
+			echo "<br>SQL1284:   ".$sql."<br>";
+			while($h2=$vdb->sql_fetchrow($result2)) {
+				echo "<br> f. UPORZADKUJ_NIEROZLICZONE_TRANSAKCJE(".$ID_BILLING_USERS_1.") znalazla:";
+				print_r($h2);
+				ROZLICZ_1_TRANSAKCJE($h2['ID_BILLING_NUMBERS']); 
+		//		die("not completed!");
+				flush();
+			}
+		
+		
+		} //eof FUNC
+		
+
+ 
+	
+
+
+	
+	function formatuj_grosze($kwota) {
+		$kwota=round($kwota,2);
+		$liczba=explode(".", $kwota);
+		if(!$liczba[1]) { $liczba=explode(",", $kwota);
+			if(!$liczba[1]) $liczba[1]="00";
+			}
+			if(strlen($liczba[1])==1) $liczba[1]=$liczba[1]."0"; 
+			$liczba_out=$liczba[0]."."."$liczba[1]"; 
+			return $liczba_out ;
+		}
+		
+		
+	
+
+function policz($l,$t1,$t2,$t3) {
+  $j = array("", "jeden ", "dwa ", "trzy ", "cztery ", "pięć ", "sześć ",
+      "siedem ", "osiem ", "dziewięć ", "dziesięć ", "jedenaście ", 
+          "dwanaście ", "trzynaście ", "czternaście ", "piętnaście ", 
+	      "szesnaście ", "siedemnaście ", "osiemnaście ", "dziewiętnaście ");
+	        $d = array("", "", "dwadzieścia ", "trzydzieści ", "czterdzieści ",
+		    "piêædziesiąt ", "sześćdziesiąt ", "siedemdziesiąt ", 
+		        "osiemdziesiąt ", "dziewięćdziesiąt ");
+			  $s = array("","sto ", "dwieście ", "trzysta ", "czterysta ", "pięćset ",
+			      "sześćset ", "siedemset ", "osiemset ", "dziewięćset ");
+			      
+			        $txt = $s[0+substr($l,0,1)];
+				  if (substr($l,1,2)<20) $txt .= $j[0+substr($l,1,2)]; 
+				    else $txt .= $d[0+substr($l, 1,1)].$j[0+substr($l, 2,1)];
+				      if ($l<>0) if ($l==1) $txt .= "$t1 "; else {
+				          if ((substr($l,2,1)==2 or substr($l,2,1)==3 or substr($l,2,1)==4) 
+					      and (substr($l,1,2)>20 or substr($l,1,2)<10)) 
+					          $txt .= "$t2 "; else $txt .= "$t3 ";
+						    }
+						      return $txt;
+						      }
+						      
+				      function slownie($liczba) {
+				       
+ 			               $kwota=explode(".", $liczba);
+					if(strlen($kwota[1])==1) $kwota[1]=$kwota[1]."0";
+				       $kwotazl=sprintf("%012d",$kwota[0]);
+				       $kwotagr=sprintf("%03d",$kwota[1]);
+				       $txt .= self::policz(substr($kwotazl, 0,3),"miliard","miliardy","miliardów");
+				       $txt .= self::policz(substr($kwotazl, 3,3),"milion","miliony","milionów");
+				       $txt .= self::policz(substr($kwotazl, 6,3),"tysiąc","tysiące","tysięcy");
+				       $txt .= self::policz(substr($kwotazl, 9,3),"złoty","złote","złotych");
+				       if ($kwotazl==0) $txt .= "zero złotych ";
+				       $txt .= " i ";
+				       $txt .= self::policz($kwotagr,"grosz","grosze","groszy");
+				       if ($kwotagr==0) $txt .= "zero groszy";
+					// echo "<br> wedlug slownie daje kwotegr $kwotagr  ";
+				       return $txt;
+					}
+
+		
+
+}

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

@@ -0,0 +1,1159 @@
+<?php
+
+
+
+	Lib::loadClass( 'Billing' );
+
+
+class Billing_html extends Billing {
+
+	function __construct($DATABASE) {
+		
+		parent::__construct($DATABASE);
+		
+	}
+
+
+
+
+	
+	function lista_faktur($ID_BILLING_USERS) {
+		
+		$result7=Billing::lista_faktur($ID_BILLING_USERS);
+		
+
+
+				echo ' <hr>
+		    <table border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" id="AutoNumber1" >
+		      <tr>
+		        <td align="right" bgcolor="#EEEEEE">ID</td>
+				<td align="right" bgcolor="#EEEEEE">ILOSC</td>
+				<td align="right" bgcolor="#EEEEEE">ID_DOK</td>
+				<td align="right" bgcolor="#EEEEEE">WARTOSC</td>
+				<td align="right" bgcolor="#EEEEEE">DATA_NUMER</td>
+				<td align="right" bgcolor="#EEEEEE">AKCJA</td>
+		      </tr>';
+
+
+			foreach($result7 as $row) {
+			
+			    echo"<tr>";
+			    echo" <td align=\"right\">".$row['ID']."</td>";
+			    echo" <td align=\"right\">".$row['count_BILLS_FVAT_POS_ID']."</td>";
+			    echo" <td align=\"right\">".$row['ID_BILLS_FVAT']."</td>";
+			    echo" <td align=\"right\">".parent::formatuj_grosze($row['WARTOSC'])." </td>";
+			    echo" <td align=\"right\">".substr($row['TIMESTAMP'],0,10)." ".$row['ID_BILLING_PREFIXES']."/".$row['NUMBER']." </td>";
+			    echo" <td align=\"right\">";
+			
+				if($row[OPEN]=="Y") {
+			
+				    echo"<a href=\"edit.php?mod=make_billing&form=html_faktura&adm=edit&uid=$uid&fpos=&dz=$dz&close=1&doc=$row[ID_BILLING_NUMBERS]&doctype=1\">";
+				    echo"<img border=\"0\" src=\"icon/folder8.gif\" width=\"16\" height=\"16\" alt=\"Faktura otwarta\nKliknij tu jak chcesz wystawiæ fakture dla klienta...\">";
+				    echo"</a>&nbsp;";
+			    
+				    echo"<a href=\"edit.php?mod=make_billing&form=html_faktura&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$row[ID_BILLING_NUMBERS]&doctype=1\">";
+				    echo"<img border=\"0\" src=\"icon/env.gif\" width=\"16\" height=\"16\" alt=\"Faktura otwarta\nKliknij tu jak chcesz podejrzec fakture dla klienta...\">";
+				    echo"</a>&nbsp;";
+			
+			
+				} else if(($row[OPEN]=="N")&&($row[FK_ZAKSIEG]=="Y")&&($row[IF_KORV]=="N")) {
+			
+				    echo"<img border=\"0\" src=\"icon/ok2.gif\" width=\"16\" height=\"16\" alt=\"Faktura zamkniêta\nFaktura zostala wystawiona pomy¶lnie...\">";
+				    echo"<a href=\"?FUNCTION_INIT=bm_show_document&ARG1_VAL=".$row['ID_BILLING_NUMBERS']."\" target=\"_blank\">";
+				    	    	    
+				    echo"<img border=\"0\" src=\"icon/szukaj2.gif\" width=\"16\" height=\"16\" alt=\"Faktura jest zamknieta.\nMozesz ja zobaczyc klikajac tu...\">";	    
+					//UTWORZENIE KOREKTY DLA DOKUMENTU
+				   // $_SESSION[bm_make_faktura][back]=$PHP_SELF."?".$_SERVER[argv][0] ;
+				    echo"</a>&nbsp;|&nbsp;<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta_exec&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$row[ID_BILLING_NUMBERS]&doctype=1&MAKE_KOREKTA_DOC=1&TRG_ID_BILLING_NUMBERS_TYPE=3&TRG_ID_BILLING_PREFIXES=0&docedit=1\">";
+				    echo"<img border=\"0\" src=\"icon/doc10.gif\" width=\"16\" height=\"16\" alt=\"UWAGA WYSTAWIANIE KOREKTY DO DOKUMENTU\">";
+				    
+				    echo"</a>&nbsp;";
+			         } else { 
+				   echo "Dokonano korekty ";
+			//	    echo"<img border=\"0\" src=\"icon/off.gif\" width=\"16\" height=\"16\" alt=\"Dokonano korekty faktury\">";
+				   // echo"<a href=\"edit.php?mod=make_billing&form=html_faktura&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$row[ID_BILLING_NUMBERS]&doctype=1\">";
+				     echo"<a href=\"?FUNCTION_INIT=bm_show_document&ARG1_VAL=".$row['ID_BILLING_NUMBERS']."\" target=\"_blank\">";	    	    
+				    echo"<img border=\"0\" src=\"icon/off.gif\" width=\"16\" height=\"16\" alt=\"Faktura posiada korekte - podglad oryginalu...\"></a>";
+				    
+					
+					
+					if($_GET[KOREKTY]=="YES") {
+			
+					
+			//			echo "KOREKTY $sql ";
+						     echo "<table border=\"1\" cellpadding=\"3\" cellspacing=\"3\" style=\"border-collapse: collapse\" id=\"AutoNumber1\" >
+						      <tr>
+						        <td align=\"right\" bgcolor=\"#EEEEEE\">ID</td>
+			
+							<td align=\"right\" bgcolor=\"#EEEEEE\">ILOŚĆ</td>
+			
+							<td align=\"right\" bgcolor=\"#EEEEEE\">ID_DOK</td>
+							<td align=\"right\" bgcolor=\"#EEEEEE\">WARTOŚĆ WINIEN</td>
+							<td align=\"right\" bgcolor=\"#EEEEEE\">WARTOŚĆ PRZED</td>
+							<td align=\"right\" bgcolor=\"#EEEEEE\"><i>(wartość PO)</i></td>
+							<td align=\"right\" bgcolor=\"#EEEEEE\">AKCJA</td>
+				
+						      </tr>";
+//					      $result_KORV=$vdb->sql_query($sql); while($row_KORV=$vdb->sql_fetchrow($result_KORV)) {
+					      $result_KORV=Billing::lista_korekt($row['ID_BILLING_NUMBERS']); 
+						  DEBUG_S(-3,'result_KORV',$result_KORV,__FILE__,__FUNCTION__,__LINE__);
+					      foreach($result_KORV as $row_KORV) {						  
+						    echo"<tr>";
+						    echo" <td align=\"right\">".$row_KORV['KORV_ID']." </td>";
+						    echo" <td align=\"right\">".$row_KORV['count_POS_ID']." </td>";
+						    echo" <td align=\"right\">".$row_KORV['ID_BILLS_FVAT']." </td>";
+						    echo" <td align=\"right\">".parent::formatuj_grosze($row_KORV['WARTOSC'])." </td>";
+						    echo" <td align=\"right\">".parent::formatuj_grosze($row_KORV['N_WARTOSC'])."</td>";
+						    echo" <td align=\"right\"><i>".parent::formatuj_grosze(($row_KORV['WARTOSC']+$row_KORV['N_WARTOSC']))."</i></td>";
+						    echo" <td align=\"right\">";							
+							if($row_KORV[OPEN]=="Y") {
+			//			    echo "POKAZ / EDYTUJ / KSIEGUJ";
+			
+						     echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$row_KORV[ID_BILLING_NUMBERS]&doctype=$KORV_ID_BILLING_NUMBERS_TYPE&docedit=1\">";
+				    		     echo"<img border=\"0\" src=\"icon/edit22.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak chcesz edytowaæ...\">";
+						     echo"</a>&nbsp;|&nbsp;";
+						     echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$row_KORV[ID_BILLING_NUMBERS]&doctype=$KORV_ID_BILLING_NUMBERS_TYPE\">";
+				    		     echo"<img border=\"0\" src=\"icon/env.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak chcesz podejrzec dokument...\"></a>";
+						     echo"&nbsp;|&nbsp;";
+						   echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=1&doc=$row_KORV[ID_BILLING_NUMBERS]&doctype=$KORV_ID_BILLING_NUMBERS_TYPE\">";
+				 	           echo"<img border=\"0\" src=\"icon/folder8.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak go zamkn±c i zaksiêgowaæ ...\">";
+					           echo"</a>&nbsp;";
+			    
+						   echo "</td></tr>";
+			 				} else if(($row_KORV[OPEN]=="N")&&($row_KORV[FK_ZAKSIEG]=="Y")&&($row_KORV[IF_KORV]=="N")) {
+			//			     echo "|&nbsp;POKAZ (korekta zamknieta i zaksiegowana)</td></tr>";
+					 	     echo"<img border=\"0\" src=\"icon/ok2.gif\" width=\"16\" height=\"16\" alt=\"Korekta zamknięta\n i zaksięgowana Faktura została wystawiona pomyślnie...\">";
+					//#	     echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$row_KORV[ID_BILLING_NUMBERS]&doctype=$KORV_ID_BILLING_NUMBERS_TYPE\">";
+				   			  echo"<a href=\"?FUNCTION_INIT=bm_show_document&ARG1_VAL=".$row_KORV['ID_BILLING_NUMBERS']."\">";	    	    
+
+				    		     echo"<img border=\"0\" src=\"icon/env.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak chcesz podejrzec dokument...\"></a>";
+							} else if(($row_KORV[OPEN]=="N")&&($row_KORV[FK_ZAKSIEG]=="Y")&&($row_KORV[IF_KORV]=="Y")) {
+							    echo"<img border=\"0\" src=\"icon/off.gif\" width=\"16\" height=\"16\" alt=\"dokument posiada korekte - podglad oryginalu...\">";	    
+							echo "Korekta posiada korekte - Edycja niedostepna w tej wersji programu TODO";
+							}
+					      } //EOF while $result_KORV -> $row_KORV
+							    echo"<tr><td colspan=\"7\" align=\"right\" valign=\"top\"> <a href=\"$PHP_SELF?".ereg_replace("\&KOREKTY.*",'',$_SERVER["QUERY_STRING"])."\"> <img border=\"0\" src=\"icon/parent.gif\" width=\"16\" height=\"16\" alt=\"Wy³±cz listê korekt\">  Wylacz liste korekt</a></td></tr>"; //phpinfo();		     
+						echo "</table>";
+					} else  echo"</a>&nbsp;<br> <a href=\"$PHP_SELF?".$_SERVER["QUERY_STRING"]."&KOREKTY=YES\">Lista korekt <img border=\"0\" src=\"icon/doc9.gif\" width=\"16\" height=\"16\" alt=\"W³±cz listê korekt\"> </a>"; //phpinfo();
+					
+				 }
+			    echo"</td>";
+			    
+			    echo"</tr>
+			";
+			
+			    $lp++;
+			
+			} //while
+			
+			
+			
+			echo"</table>
+			";
+
+
+
+
+	
+		
+	}
+
+	function rachunki_search_for_KP($ID_BILLING_USERS) {
+		//javascript:openWindow('modules/make_billing/edit.php?mod=make_billing&form=make_kasa&adm=edit&uid=12884&op=search_for_KP','edit','scrollbars,resizable=yes,width=750,height=550')
+				
+						
+						$modpathx="modules/make_billing";
+				$ile_per_page=10;
+				echo"<p align=right>";
+					echo"<a href=\"javascript:window.location.reload();\">";
+					echo"<img border=\"0\" src=\"icon/refresh3.gif\" width=\"16\" height=\"16\" alt=\"Od¶wie¿ stronê\">";
+					echo"&nbsp;Od¶wie¿";
+					echo"</a>";
+					
+				
+					echo"&nbsp;";
+				//=================== dowolne KP
+					echo"<a href=\"javascript:openWindow('edit.php?zostalo=$do_rozliczenia&op=kp_faktura_edited&to_doc=0&uid=$uid','print','scrollbars,resizable=yes,width=750,height=550')\">";
+					echo"<img border=\"0\" src=\"icon/kp.gif\" width=\"16\" height=\"16\" alt=\"Wystaw KP na\n DOWOLN¡ KWOTE\">";
+					echo"&nbsp;KP-dowolne";
+					echo"</a>";
+					
+				
+					echo"&nbsp;";
+					
+					echo"<a href=\"javascript:openWindow('edit.php?zostalo=$do_rozliczenia&op=kw_faktura_edited&to_doc=0&uid=$uid','print','scrollbars,resizable=yes,width=750,height=550')\">";
+					echo"<img border=\"0\" src=\"icon/kw.gif\" width=\"16\" height=\"16\" alt=\"Wystaw KW na\n DOWOLN¡ KWOTE\">";
+					echo"&nbsp;KW-dowolne";
+					echo"</a>";
+						
+					echo"&nbsp;";
+					
+					echo"<a href=\"javascript:openWindow('edit.php?op=wb_faktura_edited&uid=$uid&doctype=8&NEWDOC=1','print','scrollbars,resizable=yes,width=750,height=550')\">";
+					echo"<img border=\"0\" src=\"icon/kw.gif\" width=\"16\" height=\"16\" alt=\"Zarejestruj WB na\">";
+					echo"&nbsp;WB-przelew";
+					echo"</a>";
+						
+				
+				
+				
+				//	 makeurl(menu_main,$PHP_SELF,menu,billing_billwiev_przeterminowania,'modules/billing_wiev.inc',ico("szukaj2","","Wygenerowanie listy zadluzen").'ZAD£U¯ENIA',""); 
+					echo"<a href=\"javascript:openWindow('edit.php?op=zadluzenia&uid=$uid','print','scrollbars,resizable=yes,width=750,height=550')\">";echo"<img border=\"0\" src=\"icon/kw.gif\" width=\"16\" height=\"16\" alt=\"Zad³u¿enia\">";
+					echo"&nbsp;ZAD£U¯ENIA";
+					echo"</a>";
+						
+				
+				
+				echo"</p>";    
+				echo '	
+				<TABLE WIDTH="100%" CELLPADDING="3">
+				<TR bgcolor="#cccccc">
+				<TD >
+				    <B>ID:</B>
+				</TD>
+				<TD>
+				    <B>Data:</B>
+				</TD>
+				<TD  >
+				    <B>Numer:</B>
+				</TD>
+				<TD  >
+				    <B>Kwota:</B>
+				</TD>
+				<TD>
+				    <B>Pozycji:</B>
+				</TD>
+				<TD>
+				    <B>Dla:</B>
+				</TD>
+				<TD>	
+				</TD>
+				</TR><TR>
+				<TD WIDTH="100%" COLSPAN="8">
+				</TD>
+				</TR>
+				
+				';
+			
+				$fv_naglowek_arr=Billing::lista_faktur();
+				foreach($fv_naglowek_arr as $fv_naglowek){
+				
+				
+						$do_rozliczenia=Billing::SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI('PRAWO',$fv_naglowek['ID_BILLING_USERS'],null,$fv_naglowek['ID_BILLING_NUMBERS'],null,null,null);
+						DEBUG_S(3,'do_rozliczenia',$do_rozliczenia,__FILE__,__FUNCTION__,__LINE__);
+						$do_rozliczenia=$do_rozliczenia['POZ_S_N_R_KWOTA'];
+				
+				$zz = $zz+1;
+				if ($zz>1){
+				    echo"<TR>";
+				}else{
+				    $zz=0;
+				    echo"<TR bgcolor=\"#eeeeee\">";    
+				}
+				echo"<TD>";
+				    echo $fv_naglowek[ID]; 
+				echo"</TD><TD WIDTH=\"85\">";
+				    echo"<font size=1>";
+				    echo $fv_naglowek[SELL_DATE]; 
+				    echo"</font>";
+				echo"</TD><TD>";
+				    echo $fv_naglowek[ID_BILLING_NUMBERS]; 
+				echo"</TD><TD>";
+				    $xxx=round($fv_naglowek[WARTOSC],2);
+				    echo $xxx; 
+				    
+				    if($do_rozliczenia>0) echo "<font color=red> Do zapł:".$do_rozliczenia."</font>";
+				echo"</TD><TD>";
+				    echo $fv_naglowek[count_BILLS_FVAT_POS_ID]; 
+				echo"</TD><TD WIDTH=\"54%\">";
+				   // $sqlp="select * from BILLING_USERS_ADD where id_users='$fv_naglowek[ID_BILLING_USERS]'";
+				   // $resultp = $vdb->sql_query($sqlp);
+				 //   $fp=$vdb->sql_fetchrow($resultp);
+				    
+				    $fp=Billing::BILLING_USERS_ADD($fv_naglowek['ID_BILLING_USERS']);
+				    echo"<font size=1>";
+				//    echo $fp[P_NAME]." ".$fp[P_NAME_SECOND].", ".$fp[P_ADDRESS_POST_CODE]. " ".$fp[P_ADDRESS_CITY].", ".$fp[P_ADDRESS_STREET]." ".$fp[P_ADDRESS_HOUSE]."/".$fp[P_ADDRESS_HOME] ; 
+				    echo $fp->P_NAME." ".$fp->P_NAME_SECOND.", ul. ".$fp->P_ADDRESS_STREET." ".$fp->P_ADDRESS_HOUSE."/".$fp->P_ADDRESS_HOME.", ".$fp->P_ADDRESS_CITY ;     
+				    echo"</font>";
+				    
+				    
+				    	
+				echo"</TD><TD align=right>";
+				//    echo"&nbsp;*";
+				//---------------------------------------------------------------------------------------------------------
+				
+				
+				
+				//szukamy ile do rozliczenia zostalo
+				
+			
+//				echo "<td>".$do_rozliczenia."</td>";
+				
+				$WHERE_PRIM="MA";
+				$WHERE="WINIEN";
+				//$id_fact=757;
+				
+								
+				//echo "$sql";
+				
+				
+				//--------------------------------------------------------------------------------------------------------
+				//if ($fv_naglowek[OPEN]=="N"){
+				if ($do_rozliczenia<>0){
+					echo"<a href=\"javascript:openWindow('edit.php?zostalo=$do_rozliczenia&op=kp_faktura_edited&doc_number=$fv_naglowek[ID_BILLING_NUMBERS]&uid=$fv_naglowek[ID_BILLING_USERS]&to_doc=$fv_naglowek[ID_BILLING_NUMBERS]','print','scrollbars,resizable=yes,width=750,height=550')\">";
+					
+					echo"<img border=\"0\" src=\"icon/edit6.gif\" width=\"16\" height=\"16\" alt=\"Wystaw KP\nPozostalo: $do_rozliczenia\">";
+					echo"</a>";    
+					echo"&nbsp;";
+				}else{
+			
+				}
+				
+					//#echo"<a href=\"javascript:openWindow('edit.php?op=rachunki_make_faktura&uid=$fv_naglowek[ID_BILLING_USERS]&look=1','print','scrollbars,resizable=yes,width=750,height=550')\">";
+					//#echo"<img border=\"0\" src=\"icon/doc18.gif\" width=\"16\" height=\"16\" alt=\"Zobacz szczegoly\nWy¶wietl pozycje\">";
+					//#echo"</a>";
+					//#echo"&nbsp;";
+				//#	echo"<a href=\"javascript:openWindow('edit.php?op=rachunki_make_faktura&uid=$fv_naglowek[ID_BILLING_USERS]','print','scrollbars,resizable=yes,width=750,height=550')\">";
+					echo"<a href=\"javascript:window.open('index.php?FUNCTION_INIT=bm_show_document&ARG1_VAL=".$fv_naglowek['ID_BILLING_NUMBERS']."','print2','scrollbars,resizable=yes,width=750,height=550')\">";
+					echo"<img border=\"0\" src=\"icon/print1.gif\" width=\"16\" height=\"16\" alt=\"Drukuj dokument\">";
+					echo"</a>";
+					echo"&nbsp;
+				";
+				
+				//	echo"<a href=\"javascript:openWindow('edit.php?op=edit&pages=$str','edit','scrollbars,resizable=yes,width=750,height=550')\">";
+				//	echo"<img border=\"0\" src=\"$xpath/ico/edit7.gif\" width=\"16\" height=\"16\" alt=\"Wystaw Fakturê\">";
+				//	echo"</a>";    
+					
+				//	echo"&nbsp;";
+				echo"</TD>";
+				echo"</TR>";
+				
+				
+				
+				
+				}//while
+				
+				echo "<tr bgcolor=\"#cccccc\"><td align=\"center\"><b>ID:</b></td><td align=\"center\"><b>Data</b></td><td align=\"center\"><b>Numer:</b></td><td align=\"center\"><b>WINIEN</b></td><td align=\"center\"><b>MA</b></td><td><b>Opis operacji</b></td><td><b>Akcje:</b> </td> </tr>";
+				//LISTA_KP_DO_WYDRUKOWANIA KLASA FINANSE
+				
+				
+				Billing::get_BILLING_NUMBERS_TYPE();
+				$lista_dok_finansowych=Billing::lista_dok_finansowych();
+
+				DEBUG_S(-3,'lista_dok_finansowych',$lista_dok_finansowych,__FILE__,__FUNCTION__,__LINE__);
+				foreach($lista_dok_finansowych as $h) {
+					
+					
+					
+				
+				
+		
+				if($h["CLASS"]=="FINANCE") {
+					    echo"<TR bgcolor=\"#eeeeee\"><TD>".$h['TYPE'].": ".$h['ID_BILLING_NUMBERS']."  </TD><TD WIDTH=\"85\">";
+					    echo"<font size=1>";
+					    echo $h[BILL_DATE];
+					    echo"</font>";
+					echo"</TD><TD>";
+					    echo $h[NUMBER];
+					echo"</TD><TD align=\"center\">";
+					    echo $h[WINIEN];
+					echo"</TD><TD>";
+					    echo $h[MA];
+					echo"</TD><TD WIDTH=\"54%\">";
+					    echo "j.w. ($result_BILLING_NUMBERS_TYPE[DESC]) ";
+					  if($h[do_dokumentu]) echo "<br>do dokumentu: $h[do_dokumentu]";
+					  if($h[FK_ZAKSIEG]=="Y") echo ", zaksięgowano - dekret: $h[ID_FK_DEKRET] " ; else echo ", <font color=\"red\"> nie zaksiegowano dokumentu</font>";
+					echo"</TD><TD align=right>";
+					
+						echo"<a href=\"?FUNCTION_INIT=bm_show_document&ARG1_VAL=".$h['ID_BILLING_NUMBERS']."\">";
+						echo"<img border=\"0\" src=\"icon/print1.gif\" width=\"16\" height=\"16\" alt=\"Drukuj dokument FINANCE_UNIVERSAL_TODO\">";
+						echo"</a>";
+						echo"&nbsp;
+					";
+					
+					//echo" //TODO  DRUKOWANIE-DUPLIKATU doc=$h[ID_BILLING_NUMBERS] doctype=$result_BILLING_NUMBERS_TYPE[ID]";
+					
+					echo" </td></tr>";
+					} //EOF LISTA_KP 
+					else if($h['CLASS']=='SELL_MA') {
+						 echo"<TR bgcolor=\"#eeeeee\"><TD>".$h['TYPE'].": ".$h['ID_BILLING_NUMBERS']."  </TD><TD WIDTH=\"85\">";
+				    echo"<font size=1>";
+				    echo $h['BILL_DATE'];
+				    echo"</font>";
+				echo"</TD><TD>";
+				    echo $h['NUMBER'];
+				echo"</TD><TD align=\"center\">";
+				    echo "<i>$h[WINIEN]</i>";
+				echo"</TD><TD bgcolor=\"#FFBBBB\">";
+				    echo $h['MA'];
+				echo"</TD><TD WIDTH=\"54%\">";
+				    echo "j.w. ($result_BILLING_NUMBERS_TYPE[DESC]) ";
+				  if($h[do_dokumentu]) echo "<br>do dokumentu: $h[do_dokumentu]";
+				  if($h[FK_ZAKSIEG]=="Y") echo ", zaksięgowano - dekret: $h[ID_FK_DEKRET] " ; else echo ", <font color=\"red\"> nie zaksiegowano dokumentu</font>";
+				echo"</TD><TD align=right>";
+				
+			
+					echo"&nbsp;";
+					echo"&nbsp;";
+				
+				
+								if($h[OPEN]=="Y") {
+				//			    echo "POKAZ / EDYTUJ / KSIEGUJ";
+				
+							     echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$h[ID_BILLING_NUMBERS]&doctype=$result_BILLING_NUMBERS_TYPE[ID]&docedit=1\">";
+					    		     echo"<img border=\"0\" src=\"icon/edit22.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak chcesz edytowaæ...\">";
+							     echo"</a>&nbsp;|&nbsp;";
+							     echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=0&doc=$h[ID_BILLING_NUMBERS]&doctype=$result_BILLING_NUMBERS_TYPE[ID]\">";
+					    		     echo"<img border=\"0\" src=\"icon/env.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak chcesz podejrzec dokument...\"></a>";
+							     echo"&nbsp;|&nbsp;";
+							   echo"<a href=\"edit.php?mod=make_billing&form=html_faktura_korekta&adm=edit&uid=$uid&fpos=&dz=$dz&close=1&doc=$h[ID_BILLING_NUMBERS]&doctype=$result_BILLING_NUMBERS_TYPE[ID]\">";
+					 	           echo"<img border=\"0\" src=\"icon/folder8.gif\" width=\"16\" height=\"16\" alt=\"Dokument otwarty\nKliknij tu jak go zamkn±c i zaksiêgowaæ ...\">";
+						           echo"</a>&nbsp;";
+				    
+							   echo "</td></tr>";
+				 				} else if(($h[OPEN]=="N")&&($h[FK_ZAKSIEG]=="Y")&&($h[IF_KORV]=="N")) {
+				//			     echo "|&nbsp;POKAZ (korekta zamknieta i zaksiegowana)</td></tr>";
+						 	     echo"<img border=\"0\" src=\"icon/ok2.gif\" width=\"16\" height=\"16\" alt=\"Korekta zamkniêta\n i zaksiegowana Faktura zostala wystawiona pomy¶lnie...\">";
+							     echo"<a href=\"?FUNCTION_INIT=bm_show_document&ARG1_VAL=".$h['ID_BILLING_NUMBERS']."\">";
+					    		 echo"<img border=\"0\" src=\"icon/env.gif\" width=\"16\" height=\"16\" alt=\"\nKliknij tu jak chcesz podejrzec dokument...\"></a>";
+								} else if(($h[OPEN]=="N")&&($h[FK_ZAKSIEG]=="Y")&&($h[IF_KORV]=="Y")) {
+								 echo"<img border=\"0\" src=\"icon/off.gif\" width=\"16\" height=\"16\" alt=\"dokument posiada korekte - podglad oryginalu...\">";	    
+								 echo "Korekta posiada korekte - Edycja niedostepna w tej wersji programu TODO";
+								}
+				
+				
+				
+				
+				
+				
+				
+				
+				//echo" //TODO  DRUKOWANIE-DUPLIKATU doc=$h[ID_BILLING_NUMBERS] doctype=$result_BILLING_NUMBERS_TYPE[ID]";
+				
+						echo" </td></tr>";
+						
+					}
+				}
+				
+
+				//==================================================================
+				echo"<TR>";
+				echo"<TD width=100% colspan=\"7\" align=\"center\">";
+				echo"<-- Poprzednia str.   (-$at/$to-)     Nastêpna str. -->";
+				echo"</TD>";
+				echo"</TR>";
+				
+				echo "</table>";
+
+		
+		
+		
+	} //eof rachunki_search_for_KP
+
+
+
+	
+	
+	function tab_top($frame=0,$szer="100%"){
+			if ($szer=="auto"){
+				$szerx="";
+				}else{
+					$szerx=" width=".$szer." ";
+					}
+
+					$echox="";
+
+
+					$echox .= "
+					<table ".$szerx." border=".$frame." cellspacing=0 cellpadding=4>
+					<tr>
+					";
+					return $echox;
+				}
+	
+	
+	function tab_bottom(){
+		$echox = "
+		</tr>
+		</table>
+		";
+		return $echox;
+	}
+
+	function show_doc_BILLING_NUMBERS_TYPE_CLASS_FINANCE($ID_BILLING_NUMBERS) {
+			$doc=parent::show_doc_BILLING_NUMBERS_TYPE_CLASS_FINANCE($ID_BILLING_NUMBERS);
+			DEBUG_S(-3,'doc',$doc,__FILE__,__FUNCTION__,__LINE__);
+
+		
+			if($doc->docum->WINIEN>0) { //PRZELICZAMY CZY TO JEST NA MA CYZ NA WINIEN
+			$WINIEN_MA_NAME="WINIEN";
+			$WINIEN_MA_NAME_PRIM="MA";
+			$WINIEN_MA_VALUE=$doc->docum->WINIEN;
+			} else if(strlen($doc->docum->MA)>0) {
+			$WINIEN_MA_NAME="MA";
+			$WINIEN_MA_NAME_PRIM="WINIEN";
+			$WINIEN_MA_VALUE=$doc->docum->MA;
+			} else 	if($doc->docum->WINIEN>=0) { //PRZELICZAMY CZY TO JEST NA MA CYZ NA WINIEN
+			$WINIEN_MA_NAME="WINIEN";
+			$WINIEN_MA_NAME_PRIM="MA";
+			$WINIEN_MA_VALUE=$doc->docum->WINIEN;
+		 	}
+		
+
+	
+	//LOKALNY IF CELEM ZUNIWERSALNIENIA WYSTAWIANIA DOCOW
+			if(($doc->result_BILLING_NUMBERS_TYPE['ID']==4)) {
+		
+			
+			echo 'KP (kasa przyjmie) ORYGINAŁ
+			   <table width="100%" border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" id="AutoNumber1" >
+			
+			      <tr>
+			       <td align="left" bgcolor="#EEEEEE"><b>Wystawiający:</b><br>';
+			
+			echo $doc->owner->name1." ".$doc->owner->name2."<br>".$doc->owner->kod." ".$doc->owner->miasto."<br>".$doc->owner->ulica." ".$doc->owner->numer_dom ;
+			if(!empty($doc->owner->numer_pos)) echo "/".$doc->owner->numer_pos;
+			echo '
+				</td>
+			
+				<td align="left" bgcolor="#EEEEEE"><b>Data:</b><br>'.$doc->docum->BILL_DATE.'</td>
+			
+				<td align="right" bgcolor="#EEEEEE">
+			<b>Numer</b><br>'.$doc->header->NUMBER.'</td>
+			      </tr>
+			      
+			    </table>
+			    
+			    <table width="100%" border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" id="AutoNumber1" >
+			
+			      <tr>
+			        <td align="left" bgcolor="#EEEEEE"><b>Wpłacający:</b><br>';
+			
+			echo $doc->client->P_NAME." ".$doc->client->P_NAME_SECOND."<br>".$doc->client->P_ADDRESS_POST_CODE." ".$doc->client->P_ADDRESS_CITY."<br>".$doc->client->P_ADDRESS_STREET." ".$doc->client->P_ADDRESS_HOUSE."/".$doc->client->P_ADDRESS_HOME;
+			echo '
+				</td>
+			
+				<td width="150" align="center" bgcolor="#EEEEEE"><b>'.$WINIEN_MA_NAME.'</b><br>Kasa</td>
+			
+				<td width="100" align="center" bgcolor="#EEEEEE">';
+			 echo"<b>".$WINIEN_MA_NAME_PRIM ; 
+			 echo '</b><br>Konto</td>
+			      </tr>
+			      
+			      <tr>
+			        <td align="center" bgcolor="#aaaaff">za co</td>
+			
+				<td align="center" bgcolor="#aaaaff">zloty.groszy</td>
+			
+				<td align="center" bgcolor="#aaaaff">
+			numer</td>
+			      </tr>
+			      
+			      
+			      <tr>
+			        <td align="left" bgcolor="#EEEEEE">';
+			     //#   if($doc->header[REMOTE_NUMBER]) echo"$result_NAGLOWEK[REMOTE_DESC]  $result_NAGLOWEK[REMOTE_NUMBER] / $result_NAGLOWEK[REMOTE_ID_BILLING_PREFIXES] "; 
+			      echo '</td>
+			
+				<td align="right" bgcolor="#EEEEEE">'.parent::formatuj_grosze($WINIEN_MA_VALUE).'</td>
+				<td align="right" bgcolor="#EEEEEE"></td>
+			      </tr>
+			      
+			
+			      <tr>
+			        <td align="right" bgcolor="#EEEEEE"><b>RAZEM:</b></td>
+			
+			        <td align="right" bgcolor="#EEEEEE">'.parent::formatuj_grosze($WINIEN_MA_VALUE).'</td>
+				<td align="right" bgcolor="#EEEEEE"></td>
+			      </tr>
+			      
+			     
+			      <tr>
+			        <td colspan=3 align="left" bgcolor="#EEEEEE"><b>Słownie:</b>'.parent::slownie($WINIEN_MA_VALUE).'</td>
+			
+			      </tr>
+			      
+			       <table border="1" width="100%" height="50" cellspacing="0">
+			        <tr>
+			
+			         <td valign="top"><font size="1">WYSTAWIŁ</font></td>
+			          <td valign="top"><font size="1">SPRAWDZIŁ</font></td>
+			           <td valign="top"><font size="1">ZATWIERDZIŁ</font></td>
+			            <td valign="top"><font size="1">RAP.KASOWY</font></td>
+			             <td valign="top"><font size="1">KWOTĘ POWYŻSZĄ OTRZYMAŁEM</font></td>
+			    	      </tr>
+			              </table>
+			               </td></tr>
+			      
+			    </table>
+			
+			';
+			
+			} else  { //POZOSTALE TYPY (inne niz KP) zuniwersalniamy 
+			
+				if($doc->result_BILLING_NUMBERS_TYPE['TYPE']=="WB") {
+			
+			
+			
+			
+					//OPCJE_DODATKOWE_DO_FUNKCJI 
+					$BILLS_OPTIONS_ARRAY[KKSGW][DESC]="Data wyciągu(RRRR-MM-DD)";
+					$BILLS_OPTIONS_ARRAY[NRRAP][DESC]="Numer Wyciągu(RRRR/NNN)";
+					$BILLS_OPTIONS_ARRAY[UNDOK][DESC]="Numer pozycji w wyciagu(10)";
+					$BILLS_OPTIONS_ARRAY[DOPER][DESC]="Data operacji(RRRR-MM-DD)";
+					$BILLS_OPTIONS_ARRAY[NZLEC][DESC]="Nazwa Zleceniodawcy(140)";
+					$BILLS_OPTIONS_ARRAY[NRODB][DESC]="Numer rachunku bankowego na MA(35)";
+					$BILLS_OPTIONS_ARRAY[TYTUL][DESC]="Tytuł wpłaty(140)";
+			
+					$BILLS_OPTIONS_ARRAY[KKSGW][SIZE]="15";
+					$BILLS_OPTIONS_ARRAY[NRRAP][SIZE]="15";
+					$BILLS_OPTIONS_ARRAY[UNDOK][SIZE]="10";
+					$BILLS_OPTIONS_ARRAY[DOPER][SIZE]="15";
+					$BILLS_OPTIONS_ARRAY[NZLEC][SIZE]="60";
+					$BILLS_OPTIONS_ARRAY[NRODB][SIZE]="45";
+					$BILLS_OPTIONS_ARRAY[TYTUL][SIZE]="55";
+			
+					$BILLS_OPTIONS_ARRAY[KKSGW][MAXLENGTH]="10";
+					$BILLS_OPTIONS_ARRAY[NRRAP][MAXLENGTH]="10";
+					$BILLS_OPTIONS_ARRAY[UNDOK][MAXLENGTH]="10";
+					$BILLS_OPTIONS_ARRAY[DOPER][MAXLENGTH]="10";
+					$BILLS_OPTIONS_ARRAY[NZLEC][MAXLENGTH]="140";
+					$BILLS_OPTIONS_ARRAY[NRODB][MAXLENGTH]="35";
+					$BILLS_OPTIONS_ARRAY[TYTUL][MAXLENGTH]="140";
+			
+			
+			
+			
+			
+					echo "<table border=\"1\"><tr><td>Oglądanie dokumentu ".$doc->result_BILLING_NUMBERS_TYPE['DESC']." dla</td><td>".$doc->client->P_NAME." ".$doc->client->P_NAME_SECOND." ".$doc->client->P_ADDRESS_STREET." ".$doc->client->P_ADDRESS_HOUSE." ".$doc->client->P_ADDRESS_HOME." </td>";
+					//WYCIAGNIECIE_Z_BAZY_ZALEGAJACYCH_ZOBOWIAZAN
+					$WHERE="WINIEN" ; $WHERE_PRIM="MA";
+		
+			
+					    print_r($do_dokumentu_arr) ;
+			
+		
+				
+			
+					foreach($BILLS_OPTIONS_ARRAY as $WK => $WA) {
+			
+						echo "<tr><td>".$BILLS_OPTIONS_ARRAY[$WK][DESC]."</td><td>";
+				
+						echo "".$doc->docum->$WK."\n";
+						echo "</td></tr>";
+			
+					}
+					//PARAMETRY do_dokukentu - z odczytu wyzej sql
+					 //EOF local NEWDOC
+				
+			
+		
+					echo "<tr><td>".$WHERE_PRIM."</td><td>";
+					echo $doc->docum->$WHERE_PRIM; 
+					echo "</td></tr>";
+					echo "</table>";
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+				} else echo "inne niz WB";
+			
+			  }
+
+
+		
+		
+	}
+	
+	
+	function show_doc_BILLING_NUMBERS_TYPE_CLASS_SELL_WINIEN($ID_BILLING_NUMBERS) {
+
+				
+				//#include_once("$base_path/conf_db.php");
+				//#include_once("$base_path/classes/db.php");
+				//#include_once("$base_path/classes/sql_layer.php");
+				//#include_once("$base_path/modules/billing/bill/func/bill_verify_iban_crc.php");
+				//#include_once("$base_path/modules/billing/bill/modules/billing_financefunc.inc");
+				require_once("stuff/phpqrcode.php");
+				//include_once("$base_path/modules/billing/bill/func/html2pdf/html2pdf.class.php");
+				$echox ="";				
+				//define('FPDF_FONTPATH','include/font/');
+				//require_once('include/fpdf.php');
+				unset($sqix_total);
+				unset($echox); 
+				unset($all_txt);
+
+				
+						
+				
+				//function top_html($uid,$doc,$doctype){
+				//    global $pdf,$prefix,$vdb,$result_BILLING_NUMBERS_TYPE,$all;
+				//#    $sql_BILLING_NUMBERS_TYPE="select * from BILLING_NUMBERS_TYPE where ID='$doctype' limit 1";
+				//#     $result_BILLING_NUMBERS_TYPE=$vdb->sql_query($sql_BILLING_NUMBERS_TYPE) ;
+				//#     $result_BILLING_NUMBERS_TYPE=$vdb->sql_fetchrow($result_BILLING_NUMBERS_TYPE[0]);
+
+			
+
+				$doc=parent::show_doc_BILLING_NUMBERS_TYPE_CLASS_SELL_WINIEN($ID_BILLING_NUMBERS);
+				DEBUG_S(3,'doc',$doc,__FILE__,__FUNCTION__,__LINE__);
+				
+				unset($echox) ;
+				
+				
+				
+				if($ADD_HTML_TAGS) {
+				$echox.= "
+				 <html>
+				 <head>
+				 <title>:: WEBONE - dokument systemu ::</title>
+				 <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\">
+				 </head>
+				 <body>
+				 <style>
+				 <!--
+				.print {
+				        COLOR: #000000;
+				        FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
+				        FONT-SIZE: 11px;
+				        FONT-WEIGHT: normal;
+				}
+				.border {border: 1px solid; border-color: #CFDBD5 CFDBD5 CFDBD5 #cfdbd5}
+				.border_light {border: 1px solid; border-color: #DEE7E2 #DDE7E2 #DEE7E2 #DEE7E2}
+				.path {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000000}
+				.butt {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; background-color: #E3EAE7; cursor: hand; font-weight: normal;}
+				td { font-family: verdana; font-size: 11px; color: #000000;}
+				";
+				
+				
+				//$echox=include($base_path."/style1.css");
+				$echox .= "
+				-->
+				</style>
+				
+				 ";
+				} //EOF if($ADD_HTML_TAGS) 
+				
+				
+				$echox.=self::tab_top();
+				
+				
+				
+				
+				
+				
+				
+				
+				
+				
+				$echox .="<td>";
+				$echox .="<font size=3>";
+				$echox .="<b>".$doc->result_BILLING_NUMBERS_TYPE['DESC']."</b> Nr  ".$doc->header->NUMBER." / ".$doc->header->ID_BILLING_PREFIXES;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ORYGINAŁ / KOPIA ";
+			//#	$FORM_DOKUMENT_NAGLOWEK="$all[DESC]  Nr $all[ID_BILLING_PREFIXES] / $all[NUMBER]";
+				
+				$echox .="</font>";
+				$echox .="</td>";
+				
+				
+				
+				$echox .=self::tab_bottom();
+				  
+				
+				
+				$echox .= self::tab_top();
+				//-------------
+				$echox .="<td>";
+				
+
+				$echox .="Sposób zapłaty: ".$doc->pay_option->name;
+				$echox .="<br>";
+
+								
+				/*
+				$dzisiaj = getdate(); 
+				$miesi±c = $dzisiaj['mon']; 
+				$dzien  = $dzisiaj['mday']; 
+				$rok    = $dzisiaj['year']; 
+				*/
+				list($rok,$miesiac,$dzien)=split('-',$doc->docum->SELL_DATE);
+				
+				
+				$dzien +=$doc->pay_option->pay_day;
+				if ($dzien>30){
+				    $dzien=1;
+				    $miesiac +=1;
+				    if ($miesiac>12){
+					$miesiac=1;
+					$rok +=1;
+				    }
+				}
+				
+				$datexx="$rok-$miesiac-$dzien";
+				//$datexx=date('Y-m-d');
+				 //TODO weryfikacja tego warunku - takie lekarstwo jakby termin byl zle ustawiony
+				if($doc->docum->PAYMENT_TERM<>"0000-00-00") $echox .="Termin płatności: ".$doc->docum->PAYMENT_TERM; 
+				 else  $echox .="Termin płatności: ".$datexx; 
+				$echox .="</td>";
+				//----------
+				//$echox .="</tr><tr>";
+				//----------
+				$echox .="<td align=right>";
+				$echox .="Data wystawienia: ".$doc->docum->BILL_DATE;
+				$echox .="<br>";
+				$echox .="Data sprzedaży: ".$doc->docum->SELL_DATE;
+				$echox .="</td>";
+				//-----------
+				
+				$echox .= self::tab_bottom($uid);
+				
+				
+				
+				$echox .="<hr>";
+				
+				$echox .= self::tab_top();
+				
+				//-------------
+				$echox .="<td width=55%>";
+				$echox .="<b>SPRZEDAWCA:</b>";
+				$echox .="<br>";
+				$echox .=$doc->owner->name1;
+				$echox .="<br>";
+				$echox .=$doc->owner->name2;
+				$echox .="<br>";
+				$echox .=$doc->owner->kod." ".$doc->owner->miasto.", ul. ".$doc->owner->ulica." ".$doc->owner->numer_dom;
+				if($doc->owner->numer_pos) $echox.=" / ".$doc->owner->numer_pos;
+				$echox .="<br>";
+				$echox .="tel. ".$doc->owner->tel.", fax ".$doc->owner->fax;
+				
+				
+				$echox .="<br>NIP: ".$doc->owner->nip;
+				
+			
+			
+	
+				
+				if($doc->owner->NR_RACH_MASS_PAY)  {
+				# 2007-05-02 generowalnie ogolnego nru rachunku zamiast dla konkretnej faktury
+				# $echox .= "<br>Nr rachunku bankowego dla <b>".$all[DESC]."</b> Nr  $all[NUMBER]/$all[ID_BILLING_PREFIXES]:<br><nobr>" . bankowy_formatuj_nrach(bankowy_make_nrach($all2[NR_RACH_MASS_PAY],$uid,$doc)) ."</nobr>";
+				 $echox .= "<br>Nr rachunku bankowego:<br><nobr>" . parent::bankowy_formatuj_nrach(parent::bankowy_make_nrach($doc->owner->NR_RACH_MASS_PAY,$doc->header->ID_BILLING_USERS,0)) ."</nobr>";
+				//  echo "bankowy_formatuj_nrachbankowy_make_nrach($all2[NR_RACH_MASS_PAY],$uid,$doc)";
+				 } else {
+				$echox .="<br>";
+				$echox .="Bank: ".$doc->owner->bank."<br>";
+				$echox .="Nr rachunku: ".$doc->owner->nr_rach;
+				 }
+				
+				
+				$echox .="</td>";
+				//----------
+				//$echox .="</tr><tr>";
+				
+				//----------
+				$echox .="<td width=45%>";
+				$echox .="<b>NABYWCA:</b>";
+				$echox .="<br>";
+				$echox .=$doc->client->P_NAME;
+				$echox .="<br>";
+				$echox .=$doc->client->P_NAME_SECOND;
+				$echox .="<br>";
+				$echox .="ul. ".$doc->client->P_ADDRESS_STREET." ".$doc->client->P_ADDRESS_HOUSE." / ".$doc->client->P_ADDRESS_HOME;
+				$echox .="<br>";
+				$echox .=$doc->client->P_ADDRESS_POST_CODE." ".$doc->client->P_ADDRESS_CITY;
+				$echox .="<br>";
+				#$echox .="tel. $all8[P_PHONE], fax $all8[P_FAX]";
+				if(strlen($doc->client->P_NIP)>1) $echox .="<br>NIP ".$doc->client->P_NIP;
+				$echox .="<br>";
+
+				
+				$echox .="</td>";
+				//-----------
+				$echox .= self::tab_bottom();
+				$ARR_OUT[0]=$echox ;
+				$ARR_OUT[1]=$FORM_DOKUMENT_NAGLOWEK ;
+				
+				$all_txt .=$echox ;
+
+								
+			
+
+				
+				$echox ="<br>";
+				//------top
+				$echox .= self::tab_top(1);
+				$echox .= "<td>lp.</td><td>Nazwa towaru/usługi</td><td>PKWiU</td><td>Jm</td><td>Ilość</td><td>Cena Netto</td><td>";
+				    $echox .="wartość Netto";
+				$echox .="</td><td>";
+				    $echox .="VAT %";
+				$echox .="</td><td>";
+				    $echox .="wartość VAT";
+				$echox .="</td>";
+				//---main												    
+				
+			
+				$i=1 ;
+			//	while($row = $vdb->sql_fetchrow($resultbl)){
+				foreach($doc->pos as $row){
+
+				$echox .="</tr><tr>";
+				
+				
+				
+				$echox .="<td>".$row->pos_number."</td><td>";
+				
+				    $echox .=$row->name;
+				    
+				
+				$echox .="</td><td>";
+				
+				    $echox .=$row->SWW_NAME;
+				
+				
+				$echox .="</td><td>";
+				    $echox .=$row->jednostka_miary2;
+				
+				
+				$echox .="</td><td>";
+				    $echox .=$row->AMMOUNT;
+				
+				
+				$echox .="</td><td>";
+				
+				    $echox .=$row->PRICE;
+				
+				$echox .="</td><td>";    
+				
+				
+				    $echox .= $row->netto ;
+				$echox .="</td><td align=\"center\">";
+				 $echox .=$row->VAT_NAME;
+				$echox .="</td><td>";
+				    $echox .=$row->allvat;
+				$echox .="</td>";    
+				
+				
+				
+				}
+				
+
+				$echox .= self::tab_bottom();
+				
+				
+				//--------------------------------------------------------------suma
+				$echox .="<br><br>";//<P align=right>";
+				
+				$echox .="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
+				$echox .="<tr><td width=\"50%\" align=\"center\">";
+				
+				$qr_nip=preg_replace('/-/','',$doc->owner->nip);
+				$qr_nr_rach=parent::bankowy_make_nrach($doc->owner->NR_RACH_MASS_PAY,$doc->header->ID_BILLING_USERS,0);
+				$qr_kwota=parent::formatuj_grosze($doc->docum->sqix_total[TOTAL][BRUTTO])*100;
+				while (strlen($qr_kwota)<6) $qr_kwota="0".$qr_kwota;
+				$qr_odbiorca=preg_replace('/\"/','',$doc->owner->name1);
+				$qr_tytul=$doc->result_BILLING_NUMBERS_TYPE['DESC']." nr ".$doc->header->NUMBER."/".$doc->header->ID_BILLING_PREFIXES;
+				$qr_text=$qr_nip."|PL|".$qr_nr_rach."|".$qr_kwota."|".$qr_odbiorca."|".$qr_tytul."|||";
+				$qr_text=iconv("iso-8859-2","utf-8",$qr_text);
+				
+				if ($file_png=tempnam('/tmp','qr-')) {
+				        QRcode::png($qr_text,$file_png,"L",2,2);
+				//	QRcode::png($qr_text,$file_png,"L",8,2);
+				//	$qr_size=getimagesize($file_png);
+				//	$qr_width=$qr_size[0]/4;
+					$qr_png=file_get_contents($file_png);
+					unlink($file_png);
+				}
+				//if ($qr_png) $echox.="<img alt=\"QR\" src=\"data:image/png;base64,".base64_encode($qr_png)."\" width=\"".$qr_width."\"><br>Skanuj i p³aæ";
+				if ($qr_png) $echox.="<img alt=\"QR\" src=\"data:image/png;base64,".base64_encode($qr_png)."\"><br>Skanuj i płać";
+				
+				
+				$echox .="</td><td align=\"right\">";
+				
+				$echox .=self::tab_top(1,"auto");
+				
+				$echox .="<td></td><td>Stawka VAT:</td><td>Netto</td><td>Podatek</td><td>Brutto</td></tr>";
+				
+				
+				foreach($doc->docum->sqix_total as $VAT_CLASS => $WARTOSC  ) {
+				//  echo " VAT CLASS to $VAT_CLASS wart $WARTOSC  <br>";
+				if($VAT_CLASS<>TOTAL) $echox .= "<tr><td> </td><td>".$VAT_CLASS."
+				
+				 </td><td>
+				 ".parent::formatuj_grosze($WARTOSC[NETTO])."
+				
+				 </td><td>
+				 ".parent::formatuj_grosze($WARTOSC[KW_VAT])." 
+				 </td><td>
+				
+				 ".parent::formatuj_grosze($WARTOSC[BRUTTO])."
+				 </td></tr>";
+				 }
+				
+				
+				
+				$echox .="<tr><td colspan=\"5\"><font size=\"-3\"><hr></td></tr>";
+				$echox .="<tr><td><b>Razem:</b></td><td></td><td>".parent::formatuj_grosze($doc->docum->sqix_total['TOTAL']['NETTO'])."</td><td>".parent::formatuj_grosze($doc->docum->sqix_total['TOTAL']['KW_VAT'])."</td><td>".parent::formatuj_grosze($doc->docum->sqix_total['TOTAL']['BRUTTO'])."</td></tr>";
+				
+				
+				
+				
+				
+				
+				$echox .="<tr><td colspan=5>Do zapłaty należność z podatkiem po zaokrągleniu: <b>".parent::formatuj_grosze($doc->docum->sqix_total[TOTAL][BRUTTO])."</b></td>";
+				    
+				
+				
+				$echox .=self::tab_bottom();
+				$echox .="</td></tr></table>";
+				//$echox .="</p>";
+				
+				
+				
+				//$echox .="<br><br>";
+				//------------------------------------------------------
+				$echox .=self::tab_top(0,"auto");
+				$echox .="<td nowrap><br><br>";
+				    $echox .="<b>SŁOWNIE:  </b>";
+				$echox .="<br>";
+				    $echox .= "".parent::slownie(parent::formatuj_grosze($doc->docum->sqix_total[TOTAL][BRUTTO]));
+				
+				
+				    $echox .="<hr>";
+				$echox .="</td>";
+				
+				$echox .=self::tab_bottom();
+				
+				$echox .="<br><br><br><br>";
+				
+				//------
+				$echox .=self::tab_top();
+				$echox .="<td align=center>";    
+				    $echox .="--------------------------------------";
+				$echox .="<br>";    
+				    $echox .="Osoba upoważniona";
+				$echox .="<br>";
+				    $echox .="do odbioru faktury";
+				$echox .="<br>";
+				$echox .="</td>";
+				//$echox .="</tr><tr>";
+				$echox .="<td align=center>";    
+				  if(!empty($doc->author)) { //Dane operatora wystawiajacego dokument
+				    $echox .="".$doc->author->P_NAME." ".$doc->author->P_NAME_SECOND."<br>"  ;
+				  }
+				    $echox .="--------------------------------------";
+				$echox .="<br>";    
+				    $echox .="osoba upoważniona";
+				$echox .="<br>";
+				    $echox .="do wystawienia faktury";
+				$echox .="<br>";
+				
+				$echox .="</td></tr>";
+				
+				
+				
+				#TEMP
+				#if ($all2[name1]=="\"BIALL-NET\" Sp. z o.o.")
+				#$echox .="<br><br><p align=center><b>UWAGA! Z dniem 2008-08-05 ulega zmianie adres Biura Handlowego na Che³mie.<br>Zapraszamy na Pasa¿ Che³mski przy ul. Cieszyñskiego 38/6 (by³a Apteka Pod Kasztanami).</b></p>";
+				#else
+				#$echox .="<br><br><p align=center><b>UWAGA! Z dniem 2008-08-05 ulega zmianie adres siedziby firmy.<br>Zapraszamy na Pasa¿ Che³mski przy ul. Cieszyñskiego 38/6 (by³a Apteka Pod Kasztanami).</b></p>";
+				#$echox .="<p align=left>";
+				
+				
+				#$echox .="<br><br><p align=left>";
+				
+				#DUPA 2011-10-18
+				$echox .="<tr><td colspan=2><br><br><br>";
+				$echox .="&#149; Niniejsza faktura jednocześnie jest wezwaniem do zapłaty.<br>";
+				$echox .="&#149; Od nieterminowych płatności mogą zostać naliczone odsetki ustawowe (art. 481 §1 KC).<br>";
+				$echox .="&#149; W przypadku nieterminowej zapłaty nabywca zostanie obciążony wszelkimi kosztami windykacji oraz postêpowania sądowego, które zostaną poniesione przez sprzedawcę w celu odzyskania należności.<br>";
+				$echox .="<hr>";
+				$echox .="<font size=\"1\">&copy; 2004-2014 webone-billing-system by BIALL-NET Sp. z o.o.</font> ";
+				$echox .="<hr>";
+				$echox .="</td></tr>";
+				
+				$echox .=self::tab_bottom();
+				
+				//$echox .="<hr>";
+				//$echox .="<font size=\"1\">(c) 2004 webone-billing-system by Arkadiusz Binder & www.grafnet.pl </font> ";
+				//$echox .="<hr>";
+				
+				
+				
+				
+				if($ADD_HTML_TAGS) {
+				$echox .="</body></html>";
+				}
+				
+				//$html2pdf = new HTML2PDF('P','A4','en');
+				//$html2pdf->WriteHTML($echox);
+				//$html2pdf->Output('exemple.pdf');
+				//return $echox;
+				//}
+				
+				
+				
+				$all_txt .= $echox;
+				
+				
+				if ($run==1){
+				
+				    $run=0;
+				//=====================================================definicje zmiennych ktore mozna uzyc jako taki w pismach
+				
+				    $sqld = "SELECT * FROM documents WHERE id_user='$uid' limit 1";
+				    $resultd = $vdb->sql_query($sqld);
+				    $alld=$vdb->sql_fetchrow($resultd);
+				    
+				    $sqlu = "SELECT * FROM BILLING_USERS_ADD WHERE id_users='$uid' limit 1";
+				    $resultu = $vdb->sql_query($sqlu);
+				    $allu=$vdb->sql_fetchrow($resultu);
+				}
+				
+				$FORM=$all_txt;
+				
+				if(!$BE_QUIET) echo"$FORM";
+				
+				//-----------------
+				if ($close==1){
+				    $sqlbl2="UPDATE ".$result_BILLING_NUMBERS_TYPE[TABLE]." SET OPEN='N' where ID_BILLING_USERS='$uid'";
+				    $resultbl2 = $vdb->sql_query($sqlbl2);
+				    ZAMKNIJ_DOKUMENT($doc,$result_BILLING_NUMBERS_TYPE);
+				}
+		
+	}
+	
+
+
+	
+
+	function bm_show_document($ID_BILLING_NUMBERS){
+	
+		$doc=parent::get_document_type($ID_BILLING_NUMBERS);
+		DEBUG_S(3,'Doctype',$doc,__FILE__,__FUNCTION__,__LINE__);
+		
+		if(method_exists($this,'show_doc_BILLING_NUMBERS_TYPE_CLASS_'.$doc['CLASS'])) {
+			//echo "<br> Odpalam ".$doc['CLASS'];
+			$func="show_doc_BILLING_NUMBERS_TYPE_CLASS_".$doc['CLASS'];
+			self::$func($ID_BILLING_NUMBERS);
+		} else {
+			echo "<br> Brak klasy do wyswietlania show_doc_BILLING_NUMBERS_TYPE_CLASS_".$doc['CLASS'];			
+		}
+
+		
+	}
+
+}

+ 1 - 0
SE/se-lib/Core/Database.php

@@ -10,6 +10,7 @@ class Core_Database {
 		$this->_conn = null;
 		$this->_errors = array();
 		$this->_database_name = $database;
+		if(!empty($params['zasob_id'])) $this->_zasob_id=$params['zasob_id'];
 	}
 
 	public function getDatabaseName() {

Plik diff jest za duży
+ 0 - 1
SE/se-lib/Nodes_path_analys.php


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików