Exemplo n.º 1
0
        //-----INICIO---SB-VTEX2020---20201222_12:57----
        //public static void act_presta_urbano(string ven_id, ref string error, ref string cod_urbano)
        public static void act_presta_urbano(string ven_id, string tienda_id, ref string error, ref string cod_urbano)
        //-----FIN---SB-VTEX2020---20201222_12:57----
        {
            //string codigo = ven_id.Substring(0,4)+"-"+ven_id.Substring(4,8);

            Dat_PrestaShop action_presta = null;
            Dat_Urbano     data_urbano   = null;

            Dat_Cexpress data_Cexpress = null;

            error = "";
            try
            {
                string guia_presta = ""; string guia_courier = ""; string name_carrier = "";
                action_presta = new Dat_PrestaShop();
                data_urbano   = new Dat_Urbano();
                //action_presta.get_guia_presta_urba(ven_id, ref guia_presta, ref guia_urb, ref name_carrier);
                //-----INICIO---SB-VTEX2020---20201222_12:57----
                action_presta.get_carrier(ven_id, tienda_id, ref guia_presta, ref name_carrier);
                //-----FIN---SB-VTEX2020---20201222_12:57----
                string track_chazki;

                if (guia_presta.Trim().Length > 0)
                {
                    UpdaEstado updateestado = new UpdaEstado();
                    //comentado
                    //-----INICIO---SB-VTEX2020---20201222_12:57----
                    //Boolean valida = (Ent_Global._err_con_mysql) ? true : updateestado.ActualizarReference(guia_presta);/*si la variable global es 1 quiere decir que el mysql esta sin conexion*/
                    //Boolean valida = true;

                    //if (valida)
                    //{
                    //-----FIN---SB-VTEX2020---20201222_12:57----
                    data_Cexpress = new Dat_Cexpress();
                    //action_presta.updestafac_prestashop(guia_presta);
                    //-----INICIO---SB-VTEX2020---20201222_12:57----
                    action_presta.updestafac_prestashop(guia_presta, tienda_id);
                    //-----FIN---SB-VTEX2020---20201222_12:57----
                    EnviaPedidoCxpress envia2  = new EnviaPedidoCxpress();
                    string             nroserv = "";

                    /*enviamos urbano la guia*/
                    EnviaPedido envia = new EnviaPedido();

                    if (name_carrier == "Comercio Xpress")
                    {
                        Ent_Cexpress ent_Cexpress = envia2.sendCexpress(ven_id, ref nroserv);
                    }

                    //intentando 3 veces
                    for (Int32 i = 0; i < 3; ++i)
                    {
                        /*Nuevo*/
                        if (name_carrier == "Comercio Xpress")
                        {
                            //Ent_Cexpress ent_Cexpress = envia2.sendCexpress(ven_id, ref nroserv);
                            action_presta.updestafac_prestashop(guia_presta, tienda_id); // SB: 04-mar AGREGAR EL PARAMETRO TIENDA_ID
                            data_Cexpress.update_guia(guia_presta, nroserv, tienda_id);
                            guia_courier = nroserv;
                            break;
                        }
                        //Chazki - Envíos Express
                        else if (name_carrier.Contains("Chazki"))
                        {
                            EnviarChazki objChazki = new EnviarChazki();

                            string nrodelivery_chazki = objChazki.Envia_Courier_chazki(ven_id, tienda_id);
                            if (nrodelivery_chazki != "")
                            {
                                action_presta.updestafac_prestashop(guia_presta, tienda_id); // SB: 04-mar AGREGAR EL PARAMETRO TIENDA_ID
                                data_Cexpress.update_guia(guia_presta, ven_id, tienda_id);
                                guia_courier = ven_id;
                                break;
                            }
                        }
                        else if (name_carrier.Contains("Savar"))
                        {
                            EnviarSavar objSavar = new EnviarSavar();

                            string nrodelivery_savar = objSavar.Envia_Courier_Savar(ven_id, tienda_id);
                            if (nrodelivery_savar != "")
                            {
                                action_presta.updestafac_prestashop(guia_presta, tienda_id); // SB: 04-mar AGREGAR EL PARAMETRO TIENDA_ID
                                data_Cexpress.update_guia(guia_presta, nrodelivery_savar, tienda_id);
                                guia_courier = nrodelivery_savar;
                                break;
                            }
                        }
                        else if (name_carrier.Contains("Dinet"))
                        {
                            EnviarDinet objDinet = new EnviarDinet();

                            string nrodelivery_dinet = objDinet.Envia_Courier_Dinet(ven_id, tienda_id);
                            if (nrodelivery_dinet != "")
                            {
                                data_Cexpress.update_guia(guia_presta, nrodelivery_dinet, tienda_id);
                                guia_courier = nrodelivery_dinet;
                                break;
                            }
                        }

                        else
                        {
                            //-----INICIO---SB-VTEX2020---20201222_12:57----
                            //Ent_Urbano ent_urbano = envia.sendUrbano(ven_id);
                            Ent_Urbano ent_urbano = envia.sendUrbano(ven_id, tienda_id);
                            //-----FIN---SB-VTEX2020---20201222_12:57----
                            if (ent_urbano.error == "1")
                            {
                                if (ent_urbano.guia.Trim().Length > 0)
                                {
                                    //-----INICIO---SB-VTEX2020---20201222_12:57----
                                    //action_presta.updestafac_prestashop(guia_presta);
                                    //data_urbano.update_guia(guia_presta, ent_urbano.guia);
                                    action_presta.updestafac_prestashop(guia_presta, tienda_id);
                                    data_urbano.update_guia(guia_presta, ent_urbano.guia, tienda_id);
                                    //-----FIN---SB-VTEX2020---20201222_12:57----
                                    guia_courier = ent_urbano.guia;
                                    break;
                                }
                            }
                        }
                    }
                    //guia_urb=
                    //action_presta.get_guia_presta_urba(ven_id, ref guia_presta, ref guia_urb);

                    //-----INICIO---SB-VTEX2020---20201222_12:57----
                    //ActTracking enviaguia_presta = new ActTracking();
                    //    string[] valida_prest;

                    //if (name_carrier == "Chazki - Envíos Express") //para chazki el codigo de seguimiento es el mismo nro de boleta
                    //{
                    //    track_chazki = ven_id.Substring(0, 4) + "-" + ven_id.Substring(4, 8);

                    //    valida_prest = enviaguia_presta.ActualizaTrackin(guia_presta, track_chazki);
                    //}
                    //else
                    //{
                    //       valida_prest = enviaguia_presta.ActualizaTrackin(guia_presta, guia_courier);
                    //}


                    /*el valor 1 quiere decir que actualizo prestashop*/
                    // if (valida_prest[0] == "1" && guia_courier.ToString() != "")
                    // {
                    //     data_urbano.updprestashopGuia(guia_presta, guia_courier);
                    // }

                    data_urbano.updprestashopGuia(guia_presta, tienda_id);
                    //-----FIN---SB-VTEX2020---20201222_12:57----


                    cod_urbano = guia_courier;
                    /************************/
                    //-----INICIO---SB-VTEX2020---20201222_12:57----
                    //string ruta = ConfigurationManager.AppSettings["rutaServicioinvoice"];
                    //try
                    //{
                    //    Dat_VTEX action_vtex = null;
                    //    action_vtex = new Dat_VTEX();
                    //    action_vtex.PreparandoTrama_Actualizar_Estado_Invoice(ruta, ven_id);
                    //}
                    //catch (Exception)
                    //{
                    //    Console.WriteLine("Error-Invoice");
                    //}
                    //-----FIN---SB-VTEX2020---20201222_12:57----
                    //}
                }
            }
            catch (Exception exc)
            {
                cod_urbano = "";
                error      = exc.Message;
            }
        }
