Ejemplo n.º 1
0
        public Boolean send()
        {
            Boolean valida = false;

            try
            {
                string usuario  = "Ws.pr33b4";
                string password = "******";
                string url      = "http://app.urbano.com.pe:8000/ws/ue/ge";

                GuiaUrbano guiaUrbano = new GuiaUrbano
                {
                    linea          = "3",                           //Linea, "3", dato de proveedor logístico==>desde la base de datos , estatico
                    id_contrato    = "7207",                        //ID de contrato, 7207, dato de proveedor logístico==>desde la base de datos , estatico
                    cod_rastreo    = "1000145107001",               //Codigo de rastreo, # de orden de Prestashop ==> Referencia de pedido
                    cod_barra      = "1000145107001",               //Codigo de barra, # de orden de Prestashop ==> Referencia de pedido
                    fech_emi_vent  = "15/12/2017",                  //Fecha de emisión de venta==> fecha de venta
                    nro_o_compra   = "1024319",                     //# de orden de compra==> # de orden de Prestashop ==> Referencia de pedido
                    nro_guia_trans = "1254",                        //# de guía de transporte==># numero de guia sistemas
                    nro_factura    = "999999",                      //# de factura ==> # numero desde base
                    cod_empresa    = "20123456781",                 //RUC BATA ==> # desde base
                    nom_empresa    = "BATA",                        //BATA - Emcomer S.A. ==> # desde base
                    cod_cliente    = "45678912",                    //DNI - RUC cliente ==> # desde base
                    nom_cliente    = "Jorge Solis Mc Lellan",       //Nombre de cliente ==> # desde base
                    nro_telf       = "",                            //# de teléfono de cliente ==> # desde base
                    nro_telf_mobil = "987654321",                   //# de celular de cliente ==> # desde base
                    correo_elec    = "*****@*****.**",     //Email de cliente ==> # desde base
                    dir_entrega    = "Av. Lima 944",                // Dirección de entrega
                    nro_via        = "1111",                        //# de vía
                    nro_int        = "2121",                        //# de interior
                    nom_urb        = "",                            //Nombre de urbanización
                    ubi_direc      = "150120",                      //Ubigeo dirección entrega
                    ref_direc      = "Alt. cdra 10 Av. San Miguel", //Referencia dirección entrega
                    peso_total     = "1",                           //Peso total, 0.3g por defecto para cada par
                    pieza_total    = "3",                           //# de bultos

                    //Añadiendo productos
                    productos = new List <Ent_Producto> {
                        new Ent_Producto {
                            cod_sku = "8451230-30", descr_sku = "Zapato de cuero negro talla 30", modelo_sku = "8451230", marca_sku = "BATA", peso_sku = "0.3", cantidad_sku = "1"
                        },
                        new Ent_Producto {
                            cod_sku = "8451240-42", descr_sku = "Zapato marrón talla 42", modelo_sku = "8451240", marca_sku = "BATA", peso_sku = "0.3", cantidad_sku = "1"
                        },
                        new Ent_Producto {
                            cod_sku = "8451250-45", descr_sku = "Zapato de gamuza azul talla 45", modelo_sku = "8451250", marca_sku = "BATA", peso_sku = "0.3", cantidad_sku = "1"
                        },
                    }
                };
                //Construyendo cadena
                string guiaEncoded = "";
                guiaEncoded += "%22linea%22%3A%22" + guiaUrbano.linea + "%22%2C";
                guiaEncoded += "%22id_contrato%22%3A%22" + guiaUrbano.id_contrato + "%22%2C";
                guiaEncoded += "%22cod_rastreo%22%3A%22" + guiaUrbano.cod_rastreo + "%22%2C";
                guiaEncoded += "%22cod_barra%22%3A%22" + guiaUrbano.cod_barra + "%22%2C";
                guiaEncoded += "%22fech_emi_vent%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.fech_emi_vent) + "%22%2C";
                guiaEncoded += "%22nro_o_compra%22%3A%22" + guiaUrbano.nro_o_compra + "%22%2C";
                guiaEncoded += "%22nro_guia_trans%22%3A%22" + guiaUrbano.nro_guia_trans + "%22%2C";
                guiaEncoded += "%22nro_factura%22%3A%22" + guiaUrbano.nro_factura + "%22%2C";
                guiaEncoded += "%22cod_empresa%22%3A%22" + guiaUrbano.cod_empresa + "%22%2C";
                guiaEncoded += "%22nom_empresa%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.nom_empresa) + "%22%2C";
                guiaEncoded += "%22cod_cliente%22%3A%22" + guiaUrbano.cod_cliente + "%22%2C";
                guiaEncoded += "%22nom_cliente%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.nom_cliente) + "%22%2C";
                guiaEncoded += "%22nro_telf%22%3A%22" + guiaUrbano.nro_telf + "%22%2C";
                guiaEncoded += "%22nro_telf_mobil%22%3A%22" + guiaUrbano.nro_telf_mobil + "%22%2C";
                guiaEncoded += "%22correo_elec%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.correo_elec) + "%22%2C";
                guiaEncoded += "%22dir_entrega%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.dir_entrega) + "%22%2C";
                guiaEncoded += "%22nro_via%22%3A%22" + guiaUrbano.nro_via + "%22%2C";
                guiaEncoded += "%22nro_int%22%3A%22" + guiaUrbano.nro_int + "%22%2C";
                guiaEncoded += "%22nom_urb%22%3A%22" + guiaUrbano.nom_urb + "%22%2C";
                guiaEncoded += "%22ubi_direc%22%3A%22" + guiaUrbano.ubi_direc + "%22%2C";
                guiaEncoded += "%22ref_direc%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.ref_direc) + "%22%2C";
                guiaEncoded += "%22peso_total%22%3A%22" + guiaUrbano.peso_total + "%22%2C";
                guiaEncoded += "%22pieza_total%22%3A%22" + guiaUrbano.pieza_total + "%22%2C";

                //Construyendo cadena desde lista de productos
                string productos = "";
                int    i         = 1;
                foreach (Ent_Producto p in guiaUrbano.productos)
                {
                    productos += "%22cod_sku%22%3A%22" + p.cod_sku + "%22%2C";
                    productos += "%22descr_sku%22%3A%22" + HttpUtility.UrlEncode(p.descr_sku) + "%22%2C";
                    productos += "%22modelo_sku%22%3A%22" + p.modelo_sku + "%22%2C";
                    productos += "%22marca_sku%22%3A%22" + HttpUtility.UrlEncode(p.marca_sku) + "%22%2C";
                    productos += "%22peso_sku%22%3A%22" + p.peso_sku + "%22%2C";
                    productos += "%22cantidad_sku%22%3A%22" + p.cantidad_sku + "%22";
                    if (i != guiaUrbano.productos.Count)
                    {
                        productos += "%7D%2C%7B";
                    }
                    i++;
                }

                //Cadena final
                string content = "json=%7B" + guiaEncoded + "%22productos%22%3A%5B%7B" + productos + "%7D%5D%7D";

                //Llamando al webservice de Urbano
                using (WebClient client = new WebClient())
                {
                    client.Headers.Add("Content-type", "application/x-www-form-urlencoded");
                    client.Headers.Add("user", usuario);
                    client.Headers.Add("pass", password);

                    var response = client.UploadString(url, "POST", content);

                    Ent_Urbano post = JsonConvert.DeserializeObject <Ent_Urbano>(response);

                    Console.WriteLine(post.guia);

                    Console.ReadLine();
                }
            }
            catch (Exception)
            {
                valida = false;
            }
            return(valida);
        }
