public bool AprovarBonificacao(SZ3 sz3_)
        {
            StringBuilder sb = new StringBuilder();
            var _db = new Models.banco.bd();
            SqlCommand _cmd;
            var enviar = false;
            sb.Append(" EXEC PROC_PORTALAVANTLED_APROVACAOBONIFICACAO '" + sz3_.Z3_NPEDWEB + "' ");

            try
            {
                _db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), _db.conn);
                _cmd.ExecuteNonQuery();
                enviar = true;

            }
            catch (SqlException g)
            {
                throw new Exception("Erro na Inserção de Dados" + g.Message);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                _db.Desconectar();
            }

            return enviar;
        }
        public void ProcessRequest(HttpContext context)
        {
            pedido = Convert.ToString(context.Request.QueryString["pedido"]);

            HttpClient client = null;
            if (client == null)
            {

                client = new HttpClient();

                var otsz3 = new SZ3()
                {
                    Z3_NPEDWEB = float.Parse(pedido)
                };

                var response = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/Dados/ExcluirPedidoVenda",
                                new StringContent(JsonConvert.SerializeObject(otsz3).ToString(), Encoding.UTF8, "application/json")).Result;

                if (response.IsSuccessStatusCode)
                    context.Response.Write("Pedido excluido com sucesso.");
                else
                    context.Response.Write("Erro na Exclusão do pedido.");

            }
        }
        public bool AtualizacaoTotalValor(SZ3 sz3_)
        {
            StringBuilder sb = new StringBuilder();
            var _db = new Models.banco.bd();
            SqlCommand _cmd;
            var enviar = false;
            sb.Append(" EXEC PROC_PORTALAVANTLED_ATUALIZARTOTALVALORPEDIDO '" + sz3_.Z3_NPEDWEB + "','"+sz3_.Z3_TOTPED.ToString().Replace(",", ".") + "'");
            try
            {
                _db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), _db.conn);
                _cmd.ExecuteNonQuery();
                enviar = true;

            }
            catch (SqlException g)
            {
                throw new Exception("Erro na Inserção de Dados" + g.Message);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                _db.Desconectar();
            }

            return enviar;
        }
        public List<Object> BonificacaoeVenda(string login, string cliente, string datade, string dataate, string pg)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            if (cliente.Equals("''"))
                cliente = "";
            if (datade.Equals("''"))
                datade = "";

            if (dataate.Equals("''"))
                dataate = "";

            sb.Append(" EXEC PROC_PORTALAVANTLED_BONIFICACAOVENDA '" + login.Trim() + "','" + cliente.Trim() + "','" + datade.Trim() + "','" + dataate.Trim() + "', '" + pg.Trim() + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_NPEDWEB = float.Parse(rw["BONIFICAÇÃO"].ToString().Trim());
                        sz3.Z3_NPEDCLI = Convert.ToString(rw["VENDA"].ToString().Trim());
                        sz3.Z3_TOTPED = float.Parse(rw["TOTAL VENDA"].ToString().Trim());
                        sz3.Z3_VLMKT = float.Parse(rw["TOTAL BONIFICACAO"].ToString().Trim());
                        sz3.Z3_EMISSAO = Convert.ToString(rw["EMISSÃO"].ToString().Trim());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["CLIENTE"].ToString().Trim());
                        sz3.Z3_DSCPGTO = Convert.ToString(rw["DESC.PAGAMENTO"]);
                        sz3.Z3_OBS = Convert.ToString(rw["SITUACAO"]).ToString();
                        sz3.Z3_WA1_LOJ = Convert.ToString(rw["LOJA"]).ToString();
                        sz3.Z3_MOTIVOR = Convert.ToString(rw["REPRESENTANTE"]);
                        dados.Add(sz3);

                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            var pedido = Convert.ToString(context.Request.QueryString["pedido"]);
            var login = Convert.ToString(context.Request.QueryString["login"]);
            var retorno = string.Empty;
            HttpClient client = null;
            if (client == null)
            {

                client = new HttpClient();

                var otsz3 = new SZ3()
                {
                    Z3_NPEDWEB = float.Parse(pedido)
                };

                // criar uma api para alterar status da z3_status = 1 pegar os dados da z3 passar para z5
                var response = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/Orcamento/GravarOrcamento",
                                new StringContent(JsonConvert.SerializeObject(otsz3).ToString(), Encoding.UTF8, "application/json")).Result;

                if (response.IsSuccessStatusCode) {

                    client = new HttpClient();
                    client.BaseAddress = new Uri(ConfigurationManager.AppSettings["url_servidor"]);
                    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    HttpResponseMessage resultado = client.GetAsync("AVANT/Email/EmailRCGerente/" + login).Result;
                    retorno = resultado.Content.ReadAsStringAsync().Result;

                    JArray usuarioarrray = JArray.Parse(retorno);
                    foreach (JObject obj in usuarioarrray.Children<JObject>())
                    {
                        EmailRC = Convert.ToString(obj.SelectToken("a3_EMAIL")).ToString().Trim();
                        EmailGerente = Convert.ToString(obj.SelectToken("a3_GEREN")).ToString().Trim();
                    }

                    Helper.AprovadoOrcamento naoaprovacao = new Helper.AprovadoOrcamento();
                    if (naoaprovacao.EnvioEmail(EmailRC, EmailGerente))
                        context.Response.Write("Gerado Pedido de venda,foi enviado email com sucesso referente a aprovação do pedido " + pedido);
                    else
                        context.Response.Write("Erro na atualização do pedido");

            }
            else
                context.Response.Write("Erro na Geração do pedido");

            }
        }
        public List<Object> CreditosGerados(string login)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            sb.Append(" EXEC PROC_PORTALAVANTLED_BONIFICACAO_CREDMKT_CREDGERADO '" + login.Trim() + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_EMISSAO = Convert.ToString(rw["DTEMISSAO"].ToString().Trim());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["CLIENTE"].ToString().Trim());
                        sz3.Z3_OBS = Convert.ToString(rw["NOTA FISCAL"].ToString().Trim());
                        sz3.Z3_TOTPED = float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(rw["BONIFICACAO"].ToString()), 2)));
                        sz3.Z3_REGIAO = Convert.ToString(rw["REGIONAL"].ToString());
                        sz3.Z3_APROVA = Convert.ToString(rw["REPRESENTANTE"].ToString());
                        sz3.Z3_WA1_COD = Convert.ToString(rw["COD.CLIENTE"].ToString());

                        dados.Add(sz3);
                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
        public List<Object> PedidoWMS(string login, string cliente, string datade, string dataate, string web, string interno, string pg)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            if (cliente.Equals("''"))
                cliente = "";
            if (datade.Equals("''"))
                datade = "";

            if (dataate.Equals("''"))
                dataate = "";

            if (web.Equals("''"))
                web = "";

            if (interno.Equals("''"))
                interno = "";

            sb.Append(" EXEC PROC_PORTALAVANTLED_ACPEDIDO '" + login.Trim() + "','" + cliente.Trim() + "','" + datade.Trim() + "','" + dataate.Trim() + "', '"+web+"', '"+interno+"', '" + pg.Trim() + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_NPEDWEB = float.Parse(rw["Z3_NPEDWEB"].ToString().Trim());
                        sz3.Z3_EMISSAO = Convert.ToString(rw["Z3_EMISSAO"].ToString().Trim());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["Z3_RAZASOC"].ToString().Trim());
                        sz3.Z3_NPEDCLI = Convert.ToString(rw["C5_NUM"]).ToString();
                        sz3.Z3_STATUS = Convert.ToString(rw["Z3_STATUS"]).ToString();
                        sz3.Z3_OBS = Convert.ToString(rw["SITUACAO"]).ToString();
                        dados.Add(sz3);

                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
        public List<Object> Faturamento(string login, string datade, string dataate, string cliente, string municipio, string estado,string pg)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            if (cliente.Equals("''"))
                cliente = "";
            if (datade.Equals("''"))
                datade = "";

            if (dataate.Equals("''"))
                dataate = "";

            if (estado.Equals("''"))
                estado = "";

            if (municipio.Equals("''"))
                municipio = "";

            sb.Append(" EXEC PROC_PORTALVENDAS_FATURAMENTO '" + login.Trim() + "','" + datade.Trim() + "','" + dataate.Trim() + "', '" + cliente.Trim() + "' , '" + municipio.Trim() + "' , '" + estado.Trim() + "', '"+pg.Trim()+"'  ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_TOTPED = float.Parse(rw["Vlr.com Imposto"].ToString().Trim());
                        sz3.Z3_VLMKT = float.Parse(rw["Vlr.sem Imposto"].ToString().Trim());
                        sz3.Z3_EMISSAO = Convert.ToString(rw["Data de Emissão"].ToString().Trim());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["Razão Social"].ToString().Trim());
                        sz3.Z3_OBS = Convert.ToString( string.Format("{0:n2}", decimal.Round( decimal.Parse(rw["Previa Comissão"].ToString()),2))).ToString();
                        sz3.Z3_MOTIVOR = Convert.ToString(rw["Numero da Nota"]);
                        sz3.Z3_MUN = Convert.ToString(rw["Municipio"]);
                        sz3.Z3_UF = Convert.ToString(rw["Estado"]);

                        dados.Add(sz3);

                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
 public HttpResponseMessage PostCadastro(SZ3 sz3_)
 {
     if (sz3_ == null)
         return Request.CreateResponse<SZ3>(HttpStatusCode.BadRequest, sz3_);
     else
     {
         try
         {
             if (NaoAprovacao(sz3_))
                 return Request.CreateResponse(HttpStatusCode.OK, "Cadastro Realizado" + sz3_.Z3_NPEDWEB);
             else
                 return Request.CreateResponse(HttpStatusCode.NotFound, "Erro na Gravação ");
         }
         catch (Exception)
         {
             return Request.CreateResponse<SZ3>(HttpStatusCode.InternalServerError, sz3_);
         }
     }
 }
 public void GravarPedidoVenda(string pedido)
 {
     var sz3 = new SZ3()
     {
         Z3_NPEDWEB = float.Parse(pedido),
         Z3_STATUS = "C"
     };
     if (client == null)
     {
         client = new HttpClient();
         HttpResponseMessage responsesz4;
         responsesz4 = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/Dados/AlteracaoDados",
                                    new StringContent(JsonConvert.SerializeObject(sz3).ToString(), Encoding.UTF8, "application/json")).Result;
     }
 }
        public void ProcessRequest(HttpContext context)
        {
            ArrayCabecalho = context.Request.QueryString["cabecalho"].Split('|');
            ArrayItens = context.Request.QueryString["itens"].Split('|');
            ArrayLinha = context.Request.QueryString["linha"].Split('|');

            HttpClient client = null;
            string retorno = string.Empty;
            if (client == null)
            {
                client = new HttpClient();
                client.BaseAddress = new Uri(ConfigurationManager.AppSettings["url_servidor"]);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage resultado = client.GetAsync("AVANT/Pedido/NumWeb").Result;
                retorno = resultado.Content.ReadAsStringAsync().Result;

                if (resultado.StatusCode != System.Net.HttpStatusCode.NotFound)
                {
                    if (retorno != "[]")
                    {

                        JArray usuarioarrray = JArray.Parse(retorno);
                        foreach (JObject obj in usuarioarrray.Children<JObject>())
                        {
                            foreach (JProperty prop in obj.Properties())
                            {
                                switch (prop.Name)
                                {
                                    case "z3_NPEDWEB":
                                        NumeroWeb = Convert.ToString(prop.Value);
                                        break;
                                     default:
                                        break;
                                }
                            }
                        }

                        if (NumeroWeb != string.Empty)
                        {

                            for (var i = 0; i < 1; i++)
                            {
                                otsz3.Z3_FILIAL = "010104";
                                otsz3.Z3_NPEDWEB = float.Parse(NumeroWeb);
                                otsz3.Z3_NPEDCLI = "";
                                otsz3.Z3_CNPJ = ArrayCabecalho[0];
                                otsz3.Z3_RAZASOC = ArrayCabecalho[1];
                                otsz3.Z3_WA1_COD = ArrayCabecalho[2];
                                otsz3.Z3_WA1_LOJ = ArrayCabecalho[3];
                                otsz3.Z3_NMFANTA = ArrayCabecalho[4];
                                otsz3.Z3_TIPOCLI = ArrayCabecalho[5];
                                otsz3.Z3_CODTRAN = ArrayCabecalho[6];
                                otsz3.Z3_NMTRANS = ArrayCabecalho[7];
                                otsz3.Z3_CEPCLI = ArrayCabecalho[8];
                                otsz3.Z3_ENDCLI = ArrayCabecalho[9];
                                otsz3.Z3_BAIRROC = ArrayCabecalho[10];

                                otsz3.Z3_DDDCLI = ArrayCabecalho[11];
                                otsz3.Z3_TELCLI = ArrayCabecalho[12];
                                otsz3.Z3_CODPGTO = ArrayCabecalho[13];
                                otsz3.Z3_DSCPGTO = ArrayCabecalho[14];
                                otsz3.Z3_COMIS = float.Parse("0");
                                otsz3.Z3_CODTSAC = "51";
                                otsz3.Z3_DSCTSAC = "VENDAS";
                                otsz3.Z3_OBS = "";

                                otsz3.Z3_GTRCLI = ArrayCabecalho[15];
                                GrpTrib = ArrayCabecalho[15];
                                otsz3.Z3_STATUS = status.SomenteGravar;
                                otsz3.Z3_EMISSAO = DateTime.Now.ToString("yyyyMMdd");

                                // trazendo o codigo do vendedor
                                otsz3.Z3_VEND = ArrayCabecalho[16];

                                otsz3.Z3_TOTPED = float.Parse(ArrayCabecalho[17].Replace(".", ",")); // login do representante logado no site
                                otsz3.Z3_INTEGRA = "N";
                                otsz3.Z3_PRODMKT = ArrayCabecalho[18]; // operação triangular
                                otsz3.Z3_FREPAGO = ArrayCabecalho[19]; // tipo de frete
                                otsz3.Z3_MUN = ArrayCabecalho[20];
                                otsz3.Z3_UF = ArrayCabecalho[21];
                                otsz3.Z3_REGIAO = ArrayCabecalho[22]; // trazer a regional selecionada
                                otsz3.Z3_EMAIL = ArrayCabecalho[23];
                                otsz3.Z3_HORA = DateTime.Now.ToShortTimeString();
                                RequestDescComissao = ArrayCabecalho[24];
                                pedido_exixtente = ArrayCabecalho[25];

                            }
                            cont = 1;

                            if (!pedido_exixtente.Equals("")) {

                                var otsz4s = new SZ4() {
                                    Z4_NUMPEDW = float.Parse(pedido_exixtente)
                                };

                                var otsz3s = new SZ3() {
                                    Z3_NPEDWEB = float.Parse(pedido_exixtente),
                                    Z3_TOTPED = float.Parse(ArrayCabecalho[17].Replace(".", ","))
                                };

                                var response = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/IntesPedido/ExclusaoIntesParcial",
                              new StringContent(JsonConvert.SerializeObject(otsz4s).ToString(), Encoding.UTF8, "application/json")).Result;

                                var response2 = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/IntesPedido/AtualizacaoTotalValores",
                           new StringContent(JsonConvert.SerializeObject(otsz3s).ToString(), Encoding.UTF8, "application/json")).Result;

                            }

                            HttpResponseMessage responsesz4;
                            if (ArrayLinha.Length > 0)
                            {
                                for (var i = 0; i < ArrayLinha.Length; i++)
                                {
                                    RequestCodigoProdutoAtual = Convert.ToString(ArrayLinha[i]);
                                    if (RequestCodigoProdutoAtual != string.Empty)
                                    {
                                        poscodigo = Array.IndexOf(ArrayItens, RequestCodigoProdutoAtual);

                                        if (Convert.ToInt32(Array.IndexOf(ArrayItens, RequestCodigoProdutoAtual)) >= 0)
                                        {
                                            if (poscodigo > -1)
                                            {
                                                RequestCodigo = ArrayItens[poscodigo];
                                                poscodigo++;
                                                RequestDescProduto = ArrayItens[poscodigo];
                                                poscodigo++;
                                                RequestPrvenda = ArrayItens[poscodigo].Replace(".", ",");
                                                poscodigo++;
                                                RequestRamo = ArrayItens[poscodigo].Replace(".",",");
                                                poscodigo++;
                                                RequestDescGe = ArrayItens[poscodigo].Replace(".",",");
                                                poscodigo++;
                                                RequestDescEsp = ArrayItens[poscodigo];
                                                poscodigo++;
                                                RequestProdesc = ArrayItens[poscodigo];
                                                poscodigo++;
                                                RequestPrLiq = ArrayItens[poscodigo].Replace(".", ",");
                                                poscodigo++;
                                                RequestQuant = ArrayItens[poscodigo];
                                                poscodigo++;
                                                RequestVlrTit = ArrayItens[poscodigo].Replace(".", ",");
                                                poscodigo++;
                                                RequestValorComissao = ArrayItens[poscodigo].Replace(".", ",");
                                            }
                                        }

                                        otsz4.Z4_FILIAL = "010104";
                                        if(pedido_exixtente != string.Empty)
                                            otsz4.Z4_NUMPEDW = float.Parse(pedido_exixtente);
                                        else
                                            otsz4.Z4_NUMPEDW = float.Parse(NumeroWeb);
                                        otsz4.Z4_ITEMPED = Convert.ToString(cont).PadLeft(2, '0');
                                        otsz4.Z4_CODPROD = RequestCodigo;
                                        otsz4.Z4_DESCPRO = RequestDescProduto;
                                        otsz4.Z4_UNVENDA = "UN";
                                        otsz4.Z4_QTDE = float.Parse(RequestQuant);
                                        otsz4.Z4_PRVEN =
                                            float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(RequestPrvenda), 2)));
                                        otsz4.Z4_VLRTTIT =
                                            float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(RequestVlrTit), 2)));
                                        otsz4.Z4_DESCRA = float.Parse(RequestRamo);
                                        otsz4.Z4_DESCGE = float.Parse(RequestDescGe);
                                        otsz4.Z4_CODTRIB = "559";
                                        otsz4.Z4_TRIBCLI = Convert.ToString(GrpTrib);
                                        otsz4.Z4_NUMCX = float.Parse("0");
                                        otsz4.Z4_NUMPED = "0";
                                        otsz4.Z4_ORIGEM = "0";
                                        otsz4.Z4_PRLIQ =
                                            float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(RequestPrLiq), 2)));
                                        otsz4.Z4_TPOPERW = "51";
                                        if (RequestDescEsp != string.Empty)
                                            otsz4.Z4_DESCESP = float.Parse(RequestDescEsp);
                                        else
                                            otsz4.Z4_DESCESP = float.Parse("0");
                                        otsz4.Z4_PRODESC = float.Parse(RequestProdesc);
                                        otsz4.Z4_PRORI = cs.ValorRamo(float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(RequestPrvenda), 2))),
                                                float.Parse(RequestRamo));

                                        otsz4.Z4_MKTCRD = "0";
                                        otsz4.Z4_RESERVA = "";
                                        otsz4.Z4_TPDESC = Convert.ToString(RequestDescComissao);
                                        otsz4.Z4_VLCOMIS = float.Parse(RequestValorComissao);
                                         responsesz4 = client.PostAsync(ConfigurationManager.AppSettings["url_local"] + "AVANT/IntesPedido/Gravar",
                                            new StringContent(JsonConvert.SerializeObject(otsz4).ToString(), Encoding.UTF8, "application/json")).Result;

                                        cont++;
                                    }
                                }
                            }

                            if (pedido_exixtente.Equals(""))
                            {
                                // fazendo post para api
                                var response = client.PostAsync(ConfigurationManager.AppSettings["url_local"] + "AVANT/Dados/SomenteGravar",
                                   new StringContent(JsonConvert.SerializeObject(otsz3).ToString(), Encoding.UTF8, "application/json")).Result;
                                //JsonConvert.SerializeObject(object) // serializando o objeto para enviar para o json

                                if (response.IsSuccessStatusCode)
                                    context.Response.Write("Pedido de venda Gravado com Sucesso Numero Web:" + otsz3.Z3_NPEDWEB);
                                else
                                    context.Response.Write("Erro na gravação do pedido favor entrar em contato com T.I Avant.");
                            }
                            else {
                                context.Response.Write("Atualizado o pedido de venda:" + pedido_exixtente);
                            }
                        }

                    }
                }
            }
        }
        public List<object> EditarPedido(string pedido)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();
            sb.Append("EXEC PROC_PORTALAVANTLED_EDITAR_PEDIDOSVENDA_DADOS '" + pedido + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);
                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sa1 = new SA1();
                        var sa3 = new SA3();
                        var sz3 = new SZ3();

                        sz3.Z3_CNPJ = Convert.ToString(rw["CNPJ"]).Trim();
                        sz3.Z3_RAZASOC = Convert.ToString(rw["RAZAO SOCIAL"]).Trim();
                        sz3.Z3_WA1_COD = Convert.ToString(rw["CODICLIENTE"]).Trim();
                        sz3.Z3_WA1_LOJ = Convert.ToString(rw["LOJA"]).Trim();
                        sz3.Z3_NMFANTA = Convert.ToString(rw["NOME FANTASIA"]).Trim();
                        sz3.Z3_CODTRAN = Convert.ToString(rw["CODTRANS"]).Trim();
                        sz3.Z3_NMTRANS = Convert.ToString(rw["NOME TRANSP"]).Trim();
                        sz3.Z3_CODPGTO = Convert.ToString(rw["CODPAGTO"]).Trim();
                        sz3.Z3_DSCPGTO = Convert.ToString(rw["DESC.PAGTO"]).Trim();
                        sz3.Z3_PRODMKT = Convert.ToString(rw["OP.TRIANGULAR"]).Trim();
                        sz3.Z3_GTRCLI = Convert.ToString(rw["GRUPO TRIBUTARIO"]).Trim();
                        sz3.Z3_REGIAO = Convert.ToString(rw["REGIONAL"]).Trim();
                        sz3.Z3_EMAIL = Convert.ToString(rw["EMAIL CLIENTE"]).Trim();
                        sz3.Z3_CEPCLI = Convert.ToString(rw["CEP"].ToString().Trim());
                        sz3.Z3_ENDCLI = Convert.ToString(rw["ENDERECO"]);
                        sz3.Z3_UF = Convert.ToString(rw["ESTADO"]);
                        sz3.Z3_MUN = Convert.ToString(rw["MUNICIPIO"]);
                        sz3.Z3_BAIRROC = Convert.ToString(rw["BAIRRO"]);
                        sz3.Z3_TOTPED = float.Parse(rw["VALOR TOTAL"].ToString().Trim());
                        sz3.Z3_EMISSAO = Convert.ToString(rw["DT.EMISSAO"].ToString().Trim());

                        sa3.A3_ACMMKT = float.Parse(rw["VL.CREDITO"].ToString().Trim());
                        sa3.A3_CARGO = Convert.ToString(rw["CARGO"]);
                        sa3.A3_NOME = Convert.ToString(rw["REPPRSENTANTE"].ToString().Trim());
                        sa3.A3_EMAIL = Convert.ToString(rw["EMAIL RC"].ToString().Trim());

                        sa1.A1_DESCWEB = Convert.ToString(rw["DESC.RAMO"]).Trim();
                        sa1.A1_DDD = Convert.ToString(rw["DDD"].ToString().Trim());
                        sa1.A1_TEL = Convert.ToString(rw["TELEFONE"].ToString().Trim());
                        sa1.A1_CONTATO = Convert.ToString(rw["CONTATO"].ToString().Trim());
                        sa1.A1_XPMEDIO = Convert.ToString(rw["XPMEDIO"].ToString().Trim());
                        sa1.A1_COND = Convert.ToString(rw["CONDPGTO"]);
                        sa1.A1_XCONTRA = float.Parse(rw["A1_XCONTRA"].ToString().Trim());
                        sa1.A1_CONSF = float.Parse(rw["A1_CONSF"].ToString().Trim());
                        sa1.A1_XVLACOR = float.Parse(rw["A1_XVLACOR"].ToString().Trim());

                        dados.Add(sa1);
                        dados.Add(sz3);
                        dados.Add(sa3);

                    }

                }

            }
            catch (Exception d)
            {

                throw new Exception("Erro no Acesso ao dados" + d.Message);
            }
            finally
            {
                db.Desconectar();
            }
            return dados;
        }
        public List<Object> SaldoRepresentante(string login)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            sb.Append(" EXEC PROC_PORTALAVANTLED_SALDOPORGERENTE '" + login.Trim() + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_VEND = Convert.ToString(rw["COD.RC"].ToString().Trim());
                        sz3.Z3_WA1_COD = Convert.ToString(rw["COD.GEREN"].ToString());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["REPRESENTANTE"].ToString().Trim());
                        sz3.Z3_TOTPED = float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(rw["SALDO"].ToString()), 2)));
                        sz3.Z3_REGIAO = Convert.ToString(rw["A3_REGIAO"].ToString());
                        dados.Add(sz3);

                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
        public List<Object> SolicitacaoBonificacao(string login, string cliente, string datade, string dataate, string pg)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            if (cliente.Equals("''"))
                cliente = "";
            if (datade.Equals("''"))
                datade = "";

            if (dataate.Equals("''"))
                dataate = "";

            sb.Append(" EXEC PROC_PORTALAVANTLED_SOLICITACAOBONIFICACAO '" + login.Trim() + "','" + cliente.Trim() + "','" + datade.Trim() + "','" + dataate.Trim() + "','" + pg.Trim() + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_NPEDWEB = float.Parse(rw["WEB"].ToString().Trim());
                        sz3.Z3_EMISSAO = Convert.ToString(rw["EMISSAO"].ToString().Trim());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["CLIENTE"].ToString().Trim());
                        sz3.Z3_WA1_LOJ = Convert.ToString(rw["LOJA"].ToString().Trim());
                        sz3.Z3_CAMKT = Convert.ToString(rw["CAMPANHA"].ToString().Trim());
                        sz3.Z3_VLMKT = float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(rw["VALOR"].ToString().Trim()), 2)));
                        sz3.Z3_VEND = Convert.ToString(rw["CODIGO"]).ToString().Trim();
                        sz3.Z3_MOTIVOR = Convert.ToString(rw["REPRESENTANTE"]).ToString().Trim();

                        dados.Add(sz3);

                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
        public void CabecalhoDadosSZ3(FormCollection model, string v, string tipofrete, string numpedidovenda)
        {
            HttpResponseMessage responsesz4;

            var elemento = cs.TipoPedido(v);

            var _dtosz3 = new SZ3()
            {

                Z3_FILIAL = "010104",
                Z3_NPEDWEB = float.Parse(Convert.ToString(numpedidovenda)),
                Z3_NPEDCLI = "",
                Z3_CNPJ = Convert.ToString(model["txtcnpjcliente"]),
                Z3_RAZASOC = Convert.ToString(model["txtrazaocliente"]),
                Z3_WA1_COD = Convert.ToString(model["txtcodcliente"]),
                Z3_WA1_LOJ = Convert.ToString(model["txtlojacliente"]),
                Z3_NMFANTA = Convert.ToString(model["txtnomecliente"]),
                Z3_TIPOCLI = Convert.ToString(model["txtcodtipocliente"]),
                Z3_CODTRAN = model["tpcodtransportadora"],
                // se tiver vazio pegar do campo tptransporte
                Z3_NMTRANS = Convert.ToString(model["tpnometransportadoracliente"]),
                // se tiver vazio pegar tpnometransportadora
                Z3_CEPCLI = model["txtcepcliente"],
                Z3_ENDCLI = model["txtenderecocliente"],
                Z3_BAIRROC = model["txtbairrocliente"],
                Z3_DDDCLI = Convert.ToString(model["txttelefonecliente"]).Substring(0, 4).Replace("(", "").Replace(")", ""),
                Z3_TELCLI = Convert.ToString(model["txttelefonecliente"]).Substring(4, 8),
                Z3_CODPGTO = Convert.ToString(model["txtcondpagamentocliente"]),
                Z3_DSCPGTO = Convert.ToString(model["tpdescpagamento"]),
                Z3_COMIS = float.Parse("0"),
                Z3_REGIAO = Convert.ToString(model["txtregionalcliente"]), // alterei aqui
                Z3_CODTSAC = "52",
                Z3_DSCTSAC = "BONIFICACAO",
                Z3_OBS = "Pedido de venda: "+ Convert.ToString(model["txtpedidoweb"]),
                Z3_GTRCLI = Convert.ToString(model["tpgrupotributariocliente"]),
                Z3_STATUS = elemento, // pedido de venda
                Z3_EMISSAO = Convert.ToString(DateTime.Now.ToString("yyyyMMdd")),
                Z3_VEND = Convert.ToString(model["codvendedores"]),
                // login do representante logado no site  alterei aqui
                Z3_TOTPED = float.Parse(model["valorPedidofinalweb2"].Replace(".", ",")),
                Z3_INTEGRA = "N",
                Z3_PRODMKT = Convert.ToString(model["tpoperacaotriangular"]),
                // operação triangular
                Z3_HORA = DateTime.Now.ToShortTimeString(),
                Z3_UF = model["txtufcliente"],
                Z3_MUN = model["txtmunicipiocliente"],
                Z3_EMAIL = Convert.ToString(model["txtemailcliente"]), //emailcliente
                Z3_TIPOPED = "",
                Z3_FREPAGO = tipofrete

            };
            // verificando se o pedido de venda existe na SZ3

            var dto_transporte = new Z3_Z4_Bonificacao() {
                Codbonificacao = Convert.ToString(model["txtcodverificador"]),
                Pedidovenda = Convert.ToString(model["txtpedidoweb"]),
                Pedidoweb = Convert.ToString(Convert.ToString(numpedidovenda))

            };

            string retorno = string.Empty;
            if (client == null)
            {
                client = new HttpClient();
                client.BaseAddress = new Uri(ConfigurationManager.AppSettings["url_servidor"]);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage resultado = client.GetAsync("AVANT/Pedido/PorId/" + numpedidovenda).Result;
                retorno = resultado.Content.ReadAsStringAsync().Result;

                if (retorno != "[]")
                {
                    JArray usuarioarrray = JArray.Parse(retorno);
                    foreach (JObject obj in usuarioarrray.Children<JObject>())
                    {
                        foreach (JProperty prop in obj.Properties())
                        {
                            switch (prop.Name)
                            {
                                case "z3_NPEDWEB":
                                    pedido_exixtente = Convert.ToString(prop.Value).Trim();
                                    break;
                                default:
                                    break;
                            }
                        }
                    }
                }
            }

            if (!pedido_exixtente.Equals(numpedidovenda))
            {
                 responsesz4 = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/Dados/SomenteGravar",
                         new StringContent(JsonConvert.SerializeObject(_dtosz3).ToString(), Encoding.UTF8, "application/json")).Result;

                // fazendo as alteraraçoes tanto no pedido de venda e no excluindo o codigo do pedido
                 responsesz4 = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/Dados/AlteracaoDadosPosVendaBonificacao",
                         new StringContent(JsonConvert.SerializeObject(dto_transporte).ToString(), Encoding.UTF8, "application/json")).Result;

            }
        }
        public List<Object> EnviadoeFaturados(string login, string cliente, string datade, string dataate, string pg)
        {
            StringBuilder sb = new StringBuilder();
            Models.banco.bd db = new Models.banco.bd();
            SqlCommand _cmd;
            SqlDataReader _ler;
            DataTable dt = new DataTable();
            List<Object> dados = new List<Object>();

            if (cliente.Equals("''"))
                cliente = "";
            if (datade.Equals("''"))
                datade = "";

            if (dataate.Equals("''"))
                dataate = "";

            sb.Append(" EXEC PROC_PORTALAVANTLED_PEDIDOENVIADOFATURADO '" + login.Trim() + "','" + cliente.Trim() + "','" + datade.Trim() + "','" + dataate.Trim() + "','" + pg.Trim() + "' ");
            try
            {
                db.Conectar();
                _cmd = new SqlCommand(sb.ToString(), db.conn);
                _ler = _cmd.ExecuteReader();
                dt.Load(_ler);

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow rw in dt.Rows)
                    {
                        var sz3 = new SZ3();

                        sz3.Z3_NPEDWEB = float.Parse(rw["N° WEB"].ToString().Trim());
                        sz3.Z3_EMISSAO = Convert.ToString(rw["EMISSÃO"].ToString().Trim());
                        sz3.Z3_NPEDCLI = Convert.ToString(rw["INTERNO"].ToString().Trim());
                        sz3.Z3_RAZASOC = Convert.ToString(rw["CLIENTE"].ToString().Trim());
                        sz3.Z3_WA1_LOJ = Convert.ToString(rw["LOJA"].ToString().Trim());
                        sz3.Z3_DSCPGTO = Convert.ToString(rw["DESC.PAGAMENTO"].ToString().Trim());
                        sz3.Z3_TOTPED = float.Parse(string.Format("{0:n2}", decimal.Round(decimal.Parse(rw["VL COM IMPOSTO"].ToString().Trim()), 2)));
                        sz3.Z3_STATUS = Convert.ToString(rw["SITUACAO"].ToString().Trim());

                        dados.Add(sz3);

                    }

                }
                return dados;
            }
            catch (Exception f)
            {

                throw new Exception("Erro no acesso ao dados " + f.Message);
            }
            finally
            {
                db.Desconectar();
            }
        }
        public void CabecalhoDadosSZ3(FormCollection model, string numpedidovenda)
        {
            var _dtosz3 = new SZ3()
            {

                Z3_FILIAL = "010104",
                Z3_NPEDWEB = float.Parse(Convert.ToString(numpedidovenda)),
                Z3_NPEDCLI = "",
                Z3_CNPJ = Convert.ToString(model["txtcnpjcliente"]),
                Z3_RAZASOC = Convert.ToString(model["txtrazaocliente"]),
                Z3_WA1_COD = Convert.ToString(model["txtcodcliente"]),
                Z3_WA1_LOJ = Convert.ToString(model["txtlojacliente"]),
                Z3_NMFANTA = Convert.ToString(model["txtnomecliente"]),
                Z3_TIPOCLI = Convert.ToString(model["txtcodtipocliente"]),
                Z3_CODTRAN = model["tpcodtransportadora"],
                // se tiver vazio pegar do campo tptransporte
                Z3_NMTRANS = Convert.ToString(model["tpnometransportadoracliente"]),
                // se tiver vazio pegar tpnometransportadora
                Z3_CEPCLI = model["txtcepcliente"],
                Z3_ENDCLI = model["txtenderecocliente"],
                Z3_BAIRROC = model["txtbairrocliente"],
                Z3_DDDCLI = Convert.ToString(model["txttelefonecliente"]).Substring(0, 4).Replace("(", "").Replace(")", ""),
                Z3_TELCLI = Convert.ToString(model["txttelefonecliente"]).Substring(4, 8),
                Z3_CODPGTO = Convert.ToString(model["txtcondpagamentocliente"]),
                Z3_DSCPGTO = Convert.ToString(model["tpdescpagamento"]),
                Z3_COMIS = float.Parse("0"),
                Z3_REGIAO = Convert.ToString(model["txtregionalcliente"]), // alterei aqui
                Z3_CODTSAC = "51",
                Z3_DSCTSAC = "Solicitação",
                Z3_OBS = model["txtordemcompra"],
                Z3_GTRCLI = Convert.ToString(model["tpgrupotributariocliente"]),
                Z3_STATUS = status.Solicitacao,
                Z3_EMISSAO = Convert.ToString(DateTime.Now.ToString("yyyyMMdd")),
                Z3_VEND = Convert.ToString(model["codvendedor"]),
                // login do representante logado no site  alterei aqui
                Z3_INTEGRA = "N",
                // operação triangular
                Z3_HORA = DateTime.Now.ToShortTimeString(),
                Z3_UF = model["txtufcliente"],
                Z3_MUN = model["txtmunicipiocliente"],
                Z3_EMAIL = Convert.ToString(model["txtemailcliente"]), //emailcliente
                Z3_TIPOPED = "",
                Z3_FREPAGO = "",
                Z3_VLMKT = float.Parse( string.Format("{0:C}", decimal.Round( decimal.Parse(model["txtvalor_solicitado"]),2)).Replace("R$", "").Trim()),
                Z3_DTINICP = Convert.ToString(cs.ValidaData(model["txtde"].ToString().Replace("/",""))),
                Z3_DTFIMCP = Convert.ToString(cs.ValidaData(model["txtate"].ToString().Replace("/",""))),
                Z3_DESMKT = Convert.ToString(model["txtdescricao_pedido"]),
                Z3_TAMKT = Convert.ToString(model["txttipo_campanha"]),
                Z3_CAMKT = CodigoBoni

            };
            // verificando se o pedido de venda existe na SZ3

            string retorno = string.Empty;
            if (client == null)
            {
                client = new HttpClient();
                client.BaseAddress = new Uri(ConfigurationManager.AppSettings["url_servidor"]);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage resultado = client.GetAsync("AVANT/Pedido/PorId/" + numpedidovenda).Result;
                retorno = resultado.Content.ReadAsStringAsync().Result;

                if (retorno != "[]")
                {
                    JArray usuarioarrray = JArray.Parse(retorno);
                    foreach (JObject obj in usuarioarrray.Children<JObject>())
                    {
                        foreach (JProperty prop in obj.Properties())
                        {
                            switch (prop.Name)
                            {
                                case "z3_NPEDWEB":
                                    pedido_exixtente = Convert.ToString(prop.Value).Trim();
                                    break;
                                default:
                                    break;
                            }
                        }
                    }
                }
            }

            if (!pedido_exixtente.Equals(numpedidovenda))
            {
                var response = client.PostAsync(ConfigurationManager.AppSettings["url_servidor"] + "AVANT/Dados/SomenteGravar",
                         new StringContent(JsonConvert.SerializeObject(_dtosz3).ToString(), Encoding.UTF8, "application/json")).Result;

            }
        }