|
|
@@ -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 > $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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|