Gera um boleto como html
@param int $codigoBanco
@param wrapper $boleto @className=\NovoBoletoPHP\Api\Soap\Boleto
@return string
351838
public function makeBoletoAsHTML($codigoBanco, $boleto)
    {
        $boleto = new Boleto($boleto);
        $factory = new BoletoFactory($this->config);
        return $factory->makeBoletoAsHTML($codigoBanco, $boleto->toArray());
    }
1023822
public function getDescricaoLiquidacao()
    {
        // @TODO: Usar YAML (cnab_yaml) para criar tabela de descrição
        $codigoLiquidacao = $this->getCodigoLiquidacao();
        $tabela = array();

        if (\Cnab\Banco::ITAU == $this->_codigo_banco) {
            $tabela = array(
                'AA' => 'CAIXA ELETRÔNICO BANCO ITAÚ',
                'AC' => 'PAGAMENTO EM CARTÓRIO AUTOMATIZADO',
                'AO' => 'ACERTO ONLINE',
                'BC' => 'BANCOS CORRESPONDENTES',
                'BF' => 'ITAÚ BANKFONE',
                'BL' => 'ITAÚ BANKLINE',
                'B0' => 'OUTROS BANCOS – RECEBIMENTO OFF-LINE',
                'B1' => 'OUTROS BANCOS – PELO CÓDIGO DE BARRAS',
                'B2' => 'OUTROS BANCOS – PELA LINHA DIGITÁVEL',
                'B3' => 'OUTROS BANCOS – PELO AUTO ATENDIMENTO',
                'B4' => 'OUTROS BANCOS – RECEBIMENTO EM CASA LOTÉRICA',
                'B5' => 'OUTROS BANCOS – CORRESPONDENTE',
                'B6' => 'OUTROS BANCOS – TELEFONE',
                'B7' => 'OUTROS BANCOS – ARQUIVO ELETRÔNICO (Pagamento Efetuado por meio de troca de arquivos)',
                'CC' => 'AGÊNCIA ITAÚ – COM CHEQUE DE OUTRO BANCO ou (CHEQUE ITAÚ)*',
                'CI' => 'CORRESPONDENTE ITAÚ',
                'CK' => 'SISPAG – SISTEMA DE CONTAS A PAGAR ITAÚ',
                'CP' => 'AGÊNCIA ITAÚ – POR DÉBITO EM CONTA CORRENTE, CHEQUE ITAÚ* OU DINHEIRO',
                'DG' => 'AGÊNCIA ITAÚ – CAPTURADO EM OFF-LINE',
                'LC' => 'PAGAMENTO EM CARTÓRIO DE PROTESTO COM CHEQUE A COMPENSAR',
                'EA' => 'TERMINAL DE CAIXA',
                'Q0' => 'AGENDAMENTO – PAGAMENTO AGENDADO VIA BANKLINE OU OUTRO CANAL ELETRÔNICO E LIQUIDADO NA DATA INDICADA',
                'RA' => 'DIGITAÇÃO – REALIMENTAÇÃO AUTOMÁTICA',
                'ST' => 'PAGAMENTO VIA SELTEC**',
            );
        }

        if (array_key_exists($codigoLiquidacao, $tabela)) {
            return $tabela[$codigoLiquidacao];
        }

        return;
    }
