// Uso para personalizar os campos do sicred ou de qualquer outro que não seguem os padrão comum
    void r_onRegBoleto(CNAB cnab, IReg reg, BoletoInfo boleto)
    {
        // É sempre bom validar o nome do registro, principalmente em CNAB240 que tem 2 tipos de registros para cada boleto, e cada registro deve ser tratado individualmente
        if (reg.NameType == typeof(CNAB400Remessa1Sicredi))
        {
            Reg<CNAB400Remessa1Sicredi> regBoleto = (Reg<CNAB400Remessa1Sicredi>)reg;
            // A rotina padrão define estas variáveis abaixo:
            /*
            regBoleto[CNAB400Remessa1Sicredi.NumeroDocumento] = cnab.Cedente.DocumentoNumeros;
            regBoleto[CNAB400Remessa1Sicredi.NossoNumero] = boleto.NossoNumero;
            regBoleto[CNAB400Remessa1Sicredi.NumeroDocumento] = boleto.NumeroDocumento;
            regBoleto[CNAB400Remessa1Sicredi.DataVencimento] = boleto.DataVencimento;
            regBoleto[CNAB400Remessa1Sicredi.ValorDocumento] = boleto.ValorDocumento;
            regBoleto[CNAB400Remessa1Sicredi.Especie] = CNAB400Sicredi.EspecieSicred(boleto.Especie);
            regBoleto[CNAB400Remessa1Sicredi.Aceite] = boleto.Aceite == "A" ? "S" : "N";
            regBoleto[CNAB400Remessa1Sicredi.Data] = boleto.DataDocumento;
            regBoleto[CNAB400Remessa1Sicredi.DataEmissao] = boleto.DataDocumento;
            if (boleto.ParcelaTotal > 0)
            {
                regBoleto[CNAB400Remessa1Sicredi.TipoImpressao] = "B";
                regBoleto[CNAB400Remessa1Sicredi.ParcelaNumero] = boleto.ParcelaNumero;
                regBoleto[CNAB400Remessa1Sicredi.ParcelaTotal] = boleto.ParcelaTotal;
            }
            regBoleto[CNAB400Remessa1Sicredi.Instrucao] = boleto.Instrucao1;
            regBoleto[CNAB400Remessa1Sicredi.Protesto] = boleto.DiasProtesto > 6 ? "06" : "00";
            regBoleto[CNAB400Remessa1Sicredi.DiasProtesto] = boleto.DiasProtesto;
            regBoleto[CNAB400Remessa1Sicredi.PercentualMora] = boleto.PercentualMora;
            regBoleto[CNAB400Remessa1Sicredi.DataDesconto] = boleto.DataDesconto;
            regBoleto[CNAB400Remessa1Sicredi.ValorDesconto] = boleto.ValorDesconto;
            regBoleto[CNAB400Remessa1Sicredi.SacadoTipo] = boleto.Sacado.Tipo;
            regBoleto[CNAB400Remessa1Sicredi.SacadoDocumento] = boleto.Sacado.DocumentoNumeros;
            regBoleto[CNAB400Remessa1Sicredi.Endereco] = boleto.Sacado.Endereco;
            regBoleto[CNAB400Remessa1Sicredi.CEP] = boleto.Sacado.CepNumeros;
            */

            // Campos com certa particulariade no sicred
            regBoleto[CNAB400Remessa1Sicredi.TipoCarteira] = "X"; // posição 3
            regBoleto[CNAB400Remessa1Sicredi.TipoJuros] = "Y";    // posição 19
            regBoleto[CNAB400Remessa1Sicredi.Alteracao] = "C";    // posição 71 // Desconto por dia de antecipação; 
            regBoleto[CNAB400Remessa1Sicredi.Emissao] = "A";      // posição 74 // O padrão é que a emissão seja feito no cliente ("B")

            // Os valores definidos em 'SetRegEnumValue' ou 'SetRegKeyValue' são obtidos apos este evento, portanto tem sempre prioridade
        }
    }
