コード例 #1
0
 private void EnviarTransacaoInclusaoSap(Dominio.ClienteSap Cliente)
 {
     OBJETO_SAP_CLIENTE_INC = new si_cliente_requestService.dt_cliente_request()
     {
         IDTRANSACAO = Cliente.Transacao_SAP,
         BUKRS       = Cliente.Codigo_Empresa,
         VKORG       = Cliente.Codigo_Empresa,           //Solicitado por Cristiney, em 09/11/2016 - Informou que a regra não vai mudar
         NAME1       = Cliente.Nome_Cliente,
         TELF1       = Cliente.Telefone,
         SMTP_ADDR   = Cliente.Email,
         ZWELS       = Cliente.Forma_Pagamento,
         ZTERM       = Cliente.Condicao_Pagamento,
         STRAS       = Cliente.Endereco_Rua,
         HOUSE_NUM1  = Cliente.Endereco_Numero,
         ORT02       = Cliente.Endereco_Bairro,
         PSTLZ       = Cliente.Endereco_CEP,
         MCOD3       = Cliente.Endereco_Cidade,
         REGIO       = Cliente.Endereco_Regiao,
         LAND1       = Cliente.Endereco_Pais,
         BUILDING    = Cliente.Endereco_Edificio,
         FLOOR       = Cliente.Endereco_Edificio_Andar,
         STCD1       = Cliente.CNPJ,
         STCD2       = Cliente.CPF,
         STCD3       = Cliente.Inscricao_Estadual,
         STCD4       = Cliente.Inscricao_Municipal
     };
     SERVICO_SAP_CLIENTE_INC.si_cliente_request(OBJETO_SAP_CLIENTE_INC);
 }