76254
private static function getBancoClass($file_content)
    {
        $banco = '';
        $namespace = '';
        if (Util::isCnab400($file_content)) {
            $banco = mb_substr($file_content[0], 76, 3);
            $namespace = __NAMESPACE__ . '\\Cnab400\\';
        } elseif (Util::isCnab240($file_content)) {
            $banco = mb_substr($file_content[0], 0, 3);
            $namespace = __NAMESPACE__ . '\\Cnab240\\';
        }

        $aBancos = [
            BoletoContract::COD_BANCO_BB => 'Banco\\Bb',
            BoletoContract::COD_BANCO_SANTANDER => 'Banco\\Santander',
            BoletoContract::COD_BANCO_CEF => 'Banco\\Caixa',
            BoletoContract::COD_BANCO_BRADESCO => 'Banco\\Bradesco',
            BoletoContract::COD_BANCO_ITAU => 'Banco\\Itau',
            BoletoContract::COD_BANCO_HSBC => 'Banco\\Hsbc',
            BoletoContract::COD_BANCO_SICREDI => 'Banco\\Sicredi',
            BoletoContract::COD_BANCO_BANRISUL => 'Banco\\Banrisul',
            BoletoContract::COD_BANCO_BANCOOB => 'Banco\\Bancoob',
            BoletoContract::COD_BANCO_BNB => 'Banco\\Bnb',
        ];

        if (array_key_exists($banco, $aBancos)) {
            $bancoClass = $namespace . Util::getBancoClass($banco);
            return new $bancoClass($file_content);
        }

        throw new \Exception("Banco: $banco, inválido");
    }
800623
public function metaDescription()
    {
        return $this->wrapMetaDescription(
            sprintf('<span>%s</span><span>%s</span><span>%s</span>',
                $this->created_at->formatLocalized('%b %e, %Y @ %H:%M'),
                $this->mimetype,
                readable_size($this->size)
        ));
    }
1285731
protected function gerarCodigoBarras()
    {
        $data = $this->setDadosBoleto();

        $this->getConvenio()->gerarCampoLivre($data);

        $tamanhos = $this->convenio->getTamanhos();

        foreach ($data as $var => $value) {
            if (array_key_exists($var, $tamanhos)) {
                $data[$var] = StringBuilder::normalize($data[$var], $tamanhos[$var]);
            }
        }

        //Chamada do método que ajusta o NossoNumero
        $this->getConvenio()->ajustarNossoNumero($data);

        $this->convenio->setNossoNumero($data['NossoNumero']);

        $cod = $this->aplicarDadosAoLayout($this->convenio->getLayout(), $data);

        $dv = Number::modulo11($cod, 1, 1);

        $codigoBarras = $this->inserirDigitoVerificador($cod, $dv, 4);

        return $codigoBarras;
    }
1173604
public function getBoleto()
    {
        if (isset($this->data['object']) && 'transaction' === $this->data['object']) {
            if ( $this->data['boleto_url'] ) {
                $data = array(
                    'boleto_url' => $this->data['boleto_url'], 
                    'boleto_barcode' => $this->data['boleto_barcode'],
                    'boleto_expiration_date' => $this->data['boleto_expiration_date'],
                );
                return $data;
            } else {
                return null;
            }
        }
        
        return null;
    }
426660
private function produce($php = false, $brade = false, $sTag = true)
    {
        //With blade ???
        if($brade) $this->setContent($this->blade($this->getContent()));

        //With ©NeosTag ???
        if($sTag) {
            $ponteiro = -1;
            $content = $this->getContent();

            //Loop de varredura para o arquivo HTML
            while($ret = $this->sTag($content, $ponteiro)){
                $ponteiro = 0 + $ret['-final-'];
                $vartemp = '';

                //constant URL
                if($ret['-tipo-'] == 'var' && $ret['var'] == 'url') $vartemp = _URL;
                elseif (method_exists($this, '_' . $ret['-tipo-'])) $vartemp = $this->{'_' . $ret['-tipo-']}($ret);

                //Incluindo o bloco gerado pelas ©NeosTags
                $content = substr_replace($this->getContent(), $vartemp, $ret['-inicio-'], $ret['-tamanho-']);
                $this->setContent($content);

                //RE-setando o ponteiro depois de adicionar os dados acima
                $ponteiro = $ret['-inicio-'];
            }//end while
        }//end ©NeosTag

        //Eval PHP in HTML
        if($php) $this->evalPHP();

        //returns the processed contents
        return $this->getContent();
    }
