= STR_TO_DATE('" . $date_from . "','%d.%m.%Y') AND wc.date <= STR_TO_DATE('" . $date_to . "','%d.%m.%Y') GROUP BY wc.worker_id;"; $rows = $db->query($query); if ($rows->num_rows == 0) { } else { while ($r = $db->fetchByAssoc($rows)) { $row = array(); $row['work_name'] = $r['work_name']; $row['class'] = 'parent'; $row['actions'] = array(); $wherequery = " SELECT id FROM ecmworkcards WHERE deleted = 0 AND date >= STR_TO_DATE('" . $date_from . "','%d.%m.%Y') AND date <= STR_TO_DATE('" . $date_to . "','%d.%m.%Y') " . " AND worker_id = '" . $r['worker_id'] . "'"; $actionquery = " SELECT wca.ecmproduct ecmproduct, wca.ecmaction ecmaction, wca.quantity quantity, wca.ecmactioncost ecmactioncost, wca.costbrutto costbrutto, a.name actionname, a.indeks actioncode, p.name productname, p.code productcode FROM ecmworkcards_ecmaction wca, ecmactions a, ecmproducts p WHERE a.id = wca.ecmaction AND wca.ecmproduct = p.id" . " AND wca.ecmworkcards IN (" . $wherequery . ") ORDER BY p.code, a.indeks"; $actionrows = $db->query($actionquery); if ($actionrows->num_rows == 0) { $row['actions'] = null; } else { $sumkanetto = 0; $sumkabrutto = 0; while ($rr = $db->fetchByAssoc($actionrows)) { $test = false; //sprawdza czy dana czynnosc jest juz pod pracownikiem z danym produktem // jesli tak to dodaje do porzedniego rekordu, jesli nie to dodaje nowy foreach ($row['actions'] as $key => $value) { if ($value['actioncode'] == $rr['actioncode'] && $value['productcode'] == $rr['productcode']) { $row['actions'][$key]['quantity'] += $rr['quantity']; $row['actions'][$key]['netto'] += round($rr['ecmactioncost'] * $rr['quantity'], 2); $row['actions'][$key]['brutto'] += round($rr['costbrutto'] * $rr['quantity'], 2); $test = true; $sumkanetto += round($rr['ecmactioncost'] * $rr['quantity'], 2); $sumkabrutto += round($rr['costbrutto'] * $rr['quantity'], 2); break; } } if (!$test) { $rowaction = array(); $rowaction['actionname'] = str_replace(""",'"',$rr['actionname']); $rowaction['actioncode'] = $rr['actioncode']; $rowaction['productname'] = str_replace(""",'"',$rr['productname']); $rowaction['ecmproduct'] = $rr['ecmproduct']; $rowaction['productcode'] = $rr['productcode']; $rowaction['netto'] = round($rr['ecmactioncost'] * $rr['quantity'], 2); $rowaction['brutto'] = round($rr['costbrutto'] * $rr['quantity'], 2); $rowaction['quantity'] = $rr['quantity']; $rowaction['class'] = 'child'; $sumkanetto += round($rr['ecmactioncost'] * $rr['quantity'], 2); $sumkabrutto += round($rr['costbrutto'] * $rr['quantity'], 2); $row['actions'][] = $rowaction; } } } foreach ($row['actions'] as $key => $value) { $row['actions'][$key]['netto'] = number_format($row['actions'][$key]['netto'], 2, ",", "."); $row['actions'][$key]['brutto'] = number_format($row['actions'][$key]['brutto'], 2, ",", "."); } $row['netto'] = number_format($sumkanetto, 2, ",", "."); $row['brutto'] = number_format($sumkabrutto, 2, ",", "."); $suma['netto']+= $sumkanetto; $suma['brutto']+= $sumkabrutto; $return[] = $row; } } // Create new PHPExcel object echo date('H:i:s'), " Create new PHPExcel object", EOL; $objPHPExcel = new PHPExcel(); // Set document properties echo date('H:i:s'), " Set document properties", EOL; $objPHPExcel->getProperties()->setCreator("E5") ->setLastModifiedBy("E5") ->setTitle("E5 - Report Sales") ->setSubject("E5 - Report Document") ->setDescription("Report Sales - description") ->setKeywords("e5, report, report sales") ->setCategory("Reports"); /* * ************************************************** */ /* * ***************** EXCELL Styles ****************** */ /* * ************************************************** */ // Set default widths and heights $objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(15); $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); $headerStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => '272822', ), ), ); $categoryStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => '4E5044', ), ), ); $subCategoryStyle = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), 'font' => array( 'bold' => true, 'color' => array('rgb' => 'FFFFFF'), 'name' => 'Verdana', ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => '8F937D', ), ), ); $columnAlignRight = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), ); $columnAlignLeft = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT, 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, ), ); $objPHPExcel->setActiveSheetIndex(0)->getRowDimension('1')->setRowHeight(25); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(40); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(40); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(15); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(15); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(15); $objPHPExcel->setActiveSheetIndex(0)->getStyle("A2:A4000")->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getStyle("B2:B4000")->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getStyle("C2:C4000")->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getStyle("D2:D4000")->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getStyle("E2:E4000")->applyFromArray($columnAlignLeft); $objPHPExcel->setActiveSheetIndex(0)->getStyle("F2:F4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("G2:G4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("H2:H4000")->applyFromArray($columnAlignRight); $objPHPExcel->setActiveSheetIndex(0)->getStyle("A1:H1")->applyFromArray($headerStyle); /* * ************************************************** */ /* * ******************* EXCELL Data ****************** */ /* * ************************************************** */ // Add header $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', $mod_strings['LBL_WORKER_NAME']) ->setCellValue('B1', $mod_strings['LBL_ACTION_CODE'])//indeks czynnosc ->setCellValue('C1', $mod_strings['LBL_ACTION']) ->setCellValue('D1', $mod_strings['LBL_PRODUCT_CODE']) ->setCellValue('E1', $mod_strings['LBL_PRODUCTS']) ->setCellValue('F1', $mod_strings['LBL_QUANTITY']) ->setCellValue('G1', $mod_strings['LBL_SUM_NETTO']) ->setCellValue('H1', $mod_strings['LBL_SUM_BRUTTO']); /* * ************************************************** */ /* * ******************* EXCELL Data ****************** */ /* * ************************************************** */ // Add all data $lastRowNumber = 2; $rowNumber = 2; foreach ($return as $key => $item) { foreach($item['actions'] as $key1 => $item1){ $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A' . ($rowNumber), $item['work_name']) ->setCellValue('B' . ($rowNumber), $item1['actioncode']) ->setCellValue('C' . ($rowNumber), $item1['actionname']) ->setCellValue('D' . ($rowNumber), $item1['productcode']) ->setCellValue('E' . ($rowNumber), $item1['productname']) ->setCellValue('F' . ($rowNumber), $item1['quantity']) ->setCellValue('G' . ($rowNumber), $item1['netto']) ->setCellValue('H' . ($rowNumber), $item1['brutto']); $rowNumber++; $lastRowNumber++; } } // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle($mod_strings['LBL_REPORT_ECMWORKCARDS']); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save(__DIR__ . "/ExcelFiles/ReportEcmWorkCards.xls"); ?>