diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb
index 2a68ffb0a..3f163880d 100644
--- a/App_Code/ClsAF.vb
+++ b/App_Code/ClsAF.vb
@@ -259,12 +259,17 @@ Public Class ClsAF
Return Retorno
End Function
- Public Function GetRepActivosFijosDepreciacion(CveEmpresa As Integer, Fecha As Date) As Boolean
+ Public Function GetRepActivosFijosDepreciacion(CveEmpresa As Integer, Fecha As Date, Optional Depreciados As Integer = 1, Optional CveTipoAF As Integer = -1, Optional CveSubTipoAF As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional CveEstadoActivoFijo As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_AF_DepreciacionesGetRep")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@Fecha", SqlDbType.Date).Value = Fecha
+ .Add("@Depreciados", SqlDbType.Int).Value = Depreciados
+ .Add("@CveTipoAF", SqlDbType.Int).Value = CveTipoAF
+ .Add("@CveSubTipoAF", SqlDbType.Int).Value = CveSubTipoAF
+ .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
+ .Add("@CveEstadoActivoFijo", SqlDbType.Int).Value = CveEstadoActivoFijo
End With
Try
SqlAdapter.Fill(Data)
@@ -276,6 +281,23 @@ Public Class ClsAF
Return Retorno
End Function
+ Public Function GetActivosFijosVenta(CveVenta As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_AF_ActivosFijosVentaGet")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener el los activos fijos de la venta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+
+ Return Retorno
+ End Function
+
Public Function GetActivosFijos(CveActivoFijo As Integer, CveEmpresa As Integer, Codigo As String, Descripcion As String, CveTipoActivoFijo As Integer, CveSubTipoActivoFijo As Integer, NoSerie As String, Año As Integer, CvePersonaResponsable As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEstadoActivoFijo As Integer, CaracteristicaValor As String, CveCliente As Integer, Optional BuscaGrupoEmpresa As Integer = -1, Optional BuscaPorAFPadre As Integer = -1, Optional CveGrupo As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_AF_ActivosFijosGet")
diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb
index 653f8f120..e90f21cf2 100644
--- a/App_Code/ClsContabilidad.vb
+++ b/App_Code/ClsContabilidad.vb
@@ -1196,13 +1196,14 @@ Public Class ClsContabilidad
Return Concepto
End Function
- Public Function GetPrePolizasDetalle(CvePrePoliza As Integer, CveEmpresa As Integer, Optional CveIE As Integer = -1) As Boolean
+ Public Function GetPrePolizasDetalle(CvePrePoliza As Integer, CveEmpresa As Integer, Optional CveIE As Integer = -1, Optional CveVenta As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Conta_PrePolizasDetalleGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza
.Add("@CveIE", SqlDbType.Int).Value = CveIE
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index 2819ceb5a..7a4694fb5 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -1325,7 +1325,7 @@ Public Class ClsVentas
CvePresupuestoIngreso As Integer, Optional TiempoEntrega As String = "", Optional CveVentaDetallePadre As Integer = -1,
Optional CveContratoDetalle As Integer = -1, Optional PorcentajeIVA As Decimal = 0, Optional IEPS As Double = -1, Optional PorcentajeIEPS As Double = 0, Optional CvePromocionDetalle As Integer = -1,
Optional CveMovimientoDetallePedido As Integer = -1, Optional ImporteRetIVA As Double = 0, Optional PorcentajeRetIVA As Double = 0,
- Optional ImporteRetISR As Double = 0, Optional PorcentajeRetISR As Double = 0, Optional CuentaPredial As String = "", Optional CvePrecioLista As Integer = -1) As Boolean
+ Optional ImporteRetISR As Double = 0, Optional PorcentajeRetISR As Double = 0, Optional CuentaPredial As String = "", Optional CvePrecioLista As Integer = -1, Optional CveActivoFijo As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_VentasDetalleAdd")
@@ -1356,6 +1356,7 @@ Public Class ClsVentas
.Add("@CveMovimientoDetallePedido", SqlDbType.Int).Value = CveMovimientoDetallePedido
.Add("@CuentaPredial", SqlDbType.VarChar).Value = CuentaPredial
.Add("@CvePrecioLista", SqlDbType.Int).Value = CvePrecioLista
+ .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
End With
Try
@@ -5783,6 +5784,26 @@ Public Class ClsVentas
End Function
+ Public Function UpdateEstatusAFVendido(CveActivoFijo As Integer, CveEmpresa As Integer, Optional CveEstadoActivoFijo As Integer = -1) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_AF_EstatusAFUpdate")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
+ .Add("@CveEstadoActivoFijo", SqlDbType.Int).Value = CveEstadoActivoFijo
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+
+ Catch ex As Exception
+ OnError("Ocurrió un error al guardar los cambios del estatus de AF.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
+
#Region "IDisposable Support"
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index f9759cb99..fc71cd0ed 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -2421,6 +2421,13 @@ Namespace Modelos
Dim IdCtaIVAXTrasladar As Integer = 0
Dim IdCtaIVATrasladado As Integer = 0
Dim SeContabiliza As Boolean = True
+ Dim DtPrePolizasAFCancelar As DataTable = Nothing
+
+ If ValorMultiplicador = -1 AndAlso ObjFactura.DtDetalle IsNot Nothing AndAlso ObjFactura.DtDetalle.COUNT("CveActivoFijo", "CveActivoFijo > 0") > 0 Then
+ If ObjConta.GetPrePolizasDetalle(-1, UsuarioActual.CveEmpresa, CveVenta:=ObjFactura.CveVenta) Then
+ DtPrePolizasAFCancelar = ObjConta.DtResultados.FiltraParametros("CveConceptoContable IN (271,49,4)")
+ End If
+ End If
If (UsuarioActual.Empresa.Funcionalidad(343) = "1" AndAlso ObjFactura.TipoDocto = "Ant") Then
SeContabiliza = False
@@ -2527,6 +2534,16 @@ Namespace Modelos
importeMovimiento = 0
End If
+
+ If ValorMultiplicador = -1 AndAlso DtPrePolizasAFCancelar IsNot Nothing Then
+ For Each RowAF As DataRow In DtPrePolizasAFCancelar.FiltraParametros("CveConceptoContable = 271").Rows
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, CBool(RowAF("TipoMovto")), RowAF("Importe").ToString().ToDecimal() * -1, RowAF("Referencia").ToString(), 271, RowAF("Concepto").ToString(), FechaMovimiento, -1, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=-1, ImporteMX:=RowAF("ImporteMN").ToString().ToDecimal() * -1, ImporteME:=RowAF("ImporteME").ToString().ToDecimal() * -1, TipoCambio:=RowAF("TC").ToString().ToDecimal(), CveSubProyecto:=RowAF("CveSubProyecto").ToString().ToEntero(), Contabilizable:=CBool(RowAF("Contabilizable"))) Then
+ ErrorPrepoliza = True
+ End If
+ Next
+ End If
+
+
End If
Case 3 'Cliente
@@ -3317,53 +3334,71 @@ Namespace Modelos
importeMovimiento = 0
Case 4 'Venta Clasificacion
- If Not ObjFactura.TipoDocto.Contiene("Rem", "Ant", "Egs", "Dev", "RNC") Then
- Dim ConceptoContableAplicar = 4
- Dim CveVentaAplicar = ObjFactura.CveVenta
- Dim CveVentaAmortizacionAplicar = -1
+ If ValorMultiplicador = -1 AndAlso DtPrePolizasAFCancelar IsNot Nothing Then
- If ObjFactura.TipoDocto.Contiene("Egs") And ObjFactura.TipoDocto = "Ant" And CveDevolucion > 0 And NuevaFactura = 1 Then
- ConceptoContableAplicar = 11
- CveVentaAplicar = CveDevolucion
- CveVentaAmortizacionAplicar = ObjFactura.CveVenta
- End If
-
- DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
-
- If DT.Rows.Count > 0 Then
- 'Se agrega movimiento separado por la cuenta de ventas (ER)
- For Each Row2 As DataRow In DT.Rows
- importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} AND CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString.ToDecimal) * ValorMultiplicador)
- importeMX = importeMovimiento * tipoCambio * Multiplicador
- FechaMovimiento = ObjFactura.FechaPago
- Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString.ToEntero > 0, ClsPaginas.GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"), "")} - {If(Row2("CveSubProyecto").ToString.ToEntero > 0, ClsPaginas.GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString}"), "Sin SubProyecto Asignado")}"
-
- If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
- 'Nota cuando es Nota de crédiot, debe de tomar el devoluciones y rebajas
- If ObjFactura.TipoDocto.Contiene("Egs") Then
- IdCtaContable = ClsPaginas.GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero
- Else
- IdCtaContable = ClsPaginas.GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaIngresos", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero
+ For Each RowAF As DataRow In DtPrePolizasAFCancelar.FiltraParametros("CveConceptoContable IN(4,49)").Rows
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, CBool(RowAF("TipoMovto")), RowAF("Importe").ToString().ToDecimal() * -1, RowAF("Referencia").ToString(), RowAF("CveConceptoContable").ToString().ToEntero(), RowAF("Concepto").ToString(), FechaMovimiento, -1, -1, CveVenta:=ObjFactura.CveVenta, CveVentaAmortizacion:=RowAF("CveVentaAmortizacion").ToString().ToEntero(), CveClasificacion:=RowAF("CveClasificacion").ToString().ToEntero(), PorcentajeImpuesto:=RowAF("PorcentajeImpuesto").ToString().ToDecimal(), CveCliente:=ObjFactura.CveCliente, CveIE:=RowAF("CveIE").ToString().ToEntero(), ImporteMX:=RowAF("ImporteMN").ToString().ToDecimal() * -1, ImporteME:=RowAF("ImporteME").ToString().ToDecimal() * -1, TipoCambio:=RowAF("TC").ToString().ToDecimal(), CveSubProyecto:=RowAF("CveSubProyecto").ToString().ToEntero(), CveActivoFijo:=RowAF("CveActivoFijo").ToString().ToEntero(), Contabilizable:=CBool(RowAF("Contabilizable"))) Then
+ ErrorPrepoliza = True
+ End If
+ 'REGRESAR EL ACTIVO FIJO A ACTIVO
+ If RowAF("CveActivoFijo").ToString().ToEntero() > 0 Then
+ If Not ObjVentas.UpdateEstatusAFVendido(RowAF("CveActivoFijo").ToString().ToEntero(), UsuarioActual.CveEmpresa, 1) Then
+ ErrorPrepoliza = True
End If
+ End If
+ Next
- If importeMovimiento <> 0 Then
+ Else
+ If Not ObjFactura.TipoDocto.Contiene("Rem", "Ant", "Egs", "Dev", "RNC") Then
- If IdCtaContable <= 0 Then
- CuentasContablesInvalidas.Append("
" & ClsPaginas.GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString + ClsPaginas.GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"))
- idCuentaContabilizacion = 0
- End If
+ Dim ConceptoContableAplicar = 4
+ Dim CveVentaAplicar = ObjFactura.CveVenta
+ Dim CveVentaAmortizacionAplicar = -1
- If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContableAplicar, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVentaAplicar, CveVentaAmortizacion:=CveVentaAmortizacionAplicar, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, PorcentajeImpuesto:=Row2("PorcentajeIVA").ToString().ToDecimal) Then
- ErrorPrepoliza = True
+ If ObjFactura.TipoDocto.Contiene("Egs") And ObjFactura.TipoDocto = "Ant" And CveDevolucion > 0 And NuevaFactura = 1 Then
+ ConceptoContableAplicar = 11
+ CveVentaAplicar = CveDevolucion
+ CveVentaAmortizacionAplicar = ObjFactura.CveVenta
+ End If
+
+ DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
+
+ If DT.Rows.Count > 0 Then
+ 'Se agrega movimiento separado por la cuenta de ventas (ER)
+ For Each Row2 As DataRow In DT.Rows
+ importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} AND CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString.ToDecimal) * ValorMultiplicador)
+ importeMX = importeMovimiento * tipoCambio * Multiplicador
+ FechaMovimiento = ObjFactura.FechaPago
+ Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString.ToEntero > 0, ClsPaginas.GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"), "")} - {If(Row2("CveSubProyecto").ToString.ToEntero > 0, ClsPaginas.GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString}"), "Sin SubProyecto Asignado")}"
+
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ 'Nota cuando es Nota de crédiot, debe de tomar el devoluciones y rebajas
+ If ObjFactura.TipoDocto.Contiene("Egs") Then
+ IdCtaContable = ClsPaginas.GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero
Else
- ObjFactura.SeGuardoPrePoliza = True
+ IdCtaContable = ClsPaginas.GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaIngresos", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero
End If
- End If
- Next
+
+ If importeMovimiento <> 0 Then
+
+ If IdCtaContable <= 0 Then
+ CuentasContablesInvalidas.Append("
" & ClsPaginas.GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString + ClsPaginas.GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"))
+ idCuentaContabilizacion = 0
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContableAplicar, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVentaAplicar, CveVentaAmortizacion:=CveVentaAmortizacionAplicar, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, PorcentajeImpuesto:=Row2("PorcentajeIVA").ToString().ToDecimal) Then
+ ErrorPrepoliza = True
+ Else
+ ObjFactura.SeGuardoPrePoliza = True
+ End If
+ End If
+ Next
+ End If
End If
End If
+
importeMovimiento = 0
Case 150 'Descuento sobre ventas
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") AndAlso Not EsNCAmortizacion Then
diff --git a/Empresas/141/Formatos/Cotizacion.rdlc b/Empresas/141/Formatos/Cotizacion.rdlc
index 41f929b25..cfa5d036f 100644
--- a/Empresas/141/Formatos/Cotizacion.rdlc
+++ b/Empresas/141/Formatos/Cotizacion.rdlc
@@ -1214,7 +1214,7 @@
- ECONOLLANTAS SERVICIOS Y ACCESORIOS SA DE CV
+ ECONOLLANTAS SERVICIOS Y ACCESORIOS