public function toexcelmonthAction() { global $settings; // Подключаем класс для работы с excel require_once 'PHPExcel.php'; // Подключаем класс для вывода данных в формате excel require_once 'PHPExcel/Writer/Excel5.php'; // Создаем объект класса PHPExcel $xls = new PHPExcel(); // Устанавливаем индекс активного листа $xls->setActiveSheetIndex(0); // Получаем активный лист $sheet = $xls->getActiveSheet(); // Подписываем лист $sheet->setCellValue("A1", '№'); $sheet->setCellValue("B1", 'Дата'); $sheet->setCellValue("C1", 'Номер'); $sheet->setCellValue("D1", 'Жалоба'); $sheet->setCellValue("E1", 'Диагноз'); $sheet->setCellValue("F1", 'Работа'); $sheet->setCellValue("G1", 'Запчасти'); $sheet->setCellValue("H1", 'Коментарии'); //меняем цвет заголовка $sheet->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('A1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('B1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('C1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('C1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('D1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('D1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('E1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('E1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('F1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('F1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('G1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('G1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('H1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $sheet->getStyle('H1')->getFill()->getStartColor()->setRGB('EEEEEE'); $sheet->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT); // автоматическая ширина ячейки $sheet->getColumnDimension('A')->setAutoSize(true); $sheet->getColumnDimension('B')->setAutoSize(true); $sheet->getColumnDimension('C')->setAutoSize(true); $sheet->getColumnDimension('D')->setAutoSize(true); $sheet->getColumnDimension('E')->setAutoSize(true); $sheet->getColumnDimension('F')->setAutoSize(true); $sheet->getColumnDimension('G')->setAutoSize(true); $sheet->getColumnDimension('H')->setAutoSize(true); // формат ячейки текстовый $sheet->getStyle('A')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('B')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('C')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('D')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('E')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('F')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('G')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $sheet->getStyle('H')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (isset($_SESSION['year']) && isset($_SESSION['month'])) { $year = $_SESSION['year']; $month = $_SESSION['month']; } else { $currend_date = new Zend_Date(); $ss = $currend_date->toArray(); $year = $ss['year']; $month = (int) $ss['month']; if ($month < 10) { $month = "0{$month}"; } $_SESSION['year'] = $year; $_SESSION['month'] = $month; } $date = "{$year}-{$month}"; $repairs = new Application_Model_DbTable_Repairs(); $data = $repairs->statisticRepairs($date); $i = 2; $sheet->setTitle("Repairs {$date}"); foreach ($data as $rows) { $number = $i - 1; $sheet->setCellValue("A{$i}", "{$number}"); $sheet->setCellValue("B{$i}", "{$rows['date']}"); $sheet->setCellValue("C{$i}", "{$rows['number']}"); $sheet->setCellValue("D{$i}", "{$rows['claim']}"); $sheet->setCellValue("E{$i}", "{$rows['diagnos']}"); $sheet->setCellValue("F{$i}", "{$rows['work']}"); $sheet->setCellValue("G{$i}", "{$rows['spares']}"); $sheet->setCellValue("H{$i}", "{$rows['comments']}"); $i++; } // Выводим содержимое файла $objWriter = new PHPExcel_Writer_Excel5($xls); $objWriter->save('repairs_mounth.xls'); // открываем файл в бинарном режиме header("Location: http://{$settings['excel']['site']}/repairs_mounth.xls"); }
public function editRepair($id, $number, $device) { // вносим изменения в склад запчастей $this->id = $id; $this->number = $number; if ($this->spares != '') { $this->spares .= ' '; } if ($this->check_data) { $warehouse = new Application_Model_DbTable_Warehouse(); $warehouse_data = $warehouse->fetchAll(); $warehistory = new Application_Model_DbTable_Warehistory(); foreach ($this->check_data as $id => $value) { $spare_data = $warehouse->getWarehouse($id); $this->spares .= "|| {$spare_data['serial']}-{$spare_data['name']}-{$value}шт "; $row = $warehouse->getWarehouse($id); foreach ($warehouse_data as $rows) { if ($rows['id'] == $id) { $this->remain = $rows['remain']; } } $this->remain -= $value; $this->serial = $row['serial']; $this->name = $row['name']; $this->type = $row['type']; $this->price = 'unload'; $this->path = $row['path']; //имя картинки для запчасти // Вызываем метод модели addMovie для вставки новой записи $warehouse->editWarehouse($id, $this->serial, $this->name, $this->type, $this->remain, $this->price, $this->path); $warehistory->addWarehistory($this->serial, $this->name, "редактирование ремонта -{$this->number}-{$device['name']}", $row['remain'], $value, $this->remain); } } //редактируем запись о ремонте $editRepaire = new Application_Model_DbTable_Repairs(); $editRepaire->editRepaire($this); //сохраняем статус ремонта $devices = new Application_Model_DbTable_Devices(); $devices->editDeviceStatus($this); //сохраняем историю $history = new Application_Model_DbTable_History(); $history->addRepairHistory($this); }
public function indexAction() { //подсчет обсчего количества аппаратов в базе $devices = new Application_Model_DbTable_Devices(); $dd = $devices->getCountDevices(); $this->view->devices = $dd[0]['count']; //подсчет обсчего количества ремонтов в базе $repairs = new Application_Model_DbTable_Repairs(); $dd = $repairs->getCountRepairs(); $this->view->repairs = $dd[0]['count']; //передача в индекс списка имен аппаратов $devices_list = new Application_Model_DbTable_Setup(); $devices_list->setTableName('name'); $devices_names = $devices_list->fetchAll()->toArray(); $this->view->devices_list = $devices_names; $this->view->repairs_list = $devices_names; //передача в индекс списка имен аппаратов $types_list = new Application_Model_DbTable_Setup(); $types_list->setTableName('type'); $devices_types = $types_list->fetchAll()->toArray(); $this->view->devices_types = $devices_types; //передача в индекс списка статусов аппаратов $status_list = new Application_Model_DbTable_Setup(); $status_list->setTableName('status'); $devices_status = $status_list->fetchAll()->toArray(); $this->view->status_list = $devices_status; //передача в индекс списка принадлежности аппаратов $owner_list = new Application_Model_DbTable_Setup(); $owner_list->setTableName('owner'); $devices_owner = $owner_list->fetchAll()->toArray(); $this->view->owner_list = $devices_owner; //передача в индекс списка пользователей аппаратов $user_list = new Application_Model_DbTable_Setup(); $user_list->setTableName('user'); $devices_user = $user_list->fetchAll()->toArray(); $this->view->user_list = $devices_user; //проверка селектов if ($this->getRequest()->isPost()) { if ($this->getRequest()->getPost('select_device')) { $name = $this->getRequest()->getPost('select_device'); $type = $this->getRequest()->getPost('select_type'); $status = $this->getRequest()->getPost('select_status'); $owner = $this->getRequest()->getPost('select_owner'); $user = $this->getRequest()->getPost('select_user'); $repair_name = $this->getRequest()->getPost('select_repair'); } else { $name = $devices_names[0]['name']; $type = $devices_types[0]['type']; $status = $devices_status[0]['status']; $owner = $devices_owner[0]['owner']; $user = $devices_user[0]['user']; $repair_name = $devices_names[0]['name']; } } else { $name = $devices_names[0]['name']; $type = $devices_types[0]['type']; $status = $devices_status[0]['status']; $owner = $devices_owner[0]['owner']; $user = $devices_user[0]['user']; $repair_name = $devices_names[0]['name']; } //передача в индекс количестка аппаратов с именем $dd = $devices->getCountDevices($name); $this->view->count_names = $dd[0]['count']; $this->view->name = $name; //передача в индекс количестка аппаратов с именем $dd = $devices->getCountDevices($type); $this->view->count_types = $dd[0]['count']; $this->view->type = $type; //передача в индекс количестка аппаратов со статусом $dd = $devices->getCountDevices($status); $this->view->count_status = $dd[0]['count']; $this->view->status = $status; //передача в индекс количестка аппаратов с принадлежностью $dd = $devices->getCountDevices($owner); $this->view->count_owner = $dd[0]['count']; $this->view->owner = $owner; //передача в индекс количестка аппаратов с пользователем $dd = $devices->getCountDevices($user); $this->view->count_user = $dd[0]['count']; $this->view->user = $user; //передача в индекс количестка аппаратов с пользователем $dd = $repairs->getCountRepairsbyName($repair_name); $this->view->count_repair_name = $dd[0]['count']; $this->view->repair_name = $repair_name; //принимаем данные о визитерах с базы $visitor = new Application_Model_DbTable_Visitors(); $visitors = $visitor->fetchAll(); $unique_users = 0; $visits = 0; //сравниваем текущего визитера с визитерами в базе foreach ($visitors as $rows) { $unique_users++; $visits += $rows['visits']; } $this->view->unique_users = $unique_users; $this->view->visits = $visits; }