Exemplo n.º 2
0
        //public Reg_PedidoCxpress()

        public Ent_Cexpress sendCexpress(string _ven_id, ref string nroserv)
        {
            /*Inicio Carga de Data para Envio*/
            Boolean      valida    = false;
            DataTable    dt        = null;
            Ent_Cexpress post_data = null;

            /*Fin Carga*/



            obj1 = new WSOrdenServicioClient();
            comercioxpress.EnviaPedidoCxpress    d      = new EnviaPedidoCxpress();
            comercioxpress.OrdenServicioReqParm  objcla = new OrdenServicioReqParm();
            comercioxpress.WSOrdenServicioClient dd     = new WSOrdenServicioClient();
            comercioxpress.EnviaPedidoCxpress    s      = new EnviaPedidoCxpress();
            //s.
            //dd.
            //  var r = obj1.registrar(dd);

            // //obj1.re
            // Boolean valida = false;
            ////DataTable dt = null;
            //Ent_Cexpress post_data = null;
            try
            {
                /*inicio Data */
                post_data = new Ent_Cexpress();

                Dat_Cexpress data_Cexpress = new Dat_Cexpress();
                //Ent_Urbano acceso = data_urbano.get_acceso();

                dt = data_Cexpress.get_data(_ven_id);
                ;

                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        /*agrupamos los pedidos*/
                        var grupo_pedido = from item in dt.AsEnumerable()
                                           group item by
                                           new
                        {
                            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["nom_cliente"]),
                            ape_cliente    = Convert.ToString(item["ape_cliente"]),
                            tipdoc_clie    = Convert.ToString(item["tipdoc_clie"]),
                            nro_telf       = Convert.ToString(item["ref_telef"]).Split('/')[0],
                            nro_telf_mobil = Convert.ToString(item["ref_telef"]).Split('/')[1],
                            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.ToInt32(item["tot_cant"].ToString()),
                        }
                        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,
                            ape_cliente    = G.Key.ape_cliente,
                            tipdoc_clie    = G.Key.tipdoc_clie,
                            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_prov       = G.Key.ubi_direc.Substring(2, 2),
                            ubi_dist       = G.Key.ubi_direc.Substring(4, 2),
                            ref_direc      = G.Key.ref_direc,
                            peso_total     = G.Key.peso_total,
                            cant_total     = G.Key.cant_total,
                        };
                        /*fin cab*/


                        /*inicio*/

                        /*recorremos los pedidos para agregar al pedido*/
                        foreach (var key in grupo_pedido)
                        {
                            /* inicio cab*/
                            //string[] nroPedido = { "F09500000013" };
                            //objcla.nroPedido = new String[] { "Ped-1234567" };// nroPedido;
                            //objcla.nroPedido = new String[] { _ven_id };// nroPedido;
                            //objcla.nroPedido = new String[] { _gia_presta };// nroPedido;
                            //objcla.nroPedido = new String[] { key.nro_guia_trans };// nroPedido;    ok
                            objcla.nroPedido = new String[] { key.nro_guia_trans };// nroPedido;    ok


                            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.ToInt32(item["peso_sku"]),
                                cantidad_sku = Convert.ToInt32(item["cantidad_sku"]),
                            };


                            ///*Inicio Det Item*/
                            List <Integrado.comercioxpress.item> lista = new List <comercioxpress.item>();

                            List <Ent_Producto> productos_items = new List <Ent_Producto>();
                            foreach (var key_det in ped_det)
                            {
                                Integrado.comercioxpress.item objdet = new Integrado.comercioxpress.item();
                                objdet.descItem  = new String[] { key_det.cod_sku };
                                objdet.cantItem  = new int[] { key_det.cantidad_sku };
                                objdet.pesoMasa  = new float[] { key_det.peso_sku };
                                objdet.altoItem  = new float[] { 1 };
                                objdet.largoItem = new float[] { 1 };
                                objdet.anchoItem = new float[] { 1 };
                                objdet.valorItem = new float[] { 1 };
                                lista.Add(objdet);
                            }

                            objcla.listaItems = lista.ToArray();
                            obj1.registrar(objcla);
                            ///*Info*/



                            // Use StringBuilder for concatenation in tight loops.
                            //var sb = new System.Text.StringBuilder();
                            //for (int i = 0; i < 20; i++)
                            //{
                            //    sb.AppendLine(i.ToString());
                            //}
                            //System.Console.WriteLine(sb.ToString());



                            ///*Inicio Det Item*/
                            //List<Integrado.comercioxpress.item> lista = new List<comercioxpress.item>();

                            //Integrado.comercioxpress.item objdet = new Integrado.comercioxpress.item();
                            //objdet.descItem = new String[] { vdescr_sku.ToString() };
                            //objdet.cantItem = new int[] { 1, 1, 8};
                            //objdet.pesoMasa = new float[] { 1, 5, 6 };
                            //objdet.altoItem = new float[] { 1, 2, 3 };
                            //objdet.largoItem = new float[] { 1, 2, 3 };
                            //objdet.anchoItem = new float[] { 1, 2, 3  };
                            //objdet.valorItem = new float[] { 0, 2, 3 };
                            //lista.Add(objdet);

                            //objcla.listaItems = lista.ToArray();
                            //obj1.registrar(objcla);
                            ///*Info*/


                            objcla.volumen      = new double[] { 10 };                  //No hay
                            objcla.tipoServicio = new long[] { 101 };                   //
                            /*Codigos para prueba 141 y  142*/
                            objcla.codCliente          = new long[] { 467 };            //entregado por CX 141
                            objcla.codCtaCliente       = new long[] { 493 };            //entregado por CX
                            objcla.cantPiezas          = new int[] { key.cant_total };
                            objcla.codRef1             = new String[] { "0012071801" }; //opsional
                            objcla.codRef2             = new String[] { "0012071801" }; //opsional
                            objcla.valorProducto       = new double[] { 1 };
                            objcla.tipoOrigenRecojo    = new int[] { 1 };
                            objcla.codTipoDocProveedor = new long[] { 112 };         //entregado por CX
                            /*Para nroDocProveedor 20145556666*/
                            objcla.nroDocProveedor = new String[] { "20101951872" }; ///20145556666
                            /*Para codDireccionProveedor 900055*/
                            objcla.codDireccionProveedor = new long[] { 900652 };    //entregado por CX 0900055
                            objcla.indicadorGeneraRecojo = new int[] { 1 };
                            objcla.tipoDestino           = new int[] { 1 };
                            objcla.direccEntrega         = new String[] { key.dir_entrega }; // Dirección de entrega
                            //Ubigeo dirección entrega  key.ubi_direc
                            objcla.refDireccEntrega      = new String[] { key.ref_direc };   //Referencia dirección entrega
                            objcla.codDepartEntrega      = new String[] { "15" };            //Departamento = Lima
                            objcla.codProvEntrega        = new String[] { key.ubi_prov };    //Provincia = Lima
                            objcla.codDistEntrega        = new String[] { key.ubi_dist };
                            objcla.nomDestEntrega        = new String[] { key.nom_cliente };
                            objcla.apellDestEntrega      = new String[] { key.ape_cliente };    //"Perez Luna"
                            objcla.codTipoDocDestEntrega = new String[] { key.tipdoc_clie };
                            objcla.nroDocDestEntrega     = new String[] { key.cod_cliente };    //"12345678"
                            objcla.telefDestEntrega      = new String[] { key.nro_telf_mobil }; //"991276768"
                            objcla.emailDestEntrega      = new String[] { key.correo_elec };    //"*****@*****.**"
                            objcla.idUsuario             = new String[] { "EMPRESA  S.A.C." };
                            objcla.deTerminal            = new String[] { "LIMA" };
                        }
                        /*fin*/


                        var e = dd.registrar(objcla);

                        nroserv = e.nroOrdenServicio.ToString();
                        //nroserv = e.listaPiezas[0].nuPieza.ToString();
                    }
                }
            }
            catch (Exception exc)
            {
                //_error = exc.Message;
                post_data = null;
            }

            //catch (Exception)
            //{
            //    post_data=null;
            //}
            return(post_data);
        }