Eduardokum\LaravelBoleto\Cnab\Remessa\Cnab240\Banco\Santander::segmentoP PHP Method

segmentoP() protected method

protected segmentoP ( integer $nSequencialLote, Eduardokum\LaravelBoleto\Contracts\Boleto\Boleto $boleto )
$nSequencialLote integer
$boleto Eduardokum\LaravelBoleto\Contracts\Boleto\Boleto
    protected function segmentoP($nSequencialLote, BoletoContract $boleto)
    {
        $this->iniciaDetalhe();
        $this->add(1, 3, Util::onlyNumbers($this->getCodigoBanco()));
        //Código do Banco
        $this->add(4, 7, Util::formatCnab(9, 01, 4));
        // Numero do lote remessa
        $this->add(8, 8, Util::formatCnab(9, 3, 1));
        // Numero do lote remessa
        $this->add(9, 13, Util::formatCnab(9, $nSequencialLote, 5));
        // Nº sequencial do registro de lote
        $this->add(14, 14, Util::formatCnab('9', 'P', 1));
        // Nº sequencial do registro de lote
        $this->add(15, 15, '');
        // Reservado (Uso Banco)
        $this->add(16, 17, Util::formatCnab(9, 01, 2));
        // Código de movimento remessa
        $this->add(18, 21, Util::formatCnab(9, $this->getAgencia(), 4));
        // Agência do cedente
        $this->add(22, 22, Util::formatCnab(9, $this->getAgenciaDv(), 1));
        // Digito verificador da Agência do cedente
        $this->add(23, 31, Util::formatCnab(9, $this->getConta(), 9));
        // Numero da conta corrente
        $this->add(32, 32, Util::formatCnab(9, $this->getContaDv(), 1));
        // Digito verificador da conta corrente
        $this->add(33, 41, Util::formatCnab(9, $this->getConta(), 9));
        // Conta Cobrança
        $this->add(42, 42, Util::formatCnab(9, $this->getContaDv(), 1));
        // Digito  da Conta Cobrança
        $this->add(43, 44, '');
        // Reservado (Uso Banco)
        $this->add(45, 57, Util::formatCnab(9, $boleto->getNossoNumero(), 13));
        // Nosso Número
        $this->add(58, 58, Util::formatCnab(9, $this->getCarteira(), 1));
        // Tipo de Cobrança
        $this->add(59, 59, Util::formatCnab(9, 1, 1));
        // Forma de Cadastramento
        $this->add(60, 60, Util::formatCnab(9, 2, 1));
        // Tipo de documento
        $this->add(61, 61, '');
        // Reservado (Uso Banco)
        $this->add(62, 62, '');
        // Reservado (Uso Banco)
        //
        $this->add(63, 77, Util::formatCnab(9, $boleto->getNumero(), 15));
        // Seu Número
        $this->add(78, 85, $boleto->getDataVencimento()->format('dmY'));
        // Data de vencimento do título
        $this->add(86, 100, Util::formatCnab(9, $boleto->getValor(), 15, 2));
        // Valor nominal do título
        $this->add(101, 104, Util::formatCnab(9, 0, 4));
        //Agência encarregada da cobrança
        $this->add(105, 105, Util::formatCnab(9, 0, 1));
        //Dígito da Agência do Cedente
        $this->add(106, 106, '');
        //Reservado (uso Banco)
        $this->add(107, 108, Util::formatCnab(9, self::DS_DUPLICATA_DE_SERVICO, 2));
        //Espécie do título
        $this->add(109, 109, Util::formatCnab('9', 'N', 1));
        //Identif. de título Aceito/Não Aceito
        $this->add(110, 117, date('dmY'));
        //Data da emissão do título
        $juros = 0;
        if ($boleto->getJuros() > 0) {
            $juros = Util::percent($boleto->getValor(), $boleto->getJuros()) / 30;
        }
        $this->add(118, 118, Util::formatCnab(9, '', 1));
        //Código do juros de mora
        $this->add(119, 126, Util::formatCnab(9, $boleto->getDataVencimento()->format('dmY'), 8));
        //Data do juros de mora / data de vencimento do titulo
        $this->add(127, 141, Util::formatCnab(9, $juros, 15, 2));
        //Valor da mora/dia ou Taxa mensal
        $this->add(142, 142, Util::formatCnab(9, '', 1));
        //Código do desconto 1
        $this->add(143, 150, Util::formatCnab(9, $boleto->getDataVencimento()->format('dmY'), 8));
        //Data de desconto 1
        $this->add(151, 165, Util::formatCnab(9, 0, 15, 2));
        //Valor ou Percentual do desconto concedido //TODO
        $this->add(166, 180, Util::formatCnab(9, 0, 15, 2));
        //Valor do IOF a ser recolhido
        $this->add(181, 195, Util::formatCnab(9, $boleto->getDescontosAbatimentos(), 15, 2));
        //Valor do abatimento
        $this->add(196, 220, '');
        //Identificação do título na empresa
        $this->add(221, 221, Util::formatCnab(9, 0, 1));
        //Código para protesto
        $this->add(222, 223, Util::formatCnab(9, 0, 2));
        //Número de dias para protesto
        $this->add(224, 224, Util::formatCnab(9, 2, 1));
        //Código para Baixa/Devolução
        $this->add(225, 225, Util::formatCnab(9, 0, 1));
        // Reservado (uso Banco)
        $this->add(226, 227, Util::formatCnab(9, 0, 2));
        // Número de dias para Baixa/Devolução
        $this->add(228, 229, Util::formatCnab(9, 0, 2));
        // Código da moeda
        $this->add(230, 240, '');
        // Reservado (Uso Banco)
        return $this;
    }