예제 #1
0
 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");
 }
예제 #2
0
파일: Repaire.php 프로젝트: vitaliy5118/ss1
 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);
 }
예제 #3
0
 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;
 }