| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560 |
- <?php
- Lib::loadClass('TableAcl');
- Lib::loadClass('UserAcl');
- // TODO: @used_by:
- // $result_KORV = Billing::lista_korekt($row['ID_BILLING_NUMBERS']);
- // $fp = Billing::BILLING_USERS_ADD($fv_naglowek['ID_BILLING_USERS']);
- // Billing::get_BILLING_NUMBERS_TYPE();
- // $lista_dok_finansowych = Billing::lista_dok_finansowych();
- class Billing {
- function __construct($DATABASE) {
- if (empty($DATABASE)) die('You must set in config database for billing zasob_id variable');
- $this->_pdo = DB::getPDO($DATABASE);
- $this->TableAcl->GetTablesByDbId = TableAcl::GetTablesByDbId($DATABASE);
- }
- function set_client_filter($ID_BILLING_USERS) {
- $this->set_client_filter=$ID_BILLING_USERS;
- }
- function show_doc_BILLING_NUMBER_TYPE_header($ID_BILLING_NUMBERS) {
- return $this->_pdo->fetchFirstAsObject("
- select ID, ID_BILLING_PREFIXES, NUMBER, ID_BILLING_USERS, U_ID, BILLING_OWNER
- from BILLING_NUMBERS
- where ID = {$ID_BILLING_NUMBERS}
- ");
- }
- 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);
- $docum = $this->_pdo->fetchFirstAsObject("
- select *
- from {$result_BILLING_NUMBERS_TYPE['TABLE']}
- where ID_BILLING_NUMBERS = {$header->ID}
- ");
- $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);
- $billingTblName = $result_BILLING_NUMBERS_TYPE['TABLE'];
- $billingNumbersTblName = $result_BILLING_NUMBERS_TYPE['BILLING_NUMBERS_TABLE'];
- $header = $this->show_doc_BILLING_NUMBER_TYPE_header($ID_BILLING_NUMBERS);
- $docum = $this->_pdo->fetchFirstAsObject("
- select *
- from {$billingTblName}
- where ID_BILLING_NUMBERS = {$header->ID}
- ");
- $sqlbl = "
- select {$billingNumbersTblName}.NUMBER
- , {$billingTblName}.ID
- , {$billingTblName}_POS.ID_BILLS_FVAT
- , {$billingTblName}_POS.VAT_NAME
- , {$billingTblName}_POS.VAT
- , {$billingTblName}_POS.ID_SERVICES
- , {$billingTblName}_POS.DESCR
- , {$billingTblName}_POS.ID as POS_ID
- , {$billingTblName}_POS.PRICE
- , {$billingTblName}_POS.AMMOUNT
- , {$billingTblName}_POS.DATE_FROM
- , {$billingTblName}_POS.DATE_TO
- , {$billingTblName}_POS.PRICE * {$billingTblName}_POS.AMMOUNT as WARTOSC
- , {$billingTblName}.PAYMENT_TYPE
- , LIST_SERVICES.description
- , list_sww.name as SWW_NAME
- , LIST_SERVICES2.description as description2
- , LIST_SERVICES2.jednostka_miary as jednostka_miary2
- from {$billingNumbersTblName}
- left join {$billingTblName} on {$billingTblName}.ID_BILLING_NUMBERS={$billingNumbersTblName}.ID
- left join {$billingTblName}_POS on {$billingTblName}.ID={$billingTblName}_POS.ID_BILLS_FVAT
- left join SERVICES on SERVICES.ID={$billingTblName}_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={$billingTblName}_POS.id_list_services
- left join list_sww on {$billingTblName}_POS.id_list_sww=list_sww.id
- where {$billingTblName}.ID_BILLING_NUMBERS = '{$ID_BILLING_NUMBERS}'
- ";
- $sth = $this->_pdo->prepare($sqlbl);
- $i = 1;
- $docum->razem_netto = 0;
- $docum->razem_brutto = 0;
- $sth->execute();
- while ($item = $sth->fetch()) {
- $h = (object)$item;
- $pos[$i] = $h;
- 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'] += round($h->AMMOUNT * $h->PRICE, 2);
- $docum->sqix_total['TOTAL']['BRUTTO'] += round(($h->AMMOUNT * $h->PRICE), 2) + round(($h->AMMOUNT * $h->PRICE * $h->VAT/100), 2);
- $docum->sqix_total['TOTAL']['KW_VAT'] += round($h->AMMOUNT * $h->PRICE * $h->VAT/100, 2);
- $docum->sqix_total[$VAT_CLASS]['NETTO'] += round($h->AMMOUNT * $h->PRICE, 2);
- $docum->sqix_total[$VAT_CLASS]['BRUTTO'] += round($h->AMMOUNT * $h->PRICE, 2) + round($h->AMMOUNT * $h->PRICE * $h->VAT/100, 2);
- $docum->sqix_total[$VAT_CLASS]['KW_VAT'] += round($h->AMMOUNT * $h->PRICE * $h->VAT/100, 2);
- $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++;
- }
- $client = $this->BILLING_USERS_ADD($header->ID_BILLING_USERS);
- $author = $this->BILLING_USERS_ADD($header->U_ID);
- $owner = $this->BILLING_OWNER($client->BILLING_OWNER);
- $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>";
- return $this->_pdo->fetchFirstAsObject($sql4);
-
- }
- */
- function check_perms() {
- $userAcl = User::getAcl();
- foreach ($this->add_require_perm as $table_name => $column_array) {
- $acl_ = $userAcl->getTableAcl($this->TableAcl->GetTablesByDbId[$table_name]);
- DEBUG_S(3,'acl for table '.$table_name." (".$this->TableAcl->GetTablesByDbId[$table_name].")",$acl_,__FILE__,__FUNCTION__,__LINE__);
- foreach($column_array as $column_name => $rwxc) {
- $colId = $acl_->getFieldIdByName($column_name);
- if (!$acl_->hasFieldPerm($colId, $rwxc)) {
- 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) {
- return $this->_pdo->fetchFirstAsObject("
- select *
- from BILLING_OWNER
- where id = {$ID_BILLING_OWNER}
- ");
- }
- function LIST_FORM_PAY($id_used_pay_type = null, $user_accessible_pay_type = null) {
- if (!empty($id_used_pay_type)) {
- return $this->_pdo->fetchFirstAsObject("
- SELECT *
- FROM list_form_pay
- WHERE id = {$id_used_pay_type}
- ");
- }
- if (!empty($user_accessible_pay_type)) {
- return $this->_pdo->fetchFirstAsObject("
- SELECT *
- FROM list_form_pay
- WHERE id = {$user_accessible_pay_type}
- ");
- }
- }
- function BILLING_USERS_ADD($ID_BILLING_USERS) {
- return $this->_pdo->fetchFirstAsObject("
- select *
- from COMPANIES
- where ID = '{$ID_BILLING_USERS}'
- ");
- }
- //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;
- }
- 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;
- }
- //$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
- ";
- return array_map(function ($item) {
- return (object)$item;
- }, $this->_pdo->fetchAll($sql7));
- }
- 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 ";
- return $this->_pdo->fetchAll($sql);
- }
- 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_arr = [];
- $i = 0;
- $listItems = $this->_pdo->fetchAll($sql);
- foreach ($listItems as $h) {
- $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 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."'
- ";
- $i = 0;
- $listItems = $this->_pdo->fetchAll($sql);
- foreach ($listItems as $h) {
- $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);
- $this->BILLING_NUMBERS_TYPE = $this->_pdo->fetchAllByKey("
- select *
- from BILLING_NUMBERS_TYPE
- where ID in (" . implode(',', $ID_BILLING_NUMBERS_ARR) . ")
- ", 'ID');
- }
- function get_BILLING_NUMBERS_TYPE_all() {
- //zwraca typy dowiazan do tabel fakturujacych
- $ID_BILLING_NUMBERS_ARR = array(1,3,4,5,7,3,8);
- $this->BILLING_NUMBERS_TYPE = $this->_pdo->fetchAllByKey("
- select *
- from BILLING_NUMBERS_TYPE
- where ID in (" . implode(',', $ID_BILLING_NUMBERS_ARR) . ")
- ", 'ID');
- }
- 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();
- $idType = $this->_pdo->fetchValue("
- select ID_BILLING_NUMBERS_TYPE
- from BILLING_NUMBERS
- where ID = {$ID_BILLING_NUMBERS}
- ");
- if ($idType) return $this->BILLING_NUMBERS_TYPE_ALL[$idType];
- }
- //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
- ";
- $result_S_N_R = $this->_pdo->fetchFirst($sql);
- 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->_pdo->fetchFirst($sql);
- $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;
- }
- }
|