Advertisement
brainode

Switch in switch in switch

Sep 16th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.67 KB | None | 0 0
  1. <?php
  2. require_once '../core.php';
  3. if (!isset ($_REQUEST['query'])) { die (); }
  4. $idS = $_SESSION['idS'];
  5. $idUser = $_SESSION['idUser'];
  6. $db_name = $_SESSION ['db_name'];
  7. $UserIP = $_SESSION['UserIP'];
  8. $fld_list = array();
  9. function PreviouslyMonth($value)
  10. {
  11.     if($value!=1){
  12.         $value--;
  13.     }else{
  14.         $value=12;
  15.     }
  16.     return $value;
  17. }
  18. function MonthChangeIntToSS($month){
  19.     if($month!=10&&$month!=11&&$month!=12){
  20.         $month='0'.(String)$month;
  21.     }
  22.     return $month;
  23. }
  24. function MonthChangeIntToString($month){
  25.     switch ($month) {
  26.         case '1':
  27.             $month=iconv("UTF-8", "windows-1251",'Январь');
  28.             break;
  29.         case '2':
  30.             $month=iconv("UTF-8", "windows-1251",'Февраль');
  31.             break;
  32.         case '3':
  33.             $month=iconv("UTF-8", "windows-1251",'Март');
  34.             break;
  35.         case '4':
  36.             $month=iconv("UTF-8", "windows-1251",'Апрель');
  37.             break;
  38.         case '5':
  39.             $month=iconv("UTF-8", "windows-1251",'Май');
  40.             break;
  41.         case '6':
  42.             $month=iconv("UTF-8", "windows-1251",'Июнь');
  43.             break;
  44.         case '7':
  45.             $month=iconv("UTF-8", "windows-1251",'Июль');
  46.             break;
  47.         case '8':
  48.             $month=iconv("UTF-8", "windows-1251",'Август');
  49.             break;
  50.         case '9':
  51.             $month=iconv("UTF-8", "windows-1251",'Сентябрь');
  52.             break;
  53.         case '10':
  54.             $month=iconv("UTF-8", "windows-1251",'Октябрь');
  55.             break;
  56.         case '11':
  57.             $month=iconv("UTF-8", "windows-1251",'Ноябрь');
  58.             break;
  59.         case '12':
  60.             $month=iconv("UTF-8", "windows-1251",'Декабрь');
  61.             break;
  62.         default:
  63.             die();
  64.             break;
  65.     }
  66.     return $month;
  67. }
  68.  
  69. switch (strip_tags(trim(ms_escape_string($_REQUEST['query'])))) {
  70.     case 'main':
  71.         $event = iconv("UTF-8", "cp1251", "Начало формирования файла выгрузки для отчета по Общей статистике аптеки");
  72.         $query = iconv("UTF-8", "cp1251", $_SESSION['query']['main']);
  73.         $strd       =   (isset($_SESSION['strd']['main']))?$_SESSION['strd']['main']:'';
  74.         $endd       =   (isset($_SESSION['endd']['main']))?$_SESSION['endd']['main']:'';
  75.         $name = 'TSA_'.$strd.'_'.$endd.'_'.$idUser;
  76.         $csv_output = '';
  77.         $csv_output .=iconv("UTF-8", "windows-1251",'№ п/п;');
  78.         $csv_output .=iconv("UTF-8", "windows-1251",'Аптека;');
  79.         $csv_output .=iconv("UTF-8", "windows-1251",'Выручка, р.;');
  80.         $csv_output .=iconv("UTF-8", "windows-1251",'Прибыль, р.;');
  81.         $csv_output .=iconv("UTF-8", "windows-1251",'Приведенная маржа, р.;');
  82.         $csv_output .=iconv("UTF-8", "windows-1251",'Наценка, %;');
  83.         $csv_output .=iconv("UTF-8", "windows-1251",'Кол-во чеков, шт.;');
  84.         $csv_output .=iconv("UTF-8", "windows-1251",'Кол-во чеков в день, шт.;');
  85.         $csv_output .=iconv("UTF-8", "windows-1251",'Сумма по чеку, р.;');
  86.         $csv_output .=iconv("UTF-8", "windows-1251",'Остаток по товару|розница, р.;');
  87.         $csv_output .=iconv("UTF-8", "windows-1251",'Остаток по товару|опт с НДС, р.;');
  88.         $csv_output .=iconv("UTF-8", "windows-1251",'кол-во ННТ на остатке;');
  89.         $csv_output .=iconv("UTF-8", "windows-1251",'кол-во ННТ, участвующих в продаже;');
  90.         $csv_output .=iconv("UTF-8", "windows-1251",'Скидка, р.;');
  91.         $csv_output .=iconv("UTF-8", "windows-1251",'Скидка в % от выручки;');
  92.         $csv_output .=iconv("UTF-8", "windows-1251",'Наполняемость чека;');
  93.         $csv_output .=iconv("UTF-8", "windows-1251",'Оборачиваемость;');
  94.         $csv_output .=iconv("UTF-8", "windows-1251",'Рабочие дни;');
  95.         $csv_output = substr($csv_output,0,-1);
  96.         $csv_output .= "\n";
  97.  
  98.         $res = odbc_exec ($connection,$query);
  99.         $count = odbc_num_fields($res);
  100.         while ($row = odbc_fetch_row($res)) {
  101.             for ($i=1;$i<$count+1;$i++) {
  102.                 $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  103.             }
  104.             $csv_output = substr($csv_output,0,-1);
  105.             $csv_output .= "\n";
  106.         }
  107.         odbc_next_result($res);
  108.         while ($row = odbc_fetch_row($res)) {
  109.             for ($i=1;$i<$count+1;$i++) {
  110.                 $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  111.             }
  112.         }
  113.         break;
  114.     case 'pharmacyanalysis':
  115.         $event = iconv("UTF-8", "cp1251", "Начало формирования файла выгрузки для отчета по Анализу деятельности аптек");
  116.         $query = iconv("UTF-8", "cp1251", $_SESSION['query']['pharmacyanalysis']);
  117.         $newquery=explode('\'',$query);
  118.         $newquery=str_replace(',', '_', $newquery[1]);
  119.         $CSVHeadMonth=explode('_',$newquery);
  120.         $countCSVHeadMonth=count($CSVHeadMonth);
  121.         $yearEnd=substr($CSVHeadMonth[1], 0,4);
  122.         $yearStart=$yearEnd-1;
  123.         for($i=0;$i<$countCSVHeadMonth;$i++){
  124.             $monthInt[$i]=substr($CSVHeadMonth[$i], 4,5);
  125.         }
  126.         $name = 'TSA_'.$newquery.'_'.$idUser;
  127.         $res = odbc_exec ($connection,$query);
  128.         $count = odbc_num_fields($res);
  129.         $csv_output = '';
  130.         $csv_outputStart='';
  131.         $csv_outputEnd='';
  132.         $flagy=0;
  133.         //Turning on Inception mode,by Dicaprio - Switch in switch ,i must go deeper
  134.         switch($_REQUEST['typeReport']){
  135.             case 'b_margin':
  136.             //MORE DEEPER!!!
  137.                 switch ($flagy) {
  138.                     case '0'://At first sight will work fine - don't believe your eyes!
  139.                         $csv_output .=iconv("UTF-8", "windows-1251",'№ п/п;');
  140.                         $csv_output .=iconv("UTF-8", "windows-1251",'Аптека;');
  141.                         for($i=0;$i<$countCSVHeadMonth;$i++){
  142.                             $monthName=MonthChangeIntToString($monthInt[$i]);
  143.                             $nameStart=$monthName.','.$yearStart.';';
  144.                             $csv_outputStart .=/*iconv("UTF-8", "windows-1251",*/$nameStart/*)*/; //FKNG 1251 - iconv error with text
  145.                             $csv_outputStart .=/*iconv("UTF-8", "windows-1251",*/$nameStart/*)*/;
  146.                             $nameEnd=$monthName.','.$yearEnd.';';
  147.                             //Double meaning becouse i am an indian man
  148.                             for($j=0;$j<8;$j++){
  149.                                 $csv_outputEnd .=/*iconv("UTF-8", "windows-1251",*/$nameEnd/*)*/;
  150.                             }//I have no choise!!;(
  151.                         }
  152.                         $csv_output .=$csv_outputStart;
  153.                         $csv_output .=$csv_outputEnd;
  154.                         $csv_output = substr($csv_output,0,-1);
  155.                         $csv_output .= "\n";
  156.                         $flagy++;
  157.                         $csv_output .=iconv("UTF-8", "windows-1251",' ;');
  158.                         $csv_output .=iconv("UTF-8", "windows-1251",' ;');
  159.                         for($i=0;$i<$countCSVHeadMonth;$i++){
  160.                             $csv_output .=iconv("UTF-8", "windows-1251",'Маржа;');
  161.                             $csv_output .=iconv("UTF-8", "windows-1251",'Наценка;');
  162.                         }
  163.                         for($i=0;$i<$countCSVHeadMonth;$i++){
  164.                             $monthName=MonthChangeIntToString($monthInt[$i]);
  165.                             $previouslyMonthInt=PreviouslyMonth($monthInt[$i]);
  166.                             $monthNamePreviously=MonthChangeIntToString($previouslyMonthInt);
  167.                             $csv_output .=iconv("UTF-8", "windows-1251",'Маржа;');
  168.                             $csv_output .=iconv("UTF-8", "windows-1251",'Наценка;');
  169.                             $csv_output .=iconv("UTF-8", "windows-1251",'Прирост маржа').$yearStart.'/'.$yearEnd.';';
  170.                             $csv_output .=iconv("UTF-8", "windows-1251",'Прирост выручка').$yearStart.'/'.$yearEnd.';';
  171.                             $csv_output .=iconv("UTF-8", "windows-1251",'Прирост покупателей').$yearStart.'/'.$yearEnd.';';
  172.                             $csv_output .=iconv("UTF-8", "windows-1251",'Прирост маржа').$monthName.' '.$yearEnd.'/'.$monthNamePreviously.' '.$yearEnd.';';
  173.                             $csv_output .=iconv("UTF-8", "windows-1251",'Прирост выручка').$monthName.' '.$yearEnd.'/'.$monthNamePreviously.' '.$yearEnd.';';
  174.                             $csv_output .=iconv("UTF-8", "windows-1251",'Прирост покупателей').$monthName.' '.$yearEnd.'/'.$monthNamePreviously.' '.$yearEnd.';';
  175.                         }
  176.                         $csv_output = substr($csv_output,0,-1);
  177.                         $csv_output .= "\n";
  178.                         $flagy++;
  179.                         break;
  180.                     case '2':
  181.                         while ($row = odbc_fetch_row($res)) {
  182.                             for ($i=1;$i<$count+1;$i++) {
  183.                                 if(odbc_field_name( $res, $i )=='Nopp'){
  184.                                     $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  185.                                 }elseif (odbc_field_name( $res, $i )=='Pharmacy') {
  186.                                     $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  187.                                 }
  188.                                 for($g=0;$g<$countCSVHeadMonth;$g++){
  189.                                     $previouslyMonthInt=PreviouslyMonth($monthInt[$i]);
  190.                                     $monthRowPreviously=MonthChangeIntToSS($previouslyMonthInt);
  191.                                     $monthRow=MonthChangeIntToSS($monthInt[$i]);
  192.                                     if (odbc_field_name( $res, $i )=='Margin_'.$yearStart.$monthRow) {
  193.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  194.                                     }
  195.                                     if (odbc_field_name( $res, $i )=='Markup_'.$yearStart.$monthRow) {
  196.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  197.                                     }
  198.                                     //EIGHT ROW
  199.                                     if (odbc_field_name( $res, $i )=='Margin_'.$yearEnd.$monthRow) {
  200.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  201.                                     }
  202.                                     if (odbc_field_name( $res, $i )=='Markup_'.$yearEnd.$monthRow) {
  203.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  204.                                     }
  205.                                     //More stronger
  206.                                     if (odbc_field_name( $res, $i )=='MarginDelta_'.$yearEnd.$monthRow.'_'.$yearStart.$monthRow) {
  207.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  208.                                     }
  209.                                     if (odbc_field_name( $res, $i )=='RevenueDelta_'.$yearEnd.$monthRow.'_'.$yearStart.$monthRow) {
  210.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  211.                                     }
  212.                                     if (odbc_field_name( $res, $i )=='ChecksDelta_'.$yearEnd.$monthRow.'_'.$yearStart.$monthRow) {
  213.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  214.                                     }
  215.                                     if (odbc_field_name( $res, $i )=='MarginDelta_'.$yearEnd.$monthRow.'_'.$yearEnd.$monthRowPreviously) {
  216.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  217.                                     }
  218.                                     if (odbc_field_name( $res, $i )=='RevenueDelta_'.$yearEnd.$monthRow.'_'.$yearEnd.$monthRowPreviously) {
  219.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  220.                                     }
  221.                                     if (odbc_field_name( $res, $i )=='ChecksDelta_'.$yearEnd.$monthRow.'_'.$yearEnd.$monthRowPreviously) {
  222.                                         $csv_output .= str_replace('.',',',odbc_result( $res, $i )).';';
  223.                                     }
  224.                                 }
  225.                             }
  226.                             $csv_output = substr($csv_output,0,-1);
  227.                             $csv_output .= "\n";
  228.                         }
  229.                         break;
  230.                     default:
  231.                         break;
  232.                 }
  233.                 unset($flagy);
  234.                 break;
  235.             case 'b_revenue':
  236.                 break;
  237.             case 'b_numberOfChecks':
  238.                 break;
  239.             default:
  240.                 die();
  241.         }
  242.         break;
  243.     default:
  244.         die();
  245. }
  246.    
  247.     $zip = new ZipArchive;
  248.     $zipRes = $zip->open('../files/'.$name.'.zip', ZipArchive::CREATE);
  249.     if ($zipRes === TRUE) {
  250.         $zip->addFromString($name.'.csv', $csv_output);
  251.         $zip->close();
  252.     }
  253.     $event = iconv("UTF-8", "cp1251", "Конец формирования файла выгрузки");
  254.     echo $name;
  255. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement