✏️ 正在编辑: ImportarFtp.php
路径:
/srv/systems_dir/yuppiecred/application/models/ImportarFtp.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_ImportarFtp { public $bancoId; public $empresaId; public $dataImportacao; /** * @return mixed */ public function getBancoId() { return $this->bancoId; } /** * @param mixed $bancoNome * @return Model_ImportarFtp */ public function setBancoNome($bancoNome): Model_ImportarFtp { $this->bancoId = (new Model_Banco)->bancoPorNome($bancoNome); return $this; } /** * @return mixed */ public function getEmpresaId() { return $this->empresaId; } /** * @param mixed $empresaId * @return Model_ImportarFtp */ public function setEmpresaId($empresaId): Model_ImportarFtp { $this->empresaId = $empresaId; return $this; } /** * @return mixed */ public function getDataImportacao() { return $this->dataImportacao; } /** * @param mixed $dataImportacao * @return Model_ImportarFtp */ public function setDataImportacao($dataImportacao): Model_ImportarFtp { $this->dataImportacao = $dataImportacao; return $this; } public function sincronizar() { return $this->_baixarArquivos(); } private function _baixarArquivos() { $ftp = Core_Banco_Service_Ftp::factory($this->getEmpresaId(), $this->getBancoId()); $ftp->baixarArquivos(".", $this->getBancoId(), false, $this->getDataImportacao()); $ftp->baixarArquivos('NBC', $this->getBancoId(), true, $this->getDataImportacao()); $arquivosBaixados = $ftp->getArquivosBaixados(); $this->retorno['baixados'] = $arquivosBaixados; $diretorioDestino = $ftp->verificaDiretorioDestino($this->getBancoId()); $listFiles = $this->_getFilesReimport($diretorioDestino, $ftp->getUserName()); if( count($listFiles) > 0 ){ return $this->_importarArquivos($listFiles); } return [ 'mensagens' => [ 'Nenhum contrato encontrado para esta data.' ], 'resultado' => null, ]; } private function _importarArquivos(Array $arquivos) { $mensagens = 'Contratos importados com sucesso.'; $naoImportados = 0; foreach ($arquivos as $arquivoNome) { $naoImportados = null; $banco = Core_Banco_Service_Ftp::factoryBanco($this->getBancoId(), $arquivoNome); $file = new Core_File(); $retorno = $file->_readFile($arquivoNome, $this->getBancoId()); if (!count($retorno) > 0) continue; try { $banco->setArquivoOrigem($arquivoNome); $naoImportados = $banco->importar($retorno); } catch (Exception $ex) { $mensagens = [ $arquivoNome => 'Ocorreu algum erro na importaçao!' . $ex->getMessage() ]; } if( $naoImportados != null ){ $falhaImportacao = new Model_DbTable_FalhaImportacao(); foreach ( $naoImportados as $data ) { $data['arquivo'] = $arquivoNome; $data['banco_id'] = $this->getBancoId(); unset($data['valor_liquido']); $falhaImportacao->insert($data); } } } return [ 'resultado' => $naoImportados, 'mensagens' => [ $mensagens ] ]; } protected function _getFilesReimport($diretorioDestino, $codLoja) { $dt = new Zend_Date($this->getDataImportacao()); $searchFilesCliente = $diretorioDestino . "/" . $dt->get('yyyyMMdd') . "*{$codLoja}_Cliente_*.gz"; $searchFilesDadosProposta = $diretorioDestino . "/" . $dt->get('yyyyMMdd') . "*{$codLoja}_DadosProposta*.gz"; $searchFilesSituacaoProposta = $diretorioDestino . "/" . $dt->get('yyyyMMdd') . "*{$codLoja}_SituacaoProposta*.gz"; $searchFilesCreditoCliente = $diretorioDestino . "/" . $dt->get('yyyyMMdd') . "*{$codLoja}_CreditoCliente*.gz"; $listFiles = array_merge( array_map('basename', glob($searchFilesCliente, GLOB_BRACE)), array_map('basename', glob($searchFilesDadosProposta, GLOB_BRACE)), array_map('basename', glob($searchFilesSituacaoProposta, GLOB_BRACE)), array_map('basename', glob($searchFilesCreditoCliente, GLOB_BRACE)) ); return $listFiles; } }
💾 保存文件
← 返回文件管理器