✏️ 正在编辑: Planilha.php
路径:
/srv/systems_dir/yuppiecred/library/Core/OpSacada/Planilha.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_OpSacada_Planilha { protected $colunas = array( 'numero_contrato' => 'B', 'data_op_sacada' => 'A' ); protected $_inicioLaco = 2; protected $_dateFormat = 'd/m/Y'; private $success = 0; private $error = array(); protected function _addNaoImportadas($contrato, $motivo) { $this->error[] = array('numero_contrato' => $contrato, 'motivo' => $motivo); } public function getColuna($coluna) { return isset($this->colunas[$coluna]) ? trim($this->colunas[$coluna]) : null; } public function getInicioLaco() { return $this->_inicioLaco; } public function setInicioLaco($inicioLaco) { $this->_inicioLaco = $inicioLaco; return $this; } public function getBanco() { } protected function _getDadosProposta($numeroContrato) { $dbtable = new Model_DbTable_Contrato(); return $dbtable->fetchRow("numero_contrato = '{$numeroContrato}' AND banco_id = {$this->getBanco()}"); } public function importar(array $sheetData) { for ($i = $this->_inicioLaco; $i <= count($sheetData); $i++) { $bancoId = $this->getBanco(); if(empty($bancoId)){ $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], "Banco não informado."); continue; } try { $numeroContrato = $this->_getNumeroContrato($sheetData[$i]); if (empty($numeroContrato)) { $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], "Número do contrato inválido."); continue; } $contrato = $this->_getDadosProposta($numeroContrato); if (empty($contrato)) { $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], "Contrato não localizado."); continue; } $dataSaque = $this->_getDataOpSacada($sheetData[$i]); if(empty($dataSaque)){ $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], "Data inválida."); continue; } $result = (new Model_DbTable_Contrato())->setarOpSacada($contrato['id'], $dataSaque); if (empty($result)) { $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], "Contrato não foi atualizado."); continue; } $this->success++; } catch( Zend_Db_Expr $e ){ $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], "Erro de leitura dos dados no banco de dados."); } catch( Exception $e ){ $this->_addNaoImportadas($sheetData[$i][$this->colunas['numero_contrato']], $e->getMessage()); } } return array("success" => $this->success, "error" => $this->error); } protected function _getNumeroContrato(array $sheetData) { if ($this->getColuna('numero_contrato')) { return String_Refatorar::soNumeros($sheetData[$this->getColuna('numero_contrato')]); } return null; } protected function _getDataOpSacada(array $sheetData) { $colDtSaque = $this->getColuna('data_op_sacada'); if(!empty($colDtSaque)) { $colunaDtSaque = trim($sheetData[$colDtSaque]); $dataSaque = null; if (!empty($colunaDtSaque)) { $dataSaque = Core_Util::convertDate($colunaDtSaque, $this->_dateFormat); if (is_array($dataSaque)) { throw new Core_Exception("Não foi possível converter a data de emissão para o banco de dados. ({$colunaDtSaque}). Padrão esperado: {$this->_dateFormat}"); } } return $dataSaque; } return null; } }
💾 保存文件
← 返回文件管理器