예제 #2
0
 void CustomRegBoleto(CNAB cnab, IReg reg, BoletoInfo boleto)
 {
     // é possivel definir campos adicionais como descontos, jurus, protesto e quaisquer outros via evento
     // estes campos adicionais não estão na classe basica de emissão sem registro: BoletoInfo, e devem ser definidos via evento
     // veja a documentação de cada banco e atribua os campos necessários
     // o arqumento "reg" é um tipo de Registro baseado no enumerador do banco registro: Reg<T> (é um template cuidado)
     if (reg.GetType() == typeof(Reg <CNAB400Remessa1Bradesco>)) // Já como esse é um exemplo generico apenas valido o tipo
     {
         var regBoleto = reg as Reg <CNAB400Remessa1Bradesco>;
         regBoleto[CNAB400Remessa1Bradesco.Condicao]   = 1;  // Para bo banco imprimir e enviar o boleto
         regBoleto[CNAB400Remessa1Bradesco.Instrucao1] = 6;  // Indica para Protestar
         regBoleto[CNAB400Remessa1Bradesco.Instrucao2] = 15; // Numero de dias apos o vencimento para o protesto
         regBoleto[CNAB400Remessa1Bradesco.Avalista]   = "!Alterado!";
     }
 }
    // Uso para personalizar os campos do sicred ou de qualquer outro que não seguem os padrão comum
    void r_onRegBoleto(CNAB cnab, IReg reg, BoletoInfo boleto)
    {
        // É sempre bom validar o nome do registro, principalmente em CNAB240 que tem 2 tipos de registros para cada boleto, e cada registro deve ser tratado individualmente
        if (reg.NameType == typeof(CNAB400Remessa1Sicredi))
        {
            Reg <CNAB400Remessa1Sicredi> regBoleto = (Reg <CNAB400Remessa1Sicredi>)reg;
            // A rotina padrão define estas variáveis abaixo:

            /*
             * regBoleto[CNAB400Remessa1Sicredi.NumeroDocumento] = cnab.Cedente.DocumentoNumeros;
             * regBoleto[CNAB400Remessa1Sicredi.NossoNumero] = boleto.NossoNumero;
             * regBoleto[CNAB400Remessa1Sicredi.NumeroDocumento] = boleto.NumeroDocumento;
             * regBoleto[CNAB400Remessa1Sicredi.DataVencimento] = boleto.DataVencimento;
             * regBoleto[CNAB400Remessa1Sicredi.ValorDocumento] = boleto.ValorDocumento;
             * regBoleto[CNAB400Remessa1Sicredi.Especie] = CNAB400Sicredi.EspecieSicred(boleto.Especie);
             * regBoleto[CNAB400Remessa1Sicredi.Aceite] = boleto.Aceite == "A" ? "S" : "N";
             * regBoleto[CNAB400Remessa1Sicredi.Data] = boleto.DataDocumento;
             * regBoleto[CNAB400Remessa1Sicredi.DataEmissao] = boleto.DataDocumento;
             * if (boleto.ParcelaTotal > 0)
             * {
             *  regBoleto[CNAB400Remessa1Sicredi.TipoImpressao] = "B";
             *  regBoleto[CNAB400Remessa1Sicredi.ParcelaNumero] = boleto.ParcelaNumero;
             *  regBoleto[CNAB400Remessa1Sicredi.ParcelaTotal] = boleto.ParcelaTotal;
             * }
             * regBoleto[CNAB400Remessa1Sicredi.Instrucao] = boleto.Instrucao1;
             * regBoleto[CNAB400Remessa1Sicredi.Protesto] = boleto.DiasProtesto > 6 ? "06" : "00";
             * regBoleto[CNAB400Remessa1Sicredi.DiasProtesto] = boleto.DiasProtesto;
             * regBoleto[CNAB400Remessa1Sicredi.PercentualMora] = boleto.PercentualMora;
             * regBoleto[CNAB400Remessa1Sicredi.DataDesconto] = boleto.DataDesconto;
             * regBoleto[CNAB400Remessa1Sicredi.ValorDesconto] = boleto.ValorDesconto;
             * regBoleto[CNAB400Remessa1Sicredi.SacadoTipo] = boleto.Sacado.Tipo;
             * regBoleto[CNAB400Remessa1Sicredi.SacadoDocumento] = boleto.Sacado.DocumentoNumeros;
             * regBoleto[CNAB400Remessa1Sicredi.Endereco] = boleto.Sacado.Endereco;
             * regBoleto[CNAB400Remessa1Sicredi.CEP] = boleto.Sacado.CepNumeros;
             */

            // Campos com certa particulariade no sicred
            regBoleto[CNAB400Remessa1Sicredi.TipoCarteira] = "X"; // posição 3
            regBoleto[CNAB400Remessa1Sicredi.TipoJuros]    = "Y"; // posição 19
            regBoleto[CNAB400Remessa1Sicredi.Alteracao]    = "C"; // posição 71 // Desconto por dia de antecipação;
            regBoleto[CNAB400Remessa1Sicredi.Emissao]      = "A"; // posição 74 // O padrão é que a emissão seja feito no cliente ("B")

            // Os valores definidos em 'SetRegEnumValue' ou 'SetRegKeyValue' são obtidos apos este evento, portanto tem sempre prioridade
        }
    }
