diff --git a/Ashx/TareasProgramadas.ashx b/Ashx/TareasProgramadas.ashx index b03186634..76932ef83 100644 --- a/Ashx/TareasProgramadas.ashx +++ b/Ashx/TareasProgramadas.ashx @@ -17,26 +17,38 @@ Public Class TareasProgramadas : Implements IHttpHandler Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest context.Response.ContentType = "text/plain" currentcontext = context - 'timbrarNominab() Dim retorno As String = "no se encontro la variable" Try + Dim metodo As String = "" If context.Request("var") IsNot Nothing Then URLParametros = Parametros(context.Request("var")) - End If - - Dim metodo As String = URLParametros("metodo") + metodo = URLParametros("metodo") + ElseIf context.Request.Headers("Content-Type") IsNot Nothing AndAlso context.Request.Headers("Content-Type").Contains("json") AndAlso context.Request.InputStream IsNot Nothing Then + context.Response.ContentType = "application/json" + Using reader As New StreamReader(context.Request.InputStream) + Dim json = reader.ReadToEnd() + Dim JsonRequest As JObject = JObject.Parse(json) + If JsonRequest IsNot Nothing Then + metodo = JsonRequest("Metodo").ToString + End If + End Using + End If + Select Case metodo Case "TimbrarNomina" retorno = "Error Timbrado Nomina" retorno = timbrarNomina() retorno = "" + context.Response.Write(retorno) Case "EstadosCuenta" - IniciaEnvioEstadoDeCuenta(context, 1, "-1", "-1") + 'CargaEstadosCuenta(context, 119, 227736) + CargaEstadosCuenta(context, -1, -1) End Select Catch ex As Exception - ex.GuardaLog(ex.ToString()) + ex.GuardaLog(ex.ToString()) + context.Response.Write(retorno) End Try - context.Response.Write(retorno) + End Sub @@ -254,47 +266,27 @@ Public Class TareasProgramadas : Implements IHttpHandler #Region "E S T A D O S D E C U E N T A" - Private Sub CargaEstadosCuenta(ByVal context As HttpContext) + Private Sub CargaEstadosCuenta(ByVal context As HttpContext, pCveEmpresa As Integer, pCveCliente As Integer) + Dim Retorno As New JArray() Dim DtEmpresas As DataTable = Nothing - - Dim ObjEmpresas As New ClsSisEmpresas() - If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then - DtEmpresas = ObjEmpresas.DtResultados.FiltraParametros("", "", {"CveEmpresa"}) - End If - ObjEmpresas.Dispose() + Using ObjEmpresas As New ClsSisEmpresas() + If ObjEmpresas.GetEmpresas(pCveEmpresa, "-1", "-1", "-1", "-1") Then + DtEmpresas = ObjEmpresas.DtResultados.FiltraParametros("", "", {"CveEmpresa"}) + End If + End Using If DtEmpresas IsNot Nothing Then For Each Row As DataRow In DtEmpresas.Rows - IniciaEnvioEstadoDeCuenta(context, Row("CveEmpresa").ToString().ToEntero(), "-1", "-1") + Dim Usuario = ValidaUsuarioSistema(Row("CveEmpresa").ToString().ToEntero()) + Dim obj = EjecutarEnvioEstadoCuenta(Usuario, pCveCliente:=pCveCliente) + + Retorno.Add(obj) Next End If + + context.Response.Write(Retorno.ToString()) End Sub - Private Sub IniciaEnvioEstadoDeCuenta(ByVal context As HttpContext, CveEmpresa As Integer, pFechaI As String, pFechaF As String) - Dim JsonRetorno As New JObject() - If CveEmpresa > 0 Then - Dim Usuario = ValidaUsuarioSistema(CveEmpresa) - Dim FechaI, FechaF As DateTime - - If pFechaI <> "-1" AndAlso pFechaF <> "-1" Then - Dim FechaReferencia = DateTime.Now - - Dim DiaAnterior = FechaReferencia.AddDays(-1) - Dim DiaAnteriorSemanaPasada = DiaAnterior.AddDays(-7) - - FechaI = New DateTime(DiaAnteriorSemanaPasada.Year, DiaAnteriorSemanaPasada.Month, DiaAnteriorSemanaPasada.Day, 0, 0, 0) - FechaF = New DateTime(DiaAnterior.Year, DiaAnterior.Month, DiaAnterior.Day, 23, 59, 59) - - JsonRetorno = EjecutarEnvioEstadoCuenta(Usuario, FechaI, FechaF) - Else - FechaI = pFechaI.ToDateTime() - FechaF = pFechaF.ToDateTime() - - JsonRetorno = EjecutarEnvioEstadoCuenta(Usuario, FechaI, FechaF) - End If - - End If - End Sub Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing @@ -310,8 +302,7 @@ Public Class TareasProgramadas : Implements IHttpHandler End If ObjUsuarios.Dispose() Return UsuarioActual - End Function - + End Function Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) Dim ObjEmpresa As New ClsSisEmpresas() @@ -332,43 +323,54 @@ Public Class TareasProgramadas : Implements IHttpHandler End Sub - Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, FechaI As DateTime, FechaF As DateTime) As JObject - Dim Facturas As New JArray() - Dim DebeTimbrar As Boolean = True + Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, Optional pCveCliente As Integer = -1) As JObject + Dim ClientesSinEnviar As New JArray() Dim Json As New JObject( New JProperty("Empresa", UsuarioActual.Empresa.Empresa), New JProperty("Usuario", UsuarioActual.Usuario), - New JProperty("FechaI", FechaI.ToString("dd/MM/yyy HH:mm:ss")), - New JProperty("FechaF", FechaF.ToString("dd/MM/yyy HH:mm:ss")) + New JProperty("Fecha", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss")) ) - Dim DTClientes As DataTable = Nothing - - Dim ObjCliente As New ClsClientes - If ObjCliente.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, TipoCliente:=-1) Then - If ObjCliente.DtResultados.Rows.Count > 0 Then - DTClientes = ObjCliente.DtResultados.Copy() - End If - End If - ObjCliente.Dispose() + Dim DTClientes As DataTable = Nothing + + Using ObjCliente As New ClsClientes + If ObjCliente.GetClientes(pCveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, TipoCliente:=-1, Estatus:=1) Then + If ObjCliente.DtResultados.Rows.Count > 0 Then + DTClientes = ObjCliente.DtResultados.Copy() + End If + End If + End Using If DTClientes IsNot Nothing Then For Each RowCliente As DataRow In DTClientes.Rows Dim CveCliente As Integer = RowCliente("CveCliente").ToString().ToEntero() - Dim Correo As String = "jonathan.perez@adssistemas.mx" 'RowCliente("Correo").ToString() + Dim Correo As String = RowCliente("CobranzaCorreo").ToString() Dim Cliente As New Modelos.ClienteModel(CveCliente, UsuarioActual.CveEmpresa) - GenerarPDFCrystal(UsuarioActual, Correo, "-1", "-1", Cliente) + Dim Envio = EnviarEstadoCuenta(UsuarioActual, Correo, Cliente) + + If Envio Then + Using ObjBitacora As New ClsOIEventos + ObjBitacora.AddEventoBitacora("Se envió correo con el estado de cuenta del cliente", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCliente:=Cliente.CveCliente) + End Using + Else + ClientesSinEnviar.Add(New JObject( + New JProperty("CveCliente", Cliente.CveCliente), + New JProperty("Cliente", Cliente.Nombre) + )) + End If Next DTClientes.Dispose() End If - Json.Add(New JProperty("Facturas", Facturas)) + Json.Add(New JProperty("ClientesSinEnviar", ClientesSinEnviar)) Return Json End Function - Private Sub GenerarPDFCrystal(UsuarioActual As Usuario, Correo As String, FI As String, FF As String, Cliente As Modelos.ClienteModel) + Private Function EnviarEstadoCuenta(UsuarioActual As Usuario, Correo As String, Cliente As Modelos.ClienteModel) As Boolean + Dim Retorno As Boolean = True + Dim ArchivoPDF As Byte() = Nothing Dim Formato As String = "PDF" @@ -389,22 +391,34 @@ Public Class TareasProgramadas : Implements IHttpHandler Dim ContaIng As Integer = 0 Dim ContaAnt As Integer = 0 Dim FechaCorte As Date = ("9999/01/01").ToDate - Dim TipoDocto As String = "-1" - Dim TipoDocto2 As String = "-1" + + Dim TipoDocto2 As String = "'Ing','NC','Dev'" Dim FechaVencimientoI As String = "-1" Dim FechaVencimientoF As String = "-1" - Dim dtt As DataTable = Nothing - - Dim ObjMovtos As New ClsMovimientos() - If ObjMovtos.GetCxCClienteDetalle(Cliente.CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, CveClienteSucursal:=-1) Then - DtCxCFact = ObjMovtos.DtResultados.FiltraParametros("", "TipoDocto").Copy - 'cargo los anticipos NC - DtCxCFact.Columns.Add("SaldoAnticipo", GetType(Decimal)) - If ObjMovtos.GetAnticiposNCIxCCliente(Cliente.CveCliente, -1, -1) Then - dtt = ObjMovtos.DtResultados.FiltraParametros("SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) )") - End If - End If - ObjMovtos.Dispose() + Dim FI As String = "-1" + Dim FF As String = "-1" + Dim dtt As DataTable = Nothing + + Try + Using ObjMovtos As New ClsMovimientos() + If ObjMovtos.GetCxCClienteDetalle(Cliente.CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, CveClienteSucursal:=-1) Then + DtCxCFact = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "TipoDocto") + 'cargo los anticipos NC + DtCxCFact.Columns.Add("SaldoAnticipo", GetType(Decimal)) + If ObjMovtos.GetAnticiposNCIxCCliente(Cliente.CveCliente, -1, -1) Then + dtt = ObjMovtos.DtResultados.FiltraParametros("Saldo > 0 AND SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) )") + End If + End If + End Using + Catch ex As Exception + Retorno = False + dtt = Nothing + OnError("Ocurrió un erro al obtener el CxC", ex) + End Try + + If Not Retorno Then + Return Retorno + End If Try If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then @@ -421,6 +435,9 @@ Public Class TareasProgramadas : Implements IHttpHandler drr("CveMoneda") = drt("CveMoneda") DtCxCFact.Rows.Add(drr) Next + Else + Retorno = False + Return Retorno End If If DtCxCFact IsNot Nothing Then @@ -495,7 +512,7 @@ Public Class TareasProgramadas : Implements IHttpHandler Dim dr As DataRow = DtCxCFact2.Rows(0) Dim lista = New List(Of CrystalParametro) lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) - lista.Add(New CrystalParametro("TipoCuentas", "")) + lista.Add(New CrystalParametro("TipoCuentas", "Con Saldo")) lista.Add(New CrystalParametro("NombreCliente", Cliente.Nombre)) lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI))) lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF))) @@ -524,11 +541,10 @@ Public Class TareasProgramadas : Implements IHttpHandler End If Try - Dim File As Byte() If Archivo.Exists Then - File = ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) + ArchivoPDF = ImprimirPDFCrystal($"{UsuarioActual.Empresa.Ruta}Formatos/RepClientesCxC.rpt", DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) Else - File = ImprimirPDFCrystal(HttpContext.Current.Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) + ArchivoPDF = ImprimirPDFCrystal(HttpContext.Current.Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) End If Catch ex As Exception @@ -537,7 +553,7 @@ Public Class TareasProgramadas : Implements IHttpHandler Else Dim lista = New List(Of CrystalParametro) lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) - lista.Add(New CrystalParametro("TipoCuentas", "Todas")) + lista.Add(New CrystalParametro("TipoCuentas", "Con Saldo")) lista.Add(New CrystalParametro("NombreCliente", Cliente.Nombre)) lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI))) lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF))) @@ -580,14 +596,16 @@ Public Class TareasProgramadas : Implements IHttpHandler Else ArchivoPDF = ImprimirPDFCrystal(HttpContext.Current.Server.MapPath("~/Empresas/Grales/Formatos/RepClientesCxC.rpt"), DtCxCFact2.FiltraParametros("", "CveMoneda,Fecha"), lista, "Estado de cuenta", Formato) End If - End If + End If Catch ex As Exception + OnError("Ocurrió un error al generar el pdf", ex) ArchivoPDF = Nothing End Try - Try - Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente se correo se anexa su estado actual de cartera en {1}.
+ If ArchivoPDF IsNot Nothing Then + Try + Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente del correo se anexa su estado actual de cartera en {1}.

Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.

