STF. plantilla mail venta

This commit is contained in:
2025-03-21 18:06:47 -07:00
parent 2abcaa8b82
commit a103e16cab
2 changed files with 213 additions and 102 deletions

View File

@@ -11400,5 +11400,109 @@ Public Class ClsPaginas
End If End If
End Sub End Sub
Public Shared Function PlantillaMailVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario) As MCuerpoFacturaMail
Dim Retorno As New MCuerpoFacturaMail()
Try
Dim Asunto As String = String.Empty
Dim Cuerpo As String = String.Empty
Dim TipoComprobante As String = ""
Dim TipoDocto = ObjFactura.TipoDocto
If TipoDocto = "Ing" Then TipoComprobante = "Factura"
If TipoDocto = "Egs" Then TipoComprobante = "Nota de Crédito"
If TipoDocto = "Dev" Then TipoComprobante = "Nota de Devolución"
If TipoDocto = "Rem" Then TipoComprobante = "Remisión"
If TipoDocto = "Cot" Then TipoComprobante = "Cotización"
If TipoDocto = "Ant" Then TipoComprobante = "Anticipo"
If TipoDocto = "Cot" Then
If UsuarioActual.Empresa.PlantillaMailVentaCotizacion.Trim.Length > 0 Then
Cuerpo = UsuarioActual.Empresa.PlantillaMailVentaCotizacion
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", ObjFactura.Cliente.NombreComercial)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""Fecha""}", ObjFactura.Fecha.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""Total""}", ObjFactura.Total.FormatoNumero(2))
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", ObjFactura.FechaVencimiento.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
Cuerpo = Cuerpo.Replace("{""Vigencia""}", ObjFactura.Vigencia.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""AtencionA""}", ObjFactura.AtencionA)
Cuerpo = Cuerpo.Replace("{""Sucursal""}", ObjFactura.SubProyecto.SubProyecto)
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", ObjFactura.DescripcionVenta)
End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion.Trim.Length > 0 Then
Asunto = UsuarioActual.Empresa.AsuntoPlantillaMailVentaCotizacion
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", ObjFactura.Cliente.NombreComercial)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""Fecha""}", ObjFactura.Fecha.ToString("dd/MM/yyyy"))
Asunto = Asunto.Replace("{""Total""}", ObjFactura.Total.FormatoNumero(2))
Asunto = Asunto.Replace("{""FechaVencimiento""}", ObjFactura.FechaVencimiento.ToString("dd/MM/yyyy"))
Asunto = Asunto.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
Asunto = Asunto.Replace("{""Vigencia""}", ObjFactura.Vigencia.ToString("dd/MM/yyyy"))
Asunto = Asunto.Replace("{""AtencionA""}", ObjFactura.AtencionA)
Asunto = Asunto.Replace("{""Sucursal""}", ObjFactura.SubProyecto.SubProyecto)
Asunto = Asunto.Replace("{""DescripcionVenta""}", ObjFactura.DescripcionVenta)
End If
Else
If UsuarioActual.Empresa.PlantillaMailVenta.Trim.Length > 0 Then
Cuerpo = UsuarioActual.Empresa.PlantillaMailVenta
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", ObjFactura.Cliente.NombreComercial)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""Fecha""}", ObjFactura.Fecha.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""Total""}", ObjFactura.Total.FormatoNumero(2))
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", ObjFactura.FechaVencimiento.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
Cuerpo = Cuerpo.Replace("{""AtencionA""}", ObjFactura.AtencionA)
Cuerpo = Cuerpo.Replace("{""Sucursal""}", ObjFactura.SubProyecto.SubProyecto)
Cuerpo = Cuerpo.Replace("{""DescripcionVenta""}", ObjFactura.DescripcionVenta)
End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVenta.Trim.Length > 0 Then
Asunto = UsuarioActual.Empresa.AsuntoPlantillaMailVenta
Asunto = Asunto.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Asunto = Asunto.Replace("{""NombreCliente""}", ObjFactura.Cliente.NombreComercial)
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""Fecha""}", ObjFactura.Fecha.ToString("dd/MM/yyyy"))
Asunto = Asunto.Replace("{""Total""}", ObjFactura.Total.FormatoNumero(2))
Asunto = Asunto.Replace("{""FechaVencimiento""}", ObjFactura.FechaVencimiento.ToString("dd/MM/yyyy"))
Asunto = Asunto.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
Asunto = Asunto.Replace("{""Vigencia""}", ObjFactura.Vigencia.ToString("dd/MM/yyyy"))
Asunto = Asunto.Replace("{""AtencionA""}", ObjFactura.AtencionA)
Asunto = Asunto.Replace("{""Sucursal""}", ObjFactura.SubProyecto.SubProyecto)
Asunto = Asunto.Replace("{""DescripcionVenta""}", ObjFactura.DescripcionVenta)
End If
End If
Dim DisplayName As String = ""
If UsuarioActual.CveEmpresa = 119 Then DisplayName = "Facturación Agroquímicos JAM"
Retorno.DisplayName = DisplayName
Retorno.Cuerpo = Cuerpo
Retorno.Asunto = Asunto
Catch ex As Exception
End Try
Return Retorno
End Function
Public Class MCuerpoFacturaMail
Public Sub New()
Asunto = ""
Cuerpo = ""
DisplayName = ""
Archivos = New List(Of ClsSisMail.ArchivoMail)
End Sub
Public Property Asunto As String
Public Property Cuerpo As String
Public Property DisplayName As String
Public Property Archivos As List(Of ClsSisMail.ArchivoMail)
End Class
End Class End Class