예제 #4
0
        private int BB_Registro5_Opcional(CNAB cnab, BoletoInfo boleto)
        {
            // Apenas mostrando de forma simples, que nem todos os boletos precisariam ter o registro opcional
            if (boleto.BoletoID % 2 == 0) // no caso somente os boletos de numero impar teriam o registro
            {
                return(0);                // informa que não foi inserido nenhum registro opcional, assim a numero de sequencia do registro permanece o mesmo
            }
            // Define as informações do registro opcional 5 para registro de valores de multa
            var regR = new Reg <CNAB400Remessa5BB>();

            // Os valores default nem precisa definir
            regR[CNAB400Remessa5BB.CodigoMulta] = 1;                                 // Coloque o que quiser(logico de acordo com a documentação)
            regR[CNAB400Remessa5BB.DataMulta]   = boleto.DataVencimento.AddDays(15); // 15 dias após o vencimento
            regR[CNAB400Remessa5BB.ValorMulta]  = boleto.ValorDocumento * 0.02;      // 2% do valor do documento
            regR[CNAB400Remessa5BB.Sequencial]  = cnab.SequencialRegistro;           // Já como esse evento é chamado por ultimo, ele está no valor correto, mas se precisar adicionar mais que 1 registro ai tem que adicionar +N, e retornar sempre o numero de registros incluidos

            cnab.Add(regR);

            return(1); // Nomero de registro opcionais incluidos
        }
예제 #5
0
        private int Caixa_SegmentoR_Opcional(CNAB cnab, BoletoInfo boleto)
        {
            // Apenas mostrando de forma simples, que nem todos os boletos precisariam ter o registro opcional
            if (boleto.BoletoID % 2 == 0) // no caso somente os boletos de numero impar teriam o registro
            {
                return(0);                // informa que não foi inserido nenhum registro opcional, assim a numero de sequencia do registro permanece o mesmo
            }
            // Define as informações do segmento opcional R (da mesma forma pode ser criado qualquer tipo de registro opcional)
            var regR = new Reg <CNAB240SegmentoRCaixa>();

            regR[CNAB240SegmentoRCaixa.Lote]       = cnab.SequencialLote; // o número da sequencia só é alterado quando sair deste evento
            regR[CNAB240SegmentoRCaixa.Nregistro]  = cnab.SequencialRegistro;
            regR[CNAB240SegmentoRCaixa.email]      = "*****@*****.**";
            regR[CNAB240SegmentoRCaixa.Informacao] = "info...";
            cnab.Add(regR);

            // regX[CNAB240SegmentoXCaixa.Lote] = cnab.SequencialLote + 1; // Se houver mais registros o numero sequencial deve ser incrementadp
            // cnab.Add(regX); // E neste caso o retorno teria que ser 2 (numero de itens adicionados)

            return(1); // Nomero de registro opcionais incluidos
        }
