| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532 |
- <?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($DATABASE)) die('You must set in config database for billing zasob_id variable');
- $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) {
- $this->add_require_perm('BILLING_NUMBERS','ID','R');
- $this->check_perms();
- $result_BILLING_NUMBERS_TYPE = $this->get_document_type($ID_BILLING_NUMBERS);
- $header = $this->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 = $this->BILLING_USERS_ADD($header->ID_BILLING_USERS);
- $author = $this->BILLING_USERS_ADD($header->U_ID);
- $owner = $this->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) {
- $this->add_require_perm('BILLING_NUMBERS','ID','R');
- $this->check_perms();
- $result_BILLING_NUMBERS_TYPE = $this->get_document_type($ID_BILLING_NUMBERS);
- DEBUG_S(3,'result_BILLING_NUMBERS_TYPE',$result_BILLING_NUMBERS_TYPE,__FILE__,__FUNCTION__,__LINE__);
- $header = $this->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."'
- ";
- $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 = $this->formatuj_grosze($h->AMMOUNT*$h->PRICE*$h->VAT/100);
- $netto = $this->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=$this->BILLING_USERS_ADD($header->ID_BILLING_USERS);
- $author=$this->BILLING_USERS_ADD($header->U_ID);
- DEBUG_S(3,'client',$client,__FILE__,__FUNCTION__,__LINE__);
- $owner=$this->BILLING_OWNER($client->BILLING_OWNER);
- DEBUG_S(3,'owner',$owner,__FILE__,__FUNCTION__,__LINE__);
-
- $pay_option=$this->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]);
- 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)) {
- 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."'";
- $db = DB::getDB();
- $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";
- }
- 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=$this->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=$this->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 getListaFaktur() {
- $this->add_require_perm('BILLS_FVAT','ID','R');
- //$this->add_require_perm('BILLS_FVAT','ID_CURRENCY','R');
- $this->add_require_perm('BILLS_FVAT_POS','ID','X');
- $this->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
- -- price bug: , sum((BILLS_FVAT_POS.AMMOUNT * BILLS_FVAT_POS.PRICE) * ( 1 + BILLS_FVAT_POS.VAT / 100)) as WARTOSC
- , sum(round((round(BILLS_FVAT_POS.AMMOUNT * BILLS_FVAT_POS.PRICE, 2)) * (1 + BILLS_FVAT_POS.VAT / 100), 2)) 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) {
- $this->add_require_perm('BILLS_KORV','ID','R');
- //$this->add_require_perm('BILLS_FVAT','ID_CURRENCY','R');
- $this->add_require_perm('BILLS_KORV_POS','ID','X'); //TODO
- // $this->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 ";
- $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=$this->$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)) $this->get_BILLING_NUMBERS_TYPE_all();
- $sql="select ID_BILLING_NUMBERS_TYPE from BILLING_NUMBERS where ID=".$ID_BILLING_NUMBERS;
- $res=$this->db->query($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 ;
- //$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($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) biling_process_db_process_call('UPDATEFLAG',"$execute_process[REQUIREFLAG]") ;
- //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" ;
- }
- }
- 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="%";
- 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]) ;
- 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";
- }
-
- 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) ;
- 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]");
- //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];
- }
- 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 ;
- 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 ;
- $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]) ;
- $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) ;
- 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" ;
- }
- }
- }
- //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($process_services[$NAZWA_PROCESS_SERVICES_FIND_ID_LIST]) biling_process_db_process_call('UPDATEFLAG',"$execute_process[REQUIREFLAG]") ;
- } 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" ;
- }
- }
- 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 ;
- 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 "<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 "<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 "<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) : ";
- $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 "<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 ;
- 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'" ;
- $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')" ;
- $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 = $this->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";
- }
- $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')" ;
- $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] " ;
- $result_S_N_R = $this->SZUKAJ_NIEROZLICZONEJ_TRANSAKCJI("$FINANCE_KSIEGOWANIE",$ID_BILLING_USERS_DOK,$FINANCE_KSIEGOWANIE_KWOTA,'',$ID_BILLING_NUMBERS,'TYLKO_ROZLICZ',"$result_BIGJOIN[REMOTE_ID_BILLING_NUMBERS]") ;
- } else {
- 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]) ;
- 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 = $this->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" ;
- 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;
- }
- 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="" ;
- }
- 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++) {
- $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." ".$this->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 ;
- }
- if($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>" ;
- $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 ";
- $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>" ;
- }
-
- 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[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";
- 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" )) ;
- 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
- $this->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) $this->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;
- }
- }
- 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;
- }
- function ZAMKNIJ_DOKUMENT_TYLKO_KSIEGUJ($ID_BILLING_NUMBERS,$FLAGI) {
- global $vdb, $ERROR ;
- 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]);
- 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' ";
- $result_BIGJOIN=$vdb->sql_query("$sql") ;
- $result_BIGJOIN=$vdb->sql_fetchrow("$result_BIGJOIN[0]") ;
- if(($result_BIGJOIN[1]==0) || (!($result_BIGJOIN[1]))) {
- $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" ;
- } } }
- }
- }
- 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.";
- }
- 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 ";
- }
- }
- }
- //@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) {
- echo "<br>f.ROZLICZ_1_TRANSAKCJE , dla argumentu numeru ID_BILLING_NUMBERS: ".$ID_BILLING_NUMBERS." <br> \n";
- global $vdb, $result_BILLING_NUMBERS_TYPE ;
- 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);
- 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>";
- $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 ";
- 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 ;
- }
- 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);
- 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>" ;
- echo "<br><b> WYKRYWAM KWOTE ZALEGLOSCI DLA $SRC_ID_BILLING_NUMBERS, ($ACTION) </b>" ;
- $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>";
- echo "..... <font color=red> <b>WYKRYLEM POZOSTALA KWOTE KWOTE $KWOTA (a nasza to $POZ_S_N_R_KWOTA) </b></font>" ;
- 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" ;
- 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" ;
- 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[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] = "" ;
- 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" ;
- 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";
- $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>";
- }
- }
- //@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) {
- if(isset($ID_BILLING_USERS_1)) $and=" and ID_BILLING_USERS='".$ID_BILLING_USERS_1."' ";
- $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']);
- flush();
- }
- }
- 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 .= $this->policz(substr($kwotazl, 0,3),"miliard","miliardy","miliardów");
- $txt .= $this->policz(substr($kwotazl, 3,3),"milion","miliony","milionów");
- $txt .= $this->policz(substr($kwotazl, 6,3),"tysiąc","tysiące","tysięcy");
- $txt .= $this->policz(substr($kwotazl, 9,3),"złoty","złote","złotych");
- if ($kwotazl==0) $txt .= "zero złotych ";
- $txt .= " i ";
- $txt .= $this->policz($kwotagr,"grosz","grosze","groszy");
- if ($kwotagr==0) $txt .= "zero groszy";
- return $txt;
- }
- }
|