コード例 #2
0
        private string Consultar(Dominio.ClienteSap Cliente)
        {
            if (string.IsNullOrEmpty(Cliente.CPF) && string.IsNullOrEmpty(Cliente.CNPJ))
            {
                return(string.Empty);
            }

            StringBuilder sql = new StringBuilder();

            sql.AppendLine("   SELECT tb_sap_retorno.id_documento , MAX(tb_sap_clientes.data_cadastro)    ");
            sql.AppendLine("     FROM tb_sap_clientes                                                                                          ");
            sql.AppendLine("LEFT JOIN tb_sap_retorno                                                                                              ");
            sql.AppendLine("       ON tb_sap_retorno.id_transacao_sap = tb_sap_clientes.id_transacao_sap     ");
            sql.AppendLine("    WHERE 1 = 1                                                               ");

            if (!string.IsNullOrEmpty(Cliente.CPF))
            {
                sql.AppendFormat(" AND tb_sap_clientes.cpf = '{0}'", Cliente.CPF.Trim());
            }
            else
            {
                sql.AppendFormat(" AND tb_sap_clientes.cnpj = '{0}'", Cliente.CNPJ.Trim());
            }

            //AMPLIAÇÃO
            if (!string.IsNullOrEmpty(Cliente.Codigo_Empresa))
            {
                sql.AppendFormat(" AND codigo_empresa = '{0}' ", Cliente.Codigo_Empresa);
            }

            sql.AppendLine("GROUP BY tb_sap_retorno.id_documento");

            try
            {
                var res = ConsultaSQL(sql.ToString());

                if (res != null && res.Rows.Count > 0)
                {
                    var doc_sap = res.Rows[0]["id_documento"].ToString();

                    if (string.IsNullOrEmpty(doc_sap))
                    {
                        //O CLIENTE JÁ FOI SOLICITADO PORÉM AINDA NÃO POSSUI ID_DOCUMENTO
                        return("SR");
                    }

                    return(doc_sap);
                }
                else
                {
                    return(string.Empty);    //Criar Cliente, pois não existe
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #3
0
        private int Excluir(Dominio.ClienteSap Cliente)
        {
            StringBuilder SQL = new StringBuilder();

            SQL.AppendLine("DELETE dbo.tb_sap_clientes ");
            SQL.AppendFormat("WHERE cpf = '{0}' OR cnpj = '{1}'", Cliente.CPF, Cliente.CNPJ);
            SQL.AppendFormat("AND codigo_empresa = '{0}'", Cliente.Codigo_Empresa);

            try
            {
                return(ExecutaSQL(SQL.ToString()));
            }
            catch (Exception e)
            {
                RegistrarLog(e, OperacoesSAP.CRIAR_CLIENTE, Cliente.Transacao_SAP);
                throw new Exception(e.Message);
            }
        }
コード例 #4
0
        private int ExcluirCliente(Dominio.ClienteSap Cliente)
        {
            StringBuilder SQL = new StringBuilder();

            SQL.AppendLine("DELETE dbo.tb_sap_clientes ");
            SQL.AppendFormat("WHERE cpf = '{0}' OR cnpj = '{1}'", Cliente.CPF, Cliente.CNPJ);

            try
            {
                return(ExecutaSQL(SQL.ToString()));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
            }
        }
コード例 #5
0
        private int AlterarCliente(Dominio.ClienteSap Cliente)
        {
            StringBuilder SQL = new StringBuilder();

            SQL.AppendFormat("    UPDATE dbo.tb_sap_clientes          ");
            SQL.AppendFormat("       SET id_grv              = '{0}'", Cliente.Id_GRV);
            SQL.AppendFormat("          ,codigo_empresa      = '{0}'", Cliente.Codigo_Empresa);
            SQL.AppendFormat("          ,organizacao_vendas  = '{0}'", string.IsNullOrEmpty(Cliente.Organizacao_Vendas) ? Cliente.Codigo_Organizacao_Parceiro : Cliente.Organizacao_Vendas);
            SQL.AppendFormat("          ,nome_cliente        = '{0}'", Cliente.Nome_Cliente);
            SQL.AppendFormat("          ,endereco_rua        = '{0}'", Cliente.Endereco_Rua);
            SQL.AppendFormat("          ,endereco_numero     = '{0}'", Cliente.Endereco_Numero);
            SQL.AppendFormat("          ,edificio            = '{0}'", Cliente.Endereco_Edificio);
            SQL.AppendFormat("          ,andar               = '{0}'", Cliente.Endereco_Edificio_Andar);
            SQL.AppendFormat("          ,bairro              = '{0}'", Cliente.Endereco_Bairro);
            SQL.AppendFormat("          ,cep                 = '{0}'", Cliente.Endereco_CEP);
            SQL.AppendFormat("          ,cidade              = '{0}'", Cliente.Endereco_Cidade);
            SQL.AppendFormat("          ,regiao              = '{0}'", Cliente.Endereco_Regiao);
            SQL.AppendFormat("          ,contato_telefone    = '{0}'", Cliente.Telefone);
            SQL.AppendFormat("          ,contato_email       = '{0}'", Cliente.Email);
            SQL.AppendFormat("          ,cnpj                = '{0}'", Cliente.CNPJ);
            SQL.AppendFormat("          ,cpf                 = '{0}'", Cliente.CPF);
            SQL.AppendFormat("          ,inscricao_estadual  = '{0}'", Cliente.Inscricao_Estadual);
            SQL.AppendFormat("          ,inscricao_municipal = '{0}'", Cliente.Inscricao_Municipal);
            SQL.AppendFormat("          ,forma_pagamento     = '{0}'", Cliente.Forma_Pagamento);
            SQL.AppendFormat("          ,condicao_pagamento  = '{0}'", Cliente.Condicao_Pagamento);
            SQL.AppendFormat("          ,tipo_parceiro       = '{0}'", Cliente.Tipo_Parceiro);
            SQL.AppendFormat("          ,cod_org             = '{0}'", Cliente.Codigo_Organizacao_Parceiro);
            SQL.AppendFormat("          ,cod_parceiro        = '{0}'", Cliente.Codigo_Parceiro);
            SQL.AppendFormat("    WHERE cpf = '{0}' OR cnpj  = '{1}'", Cliente.CPF, Cliente.CNPJ);

            try
            {
                return(ExecutaSQL(SQL.ToString()));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
            }
        }
コード例 #6
0
 private void EnviarTransacaoModificacaoSap(Dominio.ClienteSap Cliente)
 {
     OBJETO_SAP_CLIENTE_MODIF = new si_modificacao_parceiroService.dt_modificacao_parceiro()
     {
         IDTRANSACAO   = Cliente.Transacao_SAP,
         TIPO_PARCEIRO = Cliente.Tipo_Parceiro,
         COD_PARCEIRO  = Cliente.Codigo_Parceiro,
         COD_ORG       = Cliente.Codigo_Organizacao_Parceiro,
         STRAS         = Cliente.Endereco_Rua,
         HOUSE_NUM1    = Cliente.Endereco_Numero,
         BUILDING      = Cliente.Endereco_Edificio,
         FLOOR         = Cliente.Endereco_Edificio_Andar,
         ORT02         = Cliente.Endereco_Bairro,
         PSTLZ         = Cliente.Endereco_CEP,
         MCOD3         = Cliente.Endereco_Cidade,
         REGIO         = Cliente.Endereco_Regiao,
         TELF1         = Cliente.Telefone,
         SMTP_ADDR     = Cliente.Email,
         ZTERM         = Cliente.Condicao_Pagamento
     };
     SERVICO_SAP_CLIENTE_MODIF.si_modificacao_parceiro(OBJETO_SAP_CLIENTE_MODIF);
 }
コード例 #7
0
        private int InserirCliente(Dominio.ClienteSap Cliente)
        {
            StringBuilder SQL = new StringBuilder();

            SQL.AppendLine("INSERT INTO dbo.tb_sap_clientes ");
            SQL.AppendLine("( id_transacao_sap              ");
            SQL.AppendLine(", codigo_empresa                ");
            SQL.AppendLine(", organizacao_vendas            ");
            SQL.AppendLine(", nome_cliente                  ");
            SQL.AppendLine(", endereco_rua                  ");
            SQL.AppendLine(", endereco_numero               ");
            SQL.AppendLine(", edificio                      ");
            SQL.AppendLine(", andar                         ");
            SQL.AppendLine(", bairro                        ");
            SQL.AppendLine(", cep                           ");
            SQL.AppendLine(", cidade                        ");
            SQL.AppendLine(", regiao                        ");
            SQL.AppendLine(", contato_telefone              ");
            SQL.AppendLine(", contato_email                 ");
            SQL.AppendLine(", cnpj                          ");
            SQL.AppendLine(", cpf                           ");
            SQL.AppendLine(", inscricao_estadual            ");
            SQL.AppendLine(", inscricao_municipal           ");
            SQL.AppendLine(", forma_pagamento               ");
            SQL.AppendLine(", condicao_pagamento            ");
            SQL.AppendLine(", id_grv                        ");
            SQL.AppendLine(", tipo_parceiro                 ");
            SQL.AppendLine(", cod_parceiro                  ");
            SQL.AppendLine(", cod_org)                      ");

            SQL.AppendLine("VALUES");

            SQL.AppendFormat(" ({0}  ", Cliente.Transacao_SAP);
            SQL.AppendFormat(",'{0}' ", Cliente.Codigo_Empresa);
            SQL.AppendFormat(",'{0}' ", Cliente.Codigo_Organizacao_Parceiro);
            SQL.AppendFormat(",'{0}' ", Cliente.Nome_Cliente);

            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Rua);
            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Numero);
            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Edificio);
            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Edificio_Andar);
            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Bairro);
            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_CEP);

            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Cidade);
            SQL.AppendFormat(",'{0}' ", Cliente.Endereco_Regiao);
            SQL.AppendFormat(",'{0}' ", Cliente.Telefone);
            SQL.AppendFormat(",'{0}' ", Cliente.Email);
            SQL.AppendFormat(",'{0}' ", Cliente.CNPJ);

            SQL.AppendFormat(",'{0}' ", Cliente.CPF);
            SQL.AppendFormat(",'{0}' ", Cliente.Inscricao_Estadual);
            SQL.AppendFormat(",'{0}' ", Cliente.Inscricao_Municipal);
            SQL.AppendFormat(",'{0}' ", Cliente.Forma_Pagamento);
            SQL.AppendFormat(",'{0}' ", Cliente.Condicao_Pagamento);
            SQL.AppendFormat(", {0}  ", Cliente.Id_GRV);
            SQL.AppendFormat(",'{0}' ", Cliente.Tipo_Parceiro);
            SQL.AppendFormat(",'{0}' ", Cliente.Codigo_Parceiro);
            SQL.AppendFormat(",'{0}') ", Cliente.Codigo_Organizacao_Parceiro);
            try
            {
                return(ExecutaSQL(SQL.ToString()));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
            }
        }
