✏️ 正在编辑: Remessa.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Remessa.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Core_Banco_Enum_BancoEnum as Banco; use Core_Banco_Service_Remessa as Service; use Core_Banco_Remessa_Config_Santander as Config; class Core_Banco_Remessa { /** @var int */ protected $numero; private $_fileName = null; private $_extensao = "REM"; public function getFileName() { return $this->_fileName; } public function setFileName($fileName) { $this->_fileName = $fileName; } public function getExtensao() { return $this->_extensao; } public function setExtensao($extensao) { $this->_extensao = $extensao; } /** * @return int */ public function getNumero(): int { return $this->numero; } /** * @param $numero */ public function setNumero($numero): void { $this->numero = $numero; } /** * @param $protocolos * @param $conta * @param $tipoTransferencia * @param $dataPagamento * @return Core_Banco_Remessa * @throws Core_Exception */ public static function factory($protocolos, $conta, $tipoTransferencia, $dataPagamento): Core_Banco_Remessa { $arquivoRemessa = null; switch ($conta->banco_id) { case Banco::MERCANTIL: $arquivoRemessa = new Core_Banco_Remessa_Mercantil( $protocolos, $conta, $tipoTransferencia, $dataPagamento ); break; case Banco::SANTANDER: $arquivoRemessa = new Core_Banco_Remessa_Santander( $protocolos, $conta, $tipoTransferencia, $dataPagamento ); break; case Banco::BMG: $arquivoRemessa = new Core_Banco_Remessa_Bmg( $protocolos, $conta, $tipoTransferencia, $dataPagamento ); break; case Banco::BRADESCO: $arquivoRemessa = new Core_Banco_Remessa_Bradesco( $protocolos, $conta, $tipoTransferencia, $dataPagamento ); break; case Banco::BRASIL: $arquivoRemessa = new Core_Banco_Remessa_BancoBrasil( $protocolos, $conta, $tipoTransferencia, $dataPagamento ); break; default: throw new Core_Exception("Banco não implementado!"); } return $arquivoRemessa; } protected function formatar(array $tabela, array $valores) { foreach ($tabela as $sCod => $sInfo) { if ($sInfo['formato'] == 'N') { $filter = new Zend_Filter_Digits(); $digitos = $sInfo['digitos'] + (!empty($sInfo['decimais']) ? $sInfo['decimais'] : 0); $padString = "0"; $padType = STR_PAD_LEFT; } else { $filter = new Zend_Filter(); $filter->addFilter(new Core_Filter_Alnum(true, true)) ->addFilter(new Core_Filter_RemoverAcentos()) ->addFilter(new Zend_Filter_StringToUpper()); $digitos = $sInfo['digitos']; $padString = " "; $padType = STR_PAD_RIGHT; } $valores[$sCod] = !isset($valores[$sCod]) ? $filter->filter($sInfo['default']) : $filter->filter($valores[$sCod]); if (strlen($valores[$sCod]) < $digitos) { $valores[$sCod] = str_pad($valores[$sCod], $digitos, $padString, $padType); } else if (strlen($valores[$sCod]) > $digitos) { $valores[$sCod] = substr($valores[$sCod], 0, $digitos); } } ksort($valores); return implode('', $valores); } /** * @param array $tabela * @param array $valores * @return string */ protected function formatarNew(array $tabela, array $valores): string { foreach ($tabela as $key => $config) { $mutator = Service::getMutators($config); $valores[$key] = $mutator->filter->filter($valores[$key] ?? $config[Config::PADRAO]); $valores[$key] = (strlen($valores[$key]) < $mutator->digitos) ? str_pad($valores[$key], $mutator->digitos, $mutator->padString, $mutator->padType) : substr($valores[$key], 0, $mutator->digitos) ; } ksort($valores); return implode('', $valores); } /** * @return string */ public function getFileNameDownload(): string { return $this->getFileName() . String_Refatorar::resetNumero($this->getNumero(), 7) . '.' . $this->getExtensao() ; } }
💾 保存文件
← 返回文件管理器