67623
def busca_cep_correios(cep):
    '''  '''

    if cep is None or not isinstance(cep, str):
        raise AttributeError("O CEP deve ser do tipo string!")
    elif not cep.isdigit() or len(cep) != 8:
        raise AttributeError("O CEP deve conter apenas 8 dígitos!")

    url = 'http://www.buscacep.correios.com.br/sistemas/buscacep/resultadoBuscaCepEndereco.cfm'
    payload = {'relaxation': cep, 'tipoCEP': 'ALL', 'semelhante': 'N'}

    resp = requests.post(url, data=payload)

    if resp.status_code != 200:
        raise Exception("Erro acessando site dos correios!", resp.status_code)

    from bs4 import BeautifulSoup
    soup = BeautifulSoup(resp.text, "html.parser")
    value_cells = soup.find('table', attrs={'class': 'tmptabela'})
    values = list(value_cells.findAll('tr'))

    texto_clean = []
    for value in values[1].findAll('td'):
        texto_clean.append(value.get_text().strip())

    logradouro = Logradouro(texto_clean)

    return logradouro
92011
public function gerarCampoLivre(ArrayObject $data)
    {
        $carteira = $this->carteira;

        switch (strlen($this->convenio)) {
            case 4:
                $this->nossoNumero = $this->convenio . $this->getNossoNumero();
                $this->alterarTamanho("CodigoCedente", 4);
                $this->alterarTamanho("NossoNumero", 7);
                $this->layout = ':Banco:Moeda:FatorVencimento:Valor:CodigoCedente:NossoNumero:Agencia:Conta:Carteira';
                break;
            case 6:
                if ($carteira instanceof Carteira21) {
                    $this->alterarTamanho("NossoNumero", 17);
                    $this->layout = ':Banco:Moeda:FatorVencimento:Valor:NossoNumero:Agencia:Conta:Carteira';
                } else {
                    $this->nossoNumero = $this->convenio . Number::modulo11($this->getNossoNumero(), 0, 0, true);
                    $this->alterarTamanho('CodigoCedente', 6);
                    $this->alterarTamanho('NossoNumero', 5);
                    $this->layout = ':Banco:Moeda:FatorVencimento:Valor:CodigoCedente:NossoNumero:Agencia:Conta:Carteira';
                }
                break;
            case 7:
                $this->nossoNumero = $this->convenio . $this->nossoNumero;
                $this->alterarTamanho('CodigoCedente', 7);
                $this->alterarTamanho('NossoNumero', 10);
                $this->layout = ':Banco:Moeda:FatorVencimento:Valor000000:NossoNumero:Carteira';
                break;
            default:
                throw new \LogicException('O codigo do convenio precisa ter 4, 6 ou 7 digitos!');
        }

        return $data;
    }
967557
protected function gerarLinhaDigitavel($codigoBarras)
    {
        // Campo1 - Posições de 1-4 e 20-24
        $linhaDigitavel = substr($codigoBarras, 0, 4) . substr($codigoBarras, 19, 5)
            // Campo2 - Posições 25-34
            . substr($codigoBarras, 24, 10)
            // Campo3 - Posições 35-44
            . substr($codigoBarras, 34, 10)
            // Campo4 - Posição 5
            . substr($codigoBarras, 4, 1)
            // Campo5 - Posições 6-19
            . substr($codigoBarras, 5, 14);

        $dv1 = Number::modulo10(substr($linhaDigitavel, 0, 9));
        $dv2 = Number::modulo10(substr($linhaDigitavel, 9, 10));
        $dv3 = Number::modulo10(substr($linhaDigitavel, 19, 10));

        $linhaDigitavel = StringBuilder::putAt($linhaDigitavel, $dv3, 29);
        $linhaDigitavel = StringBuilder::putAt($linhaDigitavel, $dv2, 19);
        $linhaDigitavel = StringBuilder::putAt($linhaDigitavel, $dv1, 9);

        return StringBuilder::applyMask($linhaDigitavel, $this->mascara);
    }
