/** * * @return int|bool */ public function save() { $dbAdapter = Zend_Db_Table_Abstract::getDefaultAdapter(); $dbAdapter->beginTransaction(); try { $dataForm = $this->_data; if (Fefop_Model_Mapper_Module::CED == $dataForm['fk_id_fefop_modules']) { if (!Client_Model_Mapper_Client::isHandicapped($dataForm['fk_id_perdata'])) { $this->_message->addMessage('Kliente nee la iha defisiensia', App_Message::ERROR); return false; } } $mapperRule = new Fefop_Model_Mapper_Rule(); if (Fefop_Model_Mapper_Module::CEC == $dataForm['fk_id_fefop_modules']) { $itemConfig = Fefop_Model_Mapper_Expense::CONFIG_PCE_CEC_FASE_I; } else { $itemConfig = Fefop_Model_Mapper_Expense::CONFIG_PCE_CED_FASE_I; } $mapperRule->validate($this->_message, $dataForm, $itemConfig); // If there is no business plan yet if (empty($dataForm['id_pce_contract'])) { $dataContract = array('module' => $dataForm['fk_id_fefop_modules'], 'district' => $dataForm['fk_id_adddistrict'], 'status' => Fefop_Model_Mapper_Status::ANALYSIS); $mapperFefopContract = new Fefop_Model_Mapper_Contract(); $dataForm['fk_id_fefop_contract'] = $mapperFefopContract->save($dataContract); } $this->_data = $dataForm; $this->_data['amount'] = App_General_String::toFloat($this->_data['amount']); $id = parent::_simpleSave(); $dataForm['fk_id_pce_contract'] = $id; // Save Expenses $this->_saveExpensesContract($dataForm); $history = "INSERE KONTRATU PCE FASE I: %s BA PROGRAMA PCE IHA MODULU: %s"; $history = sprintf($history, $dataForm['fk_id_fefop_contract'], $dataForm['fk_id_fefop_modules']); $this->_sysAudit($history); $dbAdapter->commit(); return $id; } catch (Exception $e) { $dbAdapter->rollBack(); $this->_message->addMessage($this->_config->messages->error, App_Message::ERROR); return false; } }
/** * * @param Zend_Db_Table_Row $businessPlan * @return boolean|string */ protected function _checkBeneficiaryDisability($businessPlan) { if (Fefop_Model_Mapper_Module::CED != $businessPlan->fk_id_fefop_modules) { return true; } if (!Client_Model_Mapper_Client::isHandicapped($businessPlan->fk_id_perdata)) { return 'Kliente nee la disabilidade ba halo Modulu CED'; } else { return true; } }
/** * */ public function exportAction() { $id = $this->_getParam('id'); $row = $this->_mapper->fetchBusinessPlan($id); $contractFiles = array('CEG' => 'Contrato_CEG_tet.xlsx', 'CEC' => 'Contrato_CEC_II_tet.xlsx', 'CED' => 'Contrato_CED_II_tet.xlsx'); // Fetch Contract $mapperContract = new Fefop_Model_Mapper_Contract(); $contract = $mapperContract->detail($row->fk_id_fefop_contract); $data = $row->toArray(); $data += $contract->toArray(); $reserve_fund = $this->_mapper->getTotal($id, 'reserve_fund'); $reserve_fund = $reserve_fund < 1 ? 600 : $reserve_fund; $data['contract'] = Fefop_Model_Mapper_Contract::buildNumById($row->fk_id_fefop_contract); $data['business_plan'] = External_Model_Mapper_Pce::buildNumRow($row); $data['date_inserted'] = $this->view->date($data['date_inserted']); $dateInsert = new Zend_Date($data['date_inserted']); $data['date_finish'] = $dateInsert->addYear(2)->toString('dd/MM/yyyy'); $mapperClient = new Client_Model_Mapper_Client(); $client = $mapperClient->detailClient($row->fk_id_perdata); $data['evidence_card'] = Client_Model_Mapper_Client::buildNumRow($client); $data['client_name'] = Client_Model_Mapper_Client::buildName($client); $data['is_handicapped'] = Client_Model_Mapper_Client::isHandicapped($row->fk_id_perdata); $data['electoral'] = $client->electoral; $data['gender'] = $client->gender; $data['client_fone'] = $client->client_fone; $group = array(); $rowsGroup = $this->_mapper->listClientBusinessPlan($id); foreach ($rowsGroup as $rowGroup) { $group[] = array('name' => Client_Model_Mapper_Client::buildName($rowGroup), 'evidence_card' => Client_Model_Mapper_Client::buildNumRow($rowGroup), 'electoral' => $client->electoral, 'gender' => $client->gender, 'is_handicapped' => Client_Model_Mapper_Client::isHandicapped($client->id_perdata)); } $expensesRows = $mapperContract->listExpensesContract($row->fk_id_fefop_contract); $expenses = array(); $total = 0; foreach ($expensesRows as $expense) { $expenses[] = array('name' => $expense->description, 'amount' => (double) $expense->amount); $total += (double) $expense->amount; } $excelPath = APPLICATION_PATH . '/../library/PHPExcel/'; require_once $excelPath . 'PHPExcel/IOFactory.php'; $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load(APPLICATION_PATH . '/../public/forms/FEFOP/' . $contractFiles[$data['num_module']]); $activeSheet = $objPHPExcel->getActiveSheet(); $activeSheet->setCellValue('P12', $data['contract']); $activeSheet->setCellValue('Q40', $data['business_plan']); $activeSheet->setCellValue('T8', $data['date_inserted']); $activeSheet->setCellValue('F45', $data['date_inserted']); $activeSheet->setCellValue('F46', $data['date_finish']); $activeSheet->setCellValue('F16', $data['evidence_card']); $activeSheet->setCellValue('F17', $data['electoral']); $activeSheet->setCellValue('E19', $data['client_name']); $activeSheet->setCellValue('D117', $data['client_name']); $activeSheet->setCellValue('Q19', $data['client_fone']); $activeSheet->setCellValue('O20', $data['email']); $activeSheet->setCellValue('H25', $data['total_partisipants']); // Responsible $activeSheet->setCellValue('E28', $data['client_name']); $activeSheet->setCellValue('M28', $data['evidence_card']); $activeSheet->setCellValue('O28', $data['electoral']); $activeSheet->setCellValue('Q28', $data['gender']); $activeSheet->setCellValue('R28', $data['is_handicapped'] ? 'Sin' : 'Lae'); $startPerson = 29; foreach ($group as $person) { $activeSheet->setCellValue('E' . $startPerson, $person['name']); $activeSheet->setCellValue('M' . $startPerson, $person['evidence_card']); $activeSheet->setCellValue('O' . $startPerson, $person['electoral']); $activeSheet->setCellValue('Q' . $startPerson, $person['gender']); $activeSheet->setCellValue('R' . $startPerson, $person['is_handicapped'] ? 'Sin' : 'Lae'); $startPerson++; } $activeSheet->setCellValue('F38', $data['name_disivion']); $activeSheet->setCellValue('L38', $data['name_classtimor']); $activeSheet->setCellValue('F40', $data['project_name']); $activeSheet->setCellValue('P45', $data['district']); $activeSheet->setCellValue('P46', $data['sub_district']); $activeSheet->setCellValue('P47', $data['sucu']); $startExpense = 52; $count = 'A'; foreach ($expenses as $expense) { $activeSheet->setCellValue('B' . $startExpense, $count++); $activeSheet->setCellValue('C' . $startExpense, $expense['name']); $activeSheet->setCellValue('S' . $startExpense, $expense['amount']); $startExpense++; } $activeSheet->setCellValue('B' . $startExpense, $count++); $activeSheet->setCellValue('C' . $startExpense, 'Fundu Maneiu (600 USD + 10% rubrika sira iha leten)'); $activeSheet->setCellValue('S' . $startExpense, $reserve_fund); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); $file = sprintf('Contract_%s.xlsx', $data['contract']); header(sprintf('Content-Disposition: attachment;filename="%s"', $file)); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; }