コード例 #8
0
        public static Dominio.Retorno CadastraCliente(Dominio.ClienteSap Cliente)
        {
            ClienteRepositorio___ ClienteRepositorio = new ClienteRepositorio___();

            return(ClienteRepositorio.CadastraClienteSAP(Cliente));
        }
コード例 #9
0
        private Dominio.Retorno CadastraClienteSAP(Dominio.ClienteSap Cliente)
        {
            try
            {
                #region VALIDAÇÕES
                if (!string.IsNullOrEmpty(Cliente.CNPJ))
                {
                    Cliente.CNPJ = Cliente.CNPJ.Trim().Replace(".", "").Replace("-", "").Replace("/", "");
                    if (!Funcoes.Documentos.ValidarCNPJ(Cliente.CNPJ))
                    {
                        return(new Dominio.Retorno()
                        {
                            Resultado = false, Mensagem = "CNPJ Inválido"
                        });
                    }
                }

                if (!string.IsNullOrEmpty(Cliente.CPF))
                {
                    Cliente.CPF = Cliente.CPF.Trim().Replace(".", "").Replace("-", "").Replace("-", "");
                    if (!Funcoes.Documentos.ValidarCPF(Cliente.CPF))
                    {
                        return(new Dominio.Retorno()
                        {
                            Resultado = false, Mensagem = "CPF Inválido"
                        });
                    }
                }
                #endregion

                var CodigoParceiro = ConsultarCliente(Cliente);

                switch (CodigoParceiro)
                {
                case "SR":     //EXCLUIR E CRIAR O CLIENTE
                    ExcluirCliente(Cliente);

                    Cliente.Transacao_SAP = GetTransacaoSap();
                    InserirCliente(Cliente);
                    InserirSolicitacao(Cliente.Transacao_SAP, "CRIAR CLIENTE", id_grv: Cliente.Id_GRV);
                    EnviarTransacaoInclusaoSap(Cliente);
                    break;

                case "":     //CRIA O CLIENTE
                    Cliente.Transacao_SAP = GetTransacaoSap();
                    InserirCliente(Cliente);
                    InserirSolicitacao(Cliente.Transacao_SAP, "CRIAR CLIENTE", id_grv: Cliente.Id_GRV);
                    EnviarTransacaoInclusaoSap(Cliente);
                    break;

                default:     //ALTERA O CLIENTE
                    Cliente.Transacao_SAP   = GetTransacaoSap();
                    Cliente.Codigo_Parceiro = CodigoParceiro;
                    Cliente.Tipo_Parceiro   = "C";
                    AlterarCliente(Cliente);
                    InserirSolicitacao(Cliente.Transacao_SAP, "MODIFICAR CLIENTE", id_grv: Cliente.Id_GRV);
                    EnviarTransacaoModificacaoSap(Cliente);
                    break;
                }

                return(new Dominio.Retorno()
                {
                    Resultado = true, Mensagem = ""
                });
            }
            catch (Exception Except)
            {
                Log(Except, "CadastraClienteSAP", int.Parse(Cliente.Transacao_SAP));
                return(new Dominio.Retorno()
                {
                    Mensagem = Except.ToString(), Resultado = false
                });
            }
        }