1353461
public function getImagemCodigoDeBarras($codigo_barras)
    {
        $codigo_barras = (strlen($codigo_barras)%2 != 0 ? '0' : '') . $codigo_barras;
        $barcodes = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010'];
        for ($f1 = 9; $f1 >= 0; $f1--) {
            for ($f2 = 9; $f2 >= 0; $f2--) {
                $f = ($f1*10) + $f2;
                $texto = "";
                for ($i = 1; $i < 6; $i++) {
                    $texto .= substr($barcodes[$f1], ($i - 1), 1) . substr($barcodes[$f2], ($i - 1), 1);
                }
                $barcodes[$f] = $texto;
            }
        }
        
        // Guarda inicial
        $retorno = '<div class="barcode">' .
            '<div class="black thin"></div>' .
            '<div class="white thin"></div>' .
            '<div class="black thin"></div>' .
            '<div class="white thin"></div>';

        // Draw dos dados
        while (strlen($codigo_barras) > 0) {
            $i = round(substr($codigo_barras, 0, 2));
            $codigo_barras = substr($codigo_barras, strlen($codigo_barras) - (strlen($codigo_barras) - 2), strlen($codigo_barras) - 2);
            $f = $barcodes[$i];
            for ($i = 1; $i < 11; $i += 2) {
                if (substr($f, ($i - 1), 1) == "0") {
                    $f1 = 'thin';
                } else {
                    $f1 = 'large';
                }
                $retorno .= "<div class='black {$f1}'></div>";
                if (substr($f, $i, 1) == "0") {
                    $f2 = 'thin';
                } else {
                    $f2 = 'large';
                }
                $retorno .= "<div class='white {$f2}'></div>";
            }
        }

        // Final
        return $retorno . '<div class="black large"></div>' .
        '<div class="white thin"></div>' .
        '<div class="black thin"></div>' .
        '</div>';
    }
925556
public function getIBPTProd(
        $cnpj = '',
        $tokenIBPT = '',
        $ncm = '',
        $siglaUF = '',
        $exTarif = '0'
    ) {
        $url = "http://iws.ibpt.org.br/api/Produtos?token=$tokenIBPT&cnpj=$cnpj&codigo=$ncm&uf=$siglaUF&ex=$exTarif";
        $resposta = $this->zCommCurl($url, '', [], 80);
        $retorno = str_replace("\r\n", '|', $resposta);
        $aResp = explode('||', $retorno);
        if (! empty($aResp[1])) {
            if (substr($aResp[1], 0, 1) == '{') {
                $json = $aResp[1];

                return (array) json_decode($json, true);
            }
        }

        return [];
    }
282604
public function render($codigoBarras)
    {
        if (!is_string($codigoBarras)) {
            throw new \InvalidArgumentException("O código de barras deve ser uma string");
        }

        $barcodes = array("00110", "10001", "01001", "11000", "00101", "10100", "01100", "00011", "10010", "01010");

        for ($f1 = 9; $f1 >= 0; $f1--) {
            for ($f2 = 9; $f2 >= 0; $f2--) {

                $f = ($f1 * 10) + $f2;
                $texto = "";

                for ($i = 1; $i < 6; $i++) {
                    $texto .= substr($barcodes[$f1], ($i - 1), 1) . substr($barcodes[$f2], ($i - 1), 1);
                }

                $barcodes[$f] = $texto;
            }
        }

        // Guarda inicial
        $retorno = "<div class='barcode'>" .
            "<div class='black thin'></div>" .
            "<div class='white thin'></div>" .
            "<div class='black thin'></div>" .
            "<div class='white thin'></div>";

        if (strlen($codigoBarras) % 2 != 0) {
            $codigoBarras = "0" . $codigoBarras;
        }

        // Draw dos dados
        while (strlen($codigoBarras) > 0) {

            $i = (int) round($this->caracteresEsquerda($codigoBarras, 2));
            $codigoBarras = $this->caracteresDireita($codigoBarras, strlen($codigoBarras) - 2);
            $f = $barcodes[$i];

            for ($i = 1; $i < 11; $i += 2) {

                if (substr($f, ($i - 1), 1) == "0") {
                    $f1 = "thin";
                } else {
                    $f1 = "large";
                }

                $retorno .= "<div class='black {$f1}'></div>";

                if (substr($f, $i, 1) == "0") {
                    $f2 = "thin";
                } else {
                    $f2 = "large";
                }

                $retorno .= "<div class='white {$f2}'></div>";
            }
        }

        // Final
        return $retorno . "<div class='black thin'></div>" .
            "<div class='white thin'></div>" .
            "<div class='black thin'></div>" .
            "</div>";
    }
