Beispiel #1
0
        public static void act_presta_urbano(string ven_id, ref string error, ref string cod_urbano)
        {
            Dat_PrestaShop action_presta = null;
            Dat_Urbano     data_urbano   = null;

            error = "";
            try
            {
                string guia_presta = ""; string guia_urb = "";
                action_presta = new Dat_PrestaShop();
                data_urbano   = new Dat_Urbano();
                action_presta.get_guia_presta_urba(ven_id, ref guia_presta, ref guia_urb);

                if (guia_presta.Trim().Length > 0)
                {
                    UpdaEstado updateestado = new UpdaEstado();
                    Boolean    valida       = updateestado.ActualizarReference(guia_presta);

                    if (valida)
                    {
                        action_presta.updestafac_prestashop(guia_presta);

                        /*enviamos urbano la guia*/
                        EnviaPedido envia = new EnviaPedido();
                        //intentando 3 veces
                        for (Int32 i = 0; i < 3; ++i)
                        {
                            Ent_Urbano ent_urbano = envia.sendUrbano(ven_id);
                            if (ent_urbano.error == "1")
                            {
                                if (ent_urbano.guia.Trim().Length > 0)
                                {
                                    data_urbano.update_guia(guia_presta, ent_urbano.guia);
                                    guia_urb = ent_urbano.guia;
                                    break;
                                }
                            }
                        }
                        //guia_urb=
                        //action_presta.get_guia_presta_urba(ven_id, ref guia_presta, ref guia_urb);

                        ActTracking enviaguia_presta = new ActTracking();
                        string[]    valida_prest     = enviaguia_presta.ActualizaTrackin(guia_presta, guia_urb);
                        /*el valor 1 quiere decir que actualizo prestashop*/
                        if (valida_prest[0] == "1")
                        {
                            data_urbano.updprestashopGuia(guia_presta, guia_urb);
                        }

                        cod_urbano = guia_urb;
                        /************************/
                    }
                }
            }
            catch (Exception exc)
            {
                cod_urbano = "";
                error      = exc.Message;
            }
        }
        public static string ImportaDataPrestaShop(TextWriter log)
        {
            string    _error       = "";
            DataTable dtpedidos    = null;
            DataTable dtpedidospag = null;

            try
            {
                dtpedidos    = PrepararPedidos();
                dtpedidospag = PrepararPedidos_Pagos();

                if (dtpedidos != null && dtpedidospag != null)
                {
                    Dat_PrestaShop update_psth = new Dat_PrestaShop();


                    /*agrupamos los pedidos*/
                    var grupo_pedido = from item in dtpedidos.AsEnumerable()
                                       //where item.Field<string>("ped_id") == "73" //|| item.Field<Int32>("ped_id") ==40
                                       group item by
                                       new
                    {
                        ped_id = Convert.ToInt32(item["ped_id"]),
                        // Modificado por : Henry Morales - 01/04/2019
                        // Se agregó dato de Tienda
                        tda_id         = item["tda_id"].ToString(),
                        ped_ref        = item["ped_ref"].ToString(),
                        ped_fecha      = Convert.ToDateTime(item["ped_fecha"]),
                        ped_ubigeo_ent = item["ped_ubigeo_ent"].ToString(),
                        ped_dir_ent    = item["ped_dir_ent"].ToString(),
                        ped_ref_ent    = item["ped_ref_ent"].ToString(),
                        // Modificado por : Henry Morales - 21/05/2018
                        // Se agergaron los campos de nombre y telefono de referencia para la entrega
                        ped_nom_ent = item["ped_nom_ent"].ToString(),
                        ped_tel_ent = item["ped_tel_ent"].ToString(),
                        //det_peso =Convert.ToDecimal(item["det_peso"]),
                        ped_total_sigv = Convert.ToDecimal(item["ped_total_sigv"]),
                        ped_total_cigv = Convert.ToDecimal(item["ped_total_cigv"]),
                        ped_dcto_sigv  = Convert.ToDecimal(item["ped_dcto_sigv"]),
                        ped_dcto_cigv  = Convert.ToDecimal(item["ped_dcto_cigv"]),
                        cli_id         = item["cli_id"].ToString(),
                        cli_nombres    = item["cli_nombres"].ToString(),
                        cli_apellidos  = item["cli_apellidos"].ToString(),
                        cli_email      = item["cli_email"].ToString(),
                        cli_direc      = item["cli_direc"].ToString(),
                        cli_telf       = item["cli_telf"].ToString(),
                        cli_telf_mov   = item["cli_telf_mov"].ToString(),
                        cli_dni        = item["cli_dni"].ToString(),
                        cli_ubigeo     = item["cli_ubigeo"].ToString(),
                        ped_ship_sigv  = Convert.ToDecimal(item["ped_ship_sigv"]),
                        name_courier   = Convert.ToString(item["name_courier"]),
                        // Modificado por : Henry Morales - 19/06/2018
                        // Se modificó para tomar los pagos en diferentes formas de pago (DataTable dtpedidospag)

                        /*pag_metodo = item["pag_metodo"].ToString(),
                         * pag_nro_trans = item["pag_nro_trans"].ToString(),
                         * pag_fecha = Convert.ToDateTime(item["pag_fecha"]),
                         * pag_monto = Convert.ToDecimal(item["pag_monto"]),*/
                    }
                    into G
                        select new
                    {
                        pedido         = G.Key.ped_id,
                        tda_id         = G.Key.tda_id,
                        ped_ref        = G.Key.ped_ref,
                        ped_fecha      = G.Key.ped_fecha,
                        ped_ubigeo_ent = G.Key.ped_ubigeo_ent,
                        ped_dir_ent    = G.Key.ped_dir_ent,
                        ped_ref_ent    = G.Key.ped_ref_ent,
                        // Modificado por : Henry Morales - 21/05/2018
                        // Se agergaron los campos de nombre y telefono de referencia para la entrega
                        ped_nom_ent  = G.Key.ped_nom_ent,
                        ped_tel_ent  = G.Key.ped_tel_ent,
                        cli_telf_mov = G.Key.cli_telf_mov,
                        //det_peso=G.Key.det_peso,
                        ped_total_sigv = G.Key.ped_total_sigv,
                        ped_total_cigv = G.Key.ped_total_cigv,
                        ped_dcto_sigv  = G.Key.ped_dcto_sigv,
                        ped_dcto_cigv  = G.Key.ped_dcto_cigv,
                        cli_id         = G.Key.cli_id,
                        cli_nombres    = G.Key.cli_nombres,
                        cli_apellidos  = G.Key.cli_apellidos,
                        cli_email      = G.Key.cli_email,
                        cli_direc      = G.Key.cli_direc,
                        cli_telef      = G.Key.cli_telf,
                        cli_dni        = G.Key.cli_dni,
                        cli_ubigeo     = G.Key.cli_ubigeo,
                        ped_ship_sigv  = G.Key.ped_ship_sigv,
                        name_courier   = G.Key.name_courier,
                        // Modificado por : Henry Morales - 19/06/2018
                        // Se modificó para tomar los pagos en diferentes formas de pago (DataTable dtpedidospag)

                        /*pag_metodo = G.Key.pag_metodo,
                         * pag_nro_trans = G.Key.pag_nro_trans,
                         * pag_fecha = G.Key.pag_fecha,
                         * pag_monto = G.Key.pag_monto*/
                    };


                    /*recorremos los pedidos para agregar al pedido*/
                    foreach (var key in grupo_pedido)
                    {
                        /*verifica si pedido existe*/
                        Boolean _existe = update_psth.Existe_Pedido_Prestashop(key.pedido.ToString());
                        if (_existe)
                        {
                            /*Si ya existe pedido y no ha facturado*/
                        }
                        else
                        {
                            /*capturamos el detalle */
                            var ped_det = from item in dtpedidos.AsEnumerable()
                                          where item.Field <string>("ped_id") == Convert.ToString(key.pedido)
                                          //&& item.Field<string>("det_artic_ref").Length == 11
                                          select new
                            {
                                det_artic_ref  = item["det_artic_ref"].ToString(),
                                det_desc_artic = Convert.ToString(item["det_desc_artic"]),
                                det_cant       = Convert.ToInt32(item["det_cant"]),
                                det_prec_sigv  = Convert.ToDecimal(item["det_prec_sigv"]),              // SQL : Liq_Det_Precio
                                det_peso       = Convert.ToDecimal(item["det_peso"]),
                                //det_prec_cigv = Convert.ToDecimal(item["det_prec_cigv"]),
                                det_dcto_sigv = Convert.ToDecimal(item["det_dcto_sigv"]),               // SQL : Liq_Det_comision
                            };
                            /*Recorremos el detalle*/
                            List <Order_Dtl> items_det = new List <Order_Dtl>();


                            Decimal _tot_peso = 0;
                            foreach (var key_det in ped_det)
                            {
                                Order_Dtl dtl            = new Order_Dtl();
                                string    articulo_talla = key_det.det_artic_ref.ToString().Trim().Replace("-", "");
                                string    articulo       = articulo_talla.Substring(0, 7);
                                string    talla          = articulo_talla.Substring(7, articulo_talla.Length - 7);

                                dtl._code = articulo;
                                dtl._size = talla;

                                dtl._qty            = Convert.ToInt32(key_det.det_cant);
                                dtl._priceigv       = key_det.det_prec_sigv;
                                dtl._price          = Convert.ToDecimal(Math.Round(Convert.ToDouble(key_det.det_prec_sigv), 2, MidpointRounding.AwayFromZero));
                                dtl._commissionPctg = 0;
                                dtl._commissionigv  = 0;
                                dtl._det_dcto_sigv  = Math.Round(key_det.det_dcto_sigv, 2, MidpointRounding.AwayFromZero);
                                dtl._commission     = Convert.ToDecimal(Math.Round(Convert.ToDouble((dtl._det_dcto_sigv * dtl._qty)), 2, MidpointRounding.AwayFromZero));
                                dtl._ofe_porc       = 0;
                                dtl._dsctoVale      = 0;
                                dtl._ofe_id         = 0;
                                dtl._art_des        = key_det.det_desc_artic;
                                dtl._art_peso       = key_det.det_peso;
                                _tot_peso          += key_det.det_peso * key_det.det_cant;
                                items_det.Add(dtl);
                            }

                            #region <AJUSTE DESCUENTO>
                            Decimal ajuste_subtotal = key.ped_total_sigv;
                            var     subtot          = items_det.Sum(a => (a._price * a._qty) - a._commission);

                            subtot += key.ped_ship_sigv;

                            Decimal saldo = ajuste_subtotal - subtot;

                            if (saldo != 0)
                            {
                                if (items_det[0]._commission != 0)
                                {
                                    items_det[0]._commission = items_det[0]._commission - saldo;
                                }
                                else
                                {
                                    Int32 item_ult = items_det.Count() - 1;
                                    items_det[item_ult]._price = items_det[item_ult]._price + saldo;
                                }

                                // ¨****** Verificar
                                // Cambiar si el Saldo es diferente de 0,sumarlo al Pet_Det_Precio (dtl._price)
                            }

                            #endregion

                            /*si esta lleno el list entonces agregamos el pedido en este ,metodo*/
                            if (items_det.Count > 0)
                            {
                                /*datos del cliente*/
                                Cliente cl = new Cliente();
                                cl.cli_nombres   = key.cli_nombres;
                                cl.cli_apellidos = key.cli_apellidos;
                                cl.cli_email     = key.cli_email;
                                cl.cli_ubigeo    = key.cli_ubigeo;
                                cl.cli_direc     = key.cli_direc;
                                cl.cli_telf      = key.cli_telef;
                                cl.cli_telf_mov  = key.cli_telf_mov;
                                cl.cli_dni       = key.cli_dni;
                                /*********************/
                                /*metodo de pago*/
                                Pagos pg = new Pagos();
                                // Modificado por : Henry Morales - 19/06/2018
                                // Se modificó para tomar los pagos en diferentes formas de pago (DataTable dtpedidospag)

                                /*pg.pag_metodo = key.pag_metodo;
                                 * pg.pag_nro_trans = key.pag_nro_trans;
                                 * pg.pag_fecha = key.pag_fecha;
                                 * pg.pag_monto = key.pag_monto;*/
                                DataTable pago_ped = new DataTable();
                                pago_ped = dtpedidospag.Clone();
                                pago_ped.Clear();

                                foreach (DataRow row in dtpedidospag.Rows)
                                {
                                    if (row["ped_id"].ToString() == key.pedido.ToString())
                                    {
                                        pago_ped.ImportRow(row);
                                    }
                                }
                                /**/

                                decimal igv_monto = key.ped_dcto_cigv - key.ped_dcto_sigv;
                                //string[] pedido_update=

                                // Modificado por : Henry Morales - 19/06/2018
                                // Se agergo la tabla dtpedidospag, para enviar la información de diferentes formas de pago
                                // Modificado por : Henry Morales - 21/05/2018
                                // Se agergaron los campos de nombre y telefono de referencia para la entrega ( key.ped_nom_ent ; key.ped_tel_ent)
                                string[] result = update_psth.Update_Pedido_Prestashop(1 /*Ent_Global._bas_id_codigo*/, key.tda_id, 9219, "", 0, 0, "", "", items_det, 0, 1, "", "", 0, 0, "", "", 0, null,
                                                                                       false, 0, null, key.pedido, key.ped_ref, key.ped_ship_sigv, cl, pg, key.ped_fecha, key.ped_total_cigv, key.ped_ubigeo_ent,
                                                                                       key.ped_dir_ent, key.ped_ref_ent, key.ped_nom_ent, key.ped_tel_ent, _tot_peso, pago_ped, key.name_courier);
                                if (result[0].ToString() == "-1")
                                {
                                    _error += result[1].ToString();
                                }
                                else
                                {
                                    // Se agrego para que procese luego de lectura de PS
                                    // Guia de Remisión
                                    Int32  _valida_guia;
                                    string cod_liq = result[0].ToString();
                                    Dat_ConfigGuia.insertar_guia("0", 9, cod_liq, out _valida_guia, key.tda_id);

                                    // Genera paquete
                                    //decimal _paq_id;
                                    //_paq_id = Dat_Venta.insertar_leer_paquete(cod_liq);

                                    // Generación de Facturación
                                    string _error_venta     = "";
                                    string grabar_numerodoc = Dat_Venta.insertar_venta(cod_liq, ref _error_venta);
                                    if (grabar_numerodoc != "-1")
                                    {
                                        //aca generamos el codigo hash
                                        string _codigo_hash = "";
                                        string _error2      = "";
                                        string _url_pdf     = "";

                                        //Facturacion_Electronica.ejecutar_factura_electronica(grabar_numerodoc.Substring(0, 1), grabar_numerodoc, ref _codigo_hash, ref _error2, ref _url_pdf);

                                        ////Facturacion_Electronica.ejecutar_factura_electronica_ws(grabar_numerodoc.Substring(0, 1), grabar_numerodoc, ref _codigo_hash, ref _error,ref _url_pdf);

                                        //if (_codigo_hash.Length == 0 || _codigo_hash == null)
                                        //{
                                        //    Facturacion_Electronica.ejecutar_factura_electronica(grabar_numerodoc.Substring(0, 1), grabar_numerodoc, ref _codigo_hash, ref _error2, ref _url_pdf);
                                        //}
                                        //if (_codigo_hash.Length == 0 || _codigo_hash == null)
                                        //{
                                        //    _error = "ERROR HASH:";
                                        //}

                                        //if (_error.Length > 0)
                                        //{
                                        //    log.WriteLine(_error+ " " + _error2 + " En Documento: "+ grabar_numerodoc);
                                        //    /*Error*/
                                        //}
                                        //Dat_Venta.insertar_codigo_hash(grabar_numerodoc, _codigo_hash, "V", _url_pdf);
                                        UpdaEstado updateestado = new UpdaEstado();

                                        string[] valida = updateestado.ActualizaEstadoPS(key.ped_ref, 33);
                                        if (key.name_courier.Contains("iend"))
                                        {
                                            string[] valida2 = updateestado.ActualizaEstadoPS(key.ped_ref, 3);
                                        }
                                    }
                                }
                            }
Beispiel #3
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;
            }
        }