/** * Formata o campo Agência/Codigo do Cliente no boleto, de acordo com as especificações de cada banco * Esse método é opcional na classe, e quando não é declarado, o boleto bancário exibe * a agência com dígito e a conta com dígito, no formato: 123-4/ 23346-3 * * @version 0.1 18/01/2013 Initial * * @param array $data Array com todos os dados constantes na classe * @return string String formatada no padrão do Nosso Número do banco */ public function agenciaCodigoCedente() { $data = $this->parent->Data; $string = OB::zeros(Math::Mod11($data['Agencia'], 0, 0, true), 5) . ' / ' . OB::zeros(Math::Mod11($data['Conta'], 0, 0, true), 7); return $string; }
/** * Normaliza as variáveis de acordo com os seus tamanhos exatos * * @version 0.1 18/05/2011 Initial */ public function normalize($valor, $variavel) { if (array_key_exists($variavel, $this->tamanhos)) { $length = $this->tamanhos[$variavel]; if (strlen($valor) < $length) { return OB::zeros($valor, $length); } else { return String::left($valor, $length); } } else { throw new Exception(" A chave \"{$variavel}\" não existe no layout"); } }
/** * Calcula a data juliana para uma data informada no formato d/m/a * * @version 0.1 28/05/2011 Initial * 0.2 31/05/2011 Formatação geral */ public function julianDays($date) { $date = preg_split('%[/-]+%', $date); $dataFinal = mktime(0, 0, 0, $date[1], $date[0], $date[2]); $dataInicial = mktime(0, 0, 0, 12, 31, $date[2] - 1); return OB::zeros((int) (($dataFinal - $dataInicial) / (60 * 60 * 24)), 3) . String::right($date[2], 1); }
/** * particularidade() Faz em tempo de execução mudanças que sejam imprescindíveis * para a geração correta do código de barras * Particularmente para o Banrisul, ele acrescenta ao array OB::$Data, que * guarda as variáveis que geram o código de barras, uma nova variável * $DuploDigito, específica desse banco * * @version 0.1 28/05/2011 Initial */ public function particularidade($object) { $object->Data['NumParcela'] = OB::zeros($object->Boleto->NumParcela, 3); $object->Data['AnoEmissao'] = date('y'); }
/** * particularidade() Faz em tempo de execução mudanças que sejam imprescindíveis * para a geração correta do código de barras * Particularmente para o Banrisul, ele acrescenta ao array OB::$Data, que * guarda as variáveis que geram o código de barras, uma nova variável * $DuploDigito, específica desse banco * * @version 0.1 28/05/2011 Initial */ public function particularidade($object) { $object->Data['NumParcela'] = OB::zeros($object->Boleto->NumParcela, 3); $object->Data['AnoEmissao'] = date('y'); $object->Boleto->NossoNumero = Math::Mod11($object->Boleto->NossoNumero, 0, 0, true); }
/** * Configura a Razão Social * * @version 0.1 27/05/2011 Initial * 0.2 27/05/2011 Renomeado de setNome() para setRazaoSocial() */ public function setRazaoSocial($value) { $this->RazaoSocial = OB::zeros($value, 3); return $this; }