1232142
function queryShare($token, $buyOrder, $shareNumber) {

        try {

            $queryShare = new queryShare();

            $queryShare->token = $token;
            $queryShare->buyOrder = $buyOrder;
            $queryShare->shareNumber = $shareNumber;

            $queryShareResponse = $this->_queryShare($queryShare);

            $xmlResponse = $this->soapClient->__getLastResponse();
            $soapValidation = new SoapValidation($xmlResponse, $this->config->getWebpayCert());
            $validationResult = $soapValidation->getValidationResult();

            if ($validationResult === TRUE) {

                $wsCompleteQuerySharesOutput = $queryShareResponse->return;
                return $wsCompleteQuerySharesOutput;

            } else {

                $error["error"] = "Error validando conexi&oacute;n a Webpay (Verificar que la informaci&oacute;n del certificado sea correcta)";
                $error["detail"] = "No se pudo completar la conexi&oacute;n con Webpay";

            }
        } catch (Exception $e) {

            $error["error"] = "Error conectando a Webpay (Verificar que la informaci&oacute;n del certificado sea correcta)";

            $replaceArray = array('<!--' => '', '-->' => '');
            $error["detail"] = str_replace(array_keys($replaceArray), array_values($replaceArray), $e->getMessage());
        }

        return $error;
    }
665256
def ConsultarTiposEstado(self, sep="||"):
        ""
        ret = self.client.consultarTiposEstado(
                            authRequest={
                                'token': self.Token, 'sign': self.Sign,
                                'cuitRepresentada': self.Cuit, },
                                )['consultarTiposEstadoReturn']
        self.__analizar_errores(ret)
        array = ret.get('arrayTiposEstado', [])
        lista = [it['codigoDescripcionString'] for it in array]
        return [(u"%s {codigo} %s {descripcion} %s" % (sep, sep, sep)).format(**it) if sep else it for it in lista]
1287668
function authorize($token, $buyOrder, $gracePeriod, $idQueryShare, $deferredPeriodIndex) {

        try {

            $authorize = new authorize();

            $wsCompletePaymentTypeInput = new wsCompletePaymentTypeInput();
            $wsCompleteQueryShareInput = new wsCompleteQueryShareInput();

            $authorize->token = $token;

            $wsCompletePaymentTypeInput->buyOrder = $buyOrder;
            $wsCompletePaymentTypeInput->commerceCode = $this->config->getCommerceCode();
            $wsCompletePaymentTypeInput->gracePeriod = $gracePeriod; //Si se quiere período de gracia dejar en true

            $wsCompleteQueryShareInput->idQueryShare = $idQueryShare;

			if ($deferredPeriodIndex != 0) {
				$wsCompleteQueryShareInput->deferredPeriodIndex = $deferredPeriodIndex;
			}

            $wsCompletePaymentTypeInput->queryShareInput = $wsCompleteQueryShareInput;
            $authorize->paymentTypeList = $wsCompletePaymentTypeInput;

            $authorizeResponse = $this->_authorize($authorize);

            $xmlResponse = $this->soapClient->__getLastResponse();
            $soapValidation = new SoapValidation($xmlResponse, $this->config->getWebpayCert());
            $validationResult = $soapValidation->getValidationResult();

            if ($validationResult === TRUE) {

                /** Indica a Webpay que se ha recibido conforme el resultado de la transacción */
                if ($this->acknowledgeCompleteTransaction($token)) {

                    $wsCompleteAuthorizeOutput = $authorizeResponse->return;
                    return $wsCompleteAuthorizeOutput;

                } else {

                    $error["error"] = "Error validando conexi&oacute;n a Webpay (Verificar que la informaci&oacute;n del certificado sea correcta)";
                    $error["detail"] = "No se pudo completar la conexi&oacute;n con Webpay";
                }
            }
        } catch (Exception $e) {

            $error["error"] = "Error conectando a Webpay (Verificar que la informaci&oacute;n del certificado sea correcta)";

            $replaceArray = array('<!--' => '', '-->' => '');
            $error["detail"] = str_replace(array_keys($replaceArray), array_values($replaceArray), $e->getMessage());
        }

        return $error;
    }