예제 #6
0
        // Uso para personalizar os campos do sicred ou de qualquer outro que não seguem os padrão comum
        void r_onRegBoleto(CNAB cnab, IReg reg, BoletoInfo boleto)
        {
            // A verificação do tipo agora é obrigatporio poosi todos os registros, incluindo o header e footer podem ser personalizados
            // Logico que em certos registro o valor de BoletoInfo é null
            if (reg.NameType == typeof(CNAB400Remessa1Sicredi))
            {
                Reg<CNAB400Remessa1Sicredi> regBoleto = (Reg<CNAB400Remessa1Sicredi>)reg;

                // A rotina padrão define estas variáveis comentadas abaixo:

                regBoleto[CNAB400Remessa1Sicredi.NumeroDocumento] = cnab.Cedente.DocumentoNumeros;
                regBoleto[CNAB400Remessa1Sicredi.NossoNumero] = boleto.NossoNumero;
                regBoleto[CNAB400Remessa1Sicredi.NumeroDocumento] = boleto.NumeroDocumento;
                regBoleto[CNAB400Remessa1Sicredi.DataVencimento] = boleto.DataVencimento;
                regBoleto[CNAB400Remessa1Sicredi.ValorDocumento] = boleto.ValorDocumento;
                regBoleto[CNAB400Remessa1Sicredi.Especie] = CNAB400Sicredi.EspecieSicred(boleto.Especie);
                regBoleto[CNAB400Remessa1Sicredi.Aceite] = boleto.Aceite == "A" ? "S" : "N";
                regBoleto[CNAB400Remessa1Sicredi.Data] = boleto.DataDocumento;
                regBoleto[CNAB400Remessa1Sicredi.DataEmissao] = boleto.DataDocumento;
                if (boleto.ParcelaTotal > 0)
                {
                    regBoleto[CNAB400Remessa1Sicredi.TipoImpressao] = "B";
                    regBoleto[CNAB400Remessa1Sicredi.ParcelaNumero] = boleto.ParcelaNumero;
                    regBoleto[CNAB400Remessa1Sicredi.ParcelaTotal] = boleto.ParcelaTotal;
                }
                regBoleto[CNAB400Remessa1Sicredi.Instrucao] = boleto.Instrucao1;
                regBoleto[CNAB400Remessa1Sicredi.Protesto] = boleto.DiasProtesto > 6 ? "06" : "00";
                regBoleto[CNAB400Remessa1Sicredi.DiasProtesto] = boleto.DiasProtesto;
                regBoleto[CNAB400Remessa1Sicredi.PercentualMora] = boleto.PercentualMora;
                regBoleto[CNAB400Remessa1Sicredi.DataDesconto] = boleto.DataDesconto;
                regBoleto[CNAB400Remessa1Sicredi.ValorDesconto] = boleto.ValorDesconto;
                regBoleto[CNAB400Remessa1Sicredi.SacadoTipo] = boleto.Sacado.Tipo;
                regBoleto[CNAB400Remessa1Sicredi.SacadoDocumento] = boleto.Sacado.DocumentoNumeros;
                regBoleto[CNAB400Remessa1Sicredi.Endereco] = boleto.Sacado.Endereco;
                regBoleto[CNAB400Remessa1Sicredi.CEP] = boleto.Sacado.CepNumeros;

                // Campos com certa particulariade no sicred
                regBoleto[CNAB400Remessa1Sicredi.Emissao] = "A"; // O padrão é que a emissão seja feito no cliente ("B")
                regBoleto[CNAB400Remessa1Sicredi.Alteracao] = "C"; // Desconto por dia de antecipação;

                // Para que o Sicred poste o boleto tem que mudar o padrão abaixo
                regBoleto[CNAB400Remessa1Sicredi.TipoPostagem] = "S";
                regBoleto[CNAB400Remessa1Sicredi.Emissao] = "A";
            }
        }