✏️ 正在编辑: Pendencias.php
路径:
/srv/systems_dir/yuppiecred-bkp/library/Core/Banco/Pendencias.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Pendencias { protected $_bancoId; protected $_inicioLaco = 2; protected $colunas = array( 'numero_contrato' => '', 'descricao_pendencia' => '', ); /** * * @param type $bancoId * @return Core_Banco_Pendencias * @throws Core_Exception */ public static function factory($sheetData, $bancoId, $tipoImportacao) { $modelBanco = new Model_Banco(); $banco = $modelBanco->exibir($bancoId); $result = array(); switch ( $banco->nome ) { case 'BMG': if( $tipoImportacao == "PENDENCIAS FISICO" ){ $importBmg = new Core_Banco_Planilha_Bmg_Pendencias($bancoId); $result = $importBmg->importar($sheetData); } elseif( $tipoImportacao == "PENDENCIAS GERAIS" ){ $importBmg = new Core_Banco_Planilha_Bmg_PendenciasGerais($bancoId); $result = $importBmg->importar($sheetData); } elseif( $tipoImportacao == "EXTRATOR QLIKVIEW" ){ $importBmg = new Core_Banco_Planilha_Bmg_ExtratorQlikView($bancoId); $result = $importBmg->importar($sheetData); } break; case 'BANRISUL': $importBanrisul = new Core_Banco_Planilha_Banrisul_Pendencias($bancoId); $result = $importBanrisul->importar($sheetData); break; case 'BRADESCO PROMOTORA': $importarBradesco = new Core_Banco_Planilha_Bradesco_Pendencias($bancoId); $result = $importarBradesco->importar($sheetData); break; case 'PAN': if( $tipoImportacao == "DOCUMENTOS" ){ $importPan = new Core_Banco_Planilha_Pan_Pendencias($bancoId); $result = $importPan->importar($sheetData); } elseif( $tipoImportacao == "ANALITICO CONTRATO" ){ $importarPan = new Core_Banco_Planilha_Pan_PendenciasAnaliticoContrato($bancoId); $result = $importarPan->importar($sheetData); } break; case 'BONSUCESSO': $importBonsucesso = new Core_Banco_Planilha_Bonsucesso_Pendencias($bancoId); $result = $importBonsucesso->importar($sheetData); break; case 'ITAÚ' || 'ITAU': if($tipoImportacao == "EXTRATOR QLIKVIEW"){ $importItau = new Core_Banco_Planilha_Itau_ExtratorPendenciasQlikView($bancoId); $result = $importItau->importar($sheetData); }else{ $importItau = new Core_Banco_Planilha_Bmg_PendenciasItau($bancoId); $result = $importItau->importar($sheetData); } break; default: return new Core_Banco_Pendencias($bancoId); } return $result; } public function __construct($bancoId) { $this->setBancoId($bancoId); } public function setBancoId($bancoId) { $this->_bancoId = $bancoId; return $this; } public function getBancoId() { return $this->_bancoId; } public function getColuna($coluna) { return isset($this->colunas[$coluna]) ? trim($this->colunas[$coluna]) : null; } public function getColunas() { return $this->colunas; } public function validarColunas(array $sheetData) { $colunas = array_flip($this->getColunas()); unset($colunas['']); $colunas = array_keys($colunas); $sheetDataColunas = array_keys(current($sheetData)); $colunasFaltandoArquivo = array_diff($colunas, $sheetDataColunas); $colunasAmaisArquivo = array_diff($sheetDataColunas, $colunas); $msg = ''; if( $colunasFaltandoArquivo ){ asort($colunasFaltandoArquivo); $msg = count($colunasFaltandoArquivo) == 1 ? "A coluna '" . current($colunasFaltandoArquivo) . "' não existe na planilha enviada. " : 'As seguintes colunas não existem na planilha enviada:<br />' . implode(', ', $colunasFaltandoArquivo) . '. '; $msg .= '<br />Confira na planilha padrão deste banco o que está diferente.'; } elseif( $colunasAmaisArquivo ){ asort($colunasAmaisArquivo); $msg = count($colunasAmaisArquivo) == 1 ? "A coluna '" . current($colunasAmaisArquivo) . "' não existe na planilha padrão. " : 'As seguintes colunas não existem na planilha padão:<br />' . implode(', ', $colunasAmaisArquivo) . '. '; $msg .= '<br />Confira na planilha padrão deste banco o que está diferente.'; } if( $msg != '' ) throw new Core_Exception($msg, '01'); } public function lerArquivo($filepath) { $objReader = PHPExcel_IOFactory::createReaderForFile($filepath); $fileinfo = $objReader->listWorksheetInfo($filepath); $modelBanco = new Model_Banco(); $banco = $modelBanco->exibir($this->getBancoId()); $colContrato = "A"; switch ( utf8_decode($banco->nome) ) { case 'BMG': $fileinfo = $fileinfo[0]; $colContrato = "H"; break; case 'PAN': $fileinfo = $fileinfo[1]; $colContrato = "A"; break; case 'BONSUCESSO': $fileinfo = $fileinfo[0]; $colContrato = "H"; break; case 'ITAÚ': $fileinfo = $fileinfo[0]; $colContrato = "F"; break; case 'BRADESCO PROMOTORA': $fileinfo = $fileinfo[1]; $colContrato = "A"; break; default : $fileinfo = $fileinfo[0]; break; } $firstSheetName = $fileinfo['worksheetName']; // $totalColumns = $fileinfo[0]['totalColumns']; $objReader->setReadDataOnly(true); $objReader->setLoadSheetsOnly($firstSheetName); $objPHPExcel = $objReader->load($filepath); $sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true); $objPHPExcel->disconnectWorksheets(); for ( $i = 0; $i < $this->_inicioLaco; $i++ ) { unset($sheetData[$i]); } $newSheetData = array(); $cont = 0; foreach ( $sheetData as $values ) { if( !empty($values[$colContrato]) && is_numeric($values[$colContrato]) ){ $newSheetData[$cont++] = $values; } } // $this->validarColunas($newSheetData); return $newSheetData; } /** * Sobrescrever nas classes filhas * * @param array $sheetData */ public function importar(array $sheetData) { $results = array( 'importados' => 0, 'nao_importados' => 0, 'nao_encontrados' => 0, ); if( count($sheetData) > 0 ){ foreach ( $sheetData as $row ) { $modelContrato = new Model_Contrato(); $cobrancaBanco = 1; $result = $modelContrato->gravarPendencia( $row[$this->getColuna('numero_contrato')], $row[$this->getColuna('descricao_pendencia')], $this->getBancoId(), $cobrancaBanco ); if( $result['analise_pendencia'] == 'ENVIADO' ){ $results['importados'] ++; } else if( $result['analise_pendencia'] == 'NAO_ENVIADO' ){ $results['nao_importados'] ++; } else { $results['nao_encontrados'] ++; } } } return $results; } public function excluirLinhasVazias(array $sheetData) { $cont = $this->_inicioLaco; $newSheetData = array(); if( $this->_inicioLaco > 0 ){ $cont = $this->_inicioLaco; } foreach ( $sheetData as $l => $linha ) { if( !empty($linha[$this->getColuna('numero_contrato')]) && is_numeric($linha[$this->getColuna('numero_contrato')]) ){ $newSheetData[$cont++] = $linha; } if( !empty($linha[$this->getColuna('adesao')]) && is_numeric($linha[$this->getColuna('adesao')]) ){ $newSheetData[$cont++] = $linha; } } return $newSheetData; } }
💾 保存文件
← 返回文件管理器