コード例 #10
0
        private string ConsultarCliente(Dominio.ClienteSap Cliente)
        {
            #region VALIDAÇÕES
            if (string.IsNullOrEmpty(Cliente.CPF) && string.IsNullOrEmpty(Cliente.CNPJ))
            {
                return(string.Empty);
            }
            #endregion

            #region CONSULTA SQL
            StringBuilder sql = new StringBuilder();

            sql.AppendLine("   SELECT tb_sap_retorno.id_documento , MAX(tb_sap_clientes.data_cadastro)    ");
            sql.AppendLine("     FROM tb_sap_clientes                                                                                          ");
            sql.AppendLine("LEFT JOIN tb_sap_retorno                                                                                              ");
            sql.AppendLine("       ON tb_sap_retorno.id_transacao_sap = tb_sap_clientes.id_transacao_sap     ");
            sql.AppendLine("    WHERE 1 = 1                                                               ");

            if (!string.IsNullOrEmpty(Cliente.CPF))
            {
                sql.AppendFormat(" AND tb_sap_clientes.cpf = '{0}'", Cliente.CPF.Trim());
            }
            else
            {
                sql.AppendFormat(" AND tb_sap_clientes.cnpj = '{0}'", Cliente.CNPJ.Trim());
            }

            //AMPLIAÇÃO
            if (!string.IsNullOrEmpty(Cliente.Codigo_Empresa))
            {
                sql.AppendFormat(" AND codigo_empresa = '{0}' ", Cliente.Codigo_Empresa);
            }

            //sql.AppendLine("AND tb_sap_retorno.id_documento IS NOT NULL");
            //sql.AppendLine("AND tb_sap_retorno.id_documento <> ''");
            sql.AppendLine("GROUP BY tb_sap_retorno.id_documento");
            #endregion

            try
            {
                var res = ConsultaSQL(sql.ToString());

                //SE RES = NULL CRIAR
                //SE RES <> NULL E ROWCOUNT > 0 E ID_DOCUMENTO = NULL APAGAR REGISTROS DO MESMO DOCUMENTO E SOLICITAR CRIAÇÃO
                //SE RES <> NULL E ROWCOUNT > 0 E ID_DOCUMENTO <> NULL SOLICITAR ALTERAÇÃO

                if (res != null && res.Rows.Count > 0)
                {
                    var doc_sap = Funcoes.DataBase.GetString(res, "id_documento", doTrim: true);

                    if (string.IsNullOrEmpty(doc_sap)) //ja houveram tentativas mas sem retorno
                    {
                        return("SR");
                    }

                    return(doc_sap);
                }
                else
                {
                    return(string.Empty);    //Criar Cliente, pois não existe
                }
            }
            catch
            {
                throw;
            }
        }
