";
if(!isset($_GET[MIESIAC])) $_GET[MIESIAC]='0';
echo "// AD -1 RAPORT_CROSS tabela truncate etc.";
$ZAP_SQL="truncate table RAPORT_CROSS";
ZAP_SQL($ZAP_SQL);
if($_GET[REQ_DELETE_RAPORT_AFTER]) {
//jezeli jest $_GET[REQ_DELETE_RAPORT_AFTER], to nalezy raz usunac rekordy z datami po tej dacie
$ZAP_SQL="delete from RAPORT_CROSS_XML where RPAD_DATA>'".$_GET[REQ_DELETE_RAPORT_AFTER]."'";
echo " ".$ZAP_SQL;
ZAP_SQL($ZAP_SQL);
}
if($_GET[REMOVE_RAPORT_TABLES]) {
//jezeli jest $_GET[REQ_DELETE_RAPORT_AFTER], to nalezy raz usunac rekordy z datami po tej dacie
$ZAP_SQL="truncate table RAPORT_CROSS_XML";
echo " ".$ZAP_SQL;
ZAP_SQL($ZAP_SQL);
$ZAP_SQL="truncate table RAPORT_CROSS";
echo " ".$ZAP_SQL;
ZAP_SQL($ZAP_SQL);
$ZAP_SQL="truncate table RAPORT_PROJECT_COSTS";
echo " ".$ZAP_SQL;
ZAP_SQL($ZAP_SQL);
}
echo "// AD0 - ";
error_reporting(E_ALL);
include("superedit-SEF.php");
SEF("INDEKS24_SQIX");
// INDEKS24_SQIX(90,2);
// die("dupa");
//0. Budowa tabeli slownikowej INDEKS24
$ILOSC_MIESIECY_DO_ANALIZY_WSTECZ=12;
// echo " //Tworze slownikowa tabele od 0 do ".$ILOSC_MIESIECY_DO_ANALIZY_WSTECZ." miesiecy w przeszlosc\n";
$ZAP_SQL=" drop table if exists INDEKS24 ;"; //echo " $ZAP_SQL \n";
ZAP_SQL($ZAP_SQL);
$ZAP_SQL=" create table INDEKS24 (ID int(3) , DATA date , DATA_LIKE varchar(50) ) ;";
// echo " $ZAP_SQL \n";
ZAP_SQL($ZAP_SQL);
$i=-10; //ile wprzod zaczac (minus)
$LP=$i*-1;
while ($i < $ILOSC_MIESIECY_DO_ANALIZY_WSTECZ ) {
$i++;
$LP--;
//echo "Nas z miesiac to $i ";
$ZAP_SQL="insert into INDEKS24 SELECT '".$LP."', DATE_FORMAT(concat(PERIOD_ADD( DATE_FORMAT(now(), '%Y%m') ,-$i),'01'),'%Y-%m-%d') , DATE_FORMAT(concat(PERIOD_ADD( DATE_FORMAT(now(), '%Y%m') ,-$i),'01'),'%Y-%m-%'); ";
ZAP_SQL($ZAP_SQL);
//TODO uncomment DATA_CREATE
// echo " $ZAP_SQL \n ";
//EOF Tworze slownikowa tabele od 0 do 24
}
ZAP_SQL("select 1+1");
$ZAP_SQL="select * from INDEKS24 order by ID";
$RES_PETLA_AD0=mysql_query($ZAP_SQL);
while($RPAD=mysql_fetch_object($RES_PETLA_AD0)) {
echo " Jade date ".$RPAD->DATA_LIKE." oraz ".$RPAD->DATA." poprzedni \$PETLA_AD0['LAST_RPAD_DATA'] to : ".$PETLA_AD0['LAST_RPAD_DATA'];
$_GET[DATA_ANALIZY]=$RPAD->DATA_LIKE ;
//echo "// AD0 a1) ( AD-1 a1) Wczytanie danych z RAPORT_CROSS ) , jak sa.
//wczytujemy tylko ostatni raport, reszte trzeba olac, wiec szukamy ostatniego, jaki jest
$ZAP_SQL="select RPAD_DATA , LAST_RPAD_DATA from RAPORT_CROSS_XML where RPAD_DATA='".$RPAD->DATA."' order by ID ";
echo " AD0e: ".$ZAP_SQL ;
$RES_AD0e=mysql_query($ZAP_SQL);
while($RES_AD0e_R=mysql_fetch_object($RES_AD0e)) { //zczytujemy tablice do skryptu!
$AD0e['LAST_RPAD_DATA']=$RES_AD0e_R->RPAD_DATA ;
$PETLA_AD0['LAST_RPAD_DATA']=$RES_AD0e_R->LAST_RPAD_DATA; //TODO wywalic?
echo " znalazlem rapot XML last to : ".$RES_AD0e_R->LAST_RPAD_DATA;
}
if((mysql_num_rows($RES_AD0e)==0)||(strstr($RPAD->DATA_LIKE,$_GET[REQ_DATA_ANALIZY]))) {
$AD0e['LOAD_RPAD_DATA_FLAG']=$AD0e['LAST_RPAD_DATA'];
echo " Adduje FLAGE ".$AD0e['LOAD_RPAD_DATA_FLAG']." , i ide dalej z caloscia, bo numrows: ".mysql_num_rows($RES_AD0e)." oraz strstr(".$RPAD->DATA_LIKE.",".$_GET[REQ_DATA_ANALIZY].")=1" ;
} else { continue ; //przerywamy dalsze kroki w petli AD0?
echo " Kontynuuje bo result to: ".mysql_num_rows($RES_AD0e)." oraz strstr(".$RPAD->DATA_LIKE.",".$_GET[REQ_DATA_ANALIZY].")=1";
}
$ZAP_SQL="select * from RAPORT_CROSS_XML where RPAD_DATA='".$AD0e['LAST_RPAD_DATA']."' or RPAD_DATA='xxxxx".$RPAD->DATA."' order by ID desc limit 1 ";
echo " RObie AD0 ".$ZAP_SQL;
$RES_AD0a1=mysql_query($ZAP_SQL);
$AD0a1['FLAG_RAPORT_NOT_EXISTS']=0;
while($RES_AD0a1_R=mysql_fetch_object($RES_AD0a1)) { //zczytujemy tablice do skryptu!
// print_r($RES_AD0a1_R);
if(isset($UNSERIALIZE)) unset($UNSERIALIZE);
$UNSERIALIZE=array();
$UNSERIALIZE=unserialize($RES_AD0a1_R->XML);
// print_r($UNSERIALIZEE);
//echo $RES_AD0a1_R->XML;
// die('problem...');
// $DATA[$RES_AD0a1_R->DATA__ID_PROJECT]=$UNSERIALIZE[''] ;
echo " Zapisuje do DATA_HIST[".$RES_AD0a1_R->RPAD_DATA."]['DATA']=" ;
// print_r($UNSERIALIZE['DATA']);
// die();
$DATA_HIST[$RES_AD0a1_R->RPAD_DATA]['DATA']=$UNSERIALIZE['DATA'];
$DATA_HIST[$RES_AD0a1_R->RPAD_DATA]['OFER']=$UNSERIALIZE['OFER'];
$DATA_HIST[$RES_AD0a1_R->RPAD_DATA]['OFER_TOTAL']=$UNSERIALIZE['OFER_TOTAL'];
$DATA_HIST[$RES_AD0a1_R->RPAD_DATA]['DATA_R']=$UNSERIALIZE['DATA_R']; //rewir historia
$DATA_SORT=$UNSERIALIZE['DATA_SORT'];
$PETLA_AD0['LAST_RPAD_DATA']=$RES_AD0a1_R->LAST_RPAD_DATA ; //do uzycia PRZYROSTOW_Z_OSTATNIEGO dla WARTOSCI/PARAMETROW
echo " Z AD0 l585 : poprzedni \$PETLA_AD0['LAST_RPAD_DATA'] to : ".$PETLA_AD0['LAST_RPAD_DATA'];
$AD0a1['FLAG_RAPORT_NOT_EXISTS']=1;
}
if($AD0a1['FLAG_RAPORT_NOT_EXISTS']==1) {
$DATA=$UNSERIALIZE['DATA']; // w ostatnim ID napelniamy ostatnie DATA, jako aktualne DATA
// $OFER=$UNSERIALIZE['OFER']; // w ostatnim ID napelniamy ostatnie DATA, jako aktualne DATA
// $OFER_TOTAL=$UNSERIALIZE['OFER_TOTAL']; // w ostatnim ID napelniamy ostatnie DATA, jako aktualne DATA
// print_r($DATA_HIST);
// die();
echo " mamy tobic CONTINUE";
if(!strstr($RPAD->DATA_LIKE,$_GET[DATA_ANALIZY])) {
echo " //Olewamy dalsza analize skryptu w rozumieniu $RES_AD0a1_R->RPAD_DATA ";
continue;
}
// tagujemy fragmenty kodu do olewania : if($AD0a1['FLAG_RAPORT_NOT_EXISTS']==1) {
// } //eof if($AD0a1['FLAG_RAPORT_NOT_EXISTS']==1)
}
//echo "// AD0 b) - jedziemy po datach i tworzymy DATA_HIST, ale na samym koncu ";
// AD0 b) , jak chcemy wylaczyc petle lat, to trzeba wyremowac AD0 b) nizej na lini 1058 EOF
//die();
flush();
//echo "// AD0
echo "// AD0 c) - kasujemy zmienne kumulacyjne dla stalych okresowych ";
foreach($DATA as $DATA_I=>$DATA_V) { //kasujemy dane w PROJEKTACH = DATA
if(isset($DATA_V['LOCAL']['ILOSC_FAKTUR'])) unset($DATA[$DATA_I]['LOCAL']['ILOSC_FAKTUR']);
if(isset($DATA_V['LOCAL']['ILOSC_POZYCJI'])) unset($DATA[$DATA_I]['LOCAL']['ILOSC_POZYCJI']);
// foreach($DATA_V['OFER_USED'] as $OFER_USER_I=>$OFER_USED_V) {
// if(isset($OFER_USED_V['ILOSC_FAKTUR'])) unset($DATA[$DATA_I]['OFER_USED'][$OFER_USED_V]['ILOSC_FAKTUR']);
// if(isset($OFER_USED_V['ILOSC_POZYCJI'])) unset($DATA[$DATA_I]['OFER_USED'][$OFER_USED_V]['ILOSC_POZYCJI']);
// }
if(isset($DATA_V['OFER_USED'])) unset($DATA[$DATA_I]['OFER_USED']);
if(isset($DATA_V['LOCAL']['HC'])) unset($DATA[$DATA_I]['LOCAL']['HC']);
if(isset($DATA_V['LOCAL']['ilosc_budynkow'])) unset($DATA[$DATA_I]['LOCAL']['ilosc_budynkow']);
if(isset($DATA_V['LOCAL']['np_budynek'])) unset($DATA[$DATA_I]['LOCAL']['np_budynek']);
if(isset($DATA_V['LOCAL']['ILOSC_POWIAZANYCH_KOSZTOW_OFERT'])) unset($DATA[$DATA_I]['LOCAL']['ILOSC_POWIAZANYCH_KOSZTOW_OFERT']);
if(isset($DATA_V['LOCAL']['M_REWIR'])) unset($DATA[$DATA_I]['LOCAL']['M_REWIR']);
if(isset($DATA_V['CALCULATED_AD4_TO_RAPORT'])) unset($DATA[$DATA_I]['CALCULATED_AD4_TO_RAPORT']);
}
if(isset($DATA_R)) {
foreach($DATA_R as $IND=>$VAL) { //kasujemy dane w REWIRACH
if(isset($VAL['ILOSC_FAKTUR'])) unset($DATA_R[$IND]['ILOSC_FAKTUR']);
if(isset($VAL['ILOSC_POZYCJI'])) unset($DATA_R[$IND]['ILOSC_POZYCJI']);
}
}
//EOF AD0 c) - kasujemy zmienne
//new od 2011-09-07
$ZAP_SQL="select min(t1.ID_SERVICES) as ID_SERVICES , sum(t1.PRICE*t1.AMMOUNT) as SUM_TOTAL ,
sum(t1.PRICE*if(year(t1.DATE_FROM)=year(now()) and month(t1.DATE_FROM)=month(now())-".$RPAD->DATA.",t1.AMMOUNT,0)) as SPRZED_LAST_MC ,
sum(if(year(t1.DATE_FROM)=year(now()) and month(t1.DATE_FROM)=month(now())-".$RPAD->DATA.",1,0)) as ILOSC_ABO,
t2.T_NETWORK_SERVER , COALESCE(t3.M_REWIR,'BRAK-REWIR') as M_REWIR , COALESCE(t4.ID_PROJECT,'BRAK') as ID_PROJECT , t4.ID as BUILDINGS_ID , t2.S_ADDRESS_STREET as S_ADDRESS_STREET , t11.NAME_LIST_SERVICES as NAME_LIST_SERVICES
, t11.ID_OFFERS as T11_ID_OFFERS , count(t1.ID) as ILOSC_FAKTUR , count(t1.AMMOUNT) as ILOSC_POZYCJI
from BILLS_FVAT_POS as t1
left join BILLS_FVAT as BFV on BFV.ID=t1.ID_BILLS_FVAT
left join SERVICES as t11 on t1.ID_SERVICES=t11.ID
left join USERS2 as t2 on t1.ID_SERVICES=t2.ID_SERVICES
left join USERS2_MARKETING as t3 on ( t2.S_ADDRESS_STREET=t3.S_ADDRESS_STREET )
left join BUILDINGS as t4 on ( t3.T_TELBOX_BUILDING_IN=t4.S_ADDRESS_STREET and t4.A_STATUS!='DELETED')
where t1.ID_SERVICES > 0
and t11.NAME_LIST_SERVICES='USERS2'
and BFV.BILL_DATE like '".$_GET[DATA_ANALIZY]."'
group by t3.M_REWIR , t11.ID_OFFERS
union
select min(t1.ID_SERVICES) as ID_SERVICES , sum(t1.PRICE*t1.AMMOUNT) as SUM_TOTAL ,
sum(t1.PRICE*if(year(t1.DATE_FROM)=year(now()) and month(t1.DATE_FROM)=month(now())-".$RPAD->DATA.",t1.AMMOUNT,0)) as SPRZED_LAST_MC ,
sum(if(year(t1.DATE_FROM)=year(now()) and month(t1.DATE_FROM)=month(now())-".$RPAD->DATA.",1,0)) as ILOSC_ABO,
t2.T_NETWORK_SERVER , COALESCE(t3.M_REWIR,'BRAK-REWIR') as M_REWIR , COALESCE(t4.ID_PROJECT,'BRAK') as ID_PROJECT , t4.ID as BUILDINGS_ID , t2.S_ADDRESS_STREET as S_ADDRESS_STREET , t11.NAME_LIST_SERVICES as NAME_LIST_SERVICES
, t11.ID_OFFERS as T11_ID_OFFERS , count(t1.ID) as ILOSC_FAKTUR , count(t1.AMMOUNT) as ILOSC_POZYCJI
from BILLS_FVAT_POS as t1
left join BILLS_FVAT as BFV on BFV.ID=t1.ID_BILLS_FVAT
left join SERVICES as t11 on t1.ID_SERVICES=t11.ID
left join SES_TV_A as t2 on t1.ID_SERVICES=t2.ID_SERVICES
left join USERS2_MARKETING as t3 on ( t2.S_ADDRESS_STREET=t3.S_ADDRESS_STREET )
left join BUILDINGS as t4 on ( t3.T_TELBOX_BUILDING_IN=t4.S_ADDRESS_STREET and t4.A_STATUS!='DELETED')
where t1.ID_SERVICES > 0
and t11.NAME_LIST_SERVICES='TV'
and BFV.BILL_DATE like '".$_GET[DATA_ANALIZY]."'
group by t3.M_REWIR , t11.ID_OFFERS
union
select min(t1.ID_SERVICES) as ID_SERVICES , sum(t1.PRICE*t1.AMMOUNT) as SUM_TOTAL ,
sum(t1.PRICE*if(year(t1.DATE_FROM)=year(now()) and month(t1.DATE_FROM)=month(now())-".$RPAD->DATA.",t1.AMMOUNT,0)) as SPRZED_LAST_MC ,
sum(if(year(t1.DATE_FROM)=year(now()) and month(t1.DATE_FROM)=month(now())-".$RPAD->DATA.",1,0)) as ILOSC_ABO,
t2.T_NETWORK_SERVER , COALESCE(t3.M_REWIR,'BRAK-REWIR') as M_REWIR , COALESCE(t4.ID_PROJECT,'BRAK') as ID_PROJECT , t4.ID as BUILDINGS_ID , t2.S_ADDRESS_STREET as S_ADDRESS_STREET , t11.NAME_LIST_SERVICES as NAME_LIST_SERVICES
, t11.ID_OFFERS as T11_ID_OFFERS , count(t1.ID) as ILOSC_FAKTUR , count(t1.AMMOUNT) as ILOSC_POZYCJI
from BILLS_FVAT_POS as t1
left join BILLS_FVAT as BFV on BFV.ID=t1.ID_BILLS_FVAT
left join SERVICES as t11 on t1.ID_SERVICES=t11.ID
left join SERVICES as t111 on t11.ID=t111.P_ID_SERVICES
left join USERS2 as t2 on t2.ID_SERVICES=t111.ID
left join USERS2_MARKETING as t3 on ( t2.S_ADDRESS_STREET=t3.S_ADDRESS_STREET )
left join BUILDINGS as t4 on ( t3.T_TELBOX_BUILDING_IN=t4.S_ADDRESS_STREET and t4.A_STATUS!='DELETED')
where t1.ID_SERVICES > 0
and t11.NAME_LIST_SERVICES='VOIP'
and BFV.BILL_DATE like '".$_GET[DATA_ANALIZY]."'
group by t3.M_REWIR , t11.ID_OFFERS
order by M_REWIR,ID_PROJECT
; "; //group by t3.M_REWIR //zrobmy limit TODO usunac limit
//TODO zmienic po 2011-09-30 , aby bylo group by BILLS_FVAT_POS.ID_OFFERS zamiast SERVICES_ID_OFFERS
//TODO czy count(ID) od faktur to jest ilosc uslug, czy COUNT(AMMOUNT) ? do dalszych rozwazan 2011-09-30
//echo "ZAP SQL to $ZAP_SQL \n ";
if(!$_SESSION['ADM_ADMIN_LEVEL']=="0") echo "BRAK UPRAWNIEN "; else ZAP_SQL("$ZAP_SQL");
echo "";
echo "| ID_SRV | SPRZED_TOTAL | SPRZED_LAST_MC | ILOSC_ABO_LAST | T_NETWK_SERV | REWIR | ID_PROJECT | | ";
while($DWA=mysql_fetch_array($result)) {
//print_r($DWA);
echo "| ".$DWA['ID_SERVICES']." | ".$DWA['SUM_TOTAL']." | ".$DWA['SPRZED_LAST_MC']." | ".$DWA['ILOSC_ABO']." | ".$DWA['T_NETWORK_SERVER']." | ".$DWA['M_REWIR']." | ".$DWA['ID_PROJECT']."/".$DWA['BUILDINGS_ID']."/".$DWA['S_ADDRESS_STREET']."/".$DWA['NAME_LIST_SERVICES']." | \n";
$DATA[$DWA['ID_PROJECT']]['ID_PROJECT']=$DWA['ID_PROJECT'];
$DATA[$DWA['ID_PROJECT']]['LOCAL']['REWIR']=$DWA['M_REWIR'];
//TO NIC NIE DAJE sql $DATA[$DWA['ID_PROJECT']]['LOCAL'][ILOSC_ABO_LAST]+=$DWA['ILOSC_ABO']; //TODO bedzie zle CUMULATED
//TO NIC NIE DAJE sql $DATA[$DWA['ID_PROJECT']]['LOCAL'][SPRZED_LAST_MC]+=$DWA['SPRZED_LAST_MC']; //TODO bedzie zle CUMULATED
$DATA[$DWA['ID_PROJECT']]['LOCAL']['SPRZED_TOTAL']+=$DWA['SUM_TOTAL']; //czy ?? TODO bedzie zle CUMULATED
$DATA[$DWA['ID_PROJECT']]['LOCAL']['ILOSC_FAKTUR']+=$DWA['ILOSC_FAKTUR']; //RESETOWANE
$DATA[$DWA['ID_PROJECT']]['LOCAL']['ILOSC_POZYCJI']+=$DWA['ILOSC_POZYCJI']; //RESETOWANE
//niby na potrzeby AD3c - wkladamy ilosc uzycia ofert
$DATA[$DWA['ID_PROJECT']]['OFER_USED'][$DWA['T11_ID_OFFERS']]['ILOSC_FAKTUR']+=$DWA['ILOSC_FAKTUR']; //RESETOWANE
$DATA[$DWA['ID_PROJECT']]['OFER_USED'][$DWA['T11_ID_OFFERS']]['ILOSC_POZYCJI']+=$DWA['ILOSC_POZYCJI']; //RESETOWANE
$DATA_R[$DWA['M_REWIR']][ID_PROJECT]=$DWA['ID_PROJECT'];
$DATA_R[$DWA['M_REWIR']][REWIR]=$DWA['M_REWIR'];
// $DATA_R[$DWA['M_REWIR']][ILOSC_ABO_LAST]+=$DWA['ILOSC_ABO']; //TODO bedzie zle CUMULATED
// $DATA_R[$DWA['M_REWIR']][SPRZED_LAST_MC]+=$DWA['SPRZED_LAST_MC']; //TODO bedzie zle CUMULATED
$DATA_R[$DWA['M_REWIR']][SPRZED_TOTAL]+=$DWA['SUM_TOTAL']; //TODO bedzie zle CUMULATED
$DATA_R[$DWA['M_REWIR']][ILOSC_FAKTUR]+=$DWA['ILOSC_FAKTUR']; //TODO bedzie zle CUMULATED
$DATA_R[$DWA['M_REWIR']][ILOSC_POZYCJI]+=$DWA['ILOSC_POZYCJI']; //TODO bedzie zle CUMULATED
} //EOF while sqlfetch
echo " ";
// echo " //AD.1) szukamy kosztow projektow i ich wzajemnych powiazan- moze i tez ich mieszkan";
$ZAP_SQL="select t1.ID, t1.P_ID , t1.M_DIST_DESC, sum(t2.wartosc) as t2_wartosc , count(t2.ID) as ilosc_faktur , min(t2.DATA_DOK) as I_ZACZETO , max(t2.DATA_DOK) as I_ZAKONCZONO
from IN7_MK_BAZA_DYSTRYBUCJI as t1
left join KSIEG_DOKUMENTY as t2 on t1.ID=t2.ID_PROJECT
where t2.A_STATUS!='DELETED'
and t2.DATA_DOK like '".$_GET[DATA_ANALIZY]."'
group by t1.ID "; //and ( t1.ID=138 or t1.ID=168 or t1.ID=446 )
echo "\n".$ZAP_SQL."\n"; //koszty wyliczone 1 raz dla calosci to :
//446=3 152,07+ 0,00 (3 152,07) = 3 152,07 ; zgadza sie przy wyzwoleniach perLATA
// 138=52 355,67+ 0,00 (52 355,67) = 52 355,67 ; to tez OK ;
// 168=181,41+ 0,00 (181,41) = 181,41 ; to tez OK ;
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
//print_r($R2);
$DATA[$R2->ID]['LOCAL']['ID_PROJECT']=$R2->ID;
list($DATA[$R2->ID]['LOCAL']['PARENT'])=split('[ ,]',$R2->P_ID);
$DATA[$R2->ID]['LOCAL']['COSTS']+=floatval($R2->t2_wartosc); //CUMULATED - KWOTA
$DATA[$R2->ID]['LOCAL']['ilosc_faktur']+=floatval($R2->ilosc_faktur); //CUMULATED - KWOTA
$DATA[$R2->ID]['LOCAL']['I_ZACZETO']=$R2->I_ZACZETO;
$DATA[$R2->ID]['LOCAL']['I_ZAKONCZONO']=$R2->I_ZAKONCZONO;
}
/* //AD.1) e1) i jeszcze dodajemy koszty projektow z ID_PROJECT do kosztow glownego projektu -
2011-09-30 !!! TODO zaniechano to dzialanie, z uwagi na niekonsekwencje ID_PROJECT i balagan z tym zwiazany - usunac kolumne ID_PROJECT z projektow!
$ZAP_SQL="select t1.ID, t1.P_ID , t1.M_DIST_DESC, t1.ID_PROJECT , sum(t2.wartosc) as t2_wartosc , count(t2.ID) as ilosc_faktur , min(t2.DATA_DOK) as I_ZACZETO , max(t2.DATA_DOK) as I_ZAKONCZONO from IN7_MK_BAZA_DYSTRYBUCJI as t1 left join KSIEG_DOKUMENTY as t2 on t1.ID=t2.ID_PROJECT where t1.ID_PROJECT>0 group by t1.ID ";
echo "\n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
//print_r($R2);
$DATA[$R2->ID_PROJECT]['ID_PROJECT']['ID_PROJECT']=$R2->ID;
list($DATA[$R2->ID_PROJECT]['ID_PROJECT']['PARENT'])=split('[ ,]',$R2->P_ID);
$DATA[$R2->ID_PROJECT]['ID_PROJECT']['COSTS']=floatval($R2->t2_wartosc);
$DATA[$R2->ID_PROJECT]['ID_PROJECT']['ilosc_faktur']=floatval($R2->ilosc_faktur);
$DATA[$R2->ID_PROJECT]['ID_PROJECT']['I_ZACZETO']=$R2->I_ZACZETO;
$DATA[$R2->ID_PROJECT]['ID_PROJECT']['I_ZAKONCZONO']=$R2->I_ZAKONCZONO;
}
*/
echo " //AD.1-1) szukamy kosztow projektow i ich wzajemnych powiazan- moze i tez ich mieszkan";
$ZAP_SQL="select t1.ID, t1.P_ID , t1.M_DIST_DESC, count(t3.ID) as ilosc_budynkow , t3.S_ADDRESS_STREET as np_budynek ,
sum(t4.MIESZKAN) as HC from IN7_MK_BAZA_DYSTRYBUCJI as t1
left join BUILDINGS as t3 on t1.ID=t3.ID_PROJECT left join USERS2_MARKETING_OVERWIEV as t4 on t3.S_ADDRESS_STREET=t4.T_TELBOX_BUILDING_IN
group by t1.ID "; //TODO brac budynki tylko po dacie $RPAD->DATA
echo "\n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
// print_r($R2);
$DATA[$R2->ID]['LOCAL']['M_DIST_DESC']=$R2->M_DIST_DESC;
$DATA[$R2->ID]['LOCAL']['HC']=$R2->HC;
$DATA[$R2->ID]['LOCAL']['ilosc_budynkow']=$R2->ilosc_budynkow;
$DATA[$R2->ID]['LOCAL']['np_budynek']=$R2->np_budynek;
if(($R2->HC<1)&&($R2->ilosc_budynkow>=1)) { echo " Error z mieszkaniami dla proj: ".$R2->ID.""; $DATA[$R2->ID]['LOCAL']['HC']=1 ;}
}
//echo "//AD.1-2) szukamy kosztow projektow i ich wzajemnych powiazan- moze i tez ich mieszkan - REWIR_INFO";
$ZAP_SQL="select t1.ID, t1.P_ID , t1.M_DIST_DESC, count(t3.ID) as ilosc_budynkow , t3.S_ADDRESS_STREET as np_budynek ,
sum(t4.MIESZKAN) as HC , t3.M_REWIR as M_REWIR from IN7_MK_BAZA_DYSTRYBUCJI as t1
left join BUILDINGS as t3 on t1.ID=t3.ID_PROJECT
left join USERS2_MARKETING_OVERWIEV as t4 on t3.S_ADDRESS_STREET=t4.T_TELBOX_BUILDING_IN
group by t1.ID,t3.M_REWIR ";
// echo "\n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
// print_r($R2);
list($DATA[$R2->ID]['LOCAL']['PARENT'])=split('[ ,]',$R2->P_ID);
$DATA[$R2->ID]['LOCAL']['M_REWIR'][$R2->M_REWIR]['HC']=$R2->HC;
$DATA[$R2->ID]['LOCAL']['M_REWIR'][$R2->M_REWIR]['ilosc_budynkow']=$R2->ilosc_budynkow;
$DATA[$R2->ID]['LOCAL']['M_REWIR'][$R2->M_REWIR]['np_budynek']=$R2->np_budynek;
}
//echo "// tutaj wykrywamy 2e1) czyli jakie projekty maja powiazane koszty ofert - SA KOSZTAMI OFERT";
$ZAP_SQL="select t1.ID, t1.M_DIST_DESC , count(t2.ID) as ILOSC_POWIAZANYCH_KOSZTOW_OFERT
from IN7_MK_BAZA_DYSTRYBUCJI as t1
left join USERS2_OFFERS_COSTS as t2 on t1.ID=t2.ID_PROJECT group by t1.ID "; //TODO czy zwiazac to jakos ? $RPAD->DATA
// echo "\n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
// print_r($R2);
if($R2->ILOSC_POWIAZANYCH_KOSZTOW_OFERT>0) {
$DATA[$R2->ID]['LOCAL']['HC']+=1; //RESETTED line 600
$DATA[$R2->ID]['LOCAL']['ilosc_budynkow']+=1; //RESETTED line 600
$DATA[$R2->ID]['LOCAL']['np_budynek']+=1;//RESETTED line 600
$DATA[$R2->ID]['LOCAL']['ILOSC_POWIAZANYCH_KOSZTOW_OFERT']+=$R2->ILOSC_POWIAZANYCH_KOSZTOW_OFERT; //TODO CUMULATED//RESETTED line 600
$DATA[$R2->ID]['LOCAL']['M_REWIR']['']['HC']+=1;//RESETTED line 600
$DATA[$R2->ID]['LOCAL']['M_REWIR']['']['ilosc_budynkow']+=1;//RESETTED line 600
$DATA[$R2->ID]['LOCAL']['M_REWIR']['']['np_budynek']+=1;//RESETTED line 600
$DATA[$R2->ID]['LOCAL']['M_REWIR']['']['ILOSC_POWIAZANYCH_KOSZTOW_OFERT']+=$R2->ILOSC_POWIAZANYCH_KOSZTOW_OFERT;//RESETTED line 600
}
}
//TODO drzewo mozna zrobic RAZ!
if(!isset($DATA_SORT)) {
// echo " //begin krok2 x) budujemy sciezki po do root'a";
foreach($DATA as $ID_PROJECT=>$ARRAY) {
// $DATA[$ID_PROJECT]['CHILD']
$CURR_ROOT=$ARRAY['LOCAL']['PARENT'];
for($i = 1; $i <= 100; $i++){
if(isset($DATA[$ID_PROJECT]['PATH']))$DATA[$ID_PROJECT]['PATH'].=",". $CURR_ROOT; else $DATA[$ID_PROJECT]['PATH'].=$CURR_ROOT;
$DATA[$ID_PROJECT]['PATH_LEN']++;
// $DATA[$CURR_ROOT]['CHILD'][$ID_PROJECT]['COSTS']=$ARRAY['LOCAL']['COSTS'];
// $DATA[$CURR_ROOT]['CHILD'][$ID_PROJECT]['HC']=$ARRAY['LOCAL']['HC'];
// $DATA[$CURR_ROOT]['CHILD'][$ID_PROJECT]['ilosc_budynkow']=$ARRAY['LOCAL']['ilosc_budynkow'];
if($CURR_ROOT==0) break;
$CURR_ROOT=$DATA[$CURR_ROOT]['LOCAL']['PARENT'];
}
}
// echo " //robimy indeks z dlugoscia kluczy";
foreach($DATA as $ID_PROJECT=>$ARRAY) {
$DATA_SORT[$ID_PROJECT]=$ARRAY['PATH_LEN'];
}
arsort($DATA_SORT);
}
//echo "//print_r($DATA_SORT); - z dolu do gory //lecimy ad 2) x - b) - ile HC ";
foreach($DATA_SORT as $ID_PROJECT=>$VAL){
// echo "\n!!!!!!!".$ID_PROJECT;
$PARENT=$DATA[$ID_PROJECT]['LOCAL']['PARENT'];
$HC_SUM=$DATA[$ID_PROJECT]['LOCAL']['HC'];
$CHILD_COST_SUM=0;
foreach($DATA[$ID_PROJECT]['CHILD'] as $CHILD_ID=>$CHILD_ID_VAL) { //najdluzszy path(ostatni) nie ma dzieci!
$HC_SUM+=$CHILD_ID_VAL['HC'];
$CHILD_COST_SUM+=$CHILD_ID_VAL['COSTS'];
}
if($HC_SUM>0) $DATA[$PARENT]['CHILD'][$ID_PROJECT]['HC']=$HC_SUM; //sa mieszkania, to zapisujemy , ze dziecko ma mieszkania i nie dajemy kosztu do dzialy do PARENTA
else if($DATA[$ID_PROJECT]['LOCAL']['COSTS']+$CHILD_COST_SUM>0) //jezeli nie ma mieszkan i ma koszty
$DATA[$PARENT]['CHILD'][$ID_PROJECT]['COSTS']=$DATA[$ID_PROJECT]['LOCAL']['COSTS']+$CHILD_COST_SUM; //to zapisujemy koszt siebie, jako koszt dziecka w PARENCIE
//$DATA[$]
}
//echo "
// AD 2. c) - lecimy z kosztami i nadajemy je dzieciom [X][CALCULATED][COST,RATIO] proporcjami od CHILD[HC]
//brakuje teraz kroku nadania kosztow wyzej z pustych mieszkan!
//jedziemy z gory do dolu";
if(!isset($DATA_SORT_R)) { //1 wyzwolenie - raz mozna to zrobic
$DATA_SORT_R=$DATA_SORT;
asort($DATA_SORT_R);
}
//print_r($DATA_SORT_R);
//die();
foreach($DATA_SORT_R as $ID_PROJECT=>$ARRAY) {
$HC_SUM=0;
$CHILD_COSTS=0;
foreach($DATA[$ID_PROJECT]['CHILD'] as $CHILD_ID=>$CHILD_ID_VAL){
$HC_SUM+=$CHILD_ID_VAL['HC'];
$CHILD_COSTS+=$CHILD_ID_VAL['COSTS'];
}
$DATA[$ID_PROJECT]['CALCULATED']['RATIO_LOCAL']=$DATA[$ID_PROJECT]['LOCAL']['HC']/($HC_SUM+$DATA[$ID_PROJECT]['LOCAL']['HC']);
$DATA[$ID_PROJECT]['CALCULATED']['COST_LOCAL']=($DATA[$ID_PROJECT]['LOCAL']['COSTS']+$CHILD_COSTS)*$DATA[$ID_PROJECT]['CALCULATED']['RATIO_LOCAL'];
$DATA[$ID_PROJECT]['CALCULATED']['CHILD_COSTS']=$CHILD_COSTS;
$DATA[$ID_PROJECT]['CALCULATED']['HC_SUM_CHILD_LOCAL']=$HC_SUM+$DATA[$ID_PROJECT]['LOCAL']['HC'];
foreach($DATA[$ID_PROJECT]['CHILD'] as $CHILD_ID=>$CHILD_ID_VAL){
if($CHILD_ID_VAL['HC']/$DATA[$ID_PROJECT]['CALCULATED']['HC_SUM_CHILD_LOCAL']>0) //jezeli wezel kosztu ma mieszkanie to rozliczamy
$DATA[$ID_PROJECT]['CHILD'][$CHILD_ID]['RATIO']=$CHILD_ID_VAL['HC']/$DATA[$ID_PROJECT]['CALCULATED']['HC_SUM_CHILD_LOCAL'];
if(($DATA[$ID_PROJECT]['LOCAL']['COSTS']+$DATA[$ID_PROJECT]['LOCAL']['COST_PARENT'])*$DATA[$ID_PROJECT]['CHILD'][$CHILD_ID]['RATIO']>0)
$DATA[$CHILD_ID]['CALCULATED']['COST_PARENT']=($DATA[$ID_PROJECT]['LOCAL']['COSTS']+$DATA[$ID_PROJECT]['LOCAL']['COST_PARENT'])*$DATA[$ID_PROJECT]['CHILD'][$CHILD_ID]['RATIO'];
}
}
/*
echo "
//AD 3a) jakie koszty uslug powstaly na ID_PROJECT(USERS2_OFFERS_COSTS)
// statystyka oferty od strony sprzedazy faktur
// \$OFER['ID']['TOTAL']['COUNT']- ile jest sprzedanych danych ofert w danym miesiacu
// \$OFER['ID'](YEAR)(MONTH)['START']- ile w danym miesiacu bylo uruchomien danej oferty
// \$OFER['ID'](YEAR)(MONTH)['DISCONNECT']- ile w danym miesiacu bylo zakonczen danej oferty
// \$OFER['ID']['TOTAL']['SALE']- jaka jest wartosc sprzedazy danej oferty
// \$OFER['ID']['COST_PER_SVC']- jaka jest nominalna wartosc zakupow danej oferty/1 usluga
// \$OFER['ID']['TOTAL']['POWERCOST']- jaka jest nominalna wartosc zakupow danej oferty ( COST_PER_SVC*COUNT)
//\$OFER['ID']['ID_PROJECTS']['X']['ID_PROJECT_SELL']= ( wartosc sprzedazy zwazona proporcja kosztu )$OFER[$IND]['TOTAL']['SALE']/$OFER[$IND]['COST_PER_SVC']*$R2->T4_COST_POWER
// statystyka kosztow na danej sprawie
// \$DATA['ID'][OFFERS_COSTS](YEAR)(MONTH)['TOTAL_POWER']- jaka jest sumaryczna wartosc zakupow w danym miesiacu - do faktur sprzed
// \$DATA['ID'][OFFERS_COSTS](YEAR)(MONTH)['COSTS']- jaka jest sumaryczna wartosc zakupow w danym miesiacu - z faktur
// \$DATA['ID'][OFFERS_COSTS](YEAR)(MONTH)['COSTS']
//
// najpierw liczymy sprzedaz";
*/
$ZAP_SQL="select count(t1.ID) as T1_COUNT , sum(t1.AMMOUNT*t1.PRICE) as T1_SALE , t2.ID_OFFERS
from BILLS_FVAT_POS as t1
left join BILLS_FVAT as t11 on t11.ID=t1.ID_BILLS_FVAT
left join SERVICES as t2 on t1.ID_SERVICES=t2.ID where t11.BILL_DATE like '".$_GET[DATA_ANALIZY]."'
group by t2.ID_OFFERS ";
// echo "\n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
$OFER[$R2->ID_OFFERS]['TOTAL']['COUNT']=$R2->T1_COUNT ; //- ile jest sprzedanych danych ofert w danym miesiacu
//$OFER[$R2->ID_OFFERS](YEAR)(MONTH)['START']- ile w danym miesiacu bylo uruchomien danej oferty
//$OFER[$R2->ID_OFFERS](YEAR)(MONTH)['DISCONNECT']- ile w danym miesiacu bylo zakonczen danej oferty
$OFER[$R2->ID_OFFERS]['TOTAL']['SALE']=$R2->T1_SALE; //- jaka jest wartosc sprzedazy danej oferty
//TODO CUMULATED!
}
//echo "// sprzedaz ciag dalszy
";
foreach($OFER as $IND=>$VAL) {
$ZAP_SQL="select t4.ID_PROJECT as T4_ID_PROJECT_COST , t4.COST_POWER as T4_COST_POWER
from USERS2_OFFERS as t3
left join USERS2_OFFERS_COSTS as t4 on t3.ID_COSTS_GROUPS=t4.ID_COSTS_GROUPS
where t3.ID='".$IND."' group by t4.ID
"; //TODO TERMINY
// echo "786: \n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL); flush();
while($R2=mysql_fetch_object($result)) { //tu naliczymy koszty na projekt i sprzedaz na projekt
$OFER[$IND]['COST_PER_SVC']+=$R2->T4_COST_POWER ; // jaka jest nominalna wartosc zakupow danej oferty
$OFER[$IND]['TOTAL']['ID_PROJECTS'][$R2->T4_ID_PROJECT_COST]['ID_PROJECT_COST']=$R2->T4_COST_POWER*$OFER[$IND]['TOTAL']['COUNT'];
//$OFER[$IND]['TOTAL']['POWERCOST']=$R2->T4_COST_POWER*$OFER[$IND]['TOTAL']['COUNT'];
}
}
//echo "// dalej koszty, tu wyliczymy sprzedaz proporcjonalnie do kosztow z danej sprawy wg rozdzialu wskaznikow kosztow";
foreach($OFER as $IND=>$VAL) {
$ZAP_SQL="select t4.ID_PROJECT as T4_ID_PROJECT_COST , t4.COST_POWER as T4_COST_POWER , t3.ID_COSTS_GROUPS
from USERS2_OFFERS as t3
left join USERS2_OFFERS_COSTS as t4 on t3.ID_COSTS_GROUPS=t4.ID_COSTS_GROUPS
where t3.ID='".$IND." group by t4.ID'
";
// echo "804: \n".$ZAP_SQL."\n";
ZAP_SQL($ZAP_SQL); flush();
while($R2=mysql_fetch_object($result)) { //tu naliczymy koszty na projekt i sprzedaz na projekt
//$OFER[$IND]['COST_PER_SVC']+=$R2->T4_COST_POWER ; // jaka jest nominalna wartosc zakupow danej oferty
$OFER[$IND]['TOTAL']['ID_COSTS_GROUPS']=$R2->ID_COSTS_GROUPS ;
$OFER[$IND]['TOTAL']['ID_PROJECTS'][$R2->T4_ID_PROJECT_COST]['ID_PROJECT_SELL']=$OFER[$IND]['TOTAL']['SALE']/$OFER[$IND]['COST_PER_SVC']*$R2->T4_COST_POWER;
}
}
//echo "//teraz tworzymy zmienna \$OFER_TOTAL - zawierajaca wyliczenia z galezi \$OFER";
foreach($OFER as $IND=>$VAL) {
foreach($VAL['TOTAL']['ID_PROJECTS'] as $IND1=>$VAL1) {
$OFER_TOTAL['ID_PROJECTS'][$IND1]['ID_PROJECT_COST']+=$VAL1['ID_PROJECT_COST'];
$OFER_TOTAL['ID_PROJECTS'][$IND1]['ID_PROJECT_SELL']+=$VAL1['ID_PROJECT_SELL'];
}
}
foreach($OFER_TOTAL['ID_PROJECTS'] as $IND=>$VAL) {
$OFER_TOTAL['TOTAL']['ID_PROJECT_COST']+=$VAL['ID_PROJECT_COST'];
$OFER_TOTAL['TOTAL']['ID_PROJECT_SELL']+=$VAL['ID_PROJECT_SELL'];
}
//echo "
// teraz dokladamy dane z DATA (kosztow projektow) , i naliczamy je ofertom
// bierzemy dane z DATA i dorzucamy je do OFFER_TOTAL";
foreach($OFER_TOTAL['ID_PROJECTS'] as $IND=>$VAL) {
$OFER_TOTAL['ID_PROJECTS'][$IND]['DATA']['COSTS']=$DATA[$IND]['LOCAL']['COSTS'];
$OFER_TOTAL['ID_PROJECTS'][$IND]['DATA']['CHILD_COSTS']=$DATA[$IND]['CALCULATED']['CHILD_COSTS'];
// $OFER_TOTAL['ID_PROJECTS'][$IND]['DATA']['TOTAL_COSTS']=$OFER_TOTAL['ID_PROJECTS'][$IND]['DATA']['CHILD_COSTS']+$OFER_TOTAL['ID_PROJECTS'][$IND]['DATA']['COSTS'];
$OFER_TOTAL['ID_PROJECTS'][$IND]['DATA']['TOTAL_COSTS']=$DATA[$IND]['CALCULATED']['COST_LOCAL'] + $DATA[$IND]['CALCULATED']['COST_PARENT'];
}
foreach($OFER as $IND=>$VAL) {
foreach($VAL['TOTAL']['ID_PROJECTS'] as $IND1=>$VAL1) {
//l1 a teraz wyliczamy jakie % udzialu w koszcie danego projektu stanowi dana oferta ==ID_PROJECT_COST_RATIO
//l1: echo "\n Wyliczam dla Oferty:".$IND." oraz projektu:".$IND1." , gdzie koszt wyniesie:".$VAL1['ID_PROJECT_COST']."/".$OFER_TOTAL['ID_PROJECTS'][$IND1]['ID_PROJECT_COST']." \n!!";
$OFER[$IND]['TOTAL']['ID_PROJECTS'][$IND1]['ID_PROJECT_COST_RATIO']=$VAL1['ID_PROJECT_COST']/$OFER_TOTAL['ID_PROJECTS'][$IND1]['ID_PROJECT_COST'];
//l2 a teraz wyliczamy $OFER['TOTAL']['CALCULATED__ , jaki jest proporcjonalnie nalezny koszt na usluge, jaki wszedl itp
$OFER[$IND]['TOTAL']['ID_PROJECTS'][$IND1]['CALCULATED_TOTAL_COSTS']=$OFER[$IND]['TOTAL']['ID_PROJECTS'][$IND1]['ID_PROJECT_COST_RATIO']*$OFER_TOTAL['ID_PROJECTS'][$IND1]['DATA']['TOTAL_COSTS'];
$OFER[$IND]['TOTAL']['CALCULATED_TOTAL_COSTS']+=$OFER[$IND]['TOTAL']['ID_PROJECTS'][$IND1]['CALCULATED_TOTAL_COSTS'];
}
// udalo sie wyliczyc realny wskaznik kosztu danej oferty
$OFER[$IND]['TOTAL']['CALCULATED_COST_PER_SVC']=$OFER[$IND]['TOTAL']['CALCULATED_TOTAL_COSTS']/$OFER[$IND]['TOTAL']['COUNT'];
}
//echo "// AD3 c) przemielamy ponownie sprzedaz cala, nanosimy koszty projektom w oparciu o dane realne z offer - mamy DATA[OFER_USED]
-robimy CALCULATED_AD3";
foreach($DATA as $ID_PROJECT=>$ARRAY) {
foreach($ARRAY['OFER_USED'] as $OFER_USED=>$OFER_USED_ARR) {
$DATA[$ID_PROJECT]['CALCULATED_AD3']['OFERS'][$OFER_USED]['CALCULATED_COST_PER_SVC']+=$OFER_USED_ARR['ILOSC_FAKTUR']*$OFER[$OFER_USED]['TOTAL']['CALCULATED_COST_PER_SVC'];
$DATA[$ID_PROJECT]['CALCULATED_AD3']['OFERS'][$OFER_USED]['COST_PER_SVC']+=$OFER_USED_ARR['ILOSC_FAKTUR']*$OFER[$OFER_USED]['COST_PER_SVC'];
if($OFER_USED<1) $DATA[$ID_PROJECT]['CALCULATED_AD3']['OFERS'][$OFER_USED]['ERROR_NO_OFFER_ID']+=1;
//['ILOSC_FAKTUR']
}
}
//echo "// AD3c) podsumowujemy DATA[CALCULATED_AD3][OFERS] ";
foreach($DATA as $ID_PROJECT=>$ARRAY) {
foreach($ARRAY['CALCULATED_AD3']['OFERS'] as $CALCULATED_AD3=>$CALCULATED_AD3_ARR) {
$DATA[$ID_PROJECT]['CALCULATED_AD3']['CALCULATED_COST_PER_SVC']+=$CALCULATED_AD3_ARR['CALCULATED_COST_PER_SVC'];
$DATA[$ID_PROJECT]['CALCULATED_AD3']['COST_PER_SVC']+=$CALCULATED_AD3_ARR['COST_PER_SVC'];
}
}
//echo "// AD4 - Raport uzytych licencji - idziemy po \$OFER[TOTAL][COUNT] i sumujemy - potem bedziemy jeszcze sprawdzac z projektami
// ze struktur ofert, co wynikalo z nich do raportowania - po offer_costs.
// czytamy strukture ofert ";
$ZAP_SQL="select * from USERS2_OFFERS_COSTS where A_STATUS!='DELETED' ";
ZAP_SQL($ZAP_SQL);
flush();
while($R2=mysql_fetch_object($result)) {
$ID_COSTS_GROUPS[$R2->ID_COSTS_GROUPS][$R2->ID_PROJECT]['COST_POWER']=$R2->COST_POWER;
$ID_COSTS_GROUPS[$R2->ID_COSTS_GROUPS][$R2->ID_PROJECT]['COST_OFFSET_MONTH_BILLED']=$R2->COST_OFFSET_MONTH_BILLED;
$ID_COSTS_GROUPS[$R2->ID_COSTS_GROUPS][$R2->ID_PROJECT]['COST_ACCOUNTED_ON']=$R2->COST_ACCOUNTED_ON;
}
// echo "// jedziemy teraz po danych z ID_COST_GROUPS dla ofert, ";
foreach($DATA as $ID_PROJECT=>$ARRAY){
foreach($ARRAY['OFER_USED'] as $OFER_USED=>$OFER_USED_ARR) {
// poznajmy klase ID_COSTS_GROUPS z danych z $OFER[$IND]['TOTAL']['ID_COSTS_GROUPS']
foreach($ID_COSTS_GROUPS[$OFER[$OFER_USED]['TOTAL']['ID_COSTS_GROUPS']] as $IDCG_I=>$IDCG_A) {
$DATA[$IDCG_I]['CALCULATED_AD4_TO_RAPORT'][$OFER_USED]['COST_POWER_ILOSC_FAKTUR_'.$IDCG_A['COST_POWER']]+=$OFER_USED_ARR['ILOSC_FAKTUR'];
$DATA[$IDCG_I]['CALCULATED_AD4_TO_RAPORT'][$OFER_USED]['COST_POWER_ILOSC_POZYCJI_'.$IDCG_A['COST_POWER']]+=$OFER_USED_ARR['ILOSC_POZYCJI'];
}
}
}
//wydrukujmy dane
echo " Tabela do raportowania uzyc kosztow oplat \n
| ID Projektu | OPIS sprawy | Z jakiej oferty | Wartosc Stawki naliczonej oplaty | Ilosc faktur | ";
foreach($DATA as $ID_PROJECT=>$ARRAY){
// if(isset($ARRAY['CALCULATED_AD4_TO_RAPORT'])) echo "";
foreach($ARRAY['CALCULATED_AD4_TO_RAPORT'] as $CATR_I=>$CATR_A) {
foreach($CATR_A as $CATR_I_1=>$CATR_I_1_A) {
echo " | ".$ID_PROJECT." | ".$ARRAY['LOCAL']['M_DIST_DESC'] ." | ".$CATR_I." |
".$CATR_I_1." | ".$CATR_I_1_A." | ";
//ad 4b) raport licencji do tabeli RAPORT_PROJECT_COSTS
unset($ZAP_SQL); unset($AD4b);
if(strstr($CATR_I_1,'COST_POWER_ILOSC_POZYCJI_'))
list(,$AD4b['COST_POWER'])=explode("COST_POWER_ILOSC_POZYCJI_",$CATR_I_1);
else
list(,$AD4b['ILOSC_FAKTUR'])=explode("COST_POWER_ILOSC_FAKTUR_",$CATR_I_1);
$ZAP_SQL['FIELD'][]='A_STATUS'; $ZAP_SQL['VALUE'][]="'WAITING'";
$ZAP_SQL['FIELD'][]='A_RECORD_CREATE_AUTHOR'; $ZAP_SQL['VALUE'][]="'".$_SESSION['ADM_ACCOUNT']."'";
$ZAP_SQL['FIELD'][]='A_RECORD_CREATE_DATE'; $ZAP_SQL['VALUE'][]="now()";
$ZAP_SQL['FIELD'][]='RPAD_DATA'; $ZAP_SQL['VALUE'][]="'".$RPAD->DATA."'";
$ZAP_SQL['FIELD'][]='ID_PROJECT'; $ZAP_SQL['VALUE'][]="'".$ID_PROJECT."'";
// $ZAP_SQL['FIELD'][]='XML'; $ZAP_SQL['VALUE'][]="'"."'";
$ZAP_SQL['FIELD'][]='ID_OFFER'; $ZAP_SQL['VALUE'][]="'".$CATR_I."'";
$ZAP_SQL['FIELD'][]='COST_POWER'; $ZAP_SQL['VALUE'][]="'".$AD4b['COST_POWER']."'";
$ZAP_SQL['FIELD'][]='ILOSC_FAKTUR'; $ZAP_SQL['VALUE'][]="'".$AD4b['ILOSC_FAKTUR']."'";
$ZAP_SQL['FIELD'][]='DATA_COUNT'; $ZAP_SQL['VALUE'][]="'".$CATR_I_1_A."'";
$ZAP_SQL['SQL']="insert into RAPORT_PROJECT_COSTS ( ID ";
foreach($ZAP_SQL['FIELD'] as $FIELD) {
$ZAP_SQL['SQL'].=",`".$FIELD."`" ;
}
$ZAP_SQL['SQL'].=" ) values ( '' ";
foreach($ZAP_SQL['VALUE'] as $VALUE) {
$ZAP_SQL['SQL'].=",".$VALUE ;
}
$ZAP_SQL['SQL'].=" ) ";
// echo $ZAP_SQL['SQL'];
ZAP_SQL($ZAP_SQL['SQL']);
}
}
}
echo " \n";
echo "";
echo "| 1ID_PROJEKT | 2a(ILOSC POWIAZANYCH KOSZTOW OFERT) ZAKUP:SPRZED | 2b (LAST ) |
3[M DIST DESC] REWIR PRZYKLAD (HC+HC CHILDS) | INWESTYCJE LOCAL+PARENT(Local) | KOSZT DZIECI | SPRZED_TOTAL | SPRZED_LAST_MC | KLIENTOW | ZA ILE M-CY ZWROT ( z kosztami uslug) | I_ZACZETO | I_ZAKONCZONO |
Koszty Sprzedazy Uslug (planowano) | OFERT SPRZED [ZAKUP] (err) |
\n";
foreach($DATA as $DATA_I=>$DATA_V) {
//ignorowanie niepotrzebnych projektow
//TODO ZLE TO LICZY!
$ROZNICA_SPRZED_TOTAL=$DATA_V['LOCAL']['SPRZED_TOTAL']-$DATA_HIST[$PETLA_AD0['LAST_RPAD_DATA']]['DATA'][$DATA_I]['LOCAL']['SPRZED_TOTAL'] ;
$KIEDY_ZWROT=( ($DATA_V['CALCULATED']['COST_LOCAL']+$DATA_V['CALCULATED']['COST_PARENT'])-$DATA_V['LOCAL']['SPRZED_TOTAL'])/$ROZNICA_SPRZED_TOTAL; //todo - koszty uslug
$KIEDY_ZWROT_Z_KOSZT_USL=( ($DATA_V['CALCULATED']['COST_LOCAL']+$DATA_V['CALCULATED']['COST_PARENT'])-$DATA_V['LOCAL']['SPRZED_TOTAL']+$DATA_V['CALCULATED_AD3']['CALCULATED_COST_PER_SVC'])/$ROZNICA_SPRZED_TOTAL; //todo - koszty uslug
if(
($DATA_V['LOCAL']['COSTS']==0)&&
($DATA_V['CALCULATED']['COST_LOCAL']==0)&&
($DATA_V['CALCULATED']['CHILD_COSTS']==0)&&
($DATA_V['CALCULATED']['HC_SUM_CHILD_LOCAL']==0)&&
($DATA_V['LOCAL']['HC']<1)
) continue;
echo "| ".$DATA_I." | ";//1 col
//TOTAL (ILOSC POWIAZANYCH KOSZTOW OFERT) ZAKUP:SPRZED
$KOSZTY_OFERT['ZAKUP']=0;$KOSZTY_OFERT['SPRZEDAZ']=0;
foreach($DATA_HIST as $DATA_HIST_ARR_I=>$DATA_HIST_ARR_V) {
$KOSZTY_OFERT['ZAKUP']+=$DATA_HIST_ARR_V['OFER_TOTAL']['ID_PROJECTS'][$DATA_I]['ID_PROJECT_COST'];
$KOSZTY_OFERT['SPRZEDAZ']+=$DATA_HIST_ARR_V['OFER_TOTAL']['ID_PROJECTS'][$DATA_I]['ID_PROJECT_COST'];
}
echo "".number_format($KOSZTY_OFERT['ZAKUP'], 2, ',', ' ').";
".number_format($KOSZTY_OFERT['SPRZEDAZ'], 2, ',', ' ')." | "; //2col
echo "(".$DATA_V['LOCAL']['ILOSC_POWIAZANYCH_KOSZTOW_OFERT'].") ".number_format($OFER_TOTAL['ID_PROJECTS'][$DATA_I]['ID_PROJECT_COST'], 2, ',', ' ').";
".number_format($OFER_TOTAL['ID_PROJECTS'][$DATA_I]['ID_PROJECT_SELL'], 2, ',', ' ')." | "; //2col
echo "[".$DATA_V['LOCAL']['M_DIST_DESC']."]";//3 col
// .$DATA_V[REWIR]."
foreach($DATA_V['LOCAL']['M_REWIR'] as $REWIR=>$REWIR_A) {
echo $REWIR.", ";
}
//INWESTYCJE: number_format($number, 2, ',', ' ')
echo "(".$DATA_V['LOCAL']['HC']."+".$DATA_V['CALCULATED']['HC_SUM_CHILD_LOCAL'].") |
".number_format($DATA_V['CALCULATED']['COST_LOCAL'], 2, ',', ' ')."+ ".number_format($DATA_V['CALCULATED']['COST_PARENT'], 2, ',', ' ')."
(".number_format($DATA_V['LOCAL']['COSTS'], 2, ',', ' ').") =
".number_format(($DATA_V['CALCULATED']['COST_LOCAL']+$DATA_V['CALCULATED']['COST_PARENT']), 2, ',', ' ')." |
".$DATA_V['CALCULATED']['CHILD_COSTS']." |
"; //SPRZED_TOTAL
echo number_format($DATA_V['LOCAL']['SPRZED_TOTAL'], 2, ',', ' ')." | " ;
echo number_format($ROZNICA_SPRZED_TOTAL, 2, ',', ' ');
// if(isset($PETLA_AD0['LAST_RPAD_DATA'])) echo number_format(, 2, ',', ' ') ;
//.number_format($DATA_V['LOCAL']['SPRZED_LAST_MC'], 2, ',', ' ')."
echo " | ".
"-TODO- | ".number_format($KIEDY_ZWROT, 2, ',', ' ')." (".number_format($KIEDY_ZWROT_Z_KOSZT_USL, 2, ',', ' ').") |
".$DATA_V['LOCAL']['I_ZACZETO']." | ".$DATA_V['LOCAL']['I_ZAKONCZONO']." | ";
//Koszty Sprzedazy Uslug
echo "".number_format($DATA_V['CALCULATED_AD3']['CALCULATED_COST_PER_SVC'], 2, ',', ' ')."
(".number_format($DATA_V['CALCULATED_AD3']['COST_PER_SVC'], 2, ',', ' ').") | ";
//OFERTY:
echo "";
foreach($DATA_V['CALCULATED_AD3']['OFERS'] as $OFERR=>$OFER_A) {
if($OFER_A['ERROR_NO_OFFER_ID']) echo "(".$OFER_A['ERROR_NO_OFFER_ID']."),";
else echo $OFERR.",";
}
//W jakich jest ofertach ?
foreach($OFER as $OFER_IND=>$OFER_ARR) {
foreach($OFER_ARR['TOTAL']['ID_PROJECTS'] as $IDP=>$IDP_V) {
if($IDP==$DATA_I) echo "[".$OFER_IND."]";
}
}
echo " | ";
echo " \n";
// echo "AD -1) b) dodajemy do tabeli RAPORT_CROSS";
unset($ZAP_SQL);
$ZAP_SQL['FIELD'][]='A_STATUS'; $ZAP_SQL['VALUE'][]="'WAITING'";
$ZAP_SQL['FIELD'][]='A_RECORD_CREATE_AUTHOR'; $ZAP_SQL['VALUE'][]="'".$_SESSION['ADM_ACCOUNT']."'";
$ZAP_SQL['FIELD'][]='A_RECORD_CREATE_DATE'; $ZAP_SQL['VALUE'][]="now()";
$ZAP_SQL['FIELD'][]='RPAD_DATA'; $ZAP_SQL['VALUE'][]="'".$RPAD->DATA."'";
$ZAP_SQL['FIELD'][]='DATA__ID_PROJECT'; $ZAP_SQL['VALUE'][]="'".$DATA_I."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__SPRZED_TOTAL'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['SPRZED_TOTAL']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__COSTS'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['COSTS']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__ilosc_faktur'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['ilosc_faktur']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__ILOSC_POZYCJI'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['ILOSC_POZYCJI']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__I_ZACZETO'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['I_ZACZETO']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__I_ZAKONCZONO'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['I_ZAKONCZONO ']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__HC'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['HC']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__ilosc_budynkow'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['ilosc_budynkow']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__np_budynek'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['np_budynek']."'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__M_REWIR__XML'; $ZAP_SQL['VALUE'][]="'TODO'";
$ZAP_SQL['FIELD'][]='DATA__LOCAL__ILOSC_POWIAZANYCH_KOSZTOW_OFERT'; $ZAP_SQL['VALUE'][]="'".$DATA_V['LOCAL']['ILOSC_POWIAZANYCH_KOSZTOW_OFERT']."'";
$ZAP_SQL['FIELD'][]='DATA__PATH'; $ZAP_SQL['VALUE'][]="'".$DATA_V['PATH']."'";
$ZAP_SQL['FIELD'][]='DATA__PATH_LEN'; $ZAP_SQL['VALUE'][]="'".$DATA_V['PATH_LEN']."'";
$ZAP_SQL['FIELD'][]='DATA__CHILD__XML'; $ZAP_SQL['VALUE'][]="'".serialize($DATA_V['CHILD'])."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED__RATIO_LOCAL'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED']['RATIO_LOCAL']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED__COST_LOCAL'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED']['COST_LOCAL']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED__CHILD_COSTS'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED']['CHILD_COSTS']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED__HC_SUM_CHILD_LOCAL'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED']['HC_SUM_CHILD_LOCAL']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED__COST_PARENT'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED']['COST_PARENT']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED_AD3__OFERS__XML'; $ZAP_SQL['VALUE'][]="'".serialize($DATA_V['CALCULATED_AD3']['OFER'])."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED_AD3__CALCULATED_COST_PER_SVC'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED_AD3']['CALCULATED_COST_PER_SVC']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED_AD3__COST_PER_SVC'; $ZAP_SQL['VALUE'][]="'".$DATA_V['CALCULATED_AD3']['COST_PER_SVC']."'";
$ZAP_SQL['FIELD'][]='DATA__CALCULATED_AD4_TO_RAPORT__XML'; $ZAP_SQL['VALUE'][]="'".serialize($DATA_V['CALCULATED_AD4_TO_RAPORT'])."'";
$ZAP_SQL['FIELD'][]='ROZNICA_SPRZED_TOTAL'; $ZAP_SQL['VALUE'][]="'".$ROZNICA_SPRZED_TOTAL."'";
$ZAP_SQL['FIELD'][]='KIEDY_ZWROT'; $ZAP_SQL['VALUE'][]="'".$KIEDY_ZWROT."'";
$ZAP_SQL['FIELD'][]='KIEDY_ZWROT_Z_KOSZT_USL'; $ZAP_SQL['VALUE'][]="'".$KIEDY_ZWROT_Z_KOSZT_USL."'";
//$ZAP_SQL['FIELD'][]='XML'; $ZAP_SQL['VALUE'][]="'".serialize($DATA_V)."'";
$ZAP_SQL['SQL']="insert into RAPORT_CROSS ( ID ";
foreach($ZAP_SQL['FIELD'] as $FIELD) {
$ZAP_SQL['SQL'].=",`".$FIELD."`" ;
}
$ZAP_SQL['SQL'].=" ) values ( '' ";
foreach($ZAP_SQL['VALUE'] as $VALUE) {
$ZAP_SQL['SQL'].=",".$VALUE ;
}
$ZAP_SQL['SQL'].=" ) ";
ZAP_SQL($ZAP_SQL['SQL']);
//EOF AD -1 b)
} //eof FOREACH
echo " ";
$DATA_HIST[$RPAD->DATA]['DATA']=$DATA;
$DATA_HIST[$RPAD->DATA]['OFER']=$OFER;
$DATA_HIST[$RPAD->DATA]['OFER_TOTAL']=$OFER_TOTAL;
$DATA_HIST[$RPAD->DATA]['DATA_R']=$DATA_R; //rewir historia
$DATA_HIST[$RPAD->DATA]['DATA_SORT']=$DATA_SORT; //rewir historia
//echo "// c) na koncu robimy insert into RAPORT_XML przy resetowaniu - linia ok 13xx ";
unset($ZAP_SQL);
$ZAP_SQL['FIELD'][]='A_STATUS'; $ZAP_SQL['VALUE'][]="'WAITING'";
$ZAP_SQL['FIELD'][]='A_RECORD_CREATE_AUTHOR'; $ZAP_SQL['VALUE'][]="'".$_SESSION['ADM_ACCOUNT']."'";
$ZAP_SQL['FIELD'][]='A_RECORD_CREATE_DATE'; $ZAP_SQL['VALUE'][]="now()";
$ZAP_SQL['FIELD'][]='RPAD_DATA'; $ZAP_SQL['VALUE'][]="'".$RPAD->DATA."'";
$ZAP_SQL['FIELD'][]='XML'; $ZAP_SQL['VALUE'][]="'".serialize($DATA_HIST[$RPAD->DATA])."'";
$ZAP_SQL['FIELD'][]='LAST_RPAD_DATA'; $ZAP_SQL['VALUE'][]="'".$PETLA_AD0['LAST_RPAD_DATA']."'";
$ZAP_SQL['SQL']="insert into RAPORT_CROSS_XML ( ID ";
foreach($ZAP_SQL['FIELD'] as $FIELD) {
$ZAP_SQL['SQL'].=",`".$FIELD."`" ;
}
$ZAP_SQL['SQL'].=" ) values ( '' ";
foreach($ZAP_SQL['VALUE'] as $VALUE) {
$ZAP_SQL['SQL'].=",".$VALUE ;
}
$ZAP_SQL['SQL'].=" ) ";
ZAP_SQL($ZAP_SQL['SQL']);
echo " // AD 0 b 2b - TODO zmienna struktura kosztow projektow - nowe mieszkania/zasoby sprzedazy";
// unset($DATA);
unset($DATA_R);
unset($OFER); //to mozna kasowac, bo latwo wyliczyc sume sprzedazy itp - w przeciwienstwie do $DATA!
unset($OFER_TOTAL); //to trzeba skasowac, bo jest wyliczeniem dla danego okresu
if($_GET['RAPORT_AFTER_TABLE']) { echo " chce wydrukowac raport line 1261 dla CUR_RPAD_DATA: ".$RPAD->DATA;
print_r($_GET);
echo " Robie print_r Line 1262";
print_r($DATA_HIST[$RPAD->DATA]['DATA'][129]);
print_r($DATA_HIST[$RPAD->DATA]['DATA'][326]);
print_r($DATA_HIST[$RPAD->DATA]['DATA'][492]);
}
//print_r($DATA_HIST[$PETLA_AD0['LAST_RPAD_DATA']]['DATA'][129]);
$PETLA_AD0['LAST_RPAD_DATA']=$RPAD->DATA ; //do uzycia PRZYROSTOW_Z_OSTATNIEGO dla WARTOSCI/PARAMETROW
if($PETLA_AD0['LAST_LAST_RPAD_DATA']>0) unset($DATA_HIST[$PETLA_AD0['LAST_LAST_RPAD_DATA']]); //TODO TEST IT
$PETLA_AD0['LAST_LAST_RPAD_DATA']=$PETLA_AD0['LAST_RPAD_DATA'] ; //mozliwe unsetniecie
} // EOF AD0 b) , jak chcemy wylaczyc petle lat, to trzeba wyremowac AD0 b) nizej na lini...
//print_r($DATA_HIST[$PETLA_AD0['LAST_RPAD_DATA']]);
echo "Problemy do przyporządkowania : \n
";
$ZAP_SQL="select t1.ID_SERVICES as ID_SERVICES ,
t2.T_NETWORK_SERVER , t3.M_REWIR , if(isnull(t4.ID_KONTO_KSIEG),'BRAK',t4.ID_KONTO_KSIEG) as ID_KONTO_KSIEG
from BILLS_FVAT_POS as t1
left join USERS2 as t2 on t1.ID_SERVICES=t2.ID_SERVICES
left join USERS2_MARKETING as t3 on t2.S_ADDRESS_STREET=t3.S_ADDRESS_STREET
left join M_REWIR_INWESTYCJA as t4 on t3.M_REWIR=t4.M_REWIR
left join SES_TV_A as t5 on t1.ID_SERVICES=t5.ID_SERVICES
where t1.ID_SERVICES > 0 and ( t2.S_ADDRESS_STREET is NULL or t3.M_REWIR is NULL ) and month(t1.DATE_FROM)=month(now())
and t5.ID is NULL and t1.id_list_services!='12'
group by t1.ID_SERVICES
limit 333; ";
ZAP_SQL("$ZAP_SQL");
while($DWA=mysql_fetch_array($result)) {
// print_r($DWA);
}
echo "";
//echo " |