✏️ 正在编辑: Remessa.php
路径:
/srv/systems_dir/yuppiecred/library/Core/Banco/Service/Remessa.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Core_Banco_Remessa_Config_Abstract as Config; class Core_Banco_Service_Remessa { /** @var int */ public const CPF = 1, CNPJ = 2 ; /** @var Model_ArquivoRemessa */ private $model; /** @var string */ private const SEM_LANCAMENTOS = 'Lista de lançamentos vazia'; /** @var string */ private const FORMATO_NUMERICO = 'N'; public function __construct() { $this->model = new Model_ArquivoRemessa(); } /** * @param array|null $pagamentos */ public function validarPagamentos(?array $pagamentos): void { if (!is_iterable($pagamentos) || !count($pagamentos)) { throw new DomainException(self::SEM_LANCAMENTOS); } } /** * @param int $empresa * @param int $banco * @return int */ public function saveRemessa(int $empresa, int $banco): int { return $this->model->createRemessaRow($empresa, $banco); } /** * @param array $pagamento * @param $remessa */ public function updateProtocoloPagamento(array $pagamento, int $remessa): void { (new Model_DbTable_ProtocoloPagamento())->update([ 'gerado_remessa' => 1, 'codigo_remessa' => $pagamento['codigo_remessa'], 'numero_remessa' => $remessa, ], ['id = ?' => $pagamento['id']]); } /** * @param array $config * @return bool */ public static function isFormatoNumerico(array $config): bool { return $config[Config::FORMATO] === self::FORMATO_NUMERICO; } /** * @param array $config */ public static function getMutators(array $config) { $mutator = self::getMutator($config[Config::TAMANHO]); if (self::isFormatoNumerico($config)) { return $mutator; } $mutator->filter = new Zend_Filter(); $mutator->padString = " "; $mutator->padType = STR_PAD_RIGHT; $mutator->filter ->addFilter(new Core_Filter_RemoverAcentos()) ->addFilter(new Zend_Filter_StringToUpper()); if (empty($config[Config::ESPECIAIS])) { $mutator->filter->addFilter(new Core_Filter_Alnum(true, true)); } return $mutator; } /** * @param int $tamanho * @return stdClass */ public static function getMutator(int $tamanho): stdClass { $mutator = new stdClass(); $mutator->filter = new Zend_Filter_Digits(); $mutator->digitos = $tamanho; $mutator->padString = "0"; $mutator->padType = STR_PAD_LEFT; return $mutator; } /** * @param array $pagamento * @return float */ public static function getTaxaTransferencia(array $pagamento): float { if ( (isset($pagamento['forma_pagamento_id']) && ($pagamento['forma_pagamento_id'] != 7)) || empty($pagamento['total_comissao']) ) { return 0; } if (isset($pagamento['taxa_transferencia_banco']) && $pagamento['descontar_taxa_transf'] == 1) { return $pagamento['taxa_transferencia_banco']; } return 0; } /** * @param float $valor */ public static function formatFloat(float $valor): string { $valorArr = explode('.', $valor); if (strlen($valorArr[1]) <= 1) { return (string) $valor . "0"; } return $valor; } /** * @param string $tipoConta * @return int */ public function getCodigoTipoConta(string $tipoConta): int { switch ($tipoConta) { case 'CC': return 1; case 'CP': return 11; default: return 15; } } /** * @param string $cpfCnpj * @return int */ public function getTipoInscricao(string $cpfCnpj): int { return strlen($cpfCnpj) >= 14 ? self::CNPJ : self::CPF ; } /** * @param array $pagamento * @return string */ public function getValorPagamento(array $pagamento): string { $taxaTransferencia = self::getTaxaTransferencia($pagamento); $valorComissao = $pagamento['total_comissao']; return self::formatFloat( $valorComissao + $pagamento['acrescimo'] - $pagamento['desconto'] - $taxaTransferencia - $pagamento['recuperado'] ); } /** * @param Zend_Date $data */ public function getExtensaoBmg(Zend_Date $data): string { return str_pad((new Model_ArquivoRemessa())->getCodigoSequencialBmg($data), 3, 0, STR_PAD_LEFT); } }
💾 保存文件
← 返回文件管理器