Ejemplo n.º 2
0
        //-----INICIO---SB-VTEX2020---20201222_12:57----
        //public Ent_Urbano sendUrbano(string _ven_id)
        public Ent_Urbano sendUrbano(string _ven_id, string tienda_id)
        //-----FIN---SB-VTEX2020---20201222_12:57----
        {
            Boolean    valida    = false;
            DataTable  dt        = null;
            Ent_Urbano post_data = null;

            try
            {
                post_data = new Ent_Urbano();
                Dat_Urbano data_urbano = new Dat_Urbano();
                Ent_Urbano acceso      = data_urbano.get_acceso();
                //-----INICIO---SB-VTEX2020---20201222_12:57----
                //dt = data_urbano.get_data(_ven_id);
                dt = data_urbano.get_data(_ven_id, tienda_id);
                //-----FIN---SB-VTEX2020---20201222_12:57----
                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        /*agrupamos los pedidos*/
                        var grupo_pedido = from item in dt.AsEnumerable()
                                           group item by
                                           new
                        {
                            // Modificado por : Henry Morales - 21/05/2018
                            // Se cambiaron los nombres y telefonos, para ser tomados los de referencia entrega
                            cod_rastreo    = Convert.ToString(item["cod_rastreo"]),
                            fech_emi_vent  = Convert.ToString(item["fech_emi_vent"].ToString()),
                            nro_guia_trans = Convert.ToString(item["nro_guia_trans"]),
                            nro_factura    = Convert.ToString(item["nro_factura"].ToString()),
                            cod_empresa    = Convert.ToString(item["cod_empresa"].ToString()),
                            nom_empresa    = Convert.ToString(item["nom_empresa"].ToString()),
                            cod_cliente    = Convert.ToString(item["cod_cliente"]),
                            nom_cliente    = Convert.ToString(item["ref_nombre"]),
                            //nom_cliente = Convert.ToString(item["nom_cliente"]),
                            nro_telf = Convert.ToString(item["ref_telef"]).Split('/')[0],
                            //nro_telf = Convert.ToString(item["nro_telf"]),
                            nro_telf_mobil = Convert.ToString(item["ref_telef"]).Split('/')[1],
                            //nro_telf_mobil = Convert.ToString(item["nro_telf_mobil"]),
                            correo_elec = Convert.ToString(item["correo_elec"].ToString()),
                            dir_entrega = Convert.ToString(item["dir_entrega"].ToString()),
                            ubi_direc   = Convert.ToString(item["ubi_direc"].ToString()),
                            ref_direc   = Convert.ToString(item["ref_direc"].ToString()),
                            peso_total  = Convert.ToDecimal(item["peso_total"].ToString()),
                            cant_total  = Convert.ToDecimal(item["tot_cant"].ToString()),
                            //se agrego nuevos campos por seguro de pedidos
                            asegurado       = item["asegurado"].ToString(),
                            monto_asegurado = Convert.ToDecimal(item["monto_asegurado"]),

                            //se agrego nuevos campos para la identificacion de direccion de las tiendas de origen - 11/11/2021
                            venta_seller  = item["venta_seller"].ToString(),
                            codigo_tienda = tienda_id,
                        }
                        into G
                            select new
                        {
                            cod_rastreo    = G.Key.cod_rastreo,
                            fech_emi_vent  = G.Key.fech_emi_vent,
                            nro_guia_trans = G.Key.nro_guia_trans,
                            nro_factura    = G.Key.nro_factura,
                            cod_empresa    = G.Key.cod_empresa,
                            nom_empresa    = G.Key.nom_empresa,
                            cod_cliente    = G.Key.cod_cliente,
                            nom_cliente    = G.Key.nom_cliente,
                            nro_telf       = G.Key.nro_telf,
                            nro_telf_mobil = G.Key.nro_telf_mobil,
                            correo_elec    = G.Key.correo_elec,
                            dir_entrega    = G.Key.dir_entrega,
                            ubi_direc      = G.Key.ubi_direc,
                            ref_direc      = G.Key.ref_direc,
                            peso_total     = G.Key.peso_total,
                            cant_total     = G.Key.cant_total,
                            //se agrego nuevos campos por seguro de pedidos
                            asegurado       = G.Key.asegurado,
                            monto_asegurado = G.Key.monto_asegurado,

                            //se agrego nuevos campos para la identificacion de direccion de las tiendas de origen - 11/11/2021
                            venta_seller  = G.Key.venta_seller,
                            codigo_tienda = G.Key.codigo_tienda,
                        };


                        /*recorremos los pedidos para agregar al pedido*/
                        foreach (var key in grupo_pedido)
                        {
                            #region <DATOS DEL PEDIDO CAB>
                            GuiaUrbano guiaUrbano = new GuiaUrbano();
                            guiaUrbano.linea          = acceso.linea;              //Linea, "3", dato de proveedor logístico==>desde la base de datos , estatico
                            guiaUrbano.id_contrato    = acceso.contrato;           //ID de contrato, 7207, dato de proveedor logístico==>desde la base de datos , estatico
                            guiaUrbano.cod_rastreo    = key.cod_rastreo;           //Codigo de rastreo, # de orden de Prestashop ==> Referencia de pedido
                            guiaUrbano.cod_barra      = key.cod_rastreo;           //Codigo de barra, # de orden de Prestashop ==> Referencia de pedido
                            guiaUrbano.fech_emi_vent  = key.fech_emi_vent;         //Fecha de emisión de venta==> fecha de venta
                            guiaUrbano.nro_o_compra   = key.cod_rastreo;           //# de orden de compra==> # de orden de Prestashop ==> Referencia de pedido
                            guiaUrbano.nro_guia_trans = key.nro_guia_trans;        //# de guía de transporte==># numero de guia sistemas
                            guiaUrbano.nro_factura    = key.nro_factura;           //# de factura ==> # numero desde base
                            guiaUrbano.cod_empresa    = key.cod_empresa;           //RUC BATA ==> # desde base
                            guiaUrbano.nom_empresa    = key.nom_empresa;           //BATA - Emcomer S.A. ==> # desde base
                            guiaUrbano.cod_cliente    = key.cod_cliente;           //DNI - RUC cliente ==> # desde base
                            guiaUrbano.nom_cliente    = key.nom_cliente;           //Nombre de cliente ==> # desde base
                            guiaUrbano.nro_telf       = key.nro_telf;              //# de teléfono de cliente ==> # desde base
                            guiaUrbano.nro_telf_mobil = key.nro_telf_mobil;        //# de celular de cliente ==> # desde base
                            guiaUrbano.correo_elec    = key.correo_elec;           //Email de cliente ==> # desde base
                            guiaUrbano.dir_entrega    = key.dir_entrega;           // Dirección de entrega
                            guiaUrbano.nro_via        = "";                        //# de vía
                            guiaUrbano.nro_int        = "";                        //# de interior
                            guiaUrbano.nom_urb        = "";                        //Nombre de urbanización
                            guiaUrbano.ubi_direc      = key.ubi_direc;             //Ubigeo dirección entrega
                            guiaUrbano.ref_direc      = key.ref_direc;             //Referencia dirección entrega
                            guiaUrbano.peso_total     = key.peso_total.ToString(); //Peso total, 0.3g por defecto para cada par
                            guiaUrbano.pieza_total    = key.cant_total.ToString(); //Cantidad total, No se considera el Envío
                                                                                   //guiaUrbano.pieza_total = "3";//# de bultos
                            guiaUrbano.asegurado       = key.asegurado;            //Indicador de pedido asegurado SI/NO
                            guiaUrbano.monto_asegurado = key.monto_asegurado;      //Monto total asegurado por pedido

                            //se agrego nuevos campos para la identificacion de direccion de las tiendas de origen - 11/11/2021
                            guiaUrbano.venta_seller = key.venta_seller;
                            guiaUrbano.sell_codigo  = key.codigo_tienda;
                            #endregion


                            var ped_det = from item in dt.AsEnumerable()
                                          where item.Field <string>("cod_rastreo") == Convert.ToString(key.cod_rastreo)
                                          select new
                            {
                                cod_sku      = item["cod_sku"].ToString(),
                                descr_sku    = Convert.ToString(item["descr_sku"]),
                                modelo_sku   = Convert.ToString(item["modelo_sku"]),
                                marca_sku    = Convert.ToString(item["marca_sku"]),
                                peso_sku     = Convert.ToDecimal(item["peso_sku"]),
                                cantidad_sku = Convert.ToDecimal(item["cantidad_sku"]),
                            };
                            List <Ent_Producto> productos_items = new List <Ent_Producto>();
                            foreach (var key_det in ped_det)
                            {
                                Ent_Producto prod_item = new Ent_Producto
                                {
                                    cod_sku      = key_det.cod_sku,
                                    descr_sku    = key_det.descr_sku,
                                    modelo_sku   = key_det.modelo_sku,
                                    marca_sku    = key_det.marca_sku,
                                    peso_sku     = key_det.peso_sku.ToString(),
                                    cantidad_sku = key_det.cantidad_sku.ToString()
                                };
                                productos_items.Add(prod_item);
                            }
                            guiaUrbano.productos = productos_items;
                            #region <CONSTRUEY CADENA PARA ENVIO A URBANO>
                            //Construyendo cadena
                            string guiaEncoded = "";
                            guiaEncoded += "%22linea%22%3A%22" + guiaUrbano.linea + "%22%2C";
                            guiaEncoded += "%22id_contrato%22%3A%22" + guiaUrbano.id_contrato + "%22%2C";
                            guiaEncoded += "%22cod_rastreo%22%3A%22" + guiaUrbano.cod_rastreo + "%22%2C";
                            guiaEncoded += "%22cod_barra%22%3A%22" + guiaUrbano.cod_barra + "%22%2C";
                            guiaEncoded += "%22fech_emi_vent%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.fech_emi_vent) + "%22%2C";
                            guiaEncoded += "%22nro_o_compra%22%3A%22" + guiaUrbano.nro_o_compra + "%22%2C";
                            guiaEncoded += "%22nro_guia_trans%22%3A%22" + guiaUrbano.nro_guia_trans + "%22%2C";
                            guiaEncoded += "%22nro_factura%22%3A%22" + guiaUrbano.nro_factura + "%22%2C";
                            guiaEncoded += "%22cod_empresa%22%3A%22" + guiaUrbano.cod_empresa + "%22%2C";
                            //guiaEncoded += "%22nom_empresa%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.nom_empresa) + "%22%2C";
                            guiaEncoded += "%22cod_cliente%22%3A%22" + guiaUrbano.cod_cliente + "%22%2C";
                            guiaEncoded += "%22nom_cliente%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.nom_cliente) + "%22%2C";
                            guiaEncoded += "%22nro_telf%22%3A%22" + guiaUrbano.nro_telf + "%22%2C";
                            guiaEncoded += "%22nro_telf_mobil%22%3A%22" + guiaUrbano.nro_telf_mobil + "%22%2C";
                            guiaEncoded += "%22correo_elec%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.correo_elec) + "%22%2C";
                            guiaEncoded += "%22dir_entrega%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.dir_entrega) + "%22%2C";
                            guiaEncoded += "%22nro_via%22%3A%22" + guiaUrbano.nro_via + "%22%2C";
                            guiaEncoded += "%22nro_int%22%3A%22" + guiaUrbano.nro_int + "%22%2C";
                            guiaEncoded += "%22nom_urb%22%3A%22" + guiaUrbano.nom_urb + "%22%2C";
                            guiaEncoded += "%22ubi_direc%22%3A%22" + guiaUrbano.ubi_direc + "%22%2C";
                            guiaEncoded += "%22ref_direc%22%3A%22" + HttpUtility.UrlEncode(guiaUrbano.ref_direc) + "%22%2C";
                            guiaEncoded += "%22peso_total%22%3A%22" + guiaUrbano.peso_total + "%22%2C";
                            guiaEncoded += "%22pieza_total%22%3A%22" + guiaUrbano.pieza_total + "%22%2C";

                            /*se agrego para pedidos asegurados*/
                            guiaEncoded += "%22asegurado%22%3A%22" + guiaUrbano.asegurado + "%22%2C";
                            guiaEncoded += "%22monto_asegurado%22%3A%22" + guiaUrbano.monto_asegurado + "%22%2C";

                            //se agrego nuevos campos para la identificacion de direccion de las tiendas de origen - 11/11/2021
                            guiaEncoded += "%22venta_seller%22%3A%22" + guiaUrbano.venta_seller + "%22%2C";
                            guiaEncoded += "%22sell_codigo%22%3A%22" + guiaUrbano.sell_codigo + "%22%2C";


                            //Construyendo cadena desde lista de productos
                            string productos = "";
                            int    i         = 1;
                            foreach (Ent_Producto p in guiaUrbano.productos)
                            {
                                productos += "%22cod_sku%22%3A%22" + p.cod_sku + "%22%2C";
                                productos += "%22descr_sku%22%3A%22" + HttpUtility.UrlEncode(p.descr_sku) + "%22%2C";
                                productos += "%22modelo_sku%22%3A%22" + p.modelo_sku + "%22%2C";
                                productos += "%22marca_sku%22%3A%22" + HttpUtility.UrlEncode(p.marca_sku) + "%22%2C";
                                productos += "%22peso_sku%22%3A%22" + p.peso_sku + "%22%2C";
                                productos += "%22cantidad_sku%22%3A%22" + p.cantidad_sku + "%22";
                                if (i != guiaUrbano.productos.Count)
                                {
                                    productos += "%7D%2C%7B";
                                }
                                i++;
                            }

                            //Cadena final
                            string content = "json=%7B" + guiaEncoded + "%22productos%22%3A%5B%7B" + productos + "%7D%5D%7D";

                            //Llamando al webservice de Urbano
                            using (WebClient client = new WebClient())
                            {
                                client.Headers.Add("Content-type", "application/x-www-form-urlencoded");
                                client.Headers.Add("user", acceso.usuario);
                                client.Headers.Add("pass", acceso.password);

                                var response = client.UploadString(acceso.url, "POST", content);

                                Ent_Urbano post = JsonConvert.DeserializeObject <Ent_Urbano>(response);

                                //en este paso envia si es que urbano recibio los datos con exito
                                post_data = post;
                                //if (post.error=="1")
                                // {
                                //     if (post.guia.Trim().Length>0)
                                //        data_urbano.update_guia(key.cod_rastreo, post.guia);
                                //}

                                //Console.WriteLine(post.guia);

                                //Console.ReadLine();
                            }
                            #endregion
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                post_data = null;
            }
            return(post_data);
        }