From bcf39c08737ee8fa9d2ff9813a1c5e364b32b0bb Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Wed, 17 Aug 2022 01:24:22 -0700 Subject: [PATCH 1/4] --- App_Code/ClsNominas.vb | 3 ++- App_Code/LogicNominas.vb | 4 ++-- Nomina/Nomina.aspx.cs | 3 +++ RH/CalculoSBC.aspx | 5 +++++ SAT/SolicitudesNominaSat.aspx | 10 +++++++++- SAT/SolicitudesNominaSat.aspx.cs | 22 +++++++++++----------- vwd.webinfo | 4 ++++ 7 files changed, 36 insertions(+), 15 deletions(-) diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index f317b2d84..a2d3ffa62 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -3205,10 +3205,11 @@ Public Class ClsNominas End Function #Region "Visor sat" - Public Function SATSolicitudTimbreNominaGral(IDsolicitud As Integer, cveEmpresa As Integer, fechaInicio As String, fechaFin As String) As Boolean + Public Function SATSolicitudTimbreNominaGral(IDsolicitud As Integer, cveEmpresa As Integer, fechaInicio As String, fechaFin As String, TipoNomina As Integer) As Boolean Dim retorno As Boolean = False DataAdapter("[PA_SAT_SolicitudTimbreNominaGral]", CommandType.StoredProcedure) addParameters("@IDsolicitud", SqlDbType.Int, IDsolicitud) + addParameters("@TipoNomina", SqlDbType.Int, TipoNomina) addParameters("@CveEmpresa", SqlDbType.Int, cveEmpresa) addParameters("@FechaInicio", SqlDbType.VarChar, fechaInicio) addParameters("@FechaFin", SqlDbType.VarChar, fechaFin) diff --git a/App_Code/LogicNominas.vb b/App_Code/LogicNominas.vb index a7b7cb98b..55071651d 100644 --- a/App_Code/LogicNominas.vb +++ b/App_Code/LogicNominas.vb @@ -206,9 +206,9 @@ Public Class LogicNominas End If If continuar AndAlso objNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then If objNomina.DtResultados.Rows.Count > 0 Then - Dim filtropercepciones As String = "Tipo = 'P' AND EsPadre = 1 AND SoloVisible =0 AND SATCveConcepto NOT IN ('022', '023','025')" + Dim filtropercepciones As String = "Tipo = 'P' AND EsPadre = 1 AND SoloVisible =0 AND (TipoConceptoSAT<>'O' OR TipoConceptoSAT IS NULL) AND SATCveConcepto NOT IN ('022', '023','025')" If TimbreIndemnizacion Then - filtropercepciones = " Tipo = 'P' AND SATCveConcepto IN ('022', '023','025')" + filtropercepciones = " Tipo = 'P' AND SATCveConcepto IN ('022', '023','025') AND (TipoConceptoSAT<>'O' OR TipoConceptoSAT IS NULL) " End If DtPercepciones = objNomina.DtResultados.FiltraParametros(filtropercepciones) Dim filtrodeduc As String = "Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0 AND (TipoConceptoSAT<>'O' OR TipoConceptoSAT IS NULL) AND CveSistema <> 47" diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 840e92404..d156afc20 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -1570,6 +1570,7 @@ public partial class Nomina_Nomina2 : ClsPaginas CveMotivoCancelacion = rowc["CveSATMotivoCancelacion"].ToString().ToEntero(); } var reultado = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, RFCEmisor, 4, CveSATMotivoCancelacion: CveMotivoCancelacion); + string.Format("CveNomina:{0},RFC{3}, FolioFiscal:{1},Resultado :{2}", CveNomina, FolioFiscal, Newtonsoft.Json.JsonConvert.SerializeObject(reultado), RFCReceptor).GuardaLog(); if (reultado.Verificado)//,CveSATMotivoCancelacion:= { try @@ -1603,6 +1604,7 @@ public partial class Nomina_Nomina2 : ClsPaginas else { reultado = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscalFiniquito, Total, RFCReceptor, RFCEmisor, 4, CveSATMotivoCancelacion: CveMotivoCancelacion); + string.Format("CveNomina:{0},RFC{3}, FolioFiscal:{1},Resultado :{2}", CveNomina, FolioFiscal, Newtonsoft.Json.JsonConvert.SerializeObject(reultado), RFCReceptor).GuardaLog(); if (reultado.Verificado)//,CveSATMotivoCancelacion:= { try @@ -8306,6 +8308,7 @@ public partial class Nomina_Nomina2 : ClsPaginas string RFCReceptor = TxtRFCReceptor.Text; string RFCEmisor = TxtRFCEmisor.Text; var resultado = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, RFCEmisor, 4); + string.Format("CveNomina:{0},RFC{3}, FolioFiscal:{1},Resultado :{2}", -1, FolioFiscal, Newtonsoft.Json.JsonConvert.SerializeObject(resultado), RFCReceptor).GuardaLog(); if (resultado.Verificado) { Alert($"La nómina con folio fiscal '{FolioFiscal}' fue cancelada ante el SAT", TipoMensaje.MsgInformacion); diff --git a/RH/CalculoSBC.aspx b/RH/CalculoSBC.aspx index 1b04dfa5a..3c4ccae4a 100644 --- a/RH/CalculoSBC.aspx +++ b/RH/CalculoSBC.aspx @@ -291,6 +291,11 @@ + + + + + diff --git a/SAT/SolicitudesNominaSat.aspx b/SAT/SolicitudesNominaSat.aspx index d4ec0e936..f46d5c7db 100644 --- a/SAT/SolicitudesNominaSat.aspx +++ b/SAT/SolicitudesNominaSat.aspx @@ -247,7 +247,7 @@
- + @@ -289,6 +289,14 @@
+ +
+ + + + + +
diff --git a/SAT/SolicitudesNominaSat.aspx.cs b/SAT/SolicitudesNominaSat.aspx.cs index 235a88821..3e15678f4 100644 --- a/SAT/SolicitudesNominaSat.aspx.cs +++ b/SAT/SolicitudesNominaSat.aspx.cs @@ -60,7 +60,7 @@ public partial class SAT_SolicitudesNominaSat : ClsPaginas using (ClsNominas nom = new ClsNominas()) { - nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin); + nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin, DdlTipoNomina.SelectedValue.ToEntero()); ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); var libro = wb.AddWorksheet(nom.DtResultados , "Nomina"); @@ -69,36 +69,36 @@ public partial class SAT_SolicitudesNominaSat : ClsPaginas switch (DdlReporte.SelectedValue.ToString().ToEntero()) { case 1: - libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153,0,0)); + libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 2: - libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 3, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); libro.Range(1, 8, 1, 11).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 3: libro.Range(1, 1, 1, 10).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); - libro.Range(1, 11, 1, nom.DtResultados.Columns.Count).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 11, 1, nom.DtResultados.Columns.Count).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); break; case 4: - libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 5: - libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 3, 1, 3).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 6: - libro.Range(1, 4, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 4, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 7, 1, 9).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 7: - libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 8: - libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0)); + libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(255,153,0)); libro.Range(1, 9, 1, 12).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220)); break; case 9: @@ -140,7 +140,7 @@ public partial class SAT_SolicitudesNominaSat : ClsPaginas fechaInicio = TxtRpdFechaInicio.Text.ToDateTime().ToString("yyyy/MM/dd"); fechaFin = TxtRpdFechaFin.Text.ToDateTime().ToString("yyyy/MM/dd"); - nom.SATSolicitudTimbreNominaGral(0, UsuarioActual.CveEmpresa, fechaInicio, fechaFin); + nom.SATSolicitudTimbreNominaGral(0, UsuarioActual.CveEmpresa, fechaInicio, fechaFin, DdlTipoNomina.SelectedValue.ToEntero()); if (nom.DtResultados.Rows.Count > 0) { DataRow drow = nom.DtResultados.Rows[0]; @@ -156,7 +156,7 @@ public partial class SAT_SolicitudesNominaSat : ClsPaginas } - nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin); + nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin, DdlTipoNomina.SelectedValue.ToEntero()); GVSolicitudTimbreNominaGral.DataSource = nom.DtResultados; GVSolicitudTimbreNominaGral.DataBind(); clasegrid = string.Format("reporte{0}", DdlReporte.SelectedValue); diff --git a/vwd.webinfo b/vwd.webinfo index 7f69c1418..c6ab9419c 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -536,6 +536,10 @@ + + + + From a2fb63718fbc6eb3b4f9416f346acce2d09b5f76 Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Wed, 17 Aug 2022 10:01:59 -0700 Subject: [PATCH 2/4] E140.ashx, Clscontabilidad --- App_Code/ClsContabilidad.vb | 1 + Ashx/E140.ashx | 263 ++++++++++++++++++++++++++++++++++++ 2 files changed, 264 insertions(+) create mode 100644 Ashx/E140.ashx diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 0a37fc57f..2e545adf1 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -4384,6 +4384,7 @@ Public Class ClsContabilidad End With Try + SqlAdapter.SelectCommand.CommandTimeout = 0 SqlAdapter.Fill(DSet) Retorno = True Catch ex As Exception diff --git a/Ashx/E140.ashx b/Ashx/E140.ashx new file mode 100644 index 000000000..b1e309b3d --- /dev/null +++ b/Ashx/E140.ashx @@ -0,0 +1,263 @@ +<%@ WebHandler Language="VB" Class="E140" %> + +Imports System +Imports System.Web +Imports System.Data +Imports Newtonsoft.Json +Imports Extensiones +Imports System.IO +Imports Microsoft.Reporting.WebForms + +Public Class E140 : Implements IHttpHandler, IRequiresSessionState + Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable + Get + Return False + End Get + End Property + Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest + + Try + Select Case context.Request("metodo") + Case "MetasVendedores" + MetasVendedores(context) + End Select + Catch ex As Exception + ex.GuardaLog(ex.Message) + End Try + End Sub + + + Private Shared Sub MetasVendedores(ByVal context As HttpContext) + + Dim CveEmpresa = 140 + Dim RutaEmpresa As String = String.Format("{0}Empresas\{1}\", DirectorioBaseEmpresas, CveEmpresa) + + Dim ObjEmpresa As New ClsSisEmpresas() + If ObjEmpresa.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then + End If + + If ObjEmpresa.Empresa.RutaArchivos.Trim.Length > 0 Then + RutaEmpresa = ObjEmpresa.Empresa.RutaArchivos.Trim + End If + + ObjEmpresa.Dispose() + + Dim DTVendedores As System.Data.DataTable = New System.Data.DataTable() + Dim Temporal As String = "" + + Temporal = String.Format("{0}\Temp\", RutaEmpresa, CveEmpresa) + Dim Empresa As String = "BDH BATERIAS DISTRIBUCIONES DE HERMOSILLO SA DE CV" + + DTVendedores.Columns.Add("CveSubProyecto", GetType(Integer)) + DTVendedores.Columns.Add("Sucursal") + DTVendedores.Columns.Add("Nombre") + DTVendedores.Columns.Add("Correo") + + Dim Row_11791 As DataRow = DTVendedores.NewRow + Dim Row_11993 As DataRow = DTVendedores.NewRow + Dim Row_11796 As DataRow = DTVendedores.NewRow + Dim Row_11797 As DataRow = DTVendedores.NewRow + Dim Row_11793 As DataRow = DTVendedores.NewRow + Dim Row_12010 As DataRow = DTVendedores.NewRow + Dim Row_12011 As DataRow = DTVendedores.NewRow + Dim Row_11790 As DataRow = DTVendedores.NewRow + Dim Row_11795 As DataRow = DTVendedores.NewRow + Dim Row_11794 As DataRow = DTVendedores.NewRow + + Row_11791("CveSubProyecto") = 11791 + Row_11791("Sucursal") = "SOLIDARIDAD" + Row_11791("Nombre") = "Fernando grijalva López" + Row_11791("Correo") = "hmo.martirezdecananea@bdhbaterias.com.mx" + + Row_11993("CveSubProyecto") = 11993 + Row_11993("Sucursal") = "PROGRESO" + Row_11993("Nombre") = "Brayam Uriel Corrales Soto" + Row_11993("Correo") = "cajaprogreso.hmo@bdhbaterias.com" + + Row_11796("CveSubProyecto") = 11796 + Row_11796("Sucursal") = "OBREGON" + Row_11796("Nombre") = "Brayam Uriel Corrales Soto" + Row_11796("Correo") = "cen.pisocentro@bdhbaterias.mx" + + Row_11797("CveSubProyecto") = 11797 + Row_11797("Sucursal") = "NAVOJOA" + Row_11797("Nombre") = "Orlando Lagarda Cantú" + Row_11797("Correo") = "almacen.nvj@bdhbaterias.mx" + + Row_11793("CveSubProyecto") = 11793 + Row_11793("Sucursal") = "LOMA LINDA" + Row_11793("Nombre") = "Adrian fernando murrieta Rodríguez" + Row_11793("Correo") = "adrian.murrieta@bdhbaterias.com" + + Row_12010("CveSubProyecto") = 12010 + Row_12010("Sucursal") = "LOS NOGALES" + Row_12010("Nombre") = "GERMAN LUNA CASTRO" + Row_12010("Correo") = "" + + Row_12011("CveSubProyecto") = 12011 + Row_12011("Sucursal") = "NOGALES CENTRO" + Row_12011("Nombre") = "GERMAN LUNA CASTRO" + Row_12011("Correo") = "german.luna@bdhbaterias.com" + + Row_11790("CveSubProyecto") = 11790 + Row_11790("Sucursal") = "MATRIZ" + Row_11790("Nombre") = "Luis Fernando grijalva cota" + Row_11790("Correo") = "luis.grijalva@bdhbaterias.com" + + + Row_11795("CveSubProyecto") = 11795 + Row_11795("Sucursal") = "GUAYMAS CENTRO" + Row_11795("Nombre") = "Gastelum Hurtado Juan Daniel" + Row_11795("Correo") = "daniel.gastelum@bdhbaterias.com" + + Row_11794("CveSubProyecto") = 11794 + Row_11794("Sucursal") = "GUAYMAS AURORA" + Row_11794("Nombre") = "Gastelum Hurtado Juan Daniel" + Row_11794("Correo") = "daniel.gastelum@bdhbaterias.com" + + DTVendedores.Rows.Add(Row_11791) + DTVendedores.Rows.Add(Row_11993) + DTVendedores.Rows.Add(Row_11796) + DTVendedores.Rows.Add(Row_11797) + DTVendedores.Rows.Add(Row_11793) + DTVendedores.Rows.Add(Row_12010) + DTVendedores.Rows.Add(Row_12011) + DTVendedores.Rows.Add(Row_11790) + DTVendedores.Rows.Add(Row_11795) + DTVendedores.Rows.Add(Row_11794) + + For Each dRow As System.Data.DataRow In DTVendedores.Rows + + + Dim CorreoSupervisor As String = dRow("Correo").ToString() + Dim Sucursal As String = dRow("Sucursal").ToString + Dim Vendedor As String = dRow("Nombre").ToString() + Dim CveSubProyecto As Integer = dRow("CveSubProyecto").ToString() + + + CorreoSupervisor = "oscar.irigoyen@adssistemas.mx;rene.molina@adssistemas.mx" + + Dim ObjGen = New ClsVentas + + Dim RutaRDLC As String = If(File.Exists($"{RutaEmpresa}\Formatos\MetasVendedores.rdlc"), $"{RutaEmpresa}\Formatos\MetasVendedores.rdlc", $"{DirectorioBaseEmpresas}\Empresas\Grales\Formatos\MetasVendedores.rdlc") + + If ObjGen.GetRepMetasVendedores(DateTime.Now, CveEmpresa, -1, -1, -1, -1, -1, CveSubProyecto, -1, -1, 0) Then + + + Dim Imagen As System.IO.FileInfo = New System.IO.FileInfo(String.Format("{0}/Logo.png", RutaEmpresa)) + Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() + parametros.Add(New ReportParameter("pEmp", Empresa)) + + If Imagen.Exists Then + parametros.Add(New ReportParameter("pImg", $"file://{Imagen.FullName}")) + Else + parametros.Add(New ReportParameter("pImg", "")) + End If + + parametros.Add(New ReportParameter("UsuarioImprimio", "Sistema")) + parametros.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + parametros.Add(New ReportParameter("SubProyecto", Sucursal)) + parametros.Add(New ReportParameter("Agente", Vendedor)) + + Dim bytes As Byte() = Nothing + + Dim rds1 As ReportDataSource = New ReportDataSource() + rds1.Name = "DataSet1" + rds1.Value = ObjGen.DtResultados + + If EsProduccion Then + + Dim wsreport As New WSRDLC2.WebServiceSoapClient + Dim params As New List(Of WSRDLC2.ReportParameter) + Dim reportobjects As New List(Of WSRDLC2.ReportObjects) + + Dim jsonData As String = Nothing + Dim ds As New DataSet + + Dim dt As DataTable = DirectCast(rds1.Value, Data.DataTable) + dt = dt.Copy() + dt.TableName = rds1.Name + ds.Tables.Add(dt) + + For Each rpds As ReportParameter In parametros + Dim param As New WSRDLC2.ReportParameter + param.Name = rpds.Name + 'SI ES TEXTO, QUITAR TABS Y OTROS ESPACIOS QUE DEN PROBLEMAS AL MANDAR LA PETICION + If rpds IsNot Nothing AndAlso rpds.Values IsNot Nothing AndAlso rpds.Values.Count > 0 AndAlso rpds.Values(0) IsNot Nothing AndAlso rpds.Values(0).GetType() = GetType(String) Then + param.Values = {rpds.Values(0).Replace(vbVerticalTab, "")} + Else + param.Values = {rpds.Values(0)} + End If + params.Add(param) + Next + + bytes = wsreport.StreamNEWPDFBytes(RutaRDLC, ds, reportobjects.ToArray(), params.ToArray(), "MetasVendedores", "PDF", CveEmpresa, 100, jsonData) + wsreport = Nothing + params = Nothing + ds.Dispose() : ds = Nothing + + Else + + Using MR As ReportViewer = New ReportViewer() + + MR.LocalReport.DataSources.Add(rds1) + MR.LocalReport.ReportPath = RutaRDLC + MR.ProcessingMode = ProcessingMode.Local + MR.LocalReport.EnableExternalImages = True + MR.LocalReport.SetParameters(parametros) + MR.LocalReport.Refresh() + Dim warnings As Warning() = Nothing + Dim streamids As String() = Nothing + Dim mimeType As String = Nothing + Dim encoding As String = Nothing + Dim extension As String = Nothing + + bytes = MR.LocalReport.Render("PDF", Nothing, mimeType, encoding, extension, streamids, warnings) + + End Using + + End If + + MandaCorreo(CorreoSupervisor, $"Envió de estado de scorecard sucursal {Sucursal} a {Now.ToString("dd/MM/yyyy")}", bytes) + bytes = Nothing + + End If + + ObjGen.Dispose() + + Next + + End Sub + + Private Shared Sub MandaCorreo(Para As String, Cuerpo As String, bytes As Byte()) + Try + Dim ListaArchivos As List(Of ClsSisMail.ArchivoMail) = New List(Of ClsSisMail.ArchivoMail)() + + Dim AdjuntoReporte As ClsSisMail.ArchivoMail = New ClsSisMail.ArchivoMail() + + AdjuntoReporte.NombreArchivo = "MetasVendedores.Pdf" + AdjuntoReporte.ArchivoBinario = bytes + ListaArchivos.Add(AdjuntoReporte) + + Dim Correo As ClsSisMail = New ClsSisMail() + + Dim Asunto As String = Cuerpo + Correo.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Cuerpo, Archivos:=ListaArchivos) + + Catch ex As Exception + Extensiones.ModExtensiones.GuardaLog(Nothing, $"Error Tareas Programadas 140 error enviar mail --> {ex.Message} ") + End Try + End Sub + + + Public Shared ReadOnly Property EsProduccion As Boolean + Get + If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then + Return False + Else + Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1") + End If + End Get + End Property + +End Class \ No newline at end of file From 0af293832b4e67bd911974ab38cfea3cfd120b63 Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Wed, 17 Aug 2022 11:37:35 -0700 Subject: [PATCH 3/4] RegPrePolizasS Error al cargar importe negativo con platilla, ligas de Folio generados --- Contabilidad/RegPrePolizaS.aspx.vb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index bd55a5b41..af366386b 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -1010,6 +1010,14 @@ Partial Class ContabilidadC_RegPrePolizaS If CveIE < 0 Then MsgError = "No se pudo registrar movimiento bancario" Exit For + Else + + If tFolio > 0 Then + FolioIE = tFolio + Else + FolioIE = ObjIE.Folio + End If + End If End If @@ -2421,7 +2429,7 @@ Partial Class ContabilidadC_RegPrePolizaS End If Folio = FolioExcel - ImporteDocumento = IIf(Row("Abono").ToString.ToDecimal > 0, Row("Abono").ToString.ToDecimal, Row("Cargo").ToString.ToDecimal) + ImporteDocumento = IIf(Row("Abono").ToString.ToDecimal <> 0, Row("Abono").ToString.ToDecimal, Row("Cargo").ToString.ToDecimal) Observaciones = Row("Referencia").ToString Beneficiario = Row("Concepto").ToString From 8414d8d9c28a774c0886f92a15fd5de9f21487e5 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Fri, 19 Aug 2022 03:33:03 -0700 Subject: [PATCH 4/4] --- App_Code/ClsPaginas.vb | 2 +- Compras/PopUpVerFactura.aspx.vb | 298 ++++++++++++++++++++++++++++++++ GPS/ReciboNom.rdlc | 10 +- Nomina/Nomina.aspx.cs | 7 +- RH/CalculoSBC.aspx.cs | 2 +- SAT/SolicitudesNominaSat.aspx | 28 +-- vwd.webinfo | 2 + 7 files changed, 327 insertions(+), 22 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ffee09df2..e3d5653d6 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -8689,7 +8689,7 @@ Public Class ClsPaginas End If DTPercepciones = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) {filtrop}") DTDeducciones = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) {friltrod}") - DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR CveSistema IN (20,21)){friltrod}") + DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR CveSistema IN (20,21) OR CveConcepto =4714){friltrod}") ajusteindemnizacion = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema IN(10,11,32)").SUM("Importe") - ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema =47").SUM("Importe") diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 5f77cd67e..a35a9eb35 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -198,6 +198,13 @@ Partial Class PopUpVerFactura End If If Request("onlyPrint") IsNot Nothing Then + If Request("onlyPrint").ToString() = "GeneraPDFNomina" AndAlso Not IsNothing(Request("CvePersonal")) AndAlso + Not IsNothing(Request("CvePeriodo")) AndAlso Not IsNothing(Request("indemnizacion")) Then + Dim CveEmpresa As Integer = UsuarioActual.CveEmpresa + Dim RutaEmpresa As String = UsuarioActual.Empresa.Ruta + Dim indemnizacion As Boolean = Request("indemnizacion").ToString.ToEntero() = 1 + GeneraPDFNomina(Request("CvePersonal").ToString.ToEntero(), Request("CvePeriodo").ToString.ToEntero(), CveEmpresa, RutaEmpresa, indemnizacion) + End If If Request("onlyPrint").ToString() = "Pallet" AndAlso Not IsNothing(Request("CvePallet")) Then imprimirpallet2(Request("CvePallet").ToString.ToEntero()) End If @@ -227,6 +234,297 @@ Partial Class PopUpVerFactura End Sub + Public Function GeneraPDFNomina(CvePersonal As Integer, CvePeriodo As Integer, CveEmpresa As Integer, RutaEmpresa As String, Optional indemnizacion As Boolean = False) As Byte() + + + Dim ObjNomina As New ClsNominas + Dim ObjPersonal As New ClsRH + Dim TieneError = False + Dim Retorno As Byte() = Nothing + + If Not ObjNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodo, -1, CveEmpresa) Then + Alert("Ocurrio un erro al obtener datos de la nomina", TipoMensaje.MsgError) + ObjPersonal.Dispose() + ObjNomina.Dispose() + Return Nothing + End If + + Dim CveNomina = ObjNomina.CveNomina + Dim DTPercepciones As Data.DataTable + Dim DTDeducciones As Data.DataTable + Dim DTDeducciones2 As New Data.DataTable + + Dim Ruta As String = UsuarioActual.Empresa.Ruta + Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.Serie }{If(indemnizacion, "F", "")}-{ObjNomina.Folio}.xml" + Dim FechaEmision, FechaCertificacion As DateTime + Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String + FolioFiscal = "" + NoSerieCertificado = "" + SelloCFDi = "" + SelloSAT = "" + NoSerieCertificadoContribuyente = "" + + Dim RutaCBB As String = String.Format("{0}CBB\Nomina\{1}.jpg", RutaEmpresa, ObjNomina.SerieFolio) + Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) + Dim ImgCBB As String + + Dim RutaFormato As String = String.Format("{0}Formatos\Nomina.rdlc", RutaEmpresa) + Dim RutaFormatoDefault As String = String.Format("Empresas\Grales\Formatos\Nomina.rdlc") + + 'SI ESTA TIMBRADA - CON XML + + If System.IO.File.Exists(PathXML) Then + + Dim XmlDoc As New System.Xml.XmlDocument + 'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml") + XmlDoc.Load(PathXML) + + If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then + FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate + NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText + + For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then + FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText + FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate + SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText + SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText + End If + Next + Else + FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate + NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText + + For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:timbreFiscalDigital" Then + FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText + FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("fechaTimbrado").InnerText.ToDate + SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText + SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText + End If + Next + End If + + + 'SIN TIMBRAR - SIN XML + Else + FolioFiscal = "Sin Timbrar" + NoSerieCertificado = "Sin Timbrar" + SelloCFDi = "Sin Timbrar" + SelloSAT = "Sin Timbrar" + End If + + 'Si no tiene CBB, SE GENERA + If Not ImagenCBB.Exists Then + Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then + CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaCBB) + End If + End If + + ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio) + + Dim cQr As Byte() = Nothing + Try + Dim CadenaOriginalCFD As String = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||" + + Dim RptParametro As New List(Of ReportParameter) + + + 'Datos Empresa + RptParametro.Add(New ReportParameter("RegistroPatronal", ObjNomina.RegistroPatronal)) + Dim ajusteindemnizacion As Double = 0 + 'PERCECIONES - DEDUCCIONES + If ObjNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then + Dim filtrop As String = " AND CveSistema NOT IN(10,11,32)" + Dim friltrod As String = " AND CveSistema <>47" + If indemnizacion Then + filtrop = "AND CveSistema IN(10,11,32)" + friltrod = " AND CveSistema =47" + End If + DTPercepciones = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) {filtrop}") + DTDeducciones = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) {friltrod}") + DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR CveSistema IN (20,21) OR CveConcepto =4714){friltrod}") + + ajusteindemnizacion = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema IN(10,11,32)").SUM("Importe") - + ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema =47").SUM("Importe") + For Each row As DataRow In DTPercepciones.Rows + If row("Tipo").ToString() = "D" Then + row("Codigo") = row("Codigo").ToString().Replace("D", "OP") + row("Importe") = row("Importe").ToString().ToDecimal() * -1 + End If + Next + + Else + DTPercepciones = Nothing + DTDeducciones = Nothing + End If + 'DATOS DEL EMPLEADO + If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then + + RptParametro.Add(New ReportParameter("NoEmpleado", ObjPersonal.Codigo)) + RptParametro.Add(New ReportParameter("RFC", ObjPersonal.RFC)) + RptParametro.Add(New ReportParameter("CURP", ObjPersonal.CURP)) + + RptParametro.Add(New ReportParameter("NombreCompleto", String.Format("{0} {1} {2}", ObjPersonal.Nombres, ObjPersonal.APaterno, ObjPersonal.AMaterno).Trim())) + RptParametro.Add(New ReportParameter("Regimen", ObjPersonal.RegimenContratacion)) + RptParametro.Add(New ReportParameter("RiesgoPuesto", ObjPersonal.RiesgoPuesto)) + + RptParametro.Add(New ReportParameter("NSS", ObjPersonal.NumeroSS)) + RptParametro.Add(New ReportParameter("Departamento", ObjPersonal.Departamento)) + RptParametro.Add(New ReportParameter("Puesto", ObjPersonal.Puesto.ToString())) + RptParametro.Add(New ReportParameter("FechaIngreso", ObjPersonal.FechaIngreso.ToString("dd/MM/yyyy"))) + + RptParametro.Add(New ReportParameter("Contrato", ObjPersonal.TipoContrato.ToString)) + + RptParametro.Add(New ReportParameter("Jornada", ObjPersonal.Jornada)) + RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) + RptParametro.Add(New ReportParameter("SalarioBase", ObjPersonal.SalarioDiario.ToString)) + RptParametro.Add(New ReportParameter("SalarioDiarioInt", ObjPersonal.SDI.ToString)) + + RptParametro.Add(New ReportParameter("Banco", ObjPersonal.Banco)) + RptParametro.Add(New ReportParameter("CLABE", ObjPersonal.CLABE)) + + + 'DATOS NOMINA + If ObjNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) Then + RptParametro.Add(New ReportParameter("ReciboNomina", ObjNomina.Folio.ToString)) + RptParametro.Add(New ReportParameter("Serie", ObjNomina.Serie)) + RptParametro.Add(New ReportParameter("Fecha", ObjNomina.Fecha.ToString)) + RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) + + RptParametro.Add(New ReportParameter("DiasPagados", ObjNomina.DiasPagados.ToString)) + RptParametro.Add(New ReportParameter("MetodoPago", ObjNomina.MetodoPago)) '"""PUE"" (Pago en una sola exhibición)" + RptParametro.Add(New ReportParameter("FormaPago", """99"" (Por definir)")) + + RptParametro.Add(New ReportParameter("Cantidad", "1")) + RptParametro.Add(New ReportParameter("Unidad", "ACT")) + RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA")) + RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString())) + + Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + cQr = CBB.GenerarCBBBytes(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal) + RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDouble.Texto2Letras)) + RptParametro.Add(New ReportParameter("Clave", "84111505")) + Else + TieneError = True + End If + Else + TieneError = True + End If + + If Not TieneError Then + If ObjNomina.GetPeriodos(-1, CveEmpresa, -1, -1, CvePeriodo) Then + RptParametro.Add(New ReportParameter("FechaInicio", ObjNomina.FechaInicio.ToString("dd/MM/yyyy"))) + RptParametro.Add(New ReportParameter("FechaFin", ObjNomina.FechaFin.ToString("dd/MM/yyyy"))) + Else + TieneError = True + End If + End If + + + RptParametro.Add(New ReportParameter("PU", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("Importe", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("ImporteDeducciones", DTDeducciones.SUM("Importe").ToString())) + + RptParametro.Add(New ReportParameter("SubTotal", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("Descuentos", DTDeducciones.SUM("Importe", "SATCveConcepto <> '002'").ToString())) + RptParametro.Add(New ReportParameter("ISR", DTDeducciones.SUM("Importe", "SATCveConcepto = '002'").ToString())) + 'Timbrado + RptParametro.Add(New ReportParameter("FolioFiscal", FolioFiscal)) + RptParametro.Add(New ReportParameter("CertificadoSAT", NoSerieCertificado)) + RptParametro.Add(New ReportParameter("FechaCertificacion", FechaCertificacion.ToString)) + RptParametro.Add(New ReportParameter("SelloDigitalEmisor", SelloCFDi)) + RptParametro.Add(New ReportParameter("SelloDigitalSAT", SelloSAT)) + RptParametro.Add(New ReportParameter("CadenaOriginal", CadenaOriginalCFD)) + RptParametro.Add(New ReportParameter("QR", ImgCBB.ToString)) + + + Dim LSRds As New List(Of ReportDataSource) + + + Dim rds2 = New ReportDataSource() + + Dim dtqr As New DataTable + + Dim column As DataColumn = New DataColumn("ImagenByte") + column.DataType = System.Type.[GetType]("System.Byte[]") + column.AllowDBNull = True + column.Caption = "ImagenByte" + dtqr.Columns.Add(column) + Dim rowqr As DataRow = dtqr.NewRow() + rowqr("ImagenByte") = cQr + + dtqr.Rows.Add(rowqr) + rds2.Name = "dsImagenes" + rds2.Value = dtqr + LSRds.Add(rds2) + Dim numnewfiles As Integer = 0 + If DTPercepciones.Rows.Count > DTDeducciones2.Rows.Count Then + + numnewfiles = DTPercepciones.Rows.Count - DTDeducciones2.Rows.Count + For index = 1 To numnewfiles + + DTDeducciones2.Rows.Add(DTDeducciones2.NewRow) + Next + Else + + If DTDeducciones2.Rows.Count > DTPercepciones.Rows.Count Then + numnewfiles = DTDeducciones2.Rows.Count - DTPercepciones.Rows.Count + For index = 1 To numnewfiles + + DTPercepciones.Rows.Add(DTPercepciones.NewRow) + Next + + End If + End If + + Dim RptDS As New ReportDataSource + RptDS.Name = "DsOC" + RptDS.Value = DTPercepciones + LSRds.Add(RptDS) + + Dim RDS As New ReportDataSource + RDS.Name = "DataSet1" + RDS.Value = DTDeducciones2 + LSRds.Add(RDS) + Dim Archivo As New System.IO.FileInfo(RutaFormato) + + If Not TieneError Then + If Archivo.Exists Then + Retorno = StreamPDF(RutaFormato, LSRds, RptParametro, ObjNomina.SerieFolio, "PDF", MR:=Nothing) + Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio)) + If Not ArchivoPDF.Exists Then + Try + DirectoryExistsCreate(String.Format("{0}PDF", RutaEmpresa)) + DirectoryExistsCreate(String.Format("{0}PDF\{1}", RutaEmpresa, "Nomina")) + File.WriteAllBytes(String.Format("{0}PDF\Nomina\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio), Retorno) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + GuardaLog(String.Format("Ocurrió un error al generar el PDF {0}", ex)) + End Try + End If + Else + 'ImprimirPDF(String.Format("{0}\Formatos\Nomina.rdlc", RutaEmpresa), LSRds, RptParametro, ObjNomina.SerieFolio) + End If + Else + Alert("Ocurrio un error al obtener los datos de la Nomina") + End If + Catch ex As Exception + + GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + End Try + + + ObjNomina.Dispose() + ObjPersonal.Dispose() + + Return Retorno + End Function + + Private Sub DescargaArchivoDirecto(RutaArchivo As String) If RutaArchivo <> "" Then diff --git a/GPS/ReciboNom.rdlc b/GPS/ReciboNom.rdlc index 567941e6e..13eb33297 100644 --- a/GPS/ReciboNom.rdlc +++ b/GPS/ReciboNom.rdlc @@ -5162,7 +5162,7 @@ HERMOSILLO, SONORA - 0.6cm + 0.36187cm @@ -6471,7 +6471,7 @@ Firma del Trabajador DataSet1 0.15557cm 0.10265cm - 12.89958cm + 12.66146cm 19.12116cm - 5.31354in + 5.14687in