コード例 #11
0
 public Dominio.Retorno CadastrarClienteSAP(Dominio.ClienteSap Cliente)
 {
     return(new Repositorio.ClienteRepositorio().InserirClienteSap(Cliente));
 }
コード例 #12
0
        public Dominio.Retorno InserirClienteSap(Dominio.ClienteSap Cliente)
        {
            try
            {
                #region VALIDAÇÕES
                if (!string.IsNullOrEmpty(Cliente.CNPJ))
                {
                    Cliente.CNPJ = Cliente.CNPJ.Trim().Replace(".", "").Replace("-", "").Replace("/", "");
                    //if (!Funcoes.Documentos.ValidarCNPJ(Cliente.CNPJ)) { return new Dominio.Retorno() { Resultado = false, Mensagem = "CNPJ Inválido" }; }
                }

                if (!string.IsNullOrEmpty(Cliente.CPF))
                {
                    Cliente.CPF = Cliente.CPF.Trim().Replace(".", "").Replace("-", "").Replace("-", "");
                    //if (!Funcoes.Documentos.ValidarCPF(Cliente.CPF)) { return new Dominio.Retorno() { Resultado = false, Mensagem = "CPF Inválido" }; }
                }

                Cliente.Telefone = Cliente.Telefone
                                   .Replace("(", string.Empty)
                                   .Replace(")", string.Empty)
                                   .Replace("-", string.Empty)
                                   .Replace("/", string.Empty)
                                   .Replace(" ", string.Empty);

                Cliente.Telefone = Cliente.Telefone.Length > 11 ? Cliente.Telefone.Substring(0, 10) : Cliente.Telefone;



                if (Cliente.Endereco_Rua.Trim().Length > 35)
                {
                    Cliente.Endereco_Rua = Cliente.Endereco_Rua.Substring(0, 35).Trim();
                }

                #endregion

                try
                {
                    Cliente.Transacao_SAP = GerarTransacaoSap();
                    Inserir(Cliente);
                    RegistrarSolicitacao(Cliente.Transacao_SAP, OperacoesSAP.CRIAR_CLIENTE, id_grv: Cliente.Id_GRV);
                    EnviarInclusao(Cliente);

                    return(new Dominio.Retorno()
                    {
                        Resultado = true, Mensagem = ""
                    });
                }
                catch (Exception e)
                {
                    RegistrarLog(e, OperacoesSAP.CRIAR_CLIENTE, Cliente.Transacao_SAP);
                    return(new Dominio.Retorno()
                    {
                        Mensagem = e.ToString(), Resultado = false
                    });
                }

                var CodigoParceiro = Consultar(Cliente);

                switch (CodigoParceiro)
                {
                case "SR":     //CLIENTE EXISTE PORÉM SEM ID_DOCUMENTO - EXCLUIR E CRIAR NOVAMENTE O CLIENTE

                    //Excluir(Cliente);

                    Cliente.Transacao_SAP = GerarTransacaoSap();
                    Inserir(Cliente);
                    RegistrarSolicitacao(Cliente.Transacao_SAP, OperacoesSAP.CRIAR_CLIENTE, id_grv: Cliente.Id_GRV);
                    EnviarInclusao(Cliente);
                    break;

                case "":     //CRIA O CLIENTE
                    Cliente.Transacao_SAP = GerarTransacaoSap();
                    Inserir(Cliente);
                    RegistrarSolicitacao(Cliente.Transacao_SAP, OperacoesSAP.CRIAR_CLIENTE, id_grv: Cliente.Id_GRV);
                    EnviarInclusao(Cliente);
                    break;

                default:     //ALTERA O CLIENTE
                    Cliente.Transacao_SAP   = GerarTransacaoSap();
                    Cliente.Codigo_Parceiro = CodigoParceiro;
                    Cliente.Tipo_Parceiro   = "C";
                    //Alterar(Cliente);
                    RegistrarSolicitacao(Cliente.Transacao_SAP, OperacoesSAP.MODIFICAR_CLIENTE, id_grv: Cliente.Id_GRV);
                    EnviarModificacao(Cliente);
                    break;
                }

                return(new Dominio.Retorno()
                {
                    Resultado = true, Mensagem = ""
                });
            }
            catch (Exception e)
            {
                RegistrarLog(e, OperacoesSAP.CRIAR_CLIENTE, Cliente.Transacao_SAP);
                return(new Dominio.Retorno()
                {
                    Mensagem = e.ToString(), Resultado = false
                });
            }
        }