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); } } } }
//-----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; } }