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()