Estados de cuenta,cargar cxc, tipos de almacen en rep almacen

This commit is contained in:
2019-12-16 18:46:43 -07:00
parent 22eec057ae
commit cc96c073ce
4 changed files with 120 additions and 93 deletions

View File

@@ -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}.<br />
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}.<br />
<br />
Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.<br />
<br />
@@ -596,12 +614,17 @@ Public Class TareasProgramadas : Implements IHttpHandler
<br />
<b>ESTE CORREO SE GENERO EN FORMA AUTOMATICA.</b>", 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