From e55ee74443f60c7af0e3d24de9fc1311a006e908 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Sat, 15 Feb 2025 09:20:54 -0700 Subject: [PATCH] Compras % IVA prorateo, formato numerico al exportar a excel --- App_Code/ClsContabilidad.vb | 3 +- App_Code/modExtensiones.vb | 22 ++++ Compras/Compras.aspx.vb | 2 +- Compras/eFacturas.aspx.vb | 140 ++++++++++++++++++++++++ Contabilidad/RepAnexoCatalogoCC.aspx.vb | 8 +- 5 files changed, 172 insertions(+), 3 deletions(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 61f19afbb..d6f77b7f8 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -4313,7 +4313,7 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetAnexoCatalagoCC(CveCuenta As Integer, FechaI As Date, FechaF As Date, CveSubProyecto As Integer, CveEmpresa As Integer, Divisor As Integer, CveUsuario As Integer) As Boolean + Public Function GetAnexoCatalagoCC(CveCuenta As Integer, FechaI As Date, FechaF As Date, CveSubProyecto As Integer, CveEmpresa As Integer, Divisor As Integer, CveUsuario As Integer, Optional OpcionCuentas As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Conta_AnexoCatalogoCCGet") @@ -4326,6 +4326,7 @@ Public Class ClsContabilidad .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@Divisor", SqlDbType.Int).Value = Divisor .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@OpcionCuentas", SqlDbType.Int).Value = OpcionCuentas End With Try diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index 9343ffa93..4b42c5616 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -2393,6 +2393,28 @@ Namespace Extensiones Dim worksheet As ExcelWorksheet = excel.Worksheets(0) worksheet.Rows.InsertEmpty(0, TotalRowHeader) + + + '2025-02-15 OIC Este for es para que las celdas tomen formato numerico y se puedan sumar + For Each row In worksheet.Rows + For Each cell In row.AllocatedCells + If cell.Value IsNot Nothing Then + Dim valorTexto As String = cell.Value.ToString().Trim() + Dim numero As Decimal + ' Intentar convertir a número + If Decimal.TryParse(valorTexto, System.Globalization.NumberStyles.Any, + System.Globalization.CultureInfo.InvariantCulture, + numero) Then + + ' Si se pudo convertir exitosamente, reasignar como Double + cell.Value = numero + End If + End If + Next + Next + + + Dim celdasConTexto As CellRange = worksheet.GetUsedCellRange(True) If celdasConTexto Is Nothing Then Exit Sub 'No se recuperaron datos, salir de sin guardar porque soltará error celdasConTexto.Style.Font.Name = "Calibri Light" diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 908a8771d..5f2da99d3 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -22619,7 +22619,7 @@ Partial Class Compras_Compras nRow("SubTotal") = subtotalParcial.RoundSQL(4) nRow("Total") = totalParcialDeseado.RoundSQL(4) - nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial).RoundSQL(4) + nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial).RoundSQL(2) nRow("Porcentaje") = ((totalParcialDeseado.RoundSQL(4) * 100) / TotalOriginal).RoundSQL(2) nRow("RetIVAPorcentaje") = (retIvaParcial / subtotalParcial).RoundSQL(4) diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index d1eb38b6a..ef4ea68b0 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -26,6 +26,7 @@ Imports SharpCompress.Common Imports SharpCompress.Reader Imports Telerik.Web.UI Imports System.Data.SqlClient +Imports Stimulsoft.Base.Serializing 'Imports Telerik.Web.UI @@ -6073,6 +6074,145 @@ Partial Class Compras_eFacturas End Function + + Private Sub VinculacionAutomaticaRNC() + Dim ErrorProceso As Boolean = False + Dim ErrorProcesoStr As String = "" + Dim Contador As Integer = 0 + Dim Objcompras As New ClsCompras + Objcompras.IniciaTransacSQL() + + 'DataKeyNames="CveFactura,CveCompra,CveProveedor,SerieFolio,NombreProveedor,UUID,RFCDe,RFCPara,TipoFactura,FueValidado,TipoComprobante,Version,RFCde,XML,PDF,BloquePorComplemento,Total,CveTipoProveedor,FechaFactura" + + + For Each GvRow As GridViewRow In GvD.Rows + + If GvRow.FCCheckBox("chkRegistraFactura").Checked Then + + Dim TotalFactura As Decimal = GvRow.DataKey("Total").ToDecimal + Dim SaldoFactura As Decimal = TotalFactura + + Dim CFDIXmlPath As String = $"{UsuarioActual.Empresa.Ruta}Compras\{GvRow.DataKey("RFCDe")}\{GvRow.DataKey("XML")}" + If Not File.Exists(CFDIXmlPath) Then + ErrorProceso = True + Exit For + End If + + Dim CompraActual As New ClsCompraManager(CFDIXmlPath, ClsCompraManager.EnumCargaCompra.DesdeArchivo, GlobalDTTiposGastos(UsuarioActual.CveEmpresa), UsuarioActual) + + CompraActual.CveFactura = GvRow.DataKey("CveFactura").ToEntero + CompraActual.CveProveedor = GvRow.DataKey("CveProveedor").ToEntero + CompraActual.CveTipoProveedor = GvRow.DataKey("CveTipoProveedor").ToEntero + CompraActual.CveTipoConceptoProveedor = GvRow.DataKey("CveTipoProveedor").ToEntero + CompraActual.TipoCompra = ClsCompraManager.EnumTipoCompra.Sin_definir + CompraActual.IEPSGasto = True + CompraActual.Descripcion = TxtDescripcionCompra.Text.Trim + CompraActual.NombreProveedor = GvRow.DataKey("NombreProveedor") + + Dim CvePersonal As Integer = -1 'DdlPersonalReembolso.SelectedValue.ToEntero + Dim CveCajachica As Integer = -1 'DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero + + If RBLContado.SelectedValue.ToEntero = 6 Then 'Caja Chica + CveCajachica = DdlCuentaCajaChicaReembolso.SelectedValue.ToEntero + ElseIf RBLContado.SelectedValue.ToEntero = 2 Then ' viaticos + CvePersonal = DdlPersonalReembolso.SelectedValue.ToEntero + ElseIf RBLContado.SelectedValue.ToEntero = 4 Then ' deudores + + End If + + + + + If CompraActual.ConfiguraRegistroCompra(DdlPS.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, CveCajachica, CvePersonal, + DdlRetIVAConcepto.SelectedValue.ToEntero, DdlRetISRConcepto.SelectedValue.ToEntero, NumeroReembolso:=TxtNumeroReembolso.Text, + DTProrrateo:=DTProrrateo, DTPagosDeudores:=New DataTable) Then + + 'FIX ME OIC Recuerda cambiar el tipo de documento al registrar, actualmente tiene FAC y NC uno u otro, ajustar para que registre *** Egs *** cuado TipoComprobante = 'E' + If CompraActual.AddCompra(Objcompras.IniciaTransacSQL()) Then + Contador = Contador + 1 + Else + ErrorProceso = True + ErrorProcesoStr = CompraActual.MensajeError + Exit For + End If + Else + ErrorProceso = True + ErrorProcesoStr = CompraActual.MensajeError + Exit For + End If + + If RBLContado.SelectedValue.ToEntero = 4 Then 'Deudores + Dim CompraActualPagar = New Compra + If Objcompras.GetCompras(CompraActual.CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then + If Objcompras.DtResultados IsNot Nothing AndAlso Objcompras.DtResultados.Rows.Count > 0 Then + Dim dr As DataRow = Objcompras.DtResultados.Rows(0) + + + CompraActualPagar.CveCompra = CompraActual.CveCompra + CompraActualPagar.CveTipoConceptoProveedor = dr("CveTipoConcepto").ToString.ToEntero + CompraActualPagar.CveProveedor = dr("CveProveedor").ToString.ToEntero + CompraActualPagar.CveMoneda = dr("CveMoneda").ToString.ToEntero + CompraActualPagar.Fecha = dr("Fecha").ToString.ToDate + CompraActualPagar.SerieFolio = dr("SerieFolio").ToString + 'CompraActualPagar.ProveedorNombre = TxtPagueseA.Text + CompraActualPagar.TC = dr("TipoCambio").ToString.ToDecimal + CompraActualPagar.Total = dr("Total").ToString.ToDecimal + CompraActualPagar.IVA = dr("IVA").ToString.ToDecimal + CompraActualPagar.IVADeducible = dr("IVADeducible").ToString.ToDecimal.RoundSQL + CompraActualPagar.IVANoDeducible = dr("IVANoDeducible").ToString.ToDecimal.RoundSQL + CompraActualPagar.IEPS = dr("IEPS").ToString.ToDecimal + CompraActualPagar.RetIVA = dr("RetIVA").ToString.ToDecimal + CompraActualPagar.RetISR = dr("RetISR").ToString.ToDecimal + CompraActualPagar.CveConceptoRetIVA = dr("CveRetIVAConcepto").ToString.ToEntero + CompraActualPagar.CveConceptoRetISR = dr("CveRetISRConcepto").ToString.ToEntero + CompraActualPagar.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal + CompraActualPagar.UsuarioActual = UsuarioActual + CompraActualPagar.CveSubProyecto = dr("CveSubProyecto").ToString.ToEntero + CompraActualPagar.EsImportacion = CBool(dr("EsImportacion")) + CompraActualPagar.CompraNoDeducible = dr("NoDeducible").ToString.ToEntero + + + + Else + ErrorProceso = True + End If + Else + ErrorProceso = True + End If + + + + + + End If + + End If + If ErrorProceso Then + Exit For + End If + Next + + If ErrorProceso Then + Objcompras.RollBack() + Alert($"Se registraron {Contador} Compras. error {ErrorProcesoStr}", TipoMensaje.MsgAdvertencia) + Else + Objcompras.Commit() + CargaDatos(NowADS()) + CambieDeudor() + CargaDatos(NowADS()) + If Contador > 0 Then + Alert($"Se registraron {Contador} Compras") + End If + End If + + Objcompras.Dispose() + + + + + End Sub + + End Class diff --git a/Contabilidad/RepAnexoCatalogoCC.aspx.vb b/Contabilidad/RepAnexoCatalogoCC.aspx.vb index ae99858cd..154ae0b6e 100644 --- a/Contabilidad/RepAnexoCatalogoCC.aspx.vb +++ b/Contabilidad/RepAnexoCatalogoCC.aspx.vb @@ -236,9 +236,15 @@ Partial Class Contabilidad2_RepAnexoCatalogoCC Next Dim CveCunetaRow As Integer = e.Row.DataKey("CveCuenta").ToEntero + If e.Row.Cells(2).Text.ToDecimal <> 0 Then + e.Row.Cells(2).Text = $"{ If(DdlDivisor.SelectedValue.ToEntero > 1, e.Row.Cells(2).Text.ToDecimal.ToString("###,###,##0"), e.Row.Cells(2).Text.ToDecimal.ToString("###,###,###.00")) }" + Else + e.Row.Cells(2).Text = $"-" + End If + + Dim inicial As Boolean = True Index = 4 - For Each DRow As DataRow In DTHeaders.Rows Dim Importe As Decimal = e.Row.DBCampo($"SubProyecto{DRow("SubProyecto")}").ToDecimal