Esempio n. 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            List <EmpresaModel> listaProdutos = new List <EmpresaModel>();
            DADOS dados = new DADOS();

            listaProdutos = dados.retornaTodosClientes();

            //atribui o datatable ao datagridview para exibir o resultado
            dataGridView1.DataSource = listaProdutos;
        }
        public string GeraXmlBoleto(BoletoClient boletoClient)
        {
            if (boletoClient == null)
            {
                return(null);
            }

            string   _codBeneficiario = boletoClient.CodigoBeneficiario;
            long     _nossoNumero     = boletoClient.NossoNumero;
            DateTime _dtVencimento    = boletoClient.DataVencimento;
            decimal  _valor           = boletoClient.Valor;

            string _autenticacao = GerarHash(boletoClient);

            HEADER header = new HEADER();

            header.VERSAO          = "1.0";
            header.AUTENTICACAO    = _autenticacao;
            header.USUARIO_SERVICO = "SGCBS02P";

            dynamic operacaoBoleto = null;

            if (boletoClient.Operacao == Operacao.INCLUI_BOLETO)
            {
                header.OPERACAO = "INCLUI_BOLETO";
                operacaoBoleto  = new IncluiBoleto();
            }
            else if (boletoClient.Operacao == Operacao.ALTERA_BOLETO)
            {
                header.OPERACAO = "ALTERA_BOLETO";
                operacaoBoleto  = new AlteraBoleto();
            }
            else if (boletoClient.Operacao == Operacao.CONSULTA_BOLETO)
            {
                header.OPERACAO = "CONSULTA_BOLETO";
                operacaoBoleto  = new ConsultaBoleto();
            }

            header.SISTEMA_ORIGEM = "SIGCB";
            header.DATA_HORA      = DateTime.Now.ToString("yyyyMMddHHmmss");

            operacaoBoleto.CODIGO_BENEFICIARIO = _codBeneficiario;

            var titulo = new Titulo();

            titulo.NOSSO_NUMERO     = _nossoNumero; //preencher com zero caso o beneficiario não venha a controlar
            titulo.NUMERO_DOCUMENTO = boletoClient.NumeroDocumento;
            titulo.DATA_VENCIMENTO  = _dtVencimento.ToString("yyyy-MM-dd");
            titulo.VALOR            = Convert.ToDecimal(_valor.ToString("n2"));
            titulo.TIPO_ESPECIE     = boletoClient.TipoEspecie;
            titulo.FLAG_ACEITE      = boletoClient.FlagAceite;

            if (boletoClient.Operacao == Operacao.INCLUI_BOLETO)
            {
                var juros_mora = new JurosMora();

                switch (boletoClient.JurosTipo)
                {
                case JurosTipo.ISENTO:
                    juros_mora.TIPO = "ISENTO";
                    break;

                case JurosTipo.VALOR_POR_DIA:
                    juros_mora.TIPO = "VALOR_POR_DIA";
                    break;

                case JurosTipo.TAXA_MENSAL:
                    juros_mora.TIPO = "TAXA_MENSAL";
                    break;

                default:
                    break;
                }

                juros_mora.DATA = boletoClient.JurosData.ToString("yyyy-MM-dd");

                switch (boletoClient.TipoCobrancaJuros)
                {
                case TipoCobranca.VALOR:
                    juros_mora.VALOR = boletoClient.JurosValorPercentual;
                    break;

                case TipoCobranca.PERCENTUAL:
                    juros_mora.PERCENTUAL = boletoClient.JurosValorPercentual;
                    break;

                default:
                    break;
                }

                titulo.JUROS_MORA = juros_mora;

                var posVencimento = new PosVencimento();

                switch (boletoClient.PosVencimentoAcao)
                {
                case PosVencimentoAcao.DEVOLVER:
                    posVencimento.ACAO = "DEVOLVER";
                    break;

                case PosVencimentoAcao.PROTESTAR:
                    posVencimento.ACAO = "PROTESTAR";
                    break;

                default:
                    break;
                }

                posVencimento.NUMERO_DIAS = 0;
                titulo.POS_VENCIMENTO     = posVencimento;

                titulo.CODIGO_MOEDA = "09";

                if (!string.IsNullOrEmpty(boletoClient.PagadorDocumento))
                {
                    var pagador = new Pagador();

                    if (boletoClient.PagadorDocumento.Length > 11)
                    {
                        pagador.RAZAO_SOCIAL = boletoClient.PagadorNome.CortaPalavra(40);
                        pagador.CNPJ         = boletoClient.PagadorDocumento;
                    }
                    else
                    {
                        pagador.NOME = boletoClient.PagadorNome.CortaPalavra(40);
                        pagador.CPF  = boletoClient.PagadorDocumento;
                    }

                    var endereco = new Endereco();
                    endereco.LOGRADOURO = boletoClient.PagadorEnderecoLogradouro.CortaPalavra(40);
                    endereco.BAIRRO     = boletoClient.PagadorEnderecoBairro.CortaPalavra(15);
                    endereco.CIDADE     = boletoClient.PagadorEnderecoCidade.CortaPalavra(15);
                    endereco.UF         = boletoClient.PagadorEnderecoUF;
                    endereco.CEP        = boletoClient.PagadorEnderecoCEP;
                    pagador.ENDERECO    = endereco;
                    titulo.PAGADOR      = pagador;
                }

                if (!string.IsNullOrEmpty(boletoClient.SacadorAvalistaDocumento))
                {
                    var sacadorAvalista = new SacadorAvalista();

                    if (boletoClient.SacadorAvalistaDocumento.Length > 11)
                    {
                        sacadorAvalista.CNPJ         = boletoClient.SacadorAvalistaDocumento;
                        sacadorAvalista.RAZAO_SOCIAL = boletoClient.SacadorAvalistaNome.CortaPalavra(40);
                    }
                    else
                    {
                        sacadorAvalista.CPF  = boletoClient.SacadorAvalistaDocumento;
                        sacadorAvalista.NOME = boletoClient.SacadorAvalistaNome.CortaPalavra(40);
                    }
                    titulo.SACADOR_AVALISTA = sacadorAvalista;
                }

                var pagamento = new Pagamento();
                pagamento.QUANTIDADE_PERMITIDA = boletoClient.PagamentoQuantidadePermitida;

                switch (boletoClient.PagamentoTipo)
                {
                case PagamentoTipo.NAO_ACEITA_VALOR_DIVERGENTE:
                    pagamento.TIPO = "NAO_ACEITA_VALOR_DIVERGENTE";
                    break;

                case PagamentoTipo.ACEITA_QUALQUER_VALOR:
                    pagamento.TIPO = "ACEITA_QUALQUER_VALOR";
                    break;

                case PagamentoTipo.ACEITA_VALORES_ENTRE_MINIMO_MAXIMO:
                    pagamento.TIPO = "ACEITA_VALORES_ENTRE_MINIMO_MAXIMO";
                    break;

                case PagamentoTipo.SOMENTE_VALOR_MINIMO:
                    pagamento.TIPO = "SOMENTE_VALOR_MINIMO";
                    break;

                default:
                    break;
                }

                switch (boletoClient.TipoCobrancaPagamento)
                {
                case TipoCobranca.VALOR:
                    pagamento.VALOR_MINIMO = boletoClient.PagamentoValorPercentualMinimo.ToString();
                    pagamento.VALOR_MAXIMO = boletoClient.PagamentoValorPercentualMaximo.ToString();
                    break;

                case TipoCobranca.PERCENTUAL:
                    pagamento.PERCENTUAL_MINIMO = boletoClient.PagamentoValorPercentualMinimo.ToString();
                    pagamento.PERCENTUAL_MAXIMO = boletoClient.PagamentoValorPercentualMaximo.ToString();
                    break;

                default:
                    break;
                }

                if (boletoClient.FichaCompensacaoMensagens != null)
                {
                    var fichaCompensacao = new FichaCompensacao();

                    fichaCompensacao.MENSAGENS = new List <string>();

                    foreach (var item in boletoClient.FichaCompensacaoMensagens)
                    {
                        fichaCompensacao.MENSAGENS.Add(item.Mensagem.CortaPalavra(40));
                    }

                    titulo.FICHA_COMPENSACAO = fichaCompensacao;
                }

                titulo.PAGAMENTO = pagamento;
            }

            if (boletoClient.Operacao != Operacao.CONSULTA_BOLETO)
            {
                operacaoBoleto.TITULO = titulo;
            }

            DADOS dados = new DADOS();

            if (boletoClient.Operacao == Operacao.INCLUI_BOLETO)
            {
                dados.INCLUI_BOLETO = operacaoBoleto;
            }
            else if (boletoClient.Operacao == Operacao.ALTERA_BOLETO)
            {
                dados.ALTERA_BOLETO = operacaoBoleto;
            }
            else if (boletoClient.Operacao == Operacao.CONSULTA_BOLETO)
            {
                dados.CONSULTA_BOLETO = operacaoBoleto;
                dados.CONSULTA_BOLETO.NOSSO_NUMERO = _nossoNumero;
            }

            SERVICO_ENTRADA boleto = new SERVICO_ENTRADA();

            boleto.HEADER = header;
            boleto.DADOS  = dados;

            SoapEnvelope            soap = new SoapEnvelope();
            XmlSerializerNamespaces ns   = new XmlSerializerNamespaces();

            if (boletoClient.Operacao == Operacao.CONSULTA_BOLETO)
            {
                soap.body = new ResponseBody <SERVICO_ENTRADA>();
                soap.body.SERVICO_ENTRADA_Consulta = boleto;

                ns.Add("ext", "http://caixa.gov.br/sibar/consulta_cobranca_bancaria/boleto");
            }
            else
            {
                soap.body = new ResponseBody <SERVICO_ENTRADA>();
                soap.body.SERVICO_ENTRADA = boleto;

                ns.Add("ext", "http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo");
            }

            ns.Add("sib", "http://caixa.gov.br/sibar");

            return(XmlHelper.Serialize(soap, ns));
        }