152 lines
7.5 KiB
Plaintext
152 lines
7.5 KiB
Plaintext
<%@ WebHandler Language="C#" Class="Tareas72" %>
|
|
|
|
using System;
|
|
using System.Web;
|
|
using System.Data;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using Extensiones;
|
|
using System.IO;
|
|
using Microsoft.Reporting.WebForms;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using System.Threading.Tasks;
|
|
using System.Text;
|
|
public class Tareas72 : IHttpHandler
|
|
{
|
|
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
context.Response.ContentType = "text/plain";
|
|
context.Response.Write("Hello World");
|
|
|
|
bool retorno = false;
|
|
string Metodo = context.Request["Metodo"] == null ? "" : context.Request["Metodo"];
|
|
switch (Metodo)
|
|
{
|
|
case "ActualizarProcesoPaqueterias":
|
|
retorno = ActualizarProcesoPaqueterias();
|
|
break;
|
|
}
|
|
|
|
context.Response.Write(retorno);
|
|
context.Response.End();
|
|
}
|
|
|
|
private bool ActualizarProcesoPaqueterias()
|
|
{
|
|
bool retorno = true;
|
|
ClsGenerales ObjGenerales = new ClsGenerales();
|
|
ClsClientes ObjClientes = new ClsClientes();
|
|
ClsVentas ObjVentas = new ClsVentas();
|
|
ClsVtaVendedores ObjVendedores = new ClsVtaVendedores();
|
|
ClsSisMail Correo = new ClsSisMail();
|
|
|
|
ClsSisEmpresas ObjEmpresa = new ClsSisEmpresas();
|
|
Empresa Empresa = new Empresa();
|
|
if (ObjEmpresa.GetEmpresas(72, "-1", "-1", "-1", "-1"))
|
|
{
|
|
Empresa = ObjEmpresa.Empresa;
|
|
}
|
|
try
|
|
{
|
|
if (ObjGenerales.GetPaqueteriasGuias(-1, -1, 7, 1, -1, 72, "-1", "01/01/1990", "01/01/2100"))
|
|
{
|
|
DataRowCollection GuiasPendientes = ObjGenerales.DtResultados.Rows;
|
|
foreach (DataRow Guia in GuiasPendientes)
|
|
{
|
|
int CvePaqueteriaGuia = Guia["CvePaqueteriaGuia"].ToString().ToEntero();
|
|
string GuiaConsultar = Guia["Guia"].ToString();
|
|
|
|
//CONSULTAMOS CADA GUIA EN LA SIGUIENTE API
|
|
string uriConsultaGuia = string.Format("https://cc.paquetexpress.com.mx/ptxws/rest/api/v2/guia/historico/ultimoevento/{0}/@1@2@3@4@5", GuiaConsultar);
|
|
HttpClient Client = new HttpClient();
|
|
HttpResponseMessage ResponseMessage = Client.GetAsync(uriConsultaGuia).Result;
|
|
string JsonString = ResponseMessage.Content.ReadAsStringAsync().Result;
|
|
string JsonStringFormat = JsonString.Replace("Resultado(", "{\"Resultado\":").Replace(")", "}");
|
|
DataSet dataSet = JsonConvert.DeserializeObject<DataSet>(JsonStringFormat);
|
|
DataTable dataTable = dataSet.Tables["Resultado"];
|
|
string eventoId = dataTable.Rows[0]["eventoId"].ToString();
|
|
if (eventoId == "Hdc" | eventoId == "HDC")
|
|
{
|
|
int EstatusEntregado = 3;
|
|
|
|
//MANDAMOS A ACTUALIZAR CON ESTATUS DE ENTREGADO
|
|
if (ObjGenerales.UpdatePaqueteriasGuias(CvePaqueteriaGuia, -1, -1, -1, EstatusEntregado, "-1", "", "", -1, -1, "-1", "-1", ""))
|
|
{
|
|
#region 'DESCARGAR IMAGEN'
|
|
string rastreo = Guia["Rastreo"].ToString();
|
|
string uriConsultaFirma = string.Format("https://cc.paquetexpress.com.mx/ptxws/rest/api/v1/entrega/firma/{0}/@1@2@3@4@5", rastreo);
|
|
|
|
HttpClient ClientFirma = new HttpClient();
|
|
HttpResponseMessage ResponseMessageFirma = ClientFirma.GetAsync(uriConsultaFirma).Result;
|
|
string JsonStringFirma = ResponseMessageFirma.Content.ReadAsStringAsync().Result;
|
|
string JsonStringFormatFirma = JsonStringFirma.Replace("callback(", "{\"callback\":").Replace(")", "}");
|
|
DataSet dataSetFirma = JsonConvert.DeserializeObject<DataSet>(JsonStringFormatFirma);
|
|
DataTable dataTableFirma = dataSetFirma.Tables["callback"];
|
|
|
|
string ImagenBase64 = dataTableFirma.Rows[0]["imagen"].ToString();
|
|
byte[] ImagenByteArray = Convert.FromBase64String(ImagenBase64);
|
|
string rutaDestino = ModExtensiones.DirectorioEmpresas + "72\\" + "Documentos\\Guias\\" + CvePaqueteriaGuia + ".jpg";
|
|
File.WriteAllBytes(rutaDestino,ImagenByteArray);
|
|
#endregion
|
|
|
|
#region 'MANDAR CORREOS'
|
|
int CveCliente = Guia["CveCliente"].ToString().ToEntero();
|
|
int CveVenta = Guia["CveAgrupador"].ToString().ToEntero();
|
|
StringBuilder correos = new StringBuilder("");
|
|
|
|
if (ObjClientes.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1))
|
|
{
|
|
if (ObjClientes.DtResultados.Rows.Count > 0)
|
|
{
|
|
DataRow DatosCliente = ObjClientes.DtResultados.Rows[0];
|
|
if (DatosCliente["CorreoEntregaCompras"].ToString().Length > 0) correos.Append(string.Format("{0};", DatosCliente["CorreoEntregaCompras"].ToString()));
|
|
if (DatosCliente["CorreoEntregaAlmacen"].ToString().Length > 0) correos.Append(string.Format("{0};", DatosCliente["CorreoEntregaAlmacen"].ToString()));
|
|
}
|
|
}
|
|
|
|
if (ObjVentas.GetVenta(CveVenta, 72))
|
|
{
|
|
if (ObjVentas.DtResultados.Rows.Count > 0)
|
|
{
|
|
int CveVendedor = ObjVentas.DtResultados.Rows[0]["CveVendedor"].ToEntero();
|
|
if (ObjVendedores.GetVendedores(72))
|
|
{
|
|
DataRow DatosVendedor = ObjVendedores.DtResultados.FiltroPrimero(string.Format("CveVendedor = {0}", CveVendedor));
|
|
if (DatosVendedor["Correo"].ToString().Length > 0) correos.Append(string.Format("{0};", DatosVendedor["Correo"].ToString()));
|
|
if (DatosVendedor["CorreoAdicionalNotificaciones"].ToString().Length > 0) correos.Append(string.Format("{0};", DatosVendedor["CorreoAdicionalNotificaciones"].ToString()));
|
|
}
|
|
}
|
|
}
|
|
string CorreosString = correos.ToString();
|
|
if (CorreosString.Length > 0)
|
|
{
|
|
Correo.SendMail(Empresa, correos.ToString(), "Actualización de paqueterias entregadas", "");
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
ModExtensiones.GuardaLogAD(string.Format("{3} CveEmpresa={0} cveTareaProgramada={1} CveTareaProgramadaHistorial={2}", 72, "", "", e.Message), "Tareas Programadas");
|
|
retorno = false;
|
|
}
|
|
|
|
ObjGenerales.Dispose();
|
|
ObjClientes.Dispose();
|
|
ObjVentas.Dispose();
|
|
ObjVendedores.Dispose();
|
|
ObjEmpresa.Dispose();
|
|
return retorno;
|
|
}
|
|
|
|
public bool IsReusable
|
|
{
|
|
get { return false; }
|
|
}
|
|
|
|
} |