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