From 6a46c0ef49b026388c478eee426e32a961ba5909 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Sep 2023 16:18:18 -0700 Subject: [PATCH 01/12] --espacios --- Bancos/Transferencias.aspx.vb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Bancos/Transferencias.aspx.vb b/Bancos/Transferencias.aspx.vb index 3c9cabdea..7cd6521dc 100644 --- a/Bancos/Transferencias.aspx.vb +++ b/Bancos/Transferencias.aspx.vb @@ -407,7 +407,6 @@ Partial Class Bancos_Transferencias End If End If - If MsgError = "" Then If ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then If ObjMov.ValorPolizaDescuadre > 0 Then @@ -419,9 +418,6 @@ Partial Class Bancos_Transferencias End If End If - - - If MsgError = "" Then 'Conta ContPAQ From e2b0e3b342281617b895d1502a23afa229019b63 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Sep 2023 16:18:53 -0700 Subject: [PATCH 02/12] option explciit --- Ventas/RepVentas.aspx | 2 +- Ventas/RepVentas.aspx.vb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Ventas/RepVentas.aspx b/Ventas/RepVentas.aspx index 05c643949..a7632d710 100644 --- a/Ventas/RepVentas.aspx +++ b/Ventas/RepVentas.aspx @@ -376,7 +376,7 @@ <%--6--%> <%--7--%> - + <%--8--%> <%--9--%> diff --git a/Ventas/RepVentas.aspx.vb b/Ventas/RepVentas.aspx.vb index bfcb41745..5b6727577 100644 --- a/Ventas/RepVentas.aspx.vb +++ b/Ventas/RepVentas.aspx.vb @@ -193,7 +193,7 @@ Partial Class Ventas_RepVentas CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto) 'CargaClientes - Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) + Dim EsWS As Boolean = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) If EsWS Then DdlClientes.setEsWebService(True) Else From 12f330f229a05e62e98cd80e80c0c1fcfa755ca3 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Fri, 8 Sep 2023 10:51:35 -0700 Subject: [PATCH 03/12] RH Gafetes acciones --- Bancos/CuentasBancariasDetalle.aspx | 24 +++- Bancos/CuentasBancariasDetalle.aspx.vb | 188 +++++++++++++------------ Bancos/Transferencias.aspx | 2 + Bancos/Transferencias.aspx.vb | 1 - RH/Personal.aspx | 19 ++- RH/Personal.aspx.vb | 105 ++++++++++---- 6 files changed, 212 insertions(+), 127 deletions(-) diff --git a/Bancos/CuentasBancariasDetalle.aspx b/Bancos/CuentasBancariasDetalle.aspx index a046b1e1a..68474870f 100644 --- a/Bancos/CuentasBancariasDetalle.aspx +++ b/Bancos/CuentasBancariasDetalle.aspx @@ -197,7 +197,9 @@
-
+ + +<%--
Número de Tarjeta:
@@ -222,9 +224,7 @@ - - <%-- - --%> +
@@ -242,13 +242,21 @@ Agregar - + --%>
- + + + + + + + + + <%-- @@ -317,7 +325,9 @@ - + --%> + +
diff --git a/Bancos/CuentasBancariasDetalle.aspx.vb b/Bancos/CuentasBancariasDetalle.aspx.vb index 490c0b79c..3d5b641a6 100644 --- a/Bancos/CuentasBancariasDetalle.aspx.vb +++ b/Bancos/CuentasBancariasDetalle.aspx.vb @@ -682,112 +682,124 @@ Partial Class Bancos_CuentasBancariasDetalle Else DivTarjeta.Visible = False End If - End Sub - - + End Sub + + #End Region - + #Region "D A T O S T A R J E TA - C R E D I T O" - Private Sub LkbAgregarTarjera_Click(sender As Object, e As EventArgs) Handles LkbAgregarTarjera.Click - Dim ObjTarjeta As New ClsBancos() - Dim TieneError = False - - If Not ObjTarjeta.AddTarjetaCredito(CveCuenta, TxtNumTarjeta.Text, TxtNombreResponsable.Text, TxtFechaVencimiento.Text.ToDate, UsuarioActual.CveUsuario) Then - TieneError = True - End If - - If Not TieneError Then - Alert("Se guardo la tarjeta de credito correctamente", TipoMensaje.MsgInformacion) - TxtNumTarjeta.Text = "" - TxtNombreResponsable.Text = "" - TxtFechaVencimiento.Text = "" - CargaDatosTarjeta() - Else - Alert("Ocurrio un Error al Guardar la tarjeta de credito", TipoMensaje.MsgError) - End If - - ObjTarjeta.Dispose() - UpDatos.Update() - End Sub - + 'Private Sub LkbAgregarTarjera_Click(sender As Object, e As EventArgs) Handles LkbAgregarTarjera.Click + ' Dim ObjTarjeta As New ClsBancos() + ' Dim TieneError = False + + ' If Not ObjTarjeta.AddTarjetaCredito(CveCuenta, TxtNumTarjeta.Text, TxtNombreResponsable.Text, TxtFechaVencimiento.Text.ToDate, UsuarioActual.CveUsuario) Then + ' TieneError = True + ' End If + + ' If Not TieneError Then + ' Alert("Se guardo la tarjeta de credito correctamente", TipoMensaje.MsgInformacion) + ' TxtNumTarjeta.Text = "" + ' TxtNombreResponsable.Text = "" + ' TxtFechaVencimiento.Text = "" + ' CargaDatosTarjeta() + ' Else + ' Alert("Ocurrio un Error al Guardar la tarjeta de credito", TipoMensaje.MsgError) + ' End If + + ' ObjTarjeta.Dispose() + ' UpDatos.Update() + 'End Sub + Private Sub CargaDatosTarjeta() - Dim ObjTarjeta As New ClsBancos() + 'Dim ObjTarjeta As New ClsBancos() + + 'If ObjTarjeta.GetTarjetaCredito(-1, CveCuenta, -1) Then + ' GvTarjetas.DataSource = ObjTarjeta.DtResultados() + 'Else + ' GvTarjetas.DataSource = Nothing + 'End If + 'GvTarjetas.DataBind() + 'ObjTarjeta.Dispose() + + Dim ObjCreditos As New ClsBancos + If ObjCreditos.GetTarjetasCreditos(CveCuenta) Then + If ObjCreditos.DtResultados.Rows.Count > 0 Then + GvTC.DataSource = ObjCreditos.DtResultados + End If + GvTC.Visible = True + End If + ObjCreditos.Dispose() + + GvTC.DataBind() - If ObjTarjeta.GetTarjetaCredito(-1, CveCuenta, -1) Then - GvTarjetas.DataSource = ObjTarjeta.DtResultados() - Else - GvTarjetas.DataSource = Nothing - End If - GvTarjetas.DataBind() - ObjTarjeta.Dispose() UpDatos.Update() End Sub - Private Sub GvTarjetas_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvTarjetas.RowEditing - GvTarjetas.EditIndex = e.NewEditIndex - CargaDatosTarjeta() - End Sub + 'Private Sub GvTarjetas_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvTarjetas.RowEditing + ' GvTarjetas.EditIndex = e.NewEditIndex + ' CargaDatosTarjeta() + 'End Sub - Private Sub GvTarjetas_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvTarjetas.RowCancelingEdit - GvTarjetas.EditIndex = -1 - CargaDatosTarjeta() - End Sub + 'Private Sub GvTarjetas_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvTarjetas.RowCancelingEdit + ' GvTarjetas.EditIndex = -1 + ' CargaDatosTarjeta() + 'End Sub - Private Sub GvTarjetas_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvTarjetas.RowUpdating - Dim ObjTarjeta As New ClsBancos() - Dim TieneError = False + 'Private Sub GvTarjetas_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvTarjetas.RowUpdating + ' Dim ObjTarjeta As New ClsBancos() + ' Dim TieneError = False - Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero - Dim CveCuenta As Integer = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuenta").ToEntero - Dim Numero = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtNumeroEdit"), TextBox).Text.Trim - Dim Responsable = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtResponsableEdit"), TextBox).Text.Trim - Dim Vencimiento = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtFechaVencimientoEdit"), TextBox).Text.ToDate + ' Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero + ' Dim CveCuenta As Integer = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuenta").ToEntero + ' Dim Numero = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtNumeroEdit"), TextBox).Text.Trim + ' Dim Responsable = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtResponsableEdit"), TextBox).Text.Trim + ' Dim Vencimiento = DirectCast(GvTarjetas.Rows(e.RowIndex).FindControl("TxtFechaVencimientoEdit"), TextBox).Text.ToDate - If Not ObjTarjeta.UpdateTarjetaCredito(CveCuentaTarjeta, CveCuenta, Numero, Responsable, Vencimiento, UsuarioActual.CveUsuario) Then - TieneError = True - Else - GvTarjetas.EditIndex = -1 - End If + ' If Not ObjTarjeta.UpdateTarjetaCredito(CveCuentaTarjeta, CveCuenta, Numero, Responsable, Vencimiento, UsuarioActual.CveUsuario) Then + ' TieneError = True + ' Else + ' GvTarjetas.EditIndex = -1 + ' End If - If Not TieneError Then - Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) - CargaDatosTarjeta() - Else - Alert("Error al actualizar los cambios.", TipoMensaje.MsgError) - End If + ' If Not TieneError Then + ' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) + ' CargaDatosTarjeta() + ' Else + ' Alert("Error al actualizar los cambios.", TipoMensaje.MsgError) + ' End If - ObjTarjeta.Dispose() - UpDatos.Update() - End Sub + ' ObjTarjeta.Dispose() + ' UpDatos.Update() + 'End Sub - Private Sub GvTarjetas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvTarjetas.RowDeleting - Dim ObjTarjeta As New ClsBancos() - Dim TieneError = False + 'Private Sub GvTarjetas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvTarjetas.RowDeleting + ' Dim ObjTarjeta As New ClsBancos() + ' Dim TieneError = False - Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero + ' Dim CveCuentaTarjeta = GvTarjetas.Rows(e.RowIndex).DataKey("CveCuentaTarjeta").ToEntero - If ObjTarjeta.RemoveTarjetaCredito(CveCuentaTarjeta, UsuarioActual.CveUsuario) Then - CargaDatosTarjeta() - Alert("Se eliminaron datos correctamente", TipoMensaje.MsgInformacion) - Else - Alert("Error al eliminar", TipoMensaje.MsgError) - End If + ' If ObjTarjeta.RemoveTarjetaCredito(CveCuentaTarjeta, UsuarioActual.CveUsuario) Then + ' CargaDatosTarjeta() + ' Alert("Se eliminaron datos correctamente", TipoMensaje.MsgInformacion) + ' Else + ' Alert("Error al eliminar", TipoMensaje.MsgError) + ' End If - ObjTarjeta.Dispose() - UpDatos.Update() - End Sub + ' ObjTarjeta.Dispose() + ' UpDatos.Update() + 'End Sub - Private Sub GvTarjetas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvTarjetas.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).Width = Unit.Pixel(100) - e.Row.Cells(1).Width = Unit.Pixel(100) - e.Row.Cells(2).Width = Unit.Pixel(200) - e.Row.Cells(3).Width = Unit.Pixel(20) - e.Row.Cells(4).Width = Unit.Pixel(20) - End If - End If - End Sub + 'Private Sub GvTarjetas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvTarjetas.RowDataBound + ' If e.Row.RowType = DataControlRowType.DataRow Then + ' If e.Row.RowIndex = 0 Then + ' e.Row.Cells(0).Width = Unit.Pixel(100) + ' e.Row.Cells(1).Width = Unit.Pixel(100) + ' e.Row.Cells(2).Width = Unit.Pixel(200) + ' e.Row.Cells(3).Width = Unit.Pixel(20) + ' e.Row.Cells(4).Width = Unit.Pixel(20) + ' End If + ' End If + 'End Sub Private Function CargarDdlUsuarios(UsuariosGlobal As DataTable) As DataTable Dim tablaUsuariosFormateada As DataTable = New DataTable("Usuarios") diff --git a/Bancos/Transferencias.aspx b/Bancos/Transferencias.aspx index d48cdc4c6..d95f297b0 100644 --- a/Bancos/Transferencias.aspx +++ b/Bancos/Transferencias.aspx @@ -181,6 +181,7 @@
+ @@ -202,6 +203,7 @@ +
diff --git a/Bancos/Transferencias.aspx.vb b/Bancos/Transferencias.aspx.vb index 3c9cabdea..d05024d07 100644 --- a/Bancos/Transferencias.aspx.vb +++ b/Bancos/Transferencias.aspx.vb @@ -380,7 +380,6 @@ Partial Class Bancos_Transferencias Exit For Else AlertaGlobal.AppendFormat("{1}
", CveIEDestino, FolioDestino) - 'FolioDestino = (FolioDestino.ToLong + 1).ToString End If Next diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 394ab0825..29e7defd5 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -49,10 +49,19 @@
  • Expediente de personal
  • -
  • - Gafete - -
  • + + + +
  • + Gafete +
  • +
    + + + +
    + +
  • Agregar cuenta bancaria
  • @@ -80,7 +89,7 @@
  • - PDF consumo + PDF consumo
  • diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index d0dd4ae70..1c99f6da9 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -3898,38 +3898,91 @@ Partial Class RH_Personal ObjPersonal.Dispose() End Sub Private Sub LbGafete_Click(sender As Object, e As EventArgs) Handles LbGafete.Click - Dim params As New List(Of ReportParameter) - Dim ObjPersonal As New ClsRH() - If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then - If ObjPersonal.DtResultados.Rows.Count > 0 Then + Dim PathSource As String = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + If File.Exists(PathSource) Then - params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) - params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) - params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) - params.Add(New ReportParameter("CURP", TxtCURP.Text)) - params.Add(New ReportParameter("NoRegistro", "")) - params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) - params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) - params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) - params.Add(New ReportParameter("Emergencia", "")) - params.Add(New ReportParameter("CUIP", "")) - params.Add(New ReportParameter("TipoSangre", "")) - params.Add(New ReportParameter("RFC", TxtRFC.Text)) - params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) + Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory + Dim pathDesti As String + PathSource = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + pathDesti = PathRoot & "Temp\" & CvePersonal & "Gafete.docx" - - If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then - params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) - Else - params.Add(New ReportParameter("LogoUri", "")) - End If - - ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") + If File.Exists(pathDesti) Then + File.Delete(pathDesti) End If + + File.Copy(PathSource, pathDesti) + + Dim objDoc As New clsGemBoxDocument(pathDesti) + Dim objRH As New ClsRH + Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString() & " del " & Now.Year.ToString() + + + objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) + objRH.Dispose() + + + + objDoc.Guardar(pathDesti) + + Dim fileinfo As New FileInfo(pathDesti) + + + If fileinfo.Exists Then + + Response.ContentType = "application/docx" + Response.AppendHeader("Content-Disposition", $"attachment; filename=Gafete_{CvePersonal}.docx") + Response.TransmitFile(pathDesti) + Response.End() + + End If + + 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + 'baseUrl = baseUrl & "/temp/" & fileinfo.Name + + 'RegistraDescargaJavaScript(baseUrl) + + + Else + + Dim params As New List(Of ReportParameter) + Dim ObjPersonal As New ClsRH() + + If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then + + If ObjPersonal.DtResultados.Rows.Count > 0 Then + + params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) + params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) + params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) + params.Add(New ReportParameter("CURP", TxtCURP.Text)) + params.Add(New ReportParameter("NoRegistro", "")) + params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) + params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) + params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) + params.Add(New ReportParameter("Emergencia", TxtTelefonoEmergencia.Text)) + params.Add(New ReportParameter("CUIP", "")) + params.Add(New ReportParameter("TipoSangre", DdlTipoSangre.SelectedItem.Text)) + params.Add(New ReportParameter("RFC", TxtRFC.Text)) + params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) + + If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then + params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) + Else + params.Add(New ReportParameter("LogoUri", "")) + End If + + ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") + + End If + End If + ObjPersonal.Dispose() + End If - ObjPersonal.Dispose() + + + End Sub Private Sub GenerarPDFGastosXComp(Optional Formato As String = "PDF") If CvePersonal > 0 Then From 9de393c478197039d7a1aef7a24d780d608e202f Mon Sep 17 00:00:00 2001 From: rakcsle Date: Sat, 9 Sep 2023 10:40:47 -0700 Subject: [PATCH 04/12] RH Gafete 7 --- Empresas/7/Formatos/27_Gafette.docx | Bin 80154 -> 81909 bytes Imagenes/SinImagenB.jpg | Bin 0 -> 2025 bytes RH/Personal.aspx | 4 +- RH/Personal.aspx.vb | 204 ++++++++++++++++++++-------- 4 files changed, 148 insertions(+), 60 deletions(-) create mode 100644 Imagenes/SinImagenB.jpg diff --git a/Empresas/7/Formatos/27_Gafette.docx b/Empresas/7/Formatos/27_Gafette.docx index 2be6d47482fee3a4b83b1e7c03a7047edacc0979..890a13d2dd78bb38cc512deb24f7d7ea12f34148 100644 GIT binary patch delta 10668 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 delta 8953 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 SEt>|%>WdD4G&7k0-vj_jus$jP literal 0 HcmV?d00001 diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 29e7defd5..1458c87e2 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -50,7 +50,7 @@ Expediente de personal - + <%--
  • Gafete @@ -59,7 +59,7 @@ - + --%>
  • diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 1c99f6da9..fa5cad21e 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -10,6 +10,8 @@ Imports Microsoft.Reporting.WebForms Imports System.Globalization Imports System.Xml Imports System.Web.Script.Services +Imports System.Linq + Partial Class RH_Personal Inherits ClsPaginas @@ -3897,93 +3899,95 @@ Partial Class RH_Personal End If ObjPersonal.Dispose() End Sub - Private Sub LbGafete_Click(sender As Object, e As EventArgs) Handles LbGafete.Click - Dim PathSource As String = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" - If File.Exists(PathSource) Then + 'Eliminar hasta 15 de septiembre 2023 + 'Private Sub LbGafete_Click(sender As Object, e As EventArgs) Handles LbGafete.Click - Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory - Dim pathDesti As String + ' Dim PathSource As String = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + ' If File.Exists(PathSource) Then - PathSource = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" - pathDesti = PathRoot & "Temp\" & CvePersonal & "Gafete.docx" + ' Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory + ' Dim pathDesti As String - If File.Exists(pathDesti) Then - File.Delete(pathDesti) - End If + ' PathSource = UsuarioActual.Empresa.Ruta & "Formatos\Gafete.docx" + ' pathDesti = PathRoot & "Temp\" & CvePersonal & "Gafete.docx" - File.Copy(PathSource, pathDesti) + ' If File.Exists(pathDesti) Then + ' File.Delete(pathDesti) + ' End If - Dim objDoc As New clsGemBoxDocument(pathDesti) - Dim objRH As New ClsRH - Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString() & " del " & Now.Year.ToString() + ' File.Copy(PathSource, pathDesti) + + ' Dim objDoc As New clsGemBoxDocument(pathDesti) + ' Dim objRH As New ClsRH + ' Dim FechaActual As String = Now.Day.ToString("0#") & " de " & CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1).ToString() & " del " & Now.Year.ToString() - objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) - objRH.Dispose() + ' objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) + ' objRH.Dispose() - objDoc.Guardar(pathDesti) + ' objDoc.Guardar(pathDesti) - Dim fileinfo As New FileInfo(pathDesti) + ' Dim fileinfo As New FileInfo(pathDesti) - If fileinfo.Exists Then + ' If fileinfo.Exists Then - Response.ContentType = "application/docx" - Response.AppendHeader("Content-Disposition", $"attachment; filename=Gafete_{CvePersonal}.docx") - Response.TransmitFile(pathDesti) - Response.End() + ' Response.ContentType = "application/docx" + ' Response.AppendHeader("Content-Disposition", $"attachment; filename=Gafete_{CvePersonal}.docx") + ' Response.TransmitFile(pathDesti) + ' Response.End() - End If + ' End If - 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) - 'baseUrl = baseUrl & "/temp/" & fileinfo.Name + ' 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + ' 'baseUrl = baseUrl & "/temp/" & fileinfo.Name - 'RegistraDescargaJavaScript(baseUrl) + ' 'RegistraDescargaJavaScript(baseUrl) - Else + ' Else - Dim params As New List(Of ReportParameter) - Dim ObjPersonal As New ClsRH() + ' Dim params As New List(Of ReportParameter) + ' Dim ObjPersonal As New ClsRH() - If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then + ' If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then - If ObjPersonal.DtResultados.Rows.Count > 0 Then + ' If ObjPersonal.DtResultados.Rows.Count > 0 Then - params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) - params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) - params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) - params.Add(New ReportParameter("CURP", TxtCURP.Text)) - params.Add(New ReportParameter("NoRegistro", "")) - params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) - params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) - params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) - params.Add(New ReportParameter("Emergencia", TxtTelefonoEmergencia.Text)) - params.Add(New ReportParameter("CUIP", "")) - params.Add(New ReportParameter("TipoSangre", DdlTipoSangre.SelectedItem.Text)) - params.Add(New ReportParameter("RFC", TxtRFC.Text)) - params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) + ' params.Add(New ReportParameter("Nombre", String.Format("{0} {1} {2}", TxtAPaterno.Text.Trim, TxtAMaterno.Text.Trim, TxtNombres.Text.Trim))) + ' params.Add(New ReportParameter("Vigencia", TxtFechaFinContrato.Text)) + ' params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue.ToEntero() > 0, DdlPuesto.SelectedItem.Text, ""))) + ' params.Add(New ReportParameter("CURP", TxtCURP.Text)) + ' params.Add(New ReportParameter("NoRegistro", "")) + ' params.Add(New ReportParameter("RegIMSS", TxtNumeroSS.Text)) + ' params.Add(New ReportParameter("FechaIngreso", TxtFechaIngreso.Text)) + ' params.Add(New ReportParameter("DomPart", String.Format("{0} NoExt:{1} NoInt:{2} {3}", TxtCalle.Text, TxtNumExt.Text, TxtNumInt.Text, TxtColonia.Text))) + ' params.Add(New ReportParameter("Emergencia", TxtTelefonoEmergencia.Text)) + ' params.Add(New ReportParameter("CUIP", "")) + ' params.Add(New ReportParameter("TipoSangre", DdlTipoSangre.SelectedItem.Text)) + ' params.Add(New ReportParameter("RFC", TxtRFC.Text)) + ' params.Add(New ReportParameter("Denominacion", TxtRFC.Text)) - If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then - params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) - Else - params.Add(New ReportParameter("LogoUri", "")) - End If + ' If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & ObjPersonal.CvePersonal & ".png") Then + ' params.Add(New ReportParameter("LogoUri", String.Format("{0}://{1}:{2}/Empresas/{3}/RH/Personal/{4}.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjPersonal.CvePersonal))) + ' Else + ' params.Add(New ReportParameter("LogoUri", "")) + ' End If - ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") + ' ImprimirPDF("Empresas/Grales/Formatos/RHGafete.rdlc", New DataTable, params, String.Format("Gafete_{0}", ObjPersonal.CvePersonal), "PDF") - End If - End If - ObjPersonal.Dispose() + ' End If + ' End If + ' ObjPersonal.Dispose() - End If + ' End If - End Sub + 'End Sub Private Sub GenerarPDFGastosXComp(Optional Formato As String = "PDF") If CvePersonal > 0 Then If RBLTipoGastos.SelectedValue = "1" Then @@ -4420,10 +4424,94 @@ Partial Class RH_Personal objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) objRH.Dispose() - - objDoc.Guardar(pathDesti) + If pathDesti.ToUpper.Contains("GAFETTE") Or pathDesti.ToUpper.Contains("GAFETE") Then + + GemBox.Document.ComponentInfo.SetLicense(SerialGemBoxDocument) + + Dim document = GemBox.Document.DocumentModel.Load(pathDesti) + + + + + Dim imgPersonalURL As String = "" + If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpg") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpg" + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".png") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".png" + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".bmp") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".bmp" + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpeg") Then + imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpeg" + End If + + 'imgPersonalURL = UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".png" + + If imgPersonalURL.Trim.Length = 0 Then + imgPersonalURL = ModExtensiones.DirectorioBaseEmpresas & "\wwwSIG\Imagenes\SinImagenB.jpg" + End If + + 'Dim document As New GemBox.Document.DocumentModel() + 'Dim section As New GemBox.Document.Section(document) + 'Dim paragraph As New GemBox.Document.Paragraph(document) + 'section.Blocks.Add(paragraph) + + 'Dim picture1 As New GemBox.Document.Picture(document, imgPersonalURL, 61, 53, GemBox.Document.LengthUnit.Pixel) + + 'paragraph.Inlines.Add(picture1) + + 'Dim Zahnrad As String = UsuarioActual.Empresa.Ruta & "RH\Personal\Zahnrad.gif" + 'Dim Dices As String = UsuarioActual.Empresa.Ruta & "RH\Personal\Dices.png" + 'Dim Graphics1 As String = UsuarioActual.Empresa.Ruta & "RH\Personal\Graphics1.svg" + + 'Dim section As New GemBox.Document.Section(document) + 'document.Sections.Add(section) + + 'Dim paragraph As New GemBox.Document.Paragraph(document) + 'section.Blocks.Add(paragraph) + + + 'Dim picture1 As New GemBox.Document.Picture(document, imgPersonalURL, 61, 53, GemBox.Document.LengthUnit.Pixel) + 'paragraph.Inlines.Add(picture1) + + ' Get the first section and the first paragraph (or create them if necessary) + + '************************************************************** + + Dim firstSection As GemBox.Document.Section = document.Sections.FirstOrDefault() + If firstSection Is Nothing Then + firstSection = New GemBox.Document.Section(document) + document.Sections.Add(firstSection) + End If + + Dim firstParagraph As GemBox.Document.Paragraph = firstSection.Blocks.OfType(Of GemBox.Document.Paragraph)().FirstOrDefault() + If firstParagraph Is Nothing Then + firstParagraph = New GemBox.Document.Paragraph(document) + firstSection.Blocks.Add(firstParagraph) + End If + + Dim imageParagraph As New GemBox.Document.Paragraph(document) + Dim picture1 As New GemBox.Document.Picture(document, imgPersonalURL, 83, 100, GemBox.Document.LengthUnit.Pixel) + + Dim layout3 As New GemBox.Document.FloatingLayout( + New GemBox.Document.HorizontalPosition(1.79, GemBox.Document.LengthUnit.Inch, GemBox.Document.HorizontalPositionAnchor.LeftMargin), + New GemBox.Document.VerticalPosition(2.55, GemBox.Document.LengthUnit.Inch, GemBox.Document.VerticalPositionAnchor.TopMargin), + picture1.Layout.Size) + 'layout3.WrappingStyle = GemBox.Document.TextWrappingStyle.Through + + picture1.Layout = layout3 + + imageParagraph.Inlines.Add(picture1) + firstSection.Blocks.Insert(0, imageParagraph) + + document.Sections(0).Blocks.RemoveAt(9) + + document.Save(pathDesti) + + End If + + Dim fileinfo As New FileInfo(pathDesti) Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) From 410b9fbc14aa76033d4e207371d149e9fe1011c1 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 11 Sep 2023 09:28:16 -0700 Subject: [PATCH 05/12] -- recargar globaldtpsEquiv --- Ventas/ProductosServicios.aspx.vb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index 204742102..fa0a64b08 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -324,7 +324,7 @@ Partial Class ProductosyServicios ChkAplicaParaVenta.Checked = True - Dim DrSAT = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:="84111506", AplicaParaVenta:=1).FiltroPrimero("") ', SATClavePS:=CveSATNC + Dim DrSAT As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:="84111506", AplicaParaVenta:=1).FiltroPrimero("") ', SATClavePS:=CveSATNC DdlSATPS.SelectedValue = DrSAT("CveSATPS").ToString() DdlSATPS.SelectedText = DrSAT("SATClaveProductoServicio").ToString() @@ -984,7 +984,7 @@ Partial Class ProductosyServicios DdlTamanio.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveTamaño").ToString) If DdlTamanio.SelectedValue.ToEntero() > 0 Then - Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) + Dim Dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) Dim DebeTenerTamanio As Boolean = Boolean.Parse(Dr("EsAcumulador").ToString) @@ -1393,7 +1393,7 @@ Partial Class ProductosyServicios 'VALIDAR TAMAÑOS Y ACUMULADORES If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then - Dim Dr = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) + Dim Dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue.ToEntero()))(0) Dim DebeTenerTamanio As Boolean = Boolean.Parse(Dr("EsAcumulador").ToString) @@ -1418,8 +1418,8 @@ Partial Class ProductosyServicios Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL()) Dim ObjEmpresas As New ClsSisEmpresas(ObjProductosServicios.IniciaTransacSQL()) - Dim TieneError = False - Dim AccionJS = "" + Dim TieneError As Boolean = False + Dim AccionJS As String = "" Try @@ -1643,7 +1643,7 @@ Partial Class ProductosyServicios End Sub Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click Dim ObjAliasAdd As New ClsProductosServicios - Dim TieneError = False + Dim TieneError As Boolean = False If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then CargarAlias() @@ -2425,8 +2425,6 @@ Partial Class ProductosyServicios #End Region - - #Region " ECOMMERCE " Private Sub InicializaEcommerce() AplicaEcommerce = False @@ -3165,6 +3163,7 @@ Partial Class ProductosyServicios End If GlobalDTPSSimplificado(CveEmpresaFranquicia) = Nothing + GlobalDTProductosServiciosEquivalencias(-1, -1, CveEmpresaFranquicia) = Nothing Next Return False From 535bf49d36aa56e92ca45a0a8a165b054845dfdd Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 11 Sep 2023 18:56:13 -0700 Subject: [PATCH 06/12] - --- Bancos/FluctuacionCambiaria.aspx | 10 ++++------ Bancos/FluctuacionCambiaria.aspx.vb | 16 +++++++--------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/Bancos/FluctuacionCambiaria.aspx b/Bancos/FluctuacionCambiaria.aspx index e675c9d97..343bfe9ce 100644 --- a/Bancos/FluctuacionCambiaria.aspx +++ b/Bancos/FluctuacionCambiaria.aspx @@ -734,11 +734,11 @@ - + - +
    -
    +
    @@ -797,9 +797,7 @@

    - -
    -
    + 0 Then CveConceptoContable = 64 : TipoMovto = True Else CveConceptoContable = 65 : TipoMovto = False @@ -1087,7 +1085,7 @@ Partial Class Bancos_FluctuacionCambiaria Next If Not ErrorRegistrar Then - If Not Conta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Math.Abs(TotalAcumulado), Math.Abs(TotalAcumulado), CveConceptoContable, ConceptoFluctuacion, ConceptoFluctuacion, CveSubProyecto:=DdlSubProyectoAcreedoresDiversos.SelectedValue.ToEntero) Then + If Not Conta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovto, Math.Abs(TotalAcumulado), Math.Abs(TotalAcumulado), CveConceptoContable, ConceptoFluctuacion, ConceptoFluctuacion, CveSubProyecto:=DdlSubProyectoAcreedoresDiversos.SelectedValue.ToEntero) Then ErrorRegistrar = True End If End If From 32b5018a78a3e17758572a144af411cc66fc9455 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 12 Sep 2023 11:09:55 -0700 Subject: [PATCH 07/12] - --- Compras/Compras.aspx | 4 +- Compras/Compras.aspx.vb | 86 ++++++++++++++++------------------------- 2 files changed, 36 insertions(+), 54 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 7a342327b..4fe0f0cde 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -2863,7 +2863,7 @@ - + @@ -4886,7 +4886,7 @@ - + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 16b31667c..68635efc3 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -4605,8 +4605,8 @@ Partial Class Compras_Compras CveConceptoContableAlmacen = HdnRefacturacionConcepto.Value.ToEntero End If End If - 'se activa que es un importación en la compra, para que se afecten los conceptos de iva correspondientes - If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso CveImportacion > 0 Then + 'se activa que es un importación en la compra, para que se afecten los conceptos de iva correspondientes, solo se manejará el iva de importación en RFC extranjeros + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso CveImportacion > 0 AndAlso RFCProveedor = "XEXX010101000" Then chkImportacion.Checked = True : EsImportacion = True End If @@ -5178,7 +5178,7 @@ Partial Class Compras_Compras Dim indice As Integer = 0 Dim importeconcepto As Decimal = 0 - Dim listalmacenes = (From cvealmacen In DtInv.AsEnumerable() Where cvealmacen.Field(Of Integer)("cvealmacen") > 0 Select cvealmacen.Field(Of Integer)("cvealmacen")).Distinct().ToList + Dim listalmacenes As List(Of Integer) = (From cvealmacen In DtInv.AsEnumerable() Where cvealmacen.Field(Of Integer)("cvealmacen") > 0 Select cvealmacen.Field(Of Integer)("cvealmacen")).Distinct().ToList For Each tcvealmacen As Integer In listalmacenes If GvInv.Rows(indice).FCDropDownList("ddlrecibirinv").SelectedValue = "1" Then @@ -5208,7 +5208,6 @@ Partial Class Compras_Compras End If End If Next - End If 'agregamos la salida @@ -5227,7 +5226,6 @@ Partial Class Compras_Compras Next End If End If - Next End If @@ -5608,7 +5606,7 @@ Partial Class Compras_Compras 'Creditos/Documentos (59) Dim importeCreditos As Decimal = 0 - Dim CveIECreditos = -1 + Dim CveIECreditos As Integer = -1 If RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "3" AndAlso DdlTipoCredito.SelectedValue.ToEntero = 2 Then If ObjIE.GetCreditosDetalle(DdlCredito.SelectedValue.ToEntero, -1) Then CveIECreditos = ObjIE.DtResultados.FiltroPrimero($"CveCreditoDetalle = {DdlCreditoDetalle.SelectedValue.ToEntero}")("CveIE").ToString.ToEntero @@ -7000,7 +6998,7 @@ Partial Class Compras_Compras Dim ArrayCveEstatusOC As String() = HdnCveEstatusOC.Value.Split(New Char() {","c}) If ArrayCveEstatusOC.Count = ArrayCveOC.Count Then - For i = 0 To ArrayCveEstatusOC.Count - 1 + For i As Integer = 0 To ArrayCveEstatusOC.Count - 1 If Not ObjOC.UpdateOrdenCompraCompletada(ArrayCveEstatusOC(i).ToEntero, ArrayCveOC(i).ToEntero, UsuarioActual.CveUsuario, "Se vinculó Compra", CveCompra) Then ErrorOC = True Exit For @@ -7346,8 +7344,7 @@ Partial Class Compras_Compras Dim CveSubProyectoActual As Integer = dRow("CveSubProyecto").ToString.ToEntero If CveSubProyectoActual > 0 Then - - Dim nRow = DTSubProyectoPrincipal.NewRow + Dim nRow As DataRow = DTSubProyectoPrincipal.NewRow nRow("CveSubProyecto") = dRow("CveSubProyecto").ToString.ToEntero nRow("Total") = TmpDT.SUMD("Total", $"CveSubProyecto={CveSubProyectoActual}") DTSubProyectoPrincipal.Rows.Add(nRow) @@ -8004,6 +8001,14 @@ Partial Class Compras_Compras End If + If ErrorMovtosCxP = 0 AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePolizaNueva, UsuarioActual) Then + ErrorMovtosCxP = 1 + 'If ObjConta.ValorPolizaDescuadre > 0 Then + ' GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + ' ErrorPrepolizaDescuadre = True + 'End If + End If + Select Case ErrorMovtosCxP Case 0 @@ -8418,9 +8423,9 @@ Partial Class Compras_Compras ElseIf grp.CveActivoFijo > 0 Then - Dim CtaAF = -1 - Dim AF = "" - Dim CuentaInicial = -1 + Dim CtaAF As Integer = -1 + Dim AF As String = "" + Dim CuentaInicial As Integer = -1 If ObjAF.GetActivosFijos(grp.CveActivoFijo, UsuarioActual.CveEmpresa, "-1", "-1", -1, -1, "-1", -1, -1, -1, -1, -1, "", -1, UsuarioActual.CveEmpresa) Then CtaAF = ObjAF.Cuenta @@ -8442,7 +8447,7 @@ Partial Class Compras_Compras If drCuenta IsNot Nothing Then CuentaAbono = drCuenta("Id").ToString.ToEntero - Dim FolioAF = ObjContaAC.GetFolioProveedores(String.Format("0{0}0000000000000", CuentaInicial)).ToString + Dim FolioAF As String = ObjContaAC.GetFolioProveedores(String.Format("0{0}0000000000000", CuentaInicial)).ToString CtaAF = ObjContaAC.AddCuenta(String.Format("0{0}{1}000000000", CuentaInicial, FolioAF.PadLeft(4, "0"c)), AF, "A", 2, 0, 1, 0, "", 1, CuentaAbono) ObjAF.UpdateActivosFijosCuentaAC(grp.CveActivoFijo, CtaAF, UsuarioActual.CveUsuario) @@ -14542,12 +14547,11 @@ Partial Class Compras_Compras End Sub Protected Sub BtnAlertaPUCero_Click(sender As Object, e As EventArgs) - Dim Argumentos = HdnAlertaPUCero.Value.Split("|"c) - Dim PS = Argumentos(0) - Dim Cantidad = Argumentos(1) + Dim Argumentos As String() = HdnAlertaPUCero.Value.Split("|"c) + Dim PS As String = Argumentos(0) + Dim Cantidad As String = Argumentos(1) 'Alert($"El concepto tiene especificada una cantidad pero con costo de cero ($0).
    br /<> b > En caso de vincular la OC de esta manera la cantidad especificada sera considerada como recibida.

    De ser correcto Continue o de lo contrario rectifique.", TipoMensaje.MsgAdvertencia) - Alert($"El concepto {PS} tiene especificada la cantidad {Cantidad} pero un costo de cero ($0).

    En caso de vincular la OC de esta manera la cantidad especificada sera considerada como recibida.

    De ser correcto Continue o de lo contrario rectifique.", TipoMensaje.MsgAdvertencia) End Sub #End Region @@ -17747,32 +17751,19 @@ Partial Class Compras_Compras End Sub Protected Sub BtnNCInvAlmacen_Click(sender As Object, e As EventArgs) - - 'Dim ObjCompras As New ClsCompras - 'Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL) - 'Dim TieneError = False - Dim i As Integer = 0 - For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows - If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then - If i < TmpDT.Rows.Count Then - TmpDT.Rows(i)("CveOrdenCompraDetalle") = Gvr.DataKey("CveOrdenCompraDetalle") - End If - 'If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, Gvr.DataKey("CveCompra").ToEntero, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then - ' TieneError = True - ' Exit For - 'End If - End If - Next - - 'If Not TieneError Then - ' Alert("Se guardo la devolución correctamente", TipoMensaje.MsgInformacion) - ' ObjCompras.Commit() - 'Else - ' Alert("Ocurrió un error al guardar la devolución", TipoMensaje.MsgError) - ' ObjCompras.RollBack() - 'End If - - 'ObjCompras.Dispose() + ' se comenta RMF.2023/09/08, genera negativos en el rep recibir oc + 'Dim i As Integer = 0 + 'For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows + ' If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then + ' If i < TmpDT.Rows.Count Then + ' TmpDT.Rows(i)("CveOrdenCompraDetalle") = Gvr.DataKey("CveOrdenCompraDetalle") + ' End If + ' 'If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, Gvr.DataKey("CveCompra").ToEntero, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then + ' ' TieneError = True + ' ' Exit For + ' 'End If + ' End If + 'Next RegistraScript("$('#FacturaNC').modal('hide');", "ModalNCInv") End Sub @@ -19878,27 +19869,18 @@ Partial Class Compras_Compras #End Region - - Protected Sub BtnCancelarCompra_Click(sender As Object, e As EventArgs) Dim objCompras As New ClsCompras - - If objCompras.GetFechaCancelacionMovimiento(CveCompra:=CveCompra, CveEmpresa:=UsuarioActual.CveEmpresa) Then FechaCancelacionMovimiento = objCompras.FechaCancelacionMovto Else FechaCancelacionMovimiento = MinFecha End If - TxtFechaCancelacion.Text = TxtFecha.Text - objCompras.Dispose() - UpCancelarCompra.Update() - RegistraScript(" $('#DivCancelarCompra').modal();") - End Sub Protected Sub CheckDevAuto_CheckedChanged(sender As Object, e As EventArgs) From 4802cee279fd407e2df555ec6e13f1b76c817a7f Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 12 Sep 2023 15:32:08 -0700 Subject: [PATCH 08/12] Compras amortizacion nota de credito dolares --- Compras/Compras.aspx.vb | 102 +++++++++++++++----- Contabilidad/RepIVA.aspx | 14 +-- Empresas/119/Formatos/RepIVAAcreditable.rpt | Bin 131072 -> 131072 bytes 3 files changed, 85 insertions(+), 31 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 68635efc3..7eba914c2 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -10,7 +10,8 @@ Imports System.Threading.Tasks Imports Newtonsoft.Json Imports Extensiones Imports MoreLinq -Imports Profact.TimbraCFDI40 + + Partial Class Compras_Compras @@ -6583,10 +6584,11 @@ Partial Class Compras_Compras If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" If importeMovimiento <> 0 Then GuardoConcepto18 = True - If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then - 'PROVISION de NC - Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto) + 'If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then + + 'PROVISION de NC + Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto) 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False) If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, importeMovimiento, ConPreP.CveConcepto, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then @@ -6638,27 +6640,62 @@ Partial Class Compras_Compras Exit Select End If - Else - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, ConceptoContable, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then - For Each Gvr As GridViewRow In GvFacturaNC.Rows - If Gvr.FCCheckBox("ChkFacturaNC").Checked Then - 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) - Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal - Dim importeMNNC As Decimal = importeMovimientoNC * tipoCambioActual * Multiplicador - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, importeMNNC, 272, Referencia, Concepto, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, importeMNNC, 60, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - Else - ErrorPrepoliza = True - End If - 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp) - End If - Next - End If - End If - End If + 'Else + ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, ConceptoContable, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then + ' For Each Gvr As GridViewRow In GvFacturaNC.Rows + ' If Gvr.FCCheckBox("ChkFacturaNC").Checked Then + ' 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) + ' Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal + ' Dim importeMNNC As Decimal = importeMovimientoNC * tipoCambioActual * Multiplicador + + + ' If CompraActual.CveMoneda = 1 Then + + ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, importeMNNC, 272, Referencia, Concepto, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, importeMNNC, 60, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then + ' ErrorPrepoliza = True + ' End If + ' Else + ' ErrorPrepoliza = True + ' End If + ' Else + + ' Dim UsaComplementaria As Boolean = True + + ' If UsaComplementaria Then + + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, importeMovimientoNC, 304, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=-1, CvePersonal:=-1, CveCompraAmortizacion:=CveCompra, TipoCambio:=CompraActual.TC, TipoCambioPago:=Gvr.DataKey("TipoCambio").ToDecimal, ImporteME:=importeMovimientoNC, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=-1) Then + ' ErrorPrepoliza = True + ' End If + + ' If Not ErrorPrepoliza AndAlso CompraActual.CveMoneda > 1 AndAlso UsaComplementaria Then + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, (importeMNNC - importeMovimientoNC).RoundSQL, 201, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=-1, CvePersonal:=-1, CveCompraAmortizacion:=CveCompra, TipoCambio:=CompraActual.TC, TipoCambioPago:=Gvr.DataKey("TipoCambio").ToDecimal, ImporteME:=importeMovimientoNC, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=-1) Then + ' ErrorPrepoliza = True + ' End If + ' End If + + + ' Else + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, importeMNNC, 304, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=-1, CvePersonal:=-1, CveCompraAmortizacion:=CveCompra, TipoCambio:=CompraActual.TC, TipoCambioPago:=Gvr.DataKey("TipoCambio").ToDecimal, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=-1) Then + ' ErrorPrepoliza = True + ' End If + ' End If + + + ' End If + + + + + + ' 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp) + ' End If + ' Next + ' End If + 'End If + + End If importeMovimiento = 0 Case 29 'Funcionarios y Empleados @@ -8757,7 +8794,9 @@ Partial Class Compras_Compras Dim NumRow As Integer = 0 For Each row1 As DataRow In TmpDT.Rows Dim NumRow2 As Integer = 0 + For Each row2 As DataRow In TmpDTOriginal.Rows + If NumRow2 = NumRow Then If (row1("CveSubProyecto").ToString.ToEntero <> row2("CveSubProyecto").ToString.ToEntero) Or (row1("CveClasificacion").ToString.ToEntero <> row2("CveClasificacion").ToString.ToEntero) Or @@ -8774,9 +8813,24 @@ Partial Class Compras_Compras End If NumRow2 += 1 Next + + Dim CvePersonal As Integer = 0 + If NumRow < GvPersonal.Rows.Count Then + CvePersonal = GvPersonal.Rows(NumRow).FCDropDownList("DdlPersonalGv").SelectedValue.ToEntero + If CvePersonal = -1 Then + CvePersonal = 0 + End If + End If + + If row1("CvePersonal").ToString.ToEntero <> CvePersonal Then + Return False + End If + NumRow += 1 Next + Return True + End Function Private Function ActualizarPrePoliza(ObjConta As ClsContabilidad, ObjCompra As ClsCompras) As Boolean diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 030dbd568..64fc2841f 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -264,14 +264,14 @@
    - - - - + + + + - - - + + + diff --git a/Empresas/119/Formatos/RepIVAAcreditable.rpt b/Empresas/119/Formatos/RepIVAAcreditable.rpt index 785773459382a9624e5c4ef07e3454ce9eb9a598..1a6a8b78ba144478d952717d5119e5f9bd298a9a 100644 GIT binary patch delta 11997 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 delta 11988 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 Date: Wed, 13 Sep 2023 08:23:38 -0700 Subject: [PATCH 09/12] Compras dos prepolizas cuando hay entrada de inventario y la fecha de lacompra es distina de la fecha actual --- Compras/Compras.aspx | 2 +- Compras/Compras.aspx.vb | 122 +++++++++++++++++++++------------------- OC/OC.aspx.vb | 5 ++ 3 files changed, 71 insertions(+), 58 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 4fe0f0cde..98d818134 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -729,7 +729,7 @@ - + <%-- 0 --%> diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 7eba914c2..7ebd1927d 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6054,11 +6054,35 @@ Partial Class Compras_Compras If importeMN <> 0 Then - 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then - ErrorPrepoliza = True + + If TxtFecha.Text <> Now.ToString("dd/MM/yyyy") Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 205, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + ErrorPrepoliza = True + End If + + Dim CvePrePoliza2Almacen As Integer = ObjConta.AddPrePolizas("Compras/Registrar/Almacen", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, Now, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) + + If CvePrePoliza2Almacen > 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza2Almacen, True, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 205, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + ErrorPrepoliza = True + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza2Almacen, False, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + ErrorPrepoliza = True + End If + Else + ErrorPrepoliza = True + End If + + Else + 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + ErrorPrepoliza = True + End If + End If + 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95 If DdlTipoCompra.SelectedValue = "10" Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 95, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then @@ -6640,62 +6664,9 @@ Partial Class Compras_Compras Exit Select End If - 'Else - - ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, importeMN, ConceptoContable, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then - ' For Each Gvr As GridViewRow In GvFacturaNC.Rows - ' If Gvr.FCCheckBox("ChkFacturaNC").Checked Then - ' 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) - ' Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal - ' Dim importeMNNC As Decimal = importeMovimientoNC * tipoCambioActual * Multiplicador - ' If CompraActual.CveMoneda = 1 Then - - ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, importeMNNC, 272, Referencia, Concepto, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, importeMNNC, 60, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then - ' ErrorPrepoliza = True - ' End If - ' Else - ' ErrorPrepoliza = True - ' End If - ' Else - - ' Dim UsaComplementaria As Boolean = True - - ' If UsaComplementaria Then - - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, importeMovimientoNC, 304, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=-1, CvePersonal:=-1, CveCompraAmortizacion:=CveCompra, TipoCambio:=CompraActual.TC, TipoCambioPago:=Gvr.DataKey("TipoCambio").ToDecimal, ImporteME:=importeMovimientoNC, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=-1) Then - ' ErrorPrepoliza = True - ' End If - - ' If Not ErrorPrepoliza AndAlso CompraActual.CveMoneda > 1 AndAlso UsaComplementaria Then - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, (importeMNNC - importeMovimientoNC).RoundSQL, 201, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=-1, CvePersonal:=-1, CveCompraAmortizacion:=CveCompra, TipoCambio:=CompraActual.TC, TipoCambioPago:=Gvr.DataKey("TipoCambio").ToDecimal, ImporteME:=importeMovimientoNC, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=-1) Then - ' ErrorPrepoliza = True - ' End If - ' End If - - - ' Else - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, importeMNNC, 304, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=-1, CvePersonal:=-1, CveCompraAmortizacion:=CveCompra, TipoCambio:=CompraActual.TC, TipoCambioPago:=Gvr.DataKey("TipoCambio").ToDecimal, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=-1) Then - ' ErrorPrepoliza = True - ' End If - ' End If - - - ' End If - - - - - - ' 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp) - ' End If - ' Next - ' End If - 'End If - - End If + End If importeMovimiento = 0 Case 29 'Funcionarios y Empleados @@ -16036,6 +16007,16 @@ Partial Class Compras_Compras TxtIEPSModal.Text = "" TxtDescuentoModal.Text = "" + + TxtCantidad.Enabled = True + DdlClasificacion.Enabled = True + DdlPS.Enabled = True + DdlPS.ddlWS.Disabled = False + ddlUM.Enabled = True + TxtPrecio.Enabled = True + TxtDescuentoModal.Enabled = True + DdlIVA.Enabled = True + DivAddProductoAliasPS.Visible = False LbAgregar.Text = "Agregar" @@ -16047,6 +16028,8 @@ Partial Class Compras_Compras Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + + Con = GvRow.DataKey("Consec").ToEntero Index = Con @@ -16164,8 +16147,33 @@ Partial Class Compras_Compras divIVA.Visible = True + + + If GvInvMov.Rows.Count > 0 AndAlso GvRow.DataKey("CveTipoPS").ToEntero = 2 Then + TxtCantidad.Enabled = False + DdlClasificacion.Enabled = False + DdlPS.Enabled = False + DdlPS.ddl.Enabled = False + DdlPS.ddlWS.Disabled = True + ddlUM.Enabled = False + TxtPrecio.Enabled = False + TxtDescuentoModal.Enabled = False + DdlIVA.Enabled = False + Else + TxtCantidad.Enabled = True + DdlClasificacion.Enabled = True + DdlPS.Enabled = True + DdlPS.ddlWS.Disabled = False + ddlUM.Enabled = True + TxtPrecio.Enabled = True + TxtDescuentoModal.Enabled = True + DdlIVA.Enabled = True + End If + + UpPSS.Update() RegistraScript("$('#divAddProducto').modal('show');") + End Sub Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged DdlClasificacionChange() diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index f986b9cfa..8654ebf70 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -2608,6 +2608,10 @@ Partial Class OC_OC 'VALIDACIONES PARA GUARDAR If ValidaGuardar() Then Exit Sub + If UsuarioActual.CveEmpresa.Contiene(119) Then + ChkCotizacion.Checked = False + End If + Dim MsgError As String = "Hubo un error al registrar" 'VARIABLES Dim CveProveedorSucursal As Integer = -1 @@ -2666,6 +2670,7 @@ Partial Class OC_OC CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero End If + Dim CveOrdenCompraPadre As Integer = -1 If GeneraReq Then From fefe51eee1cef683c943a641d6e9eb3b7e32da78 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 13 Sep 2023 11:25:09 -0700 Subject: [PATCH 10/12] Personal correcion foto --- RH/Personal.aspx.vb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index fa5cad21e..f9b245047 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -1742,6 +1742,11 @@ Partial Class RH_Personal 'Dim LogoRutaFisica As String = String.Format("Empresas\{0}\RH\Personal\{1}.bmp", UsuarioActual.CveEmpresa, CvePersonal) Dim LogoRutaFisica As String = String.Format("{0}RH\Personal\{1}.bmp", UsuarioActual.Empresa.Ruta, CvePersonal) Dim logouri = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?Ru={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(LogoRutaFisica)) + ImgPersonal.ImageUrl = logouri + ElseIf File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & ".jpeg") Then + 'Dim LogoRutaFisica As String = String.Format("Empresas\{0}\RH\Personal\{1}.png", UsuarioActual.CveEmpresa, CvePersonal) + Dim LogoRutaFisica As String = String.Format("{0}RH\Personal\{1}.jpeg", UsuarioActual.Empresa.Ruta, CvePersonal) + Dim logouri = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?Ru={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(LogoRutaFisica)) ImgPersonal.ImageUrl = logouri End If From 34bbd33b9f0fda5ec6a7c69353990888ff987e38 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 13 Sep 2023 22:34:55 -0700 Subject: [PATCH 11/12] Compras VSH Entrada de alamacen como gasto --- Compras/Compras.aspx.vb | 131 ++++++++++++++++++++++++++-------------- 1 file changed, 85 insertions(+), 46 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 7ebd1927d..6470e0faf 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3917,6 +3917,31 @@ Partial Class Compras_Compras Protected Sub BtnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click + Dim EntradaComoGastoConAlmacen As Boolean = False + If GvInv.Rows.Count > 0 Then + + Dim CvealamcenSeleccionado As Integer = -1 + + For Each GvRow As GridViewRow In GvInv.Rows + If GvRow.RowType = DataControlRowType.DataRow Then + CvealamcenSeleccionado = GvRow.FCDropDownList("ddlEAlmacen").SelectedValue.ToEntero + If CvealamcenSeleccionado > 0 Then + Exit For + End If + End If + Next + + If CvealamcenSeleccionado > 0 Then + Dim ModalidadAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CvealamcenSeleccionado).FiltroPrimeroValor("Modalidad").ToEntero + If ModalidadAlmacen = 0 Then + EntradaComoGastoConAlmacen = True + End If + End If + + End If + + + '------------------ INICIA VALIDACIONES ------------------ Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal() @@ -6019,10 +6044,14 @@ Partial Class Compras_Compras If DdlTipoCompra.SelectedValue <> "10" Then For Each Dr As DataRow In DT.Rows + If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then - Dr("CveAlmacen") = 0 + If Not EntradaComoGastoConAlmacen Then + Dr("CveAlmacen") = 0 + End If AlmacenSoloExistencia = True End If + Dr.AcceptChanges() Next End If @@ -6031,6 +6060,8 @@ Partial Class Compras_Compras DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0") If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then + + 'SI ES GASTO CON ALMACEN If DdlTipoCompra.SelectedValue = "10" Then For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen", "CveClasificacion", "CveSubProyecto"}).Rows @@ -6049,25 +6080,27 @@ Partial Class Compras_Compras For Each Row2 As DataRow In DT.Rows + Dim ContabilizableAlmacen As Boolean = If(EntradaComoGastoConAlmacen Or DdlTipoCompra.SelectedValue = "10", False, SeContabiliza) + importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal importeMN = importeMovimiento * tipoCambioActual * Multiplicador If importeMN <> 0 Then - If TxtFecha.Text <> Now.ToString("dd/MM/yyyy") Then + If (TxtFecha.Text <> Now.ToString("dd/MM/yyyy")) And Not EntradaComoGastoConAlmacen Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 205, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 205, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=ContabilizableAlmacen) Then ErrorPrepoliza = True End If Dim CvePrePoliza2Almacen As Integer = ObjConta.AddPrePolizas("Compras/Registrar/Almacen", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, Now, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) If CvePrePoliza2Almacen > 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza2Almacen, True, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 205, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza2Almacen, True, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 205, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=ContabilizableAlmacen) Then ErrorPrepoliza = True End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza2Almacen, False, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza2Almacen, False, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=ContabilizableAlmacen) Then ErrorPrepoliza = True End If Else @@ -6076,7 +6109,7 @@ Partial Class Compras_Compras Else 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=ContabilizableAlmacen) Then ErrorPrepoliza = True End If @@ -6084,7 +6117,7 @@ Partial Class Compras_Compras 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95 - If DdlTipoCompra.SelectedValue = "10" Then + If DdlTipoCompra.SelectedValue = "10" Or EntradaComoGastoConAlmacen Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 95, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then ErrorPrepoliza = True End If @@ -6116,7 +6149,7 @@ Partial Class Compras_Compras Dim UsaComplementariaFleteImportaciones As Boolean = False 'DEBE METER EL CONCEPTO DE COMPRAS SI EL TIPO ES GASTO CON ALMACEN - If DdlTipoCompra.SelectedValue = "10" Then + If DdlTipoCompra.SelectedValue = "10" Or EntradaComoGastoConAlmacen Then ConceptoContabilizacion = 6 End If @@ -6613,56 +6646,62 @@ Partial Class Compras_Compras 'PROVISION de NC Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto) - 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False) + 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False) - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, importeMovimiento, ConPreP.CveConcepto, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, importeMovimiento, ConPreP.CveConcepto, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then + + If DdlMoneda.SelectedValue.ToEntero >= 2 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMN - importeMovimiento, importeMN - importeMovimiento, ConPreP.CveConceptoComplementario, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then ErrorPrepoliza = True Exit Select End If - Else - ErrorPrepoliza = True - Exit Select End If - 'AMORTIZACIÓN EN EL REGISTRO - For Each Gvr As GridViewRow In GvFacturaNC.Rows - If Gvr.FCCheckBox("ChkFacturaNC").Checked Then - Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal - Dim Pago As New CompraPago - Pago.ImportePago = importeMovimientoNC - Pago.CveMonedaPago = CompraActual.CveMoneda - Pago.CveCompraAmortizacion = CompraActual.CveCompra - Pago.Referencia = CompraActual.SerieFolio - Pago.TCPago = CompraActual.TC - Pago.AplicaAcreditable = False - Pago.TipoPago = "NC" - Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC - Dim CompraPago As New Compra - 'datos de la compra tipodocto:Fac, para sobreescribirlos - CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero - CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero - CompraPago.SerieFolio = Gvr.DataKey("SerieFolio") - CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal - CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate - CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero - CompraPago.Total = Gvr.DataKey("Total").ToDecimal - CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero - CompraPago.CveSubProyecto = CompraActual.CveSubProyecto + Else + ErrorPrepoliza = True + Exit Select + End If - ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta) - If ErrorPrepoliza Then - Exit For - End If + 'AMORTIZACIÓN EN EL REGISTRO + For Each Gvr As GridViewRow In GvFacturaNC.Rows + If Gvr.FCCheckBox("ChkFacturaNC").Checked Then + Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal + + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimientoNC + Pago.CveMonedaPago = CompraActual.CveMoneda + Pago.CveCompraAmortizacion = CompraActual.CveCompra + Pago.Referencia = CompraActual.SerieFolio + Pago.TCPago = CompraActual.TC + Pago.AplicaAcreditable = False + Pago.TipoPago = "NC" + Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC + + Dim CompraPago As New Compra + 'datos de la compra tipodocto:Fac, para sobreescribirlos + CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero + CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero + CompraPago.SerieFolio = Gvr.DataKey("SerieFolio") + CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal + CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate + CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero + CompraPago.Total = Gvr.DataKey("Total").ToDecimal + CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero + CompraPago.CveSubProyecto = CompraActual.CveSubProyecto + + ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta) + If ErrorPrepoliza Then + Exit For End If - Next - - If ErrorPrepoliza Then - ErrorMovtosCxP = True - Exit Select End If + Next + + If ErrorPrepoliza Then + ErrorMovtosCxP = True + Exit Select + End If From 19e0cbe13f20394dc890bad7d625f75adda50894 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Thu, 14 Sep 2023 08:56:46 -0700 Subject: [PATCH 12/12] Compras inventario como Gasto --- Compras/Compras.aspx.vb | 55 +++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 6470e0faf..a8905c129 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3917,30 +3917,6 @@ Partial Class Compras_Compras Protected Sub BtnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click - Dim EntradaComoGastoConAlmacen As Boolean = False - If GvInv.Rows.Count > 0 Then - - Dim CvealamcenSeleccionado As Integer = -1 - - For Each GvRow As GridViewRow In GvInv.Rows - If GvRow.RowType = DataControlRowType.DataRow Then - CvealamcenSeleccionado = GvRow.FCDropDownList("ddlEAlmacen").SelectedValue.ToEntero - If CvealamcenSeleccionado > 0 Then - Exit For - End If - End If - Next - - If CvealamcenSeleccionado > 0 Then - Dim ModalidadAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CvealamcenSeleccionado).FiltroPrimeroValor("Modalidad").ToEntero - If ModalidadAlmacen = 0 Then - EntradaComoGastoConAlmacen = True - End If - End If - - End If - - '------------------ INICIA VALIDACIONES ------------------ @@ -4396,14 +4372,35 @@ Partial Class Compras_Compras Exit Sub End If - 'If DdlFolioGarantia.Visible AndAlso DdlFolioGarantia.SelectedValue <> "-1" Then - ' If Not ValidaFolioGarantia() Then Exit Sub - 'End If - - '------------------TERMINA VALIDACIONES------------------ + + Dim EntradaComoGastoConAlmacen As Boolean = False + If GvInv.Rows.Count > 0 AndAlso GvInv.HeaderRow.FCCheckBox("cbAll").Checked Then + + Dim CvealamcenSeleccionado As Integer = -1 + + For Each GvRow As GridViewRow In GvInv.Rows + If GvRow.RowType = DataControlRowType.DataRow Then + CvealamcenSeleccionado = GvRow.FCDropDownList("ddlEAlmacen").SelectedValue.ToEntero + If CvealamcenSeleccionado > 0 Then + Exit For + End If + End If + Next + + If CvealamcenSeleccionado > 0 Then + Dim ModalidadAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CvealamcenSeleccionado).FiltroPrimeroValor("Modalidad").ToEntero + If ModalidadAlmacen = 0 Then + EntradaComoGastoConAlmacen = True + End If + End If + + End If + + + 'si hay necesidad de actualizar el globaldtps If RegeneraPS Then 'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalDT)