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 Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.ContentType = "text/plain" context.Response.ContentType = "text/plain"
currentcontext = context currentcontext = context
'timbrarNominab()
Dim retorno As String = "no se encontro la variable" Dim retorno As String = "no se encontro la variable"
Try Try
Dim metodo As String = ""
If context.Request("var") IsNot Nothing Then If context.Request("var") IsNot Nothing Then
URLParametros = Parametros(context.Request("var")) URLParametros = Parametros(context.Request("var"))
End If 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
Dim metodo As String = URLParametros("metodo") 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 Select Case metodo
Case "TimbrarNomina" Case "TimbrarNomina"
retorno = "Error Timbrado Nomina" retorno = "Error Timbrado Nomina"
retorno = timbrarNomina() retorno = timbrarNomina()
retorno = "" retorno = ""
context.Response.Write(retorno)
Case "EstadosCuenta" Case "EstadosCuenta"
IniciaEnvioEstadoDeCuenta(context, 1, "-1", "-1") 'CargaEstadosCuenta(context, 119, 227736)
CargaEstadosCuenta(context, -1, -1)
End Select End Select
Catch ex As Exception Catch ex As Exception
ex.GuardaLog(ex.ToString()) ex.GuardaLog(ex.ToString())
context.Response.Write(retorno)
End Try End Try
context.Response.Write(retorno)
End Sub 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" #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 DtEmpresas As DataTable = Nothing
Using ObjEmpresas As New ClsSisEmpresas()
Dim ObjEmpresas As New ClsSisEmpresas() If ObjEmpresas.GetEmpresas(pCveEmpresa, "-1", "-1", "-1", "-1") Then
If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then DtEmpresas = ObjEmpresas.DtResultados.FiltraParametros("", "", {"CveEmpresa"})
DtEmpresas = ObjEmpresas.DtResultados.FiltraParametros("", "", {"CveEmpresa"}) End If
End If End Using
ObjEmpresas.Dispose()
If DtEmpresas IsNot Nothing Then If DtEmpresas IsNot Nothing Then
For Each Row As DataRow In DtEmpresas.Rows 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 Next
End If End If
context.Response.Write(Retorno.ToString())
End Sub 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 Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario
Dim UsuarioActual As Usuario = Nothing Dim UsuarioActual As Usuario = Nothing
@@ -310,8 +302,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
End If End If
ObjUsuarios.Dispose() ObjUsuarios.Dispose()
Return UsuarioActual Return UsuarioActual
End Function End Function
Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
Dim ObjEmpresa As New ClsSisEmpresas() Dim ObjEmpresa As New ClsSisEmpresas()
@@ -332,43 +323,54 @@ Public Class TareasProgramadas : Implements IHttpHandler
End Sub End Sub
Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, FechaI As DateTime, FechaF As DateTime) As JObject Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, Optional pCveCliente As Integer = -1) As JObject
Dim Facturas As New JArray() Dim ClientesSinEnviar As New JArray()
Dim DebeTimbrar As Boolean = True
Dim Json As New JObject( Dim Json As New JObject(
New JProperty("Empresa", UsuarioActual.Empresa.Empresa), New JProperty("Empresa", UsuarioActual.Empresa.Empresa),
New JProperty("Usuario", UsuarioActual.Usuario), New JProperty("Usuario", UsuarioActual.Usuario),
New JProperty("FechaI", FechaI.ToString("dd/MM/yyy HH:mm:ss")), New JProperty("Fecha", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))
New JProperty("FechaF", FechaF.ToString("dd/MM/yyy HH:mm:ss"))
) )
Dim DTClientes As DataTable = Nothing Dim DTClientes As DataTable = Nothing
Dim ObjCliente As New ClsClientes Using ObjCliente As New ClsClientes
If ObjCliente.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, TipoCliente:=-1) Then 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 If ObjCliente.DtResultados.Rows.Count > 0 Then
DTClientes = ObjCliente.DtResultados.Copy() DTClientes = ObjCliente.DtResultados.Copy()
End If End If
End If End If
ObjCliente.Dispose() End Using
If DTClientes IsNot Nothing Then If DTClientes IsNot Nothing Then
For Each RowCliente As DataRow In DTClientes.Rows For Each RowCliente As DataRow In DTClientes.Rows
Dim CveCliente As Integer = RowCliente("CveCliente").ToString().ToEntero() 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) 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 Next
DTClientes.Dispose() DTClientes.Dispose()
End If End If
Json.Add(New JProperty("Facturas", Facturas)) Json.Add(New JProperty("ClientesSinEnviar", ClientesSinEnviar))
Return Json Return Json
End Function 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 ArchivoPDF As Byte() = Nothing
Dim Formato As String = "PDF" Dim Formato As String = "PDF"
@@ -389,22 +391,34 @@ Public Class TareasProgramadas : Implements IHttpHandler
Dim ContaIng As Integer = 0 Dim ContaIng As Integer = 0
Dim ContaAnt As Integer = 0 Dim ContaAnt As Integer = 0
Dim FechaCorte As Date = ("9999/01/01").ToDate 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 FechaVencimientoI As String = "-1"
Dim FechaVencimientoF As String = "-1" Dim FechaVencimientoF As String = "-1"
Dim dtt As DataTable = Nothing Dim FI As String = "-1"
Dim FF As String = "-1"
Dim ObjMovtos As New ClsMovimientos() Dim dtt As DataTable = Nothing
If ObjMovtos.GetCxCClienteDetalle(Cliente.CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, CveClienteSucursal:=-1) Then
DtCxCFact = ObjMovtos.DtResultados.FiltraParametros("", "TipoDocto").Copy Try
'cargo los anticipos NC Using ObjMovtos As New ClsMovimientos()
DtCxCFact.Columns.Add("SaldoAnticipo", GetType(Decimal)) If ObjMovtos.GetCxCClienteDetalle(Cliente.CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, CveClienteSucursal:=-1) Then
If ObjMovtos.GetAnticiposNCIxCCliente(Cliente.CveCliente, -1, -1) Then DtCxCFact = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act'", "TipoDocto")
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) )") 'cargo los anticipos NC
End If DtCxCFact.Columns.Add("SaldoAnticipo", GetType(Decimal))
End If If ObjMovtos.GetAnticiposNCIxCCliente(Cliente.CveCliente, -1, -1) Then
ObjMovtos.Dispose() 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 Try
If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then
@@ -421,6 +435,9 @@ Public Class TareasProgramadas : Implements IHttpHandler
drr("CveMoneda") = drt("CveMoneda") drr("CveMoneda") = drt("CveMoneda")
DtCxCFact.Rows.Add(drr) DtCxCFact.Rows.Add(drr)
Next Next
Else
Retorno = False
Return Retorno
End If End If
If DtCxCFact IsNot Nothing Then If DtCxCFact IsNot Nothing Then
@@ -495,7 +512,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
Dim dr As DataRow = DtCxCFact2.Rows(0) Dim dr As DataRow = DtCxCFact2.Rows(0)
Dim lista = New List(Of CrystalParametro) Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) 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("NombreCliente", Cliente.Nombre))
lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI))) lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI)))
lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF))) lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF)))
@@ -524,11 +541,10 @@ Public Class TareasProgramadas : Implements IHttpHandler
End If End If
Try Try
Dim File As Byte()
If Archivo.Exists Then 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 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 End If
Catch ex As Exception Catch ex As Exception
@@ -537,7 +553,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
Else Else
Dim lista = New List(Of CrystalParametro) Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) 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("NombreCliente", Cliente.Nombre))
lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI))) lista.Add(New CrystalParametro("FechaInicio", If(FI = "-1", "-", FI)))
lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF))) lista.Add(New CrystalParametro("FechaFin", If(FF = "-1", DateTime.Now.ToShortDateString, FF)))
@@ -580,14 +596,16 @@ Public Class TareasProgramadas : Implements IHttpHandler
Else Else
ArchivoPDF = 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 End If
End If End If
Catch ex As Exception Catch ex As Exception
OnError("Ocurrió un error al generar el pdf", ex)
ArchivoPDF = Nothing ArchivoPDF = Nothing
End Try End Try
Try If ArchivoPDF IsNot Nothing Then
Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente se correo se anexa su estado actual de cartera en {1}.<br /> 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 /> <br />
Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.<br /> Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.<br />
<br /> <br />
@@ -596,12 +614,17 @@ Public Class TareasProgramadas : Implements IHttpHandler
<br /> <br />
<b>ESTE CORREO SE GENERO EN FORMA AUTOMATICA.</b>", Cliente.NombreComercial, UsuarioActual.Empresa.Empresa) <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) Retorno = MandaCorreo(ArchivoPDF, Correo, $"Estado Actual de Cartera {UsuarioActual.Empresa.Empresa}", Cuerpo)
Catch ex As Exception Catch ex As Exception
Alert("Ocurrió un error al enviar el correo", TipoMensaje.MsgAdvertencia) Retorno = False
End Try 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 Return Bytes
End Function 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) Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para)
'a.GuardaLog() 'a.GuardaLog()
@@ -667,9 +690,8 @@ Public Class TareasProgramadas : Implements IHttpHandler
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = File, .NombreArchivo = "EstadoDeCuenta.pdf"})
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail) Return Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail)
End Function
End Sub
#End Region #End Region
End Class End Class

View File

@@ -40,7 +40,7 @@ Partial Class Inventarios_RepAlmacen
DdlTipoAlmacen.DataBind() DdlTipoAlmacen.DataBind()
DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) 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.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))

View File

@@ -3902,7 +3902,7 @@ Partial Class Clientes
End If End If
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 /> Dim Cuerpo As String = String.Format("Estimado cliente {0}, al presente del correo se anexa su estado actual de cartera en {1}.<br />
<br /> <br />
Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.<br /> Quedamos a sus ordenes para cualquier duda o aclaración con su agente de Ventas.<br />
<br /> <br />

View File

@@ -5331,6 +5331,11 @@ Partial Class Ventas
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString) DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString)
End If 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() UPPVentas.Update()
UpEstatus.Update() UpEstatus.Update()
UPCondicionesPago.Update() UPCondicionesPago.Update()