View File

@@ -36,7 +36,17 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
pFechaF = context.Request("FechaF") pFechaF = context.Request("FechaF")
End If End If
Retorno = IniciaFacturacionMasiva(CveEmpresaFacturar.ToString, pFechaI, pFechaF) Retorno = IniciaFacturacionMasiva(context, CveEmpresaFacturar.ToString, pFechaI, pFechaF)
End If
If Metodo = "EnviarMailDemo" Then
Dim pFechaI As String = ""
Dim pFechaF As String = ""
If context.Request("CveVenta") IsNot Nothing Then
Dim CveVenta = context.Request("CveVenta").ToString().ToEntero()
Retorno = EnviarMailDemo(context, CveEmpresaFacturar.ToString, CveVenta)
End If
End If End If
Catch ex As Exception Catch ex As Exception
@@ -52,7 +62,20 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
End Sub End Sub
Private Function IniciaFacturacionMasiva(pCveEmpresa As String, pFechaI As String, pFechaF As String) As Boolean Private Function EnviarMailDemo(ByVal context As HttpContext, pCveEmpresa As String, CveVenta As Integer) As Boolean
Dim Retorno As Boolean = True
Dim CveEmpresa As Integer = pCveEmpresa.ToEntero()
If CveEmpresa > 0 Then
GuardaLogFacturacion($"EnviarMail - CveE:{CveEmpresa}")
Dim Usuario = ValidaUsuarioSistema(CveEmpresa, context)
EnviarCorreo(CveVenta, Usuario)
End If
Return Retorno
End Function
Private Function IniciaFacturacionMasiva(ByVal context As HttpContext, pCveEmpresa As String, pFechaI As String, pFechaF As String) As Boolean
Dim Retorno As Boolean = True Dim Retorno As Boolean = True
Dim JsonRetorno As New JObject() Dim JsonRetorno As New JObject()
Dim CveEmpresa As Integer = pCveEmpresa.ToEntero() Dim CveEmpresa As Integer = pCveEmpresa.ToEntero()
@@ -60,9 +83,8 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
GuardaLogFacturacion("- Inicio de facturación ") GuardaLogFacturacion("- Inicio de facturación ")
If CveEmpresa > 0 Then If CveEmpresa > 0 Then
GuardaLogFacturacion($"1.10 - CveE:{CveEmpresa}") GuardaLogFacturacion($"1.10 - CveE:{CveEmpresa}")
Dim Usuario = ValidaUsuarioSistema(CveEmpresa) Dim Usuario = ValidaUsuarioSistema(CveEmpresa, context)
Dim FechaI, FechaF As DateTime Dim FechaI, FechaF As DateTime
'EnviarCorreoFactura(New Modelos.Factura(Usuario, 844966, 1, context.ModExtensiones.DirectorioBaseEmpresas), Usuario)
If String.IsNullOrEmpty(pFechaI) AndAlso String.IsNullOrEmpty(pFechaF) Then If String.IsNullOrEmpty(pFechaI) AndAlso String.IsNullOrEmpty(pFechaF) Then
GuardaLogFacturacion("1.200") GuardaLogFacturacion("1.200")
@@ -156,7 +178,7 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
If Resp.CveVenta > 0 AndAlso Not Resp.TieneError Then If Resp.CveVenta > 0 AndAlso Not Resp.TieneError Then
If Resp.SeTimbro OrElse Not Produccion Then If Resp.SeTimbro OrElse Not Produccion Then
EnviarCorreo(ObjFactura, UsuarioActual) EnviarCorreo(Resp.CveVenta, UsuarioActual)
End If End If
End If End If
@@ -223,7 +245,7 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
End Function End Function
#Region "V A L I D A - D A T O S" #Region "V A L I D A - D A T O S"
Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario Private Function ValidaUsuarioSistema(CveEmpresa As Integer, ByVal context As HttpContext) As Usuario
Dim UsuarioActual As Usuario = Nothing Dim UsuarioActual As Usuario = Nothing
Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa)
Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena)
@@ -232,8 +254,13 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString()
Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString()
UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa)
If UsuarioActual IsNot Nothing AndAlso context.Session("UsuarioSIG") Is Nothing Then
context.Session("UsuarioSIG") = UsuarioActual
End If
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)
@@ -758,8 +785,9 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
End Function End Function
#End Region #End Region
#Region "E N V I O - C O R R E O" #Region "E N V I O - C O R R E O"
Private Sub EnviarCorreo(Objfactura As Modelos.Factura, UsuarioActual As Usuario) Private Sub EnviarCorreo(CveVenta As Integer, UsuarioActual As Usuario)
Try Try
Dim ObjFactura As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, CargaDatosCliente:=True)
Dim Hilo As New System.Threading.Thread(Sub() EnviarCorreoFactura(Objfactura, UsuarioActual)) Dim Hilo As New System.Threading.Thread(Sub() EnviarCorreoFactura(Objfactura, UsuarioActual))
Hilo.Start() Hilo.Start()
Catch ex As Exception Catch ex As Exception
@@ -790,6 +818,7 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
End Function End Function
Private Sub EnviarCorreoFactura(ObjFactura As Modelos.Factura, UsuarioActual As Usuario) Private Sub EnviarCorreoFactura(ObjFactura As Modelos.Factura, UsuarioActual As Usuario)
If ObjFactura.CveVenta > 0 Then
Dim ObjMail As New ClsSisMail() Dim ObjMail As New ClsSisMail()
Dim ObjVentas As New ClsVentas Dim ObjVentas As New ClsVentas
Dim ObjCliente As New ClsClientes Dim ObjCliente As New ClsClientes
@@ -828,6 +857,8 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
End If End If
End If End If
'Mail = "japmx95@gmail.com"
Catch ex As Exception Catch ex As Exception
OnError("Ocurrió un error al obtener el correo", ex) OnError("Ocurrió un error al obtener el correo", ex)
Finally Finally
@@ -836,38 +867,13 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
If Not String.IsNullOrEmpty(Mail) Then If Not String.IsNullOrEmpty(Mail) Then
Try Try
Dim Asunto As String = String.Empty Dim ObjCuerpoMail = ClsPaginas.PlantillaMailVenta(ObjFactura, UsuarioActual)
Dim Cuerpo As String = String.Empty
Dim Asunto As String = ObjCuerpoMail.Asunto
Dim Cuerpo As String = ObjCuerpoMail.Cuerpo
Dim ResultadoMail As Integer = 0 Dim ResultadoMail As Integer = 0
Dim LSRutasMail = ObjCuerpoMail.Archivos
Dim TipoComprobante As String = ""
If ObjFactura.TipoDocto = "Ing" Then TipoComprobante = "Factura"
If ObjFactura.TipoDocto = "Egs" Then TipoComprobante = "Nota de Crédito"
If ObjFactura.TipoDocto = "Dev" Then TipoComprobante = "Nota de Devolución"
If ObjFactura.TipoDocto = "Rem" Then TipoComprobante = "Remisión"
If ObjFactura.TipoDocto = "Cot" Then TipoComprobante = "Cotización"
If ObjFactura.TipoDocto = "Ant" Then TipoComprobante = "Anticipo"
If UsuarioActual.Empresa.PlantillaMailVenta.Trim.Length > 0 Then
Cuerpo = UsuarioActual.Empresa.PlantillaMailVenta
Cuerpo = Cuerpo.Replace("{""NombreEmpresa""}", UsuarioActual.Empresa.Empresa)
Cuerpo = Cuerpo.Replace("{""NombreCliente""}", ObjFactura.Cliente.NombreComercial)
Cuerpo = Cuerpo.Replace("{""TipoDocumento""}", TipoComprobante)
Cuerpo = Cuerpo.Replace("{""Fecha""}", ObjFactura.Fecha.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""Total""}", ObjFactura.Total.ToString)
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", ObjFactura.FechaVencimiento.ToString("dd/MM/yyyy"))
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVenta.Trim.Length > 0 Then
Asunto = UsuarioActual.Empresa.AsuntoPlantillaMailVenta
Asunto = Asunto.Replace("{""TipoDocumento""}", TipoComprobante)
Asunto = Asunto.Replace("{""Sucursal""}", ObjFactura.SubProyecto.SubProyecto)
Asunto = Asunto.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
End If
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = ArchivoXML}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = ArchivoXML})
If ExistePDF Then If ExistePDF Then
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = ArchivoPDF}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = ArchivoPDF})
@@ -875,8 +881,7 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = ArchivoPDFBytes, .NombreArchivo = String.Format("{0}.pdf", ObjFactura.SerieFolio)}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = ArchivoPDFBytes, .NombreArchivo = String.Format("{0}.pdf", ObjFactura.SerieFolio)})
End If End If
Dim DisplayName As String = "" Dim DisplayName As String = ObjCuerpoMail.DisplayName
If UsuarioActual.CveEmpresa = 119 Then DisplayName = "Facturación Agroquímicos JAM"
If ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, If(String.IsNullOrEmpty(MailCC), "", MailCC), LSRutasMail, Displayname:=DisplayName) Then If ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, If(String.IsNullOrEmpty(MailCC), "", MailCC), LSRutasMail, Displayname:=DisplayName) Then
ResultadoMail = 1 ResultadoMail = 1
@@ -899,6 +904,8 @@ Public Class E194 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe
End If End If
End Try End Try
End If End If
End If
End Sub End Sub
#End Region #End Region