"Styczeń", 2 => "Luty", 3 => "Marzec", 4 => "Kwiecień", 5 => "Maj", 6 => "Czerwiec", 7 => "Lipiec", 8 => "Sierpień", 9 => "Wrzesień", 10 => "Październik", 11 => "Listopad", 12 => "Grudzień"); // Pobieranie danych z formularza if(!$_GET['date_from']){ $date_from = date("Y-01-01"); }else{ $date_from = $_GET['date_from']; $tmp = date_parse_from_format("d.m.Y", $_GET['date_from']); $date_from = date($tmp['year']."-".$tmp['month']."-01"); } if(!$_GET['date_to']){ $date_to = date("Y-m-d"); }else{ $date_to = $_GET['date_to']; } //formatowanie daty $Calendar_daFormat = str_replace("d","%d",str_replace("m","%m",str_replace("Y","%Y",$GLOBALS['timedate']->get_date_format()))); $date_from = $GLOBALS['timedate']->to_display_date($date_from); $date_to = $GLOBALS['timedate']->to_display_date($date_to); $selectedColumns = json_decode($current_user->getPreference('ecmreports_reportvalue_column')); //Sprawdzanie jakie kolumny ma zaznaczone uzytkownik i zapisywanie do bazy w razie zmian if($_GET['selectedColumns']==NULL){ //Jeśli nic nie bylo przeslane z formularza i nie bylo nic w bazie //tworzy nowa tablice z zaznaczonymi wszystkimi kolumnami if($selectedColumns==NULL){ $selectedColumns = array(); foreach($app_list_strings['document_category_dom'] as $key=> $value){ $selectedColumns[] = $key; } // i ja zapisuje $current_user->setPreference('ecmreports_reportvalue_column', json_encode($selectedColumns)); } }else{ // Jeśli było coś przesłane przez formularz i nie bylo nic w bazie // to zapisuje przeslane kolumny if($selectedColumns==NULL){ $current_user->setPreference('ecmreports_reportvalue_column', json_encode($_GET['selectedColumns'])); }else{ // Jesli bylo cos przeslane przez formularz i bylo cos w bazie // sprawdza czy tablice sie roznia elementami - jak tak to zapisuje zmiany do bazy // i ustawia nowe kolumny if(count($_GET['selectedColumns'])!=count($selectedColumns)){ if(count($_GET['selectedColumns'])!=0){ $current_user->setPreference('ecmreports_reportvalue_column', json_encode($_GET['selectedColumns'])); $selectedColumns = $_GET['selectedColumns']; } } // Jak nic sie nie zmienilo to nic nie robi bo po co } } /** * ************* GET DATA FROM DB******************** */ //Wybieranie zaznaczonych kolumn $querycategory=""; foreach($selectedColumns as $value){ $querycategory = $querycategory . "'" . $value ."',"; } $querycategory = rtrim($querycategory, ','); $tmp = date_parse_from_format("d.m.Y", $date_to); $date_finish_m = $tmp['month']; $date_finish_y = $tmp['year']; $date_finish_d = $tmp['day']; $tmp = date_parse_from_format("d.m.Y", $date_from); $date_f_month = $tmp['month']-1; $date_f_year = $tmp['year']; $date_f = "01.". $date_f_month . "." . $date_f_year; $date_t_year = $date_f_year; $data[$date_f_year] = array(); do{ $date_f_month++; if($date_f_month == 13){ $date_f_month = 1; $date_f_year++; $data[$date_f_year] = array(); } $date_f = "01.". $date_f_month . "." . $date_f_year; $date_t_month = $date_f_month + 1; if($date_t_month == 13){ $date_t_month = 1; $date_t_year++; } if($date_f_year == $date_finish_y && $date_f_month == $date_finish_m){ $date_t_month = $date_finish_m; $date_t_year = $date_finish_y; $date_t_day = $date_finish_d; }else{ $date_t_day = "01"; } $date_t = $date_t_day .".". $date_t_month . "." . $date_t_year; // inicjalizacja danych $querydatefrom = "STR_TO_DATE('".$date_f."','%d.%m.%Y') "; $querydateto = "STR_TO_DATE('".$date_t."','%d.%m.%Y') "; $query = "SELECT category_id, ROUND(SUM(ifnull(value,'0,00')),2) as value FROM documents WHERE deleted=0 AND category_id IN (".$querycategory.") AND date_entered >= " . $querydatefrom . " AND date_entered <= " . $querydateto . " group by category_id"; $rows = $db->query ( $query ); $data[$date_f_year][$mons[$date_f_month]] = array(); if($rows->num_rows == 0){ // Jeśli baza nie zwróci żadnych rekordów to ustawia puste pola foreach($selectedColumns as $wartosc){ $data[$date_f_year][$mons[$date_f_month]][] = '0,00'; } // Dodatkowa kolumna na sumę $data[$date_f_year][$mons[$date_f_month]][] = '0,00'; }else{ $tmp2 = array(); $sumka = 0; // Rekordy z bazy danych wpisujemy do tymczasowej tabeli by móc wstawić dane w odpowiednie miejsce while ( $r = $db->fetchByAssoc ( $rows ) ) { $row = array (); $row['category_id'] = $r['category_id']; $row['value'] = number_format($r['value'], 2, ",", "."); $sumka +=$r['value']; $tmp2[] = $row; } // tutaj wstawiamy w odpowiednie miejsce foreach($selectedColumns as $wartosc){ $sprawdzamy = false; foreach($tmp2 as $cos){ if($wartosc==$cos['category_id']){ $sprawdzamy = true; $data[$date_f_year][$mons[$date_f_month]][] = $cos['value']; } } if(!$sprawdzamy){ $data[$date_f_year][$mons[$date_f_month]][] = '0,00'; } } // dodajemy ostatni wiersz sumy $data[$date_f_year][$mons[$date_f_month]][]=number_format($sumka, 2, ",", "."); } }while(!($date_f_year == $date_finish_y && $date_f_month == $date_finish_m && $date_t_day == $date_finish_d)); //Pobieranie sumy dla każdego typu $query = "SELECT category_id, ROUND(SUM(ifnull(value,'0,00')),2) as value FROM documents WHERE deleted=0 AND category_id IN (".$querycategory.") AND date_entered >= STR_TO_DATE('".$date_from."','%d.%m.%Y') AND date_entered <= STR_TO_DATE('".$date_to."','%d.%m.%Y') group by category_id"; $rows = $db->query ( $query ); if($rows->num_rows == 0){ // Jeśli baza nie zwróci żadnych rekordów to ustawia puste pola foreach($selectedColumns as $wartosc){ $suma[] = '0,00'; } // Dodatkowa kolumna na sumę $suma[] = '0,00'; }else{ $tmp2 = array(); $sumka = 0; // Rekordy z bazy danych wpisujemy do tymczasowej tabeli by móc wstawić dane w odpowiednie miejsce while ( $r = $db->fetchByAssoc ( $rows ) ) { $row = array (); $row['category_id'] = $r['category_id']; $row['value'] = number_format($r['value'], 2, ",", "."); $sumka +=$r['value']; $tmp2[] = $row; } // tutaj wstawiamy w odpowiednie miejsce foreach($selectedColumns as $wartosc){ $sprawdzamy = false; foreach($tmp2 as $cos){ if($wartosc==$cos['category_id']){ $sprawdzamy = true; $suma[] = $cos['value']; } } if(!$sprawdzamy){ $suma[] = '0,00'; } } // dodajemy ostatni wiersz sumy $suma[]=number_format($sumka, 2, ",", "."); } /** * ******************** SMARTY ********************** */ $smarty = new Sugar_Smarty (); global $mod_strings; $smarty -> assign('MOD', $mod_strings); $smarty -> assign('data', $data); $smarty -> assign('date_from', $date_from); $smarty -> assign('suma', $suma); $smarty -> assign('date_to', $date_to ); $smarty -> assign('dateFormat', $Calendar_daFormat); $smarty -> assign('selectedColumns', $selectedColumns); $smarty -> assign('category', $app_list_strings['document_category_dom']); echo $smarty->display ( 'modules/EcmReports/tpls/ReportValue.tpl' ); ?>