170312
function initCompleteTransaction($amount, $buyOrder, $sessionId, $cardExpirationDate, $cvv, $cardNumber) {

        try {

            $wsCompleteInitTransactionInput = new wsCompleteInitTransactionInput();
            $completeCardDetail = new completeCardDetail();
            $wsCompleteTransactionDetail = new wsCompleteTransactionDetail();

            /** (Obligatorio) Indica el tipo de transacción, su valor debe ser siempre TR_COMPLETA_WS */
            $wsCompleteInitTransactionInput->transactionType = 'TR_COMPLETA_WS';
            $wsCompleteInitTransactionInput->sessionId = $sessionId;

            $wsCompleteTransactionDetail->amount = $amount;
            $wsCompleteTransactionDetail->buyOrder = $buyOrder;
            $wsCompleteTransactionDetail->commerceCode = $this->config->getCommerceCode();

            $completeCardDetail->cardExpirationDate = $cardExpirationDate;
            $completeCardDetail->cvv = $cvv;
            $completeCardDetail->cardNumber = $cardNumber;

            /** (Obligatorio) Objeto del tipo wsTransactionDetail que contiene información asociada a la tarjeta de crédito */
            $wsCompleteInitTransactionInput->cardDetail = $completeCardDetail; // cardDetails

            /** (Obligatorio) Lista de objetos del tipo wsTransactionDetail, el cual contiene datos de la transacción. Máxima cantidad de repeticiones es de 1 para este tipo de transacción */
            $wsCompleteInitTransactionInput->transactionDetails = $wsCompleteTransactionDetail; // wsTransactionDetail

            $initCompleteTransactionResponse = $this->_initCompleteTransaction(
                    array("wsCompleteInitTransactionInput" => $wsCompleteInitTransactionInput)
            );

            $xmlResponse = $this->soapClient->__getLastResponse();
            $soapValidation = new SoapValidation($xmlResponse, $this->config->getWebpayCert());
            $validationResult = $soapValidation->getValidationResult();

            if ($validationResult === TRUE) {

                $wsCompleteInitTransactionOutput = $initCompleteTransactionResponse->return;
                return $wsCompleteInitTransactionOutput;
            } else {

                $error["error"] = "Error validando conexi&oacute;n a Webpay (Verificar que la informaci&oacute;n del certificado sea correcta)";
                $error["detail"] = "No se pudo completar la conexi&oacute;n con Webpay";
            }
        } catch (Exception $e) {

            $error["error"] = "Error conectando a Webpay (Verificar que la informaci&oacute;n del certificado sea correcta)";

            $replaceArray = array('<!--' => '', '-->' => '');
            $error["detail"] = str_replace(array_keys($replaceArray), array_values($replaceArray), $e->getMessage());
        }

        return $error;
    }