@@ -596,12 +614,17 @@ Public Class TareasProgramadas : Implements IHttpHandler
ESTE CORREO SE GENERO EN FORMA AUTOMATICA.", Cliente.NombreComercial, UsuarioActual.Empresa.Empresa) - MandaCorreo(ArchivoPDF, Correo, $"Estado Actual de Cartera {UsuarioActual.Empresa.Empresa}", Cuerpo) - Catch ex As Exception - Alert("Ocurrió un error al enviar el correo", TipoMensaje.MsgAdvertencia) - End Try + Retorno = MandaCorreo(ArchivoPDF, Correo, $"Estado Actual de Cartera {UsuarioActual.Empresa.Empresa}", Cuerpo) + Catch ex As Exception + Retorno = False + OnError("Ocurrió un error al enviar el correo", ex) + End Try + Else + Retorno = False + End If - End Sub + Return Retorno + End Function @@ -658,7 +681,7 @@ Public Class TareasProgramadas : Implements IHttpHandler Return Bytes End Function - Private Sub MandaCorreo(File As Byte(), Para As String, Asunto As String, Body As String) + Private Function MandaCorreo(File As Byte(), Para As String, Asunto As String, Body As String) As Boolean Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) 'a.GuardaLog() @@ -667,9 +690,8 @@ Public Class TareasProgramadas : Implements IHttpHandler Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"}) - Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) - - End Sub + Return Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) + End Function #End Region End Class \ No newline at end of file diff --git a/Inventarios/RepAlmacen.aspx.vb b/Inventarios/RepAlmacen.aspx.vb index ecb2ad585..0285cdfd0 100644 --- a/Inventarios/RepAlmacen.aspx.vb +++ b/Inventarios/RepAlmacen.aspx.vb @@ -40,7 +40,7 @@ Partial Class Inventarios_RepAlmacen DdlTipoAlmacen.DataBind() DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) - DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1) DdlAlmacen.DataBind() DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index ee2ac7def..af899849b 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -3902,7 +3902,7 @@ Partial Class Clientes End If Try - Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente se correo se anexa su estado actual de cartera en {1}.
+ Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente del correo se anexa su estado actual de cartera en {1}.

Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.

diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 38873105e..70c15930b 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5331,6 +5331,11 @@ Partial Class Ventas DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString) End If + 'SI LA VENTA YA ESTA REGISTRADA NO DEBE HABILITAR ACCIONES + If CveVenta <= 0 Then + LnkRemisiones.Visible = If(UsuarioActual.TienePermisoProceso(199), True, False) : LnkOCs.Visible = True : LnkCotizaciones.Visible = True : LnkPedido2SinFacturar.Visible = True : InicializaAplicarNCMasiva() + End If + UPPVentas.Update() UpEstatus.Update() UPCondicionesPago.Update()