This commit is contained in:
2023-05-18 11:55:02 -07:00
24 changed files with 578 additions and 102 deletions

View File

@@ -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")

View File

@@ -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

View File

@@ -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"

View File

@@ -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("<br>" & 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("<br>" & 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

View File

@@ -1214,7 +1214,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>ECONOLLANTAS SERVICIOS Y ACCESORIOS SA DE CV</Value>
<Value>ECONOLLANTAS SERVICIOS Y ACCESORIOS</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1387,7 +1387,7 @@
<Top>1.75278in</Top>
<Left>0.13771in</Left>
<Height>0.36206in</Height>
<Width>8.13325in</Width>
<Width>8.13321in</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
@@ -1509,7 +1509,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>ECONOLLANTAS SERVICIOS Y ACCESORIOS SA DE CV</Value>
<Value>ECONOLLANTAS SERVICIOS Y ACCESORIOS</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1214,7 +1214,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>DESARROLLOS Y COMERCIOS AD S.A DE C.V</Value>
<Value>DESARROLLOS Y COMERCIOS AD</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -545,7 +545,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>DESARROLLOS Y COMERCIOS AD S.A DE C.V</Value>
<Value>DESARROLLOS Y COMERCIOS AD</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1214,7 +1214,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>GTP GRUPO TIRES DEL PACIFICO SA DE CV</Value>
<Value>GTP GRUPO TIRES DEL PACIFICO</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -545,7 +545,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>GTP GRUPO TIRES DEL PACIFICO SA DE CV</Value>
<Value>GTP GRUPO TIRES DEL PACIFICO</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1214,7 +1214,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>MAGSON LLANTAS Y SERVICIOS, S.A DE C.V</Value>
<Value>MAGSON LLANTAS Y SERVICIOS</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1010,7 +1010,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>MAGSON LLANTAS Y SERVICIOS, S.A DE C.V</Value>
<Value>MAGSON LLANTAS Y SERVICIOS</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1213,7 +1213,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>IMPULSORA DE SERVICIOS AUTOMOTRICES Y LLANTEROS S</Value>
<Value>IMPULSORA DE SERVICIOS AUTOMOTRICES Y LLANTEROS</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1320,7 +1320,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>IMPULSORA DE SERVICIOS AUTOMOTRICES Y LLANTEROS S</Value>
<Value>IMPULSORA DE SERVICIOS AUTOMOTRICES Y LLANTEROS</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -1214,7 +1214,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>SOHACO, S.A. DE C.V.</Value>
<Value>SOHACO</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -545,7 +545,7 @@
<Paragraph>
<TextRuns>
<TextRun>
<Value>SOHACO, S.A. DE C.V.</Value>
<Value>SOHACO</Value>
<Style>
<FontFamily>Calibri</FontFamily>
<FontWeight>Bold</FontWeight>

View File

@@ -455,7 +455,8 @@
</ajax:TabPanel>
<ajax:TabPanel ID="TabDetalleParteVariable" runat="server" HeaderText="Detalle parte variable">
<ContentTemplate>
<asp:GridView ID="GVDetalleParteVariable" HeaderStyle-CssClass="ADtr" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall GVBuscaddor"></asp:GridView>
<asp:GridView ID="GVDetalleParteVariable" HeaderStyle-CssClass="ADtr" runat="server" GridLines="None" OnRowDataBound="GVDetalleParteVariable_RowDataBound"
CssClass="table table-hover table-striped ScrollAD Widthall GVBuscaddor"></asp:GridView>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>

View File

@@ -920,6 +920,18 @@ public partial class RH_CalculoSBC : ClsPaginas
RegistraScript("$('#ModalDoctos').modal();");
}
protected void GVDetalleParteVariable_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Text = Server.HtmlDecode(e.Row.Cells[i].Text);
}
}
}
}
public class archivosD
{

View File

@@ -7491,25 +7491,20 @@ Partial Class RH_Personal
End If
End If
If continuar Then
Using onom As ClsNominas = New ClsNominas()
onom.ValidaFechaFinPersonal(CvePersonal, UsuarioActual.CveEmpresa, fecha.ToString("yyyy/MM/dd"))
If onom.DtResultados.Rows.Count > 0 Then
continuar = False
Dim strbuild As StringBuilder = New StringBuilder()
strbuild.Append("No es posible desactivar con esta fecha ya que existen asistencias posteriores a la fecha fin con nominas autorizadas, es necesario desautorizar la siguientes nominas para reintentar el proceso.")
For Each drow As DataRow In onom.DtResultados.Rows
strbuild.AppendFormat("<br/> {0}", drow("PeriodoTexto"))
Next
Alert(strbuild.ToString(), TipoMensaje.MsgAdvertencia)
End If
End Using
End If
'If continuar Then
' Using onom As ClsNominas = New ClsNominas()
' onom.ValidaFechaFinPersonal(CvePersonal, UsuarioActual.CveEmpresa, fecha.ToString("yyyy/MM/dd"))
' If onom.DtResultados.Rows.Count > 0 Then
' continuar = False
' Dim strbuild As StringBuilder = New StringBuilder()
' strbuild.Append("No es posible desactivar con esta fecha ya que existen asistencias posteriores a la fecha fin con nominas autorizadas, es necesario desautorizar la siguientes nominas para reintentar el proceso.")
' For Each drow As DataRow In onom.DtResultados.Rows
' strbuild.AppendFormat("<br/> {0}", drow("PeriodoTexto"))
' Next
' Alert(strbuild.ToString(), TipoMensaje.MsgAdvertencia)
' End If
' End Using
'End If
If continuar Then
Using objrh As New ClsRH
continuar = objrh.estatusPersonalUp(fecha, CvePersonal, estatus, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, DdlMotivoBaja.SelectedValue.ToEntero(), Txobservacionesbaja.Text)

View File

@@ -122,7 +122,14 @@ Partial Class ProductosyServicios
End Set
End Property
Private Property GeneraServicioAF As Integer
Get
Return IfNull(ViewState("GeneraServicioAF"), "-1", ViewState("GeneraServicioAF")).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("GeneraServicioAF") = value
End Set
End Property
#End Region
Private ReadOnly Property PermiteClasificacion2 As Boolean
@@ -308,6 +315,22 @@ Partial Class ProductosyServicios
LtlScripts.Text = $"<script>function setPoscicion(){{{posiciontipo}}}</script>"
If Not CvePS > 0 Then MuestraPanel(True)
If Request("GeneraServicioAF") IsNot Nothing AndAlso IsNumeric(Request("GeneraServicioAF")) AndAlso Request("GeneraServicioAF").ToEntero() = 1 Then
GeneraServicioAF = 1
TxtPS.Text = "Servicio de facturación de activos fijos"
DdlTipoPS.SelectedValueExist("1")
DdlTipoPS.Enabled = False
ChkAplicaParaVenta.Checked = True
Dim DrSAT = GlobalDTPS(UsuarioActual.CveEmpresa, SATClavePS:="84111506", AplicaParaVenta:=1).FiltroPrimero("") ', SATClavePS:=CveSATNC
DdlSATPS.SelectedValue = DrSAT("CveSATPS").ToString()
DdlSATPS.SelectedText = DrSAT("SATClaveProductoServicio").ToString()
End If
End If
End Sub
@@ -1403,6 +1426,7 @@ Partial Class ProductosyServicios
Dim ObjProductosServicios As New ClsProductosServicios()
Dim ObjInv As New ClsInventarios(ObjProductosServicios.IniciaTransacSQL())
Dim ObjEmpresas As New ClsSisEmpresas(ObjProductosServicios.IniciaTransacSQL())
Dim TieneError = False
Dim AccionJS = ""
@@ -1435,6 +1459,7 @@ Partial Class ProductosyServicios
TxtFechaVigenciaRSCO.Text = "01/01/1900"
End If
If CvePS = -1 Then
Dim PSS As String = TxtPS.Text.Trim.Replace("|", "")
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then PSS = PSS.ToUpper
@@ -1478,6 +1503,24 @@ Partial Class ProductosyServicios
TieneError = GuardarProductoEnFranquicia(ObjProductosServicios, PSS, CveMetodoInv, EsPaquete, True)
End If
If GeneraServicioAF = 1 Then
Dim RowFuncionalidad380 As DataRow = Nothing
If ObjEmpresas.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then
RowFuncionalidad380 = ObjEmpresas.DtResultados.FiltroPrimero("CveFuncionalidad = 380")
Else
TieneError = True
End If
'SI NO TIENE LA FUNCIONALIDAD 380 GUARDAR LA FUNCIONALIDAD
If Not TieneError AndAlso RowFuncionalidad380 Is Nothing Then
If Not ObjEmpresas.AddUpdateEmpresaFuncionalidades(UsuarioActual.CveEmpresa, 380, $"{Me.CvePS}") Then
TieneError = True
End If
End If
End If
Else
TieneError = True
Alert("Ocurrió un Error al agregar el Producto o Servicio. Por favor vuelva a intentar.", TipoMensaje.MsgError)
@@ -1595,7 +1638,7 @@ Partial Class ProductosyServicios
If Not TieneError Then
ObjProductosServicios.Commit()
Alert("El Producto/Servicio se guardo correctamente.", TipoMensaje.MsgInformacion, AccionJS)
Alert("El Producto/Servicio se guardo correctamente." + If(GeneraServicioAF = 1, " Recargue la pagina de ventas para poder utilizar el servicio", ""), TipoMensaje.MsgInformacion, AccionJS)
Else
ObjProductosServicios.RollBack()
End If

View File

@@ -103,7 +103,7 @@
<div class="col-md-12">
<asp:GridView ID="GvRefacturaciones" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron solicitudes de cancelación"
DataKeyNames="CveVenta,CveCliente,SerieFolio,Folio,TipoDocto,Nombre,FolioFiscal,Total,SubTotal,CveEstatusFactura,RFCReceptor,CveEstatusRefacturacion,CveVentaSustitucion,TotalSustitucion,RFCReceptorSustitucion,CveClienteSustitucion,FolioFiscalSustitucion,SerieFolioSustitucion"
DataKeyNames="CveVenta,CveCliente,SerieFolio,Folio,TipoDocto,Nombre,FolioFiscal,Total,SubTotal,CveEstatusFactura,RFCReceptor,CveEstatusRefacturacion,CveVentaSustitucion,TotalSustitucion,RFCReceptorSustitucion,CveClienteSustitucion,FolioFiscalSustitucion,SerieFolioSustitucion,CveEstatusFacturaSustitucion"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%" OnRowDataBound="GvRefacturaciones_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Cliente" DataField="Nombre" ItemStyle-Width="25%" />

View File

@@ -187,12 +187,13 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
int CveMotivoCancelacion = -1;
int CveEstatusRefacturacion = GvRow.DataKey("CveEstatusRefacturacion").ToEntero();
int CveEstatusFacturaSustitucion = GvRow.DataKey("CveEstatusFacturaSustitucion").ToEntero();
//SI NO SE PUDO CANCELAR, CANCELAR CON EL 02
if (CveEstatusRefacturacion == 4)
//SI NO SE PUDO CANCELAR O LA FACTURA NUEVA FUE CANCELADA, CANCELAR CON EL 02
if (CveEstatusRefacturacion == 4 || CveEstatusFacturaSustitucion == 5)
{
FolioSustitucion = "";
//CUANDO LAS REFACTURACIONES NO SE PUEDEN CANCELAR, DEBE SER CANCELADO CON EL MOTIVO 02
FolioSustitucion = "";
CveMotivoCancelacion = get_GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveSATMotivoCancelacion: 2).FiltroPrimeroValor("CveMotivoCancelacion").ToEntero();
}
else

View File

@@ -1065,7 +1065,7 @@
</ContentTemplate>
</asp:UpdatePanel>
</th>
<th style="width:120px;">
<th style="width: 120px;">
<div class="row" id="DivPrecioLista" runat="server" visible="false">
<div class="col-md-12">
<asp:DropDownList ID="DdlPrecioLista" runat="server" Width="100%" CssClass="select2me" DataValueField="CvePrecioLista" DataTextField="PrecioLista" OnSelectedIndexChanged="DdlPrecioLista_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
@@ -3114,26 +3114,129 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabVentaAF" runat="server" HeaderText="Venta de Activos Fijos" Enabled="False">
<ajax:TabPanel ID="TabVentaAF" runat="server" HeaderText="Activos Fijos">
<ContentTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<asp:UpdatePanel ID="UpActivosFijos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table border="0" cellpadding="0" cellspacing="0" class="TextTab">
<tr valign="top">
<td>
<div>
<fieldset>
<legend><b>Venta de Activos Fijos</b></legend>
<table border="0">
<tr align="left">
<td></td>
</tr>
</table>
</fieldset>
<div class="row" id="DivAgregarAF" runat="server" visible="false">
<div class="col-md-12">
<div class="portlet light xspadding bordered whitoutcol" style="width: 100%">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Venta de Activos Fijos</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
</td>
</tr>
</table>
<div class="portlet-body ">
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT portletfiltrostitlee">
<div class="tools">
<asp:UpdatePanel runat="server" style="display: inline-block;">
<ContentTemplate>
<asp:Button ID="BtnFiltrarAF" runat="server" Text="Filtrar" class="btn btn-primary" OnClick="BtnFiltrarAF_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="titlefiltros caption">
<div class="row">
<div class="col-md-1 truncate">Tipo Activo Fijo:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlTipoActivoFiltro" CssClass="form-control input-sm select2me" Width="100%" runat="server" DataTextField="TipoActivoFijo" DataValueField="CveTipoActivoFijo" OnSelectedIndexChanged="DdlTipoActivo_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">SubTipo Activo Fijo:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubTipoActivoFiltro" CssClass="form-control input-sm select2me" Width="100%" runat="server" DataTextField="SubTipoActivoFijo" DataValueField="CveSubTipoActivoFijo"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Sub Proyecto:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyectoFiltroAF" CssClass="form-control input-sm select2me" Width="100%" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
<div class="row form-group">
<div class="col-md-1">
Concepto:
</div>
<div class="col-md-3">
<asp:DropDownList ID="DdlPSAF" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" Width="100%" CssClass="select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVPSAF" runat="server" InitialValue="-1" ControlToValidate="DdlPSAF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Concepto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpValidarAF"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEPSAF" runat="server" HighlightCssClass="vco" TargetControlID="RFVPSAF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-3 text-center">
<asp:HyperLink ID="LnkGenerarPSAF" runat="server" Visible="false" Target="_blank" Text="Crear servicio de facturación de activos fijos" CssClass="btn btn-sm btn-circle btn-primary" NavigateUrl="/Ventas/ProductosServicios.aspx?GeneraServicioAF=1"></asp:HyperLink>
</div>
<div class="col-md-4"></div>
<div class="col-md-1 text-center">
<asp:Button ID="BtnGuardarAF" runat="server" CssClass="btn btn-success" Text="Aceptar" OnClick="BtnGuardarAF_Click" ValidationGroup="GrpValidarAF" />
</div>
</div>
<div class="rowpadding">
<asp:GridView ID="GvVentaAF" runat="server" GridLines="None" DataKeyNames="CveActivoFijo,Descripcion,DepreciacionAcumulada,MOI,Observaciones" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" data-heighterror="600" EmptyDataText="No se encontraron registros">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="5%" ItemStyle-CssClass="NoClick">
<HeaderTemplate>
<asp:CheckBox runat="server" ID="chkSelectAllAF" CssClass="ChkAllClickAF" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkAF" CssClass="ChkAllEvtAF" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataTextField="NoSerie" DataNavigateUrlFormatString="/AF/AF.aspx?CveActivoFijo={0}" DataNavigateUrlFields="CveActivoFijo" Target="_blank" ItemStyle-Width="20%" HeaderText="No. Serie" ItemStyle-HorizontalAlign="Left" />
<asp:HyperLinkField DataTextField="Descripcion" DataNavigateUrlFormatString="/AF/AF.aspx?CveActivoFijo={0}" DataNavigateUrlFields="CveActivoFijo" Target="_blank" ItemStyle-Width="25%" HeaderText="Activo fijo" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="MOI" ItemStyle-Width="15%" HeaderText="Valor de compra" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField DataField="DepreciacionAcumulada" ItemStyle-Width="15%" HeaderText="Depreciación" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:TemplateField ItemStyle-HorizontalAlign="Right" ItemStyle-Width="20%" HeaderText="Importe de venta">
<ItemTemplate>
<asp:TextBox ID="TxtPrecioAF" runat="server" CausesValidation="true" lang="nb" Text="0.00" MaxLength="12" Width="100%" Height="24px" CssClass="form-control input-sm"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FTBEPrecioAF" runat="server" TargetControlID="TxtPrecioAF" FilterType="Custom, Numbers" ValidChars="." />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
<div class="row" id="DivVentasAF" runat="server" visible="false">
<div class="col-md-12">
<div class="portlet light xspadding bordered whitoutcol" style="width: 100%">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Venta de Activos Fijos</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body ">
<div class="rowpadding">
<asp:GridView ID="GvAF" runat="server" GridLines="None" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" data-heighterror="600" EmptyDataText="No se encontraron registros">
<Columns>
<asp:HyperLinkField DataTextField="NoSerie" DataNavigateUrlFormatString="/AF/AF.aspx?CveActivoFijo={0}" DataNavigateUrlFields="CveActivoFijo" ItemStyle-Width="20%" Target="_blank" HeaderText="No. Serie" ItemStyle-HorizontalAlign="Left" />
<asp:HyperLinkField DataTextField="Descripcion" DataNavigateUrlFormatString="/AF/AF.aspx?CveActivoFijo={0}" DataNavigateUrlFields="CveActivoFijo" ItemStyle-Width="25%" Target="_blank" HeaderText="Activo fijo" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Total" ItemStyle-Width="15%" HeaderText="Valor de venta" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
@@ -9515,6 +9618,8 @@
step: 30
});
$('body').on('click', '.ChkAllClickAF input', function () { $(".ChkAllEvtAF input").not(this).prop('checked', $('.ChkAllClickAF input').is(':checked')); });
if(HdnCargarInventario.value == 'True'){
$("#TabAlmacen_tab .ajax__tab_inner").click(function () {
CargaMovimientosInventario();

View File

@@ -2736,6 +2736,9 @@ Partial Class Ventas
TmpDT.Columns.Add("CveMarca", GetType(Integer))
TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
TmpDT.Columns.Add("PrecioLista", GetType(String))
TmpDT.Columns.Add("CveActivoFijo", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind()
@@ -2763,6 +2766,9 @@ Partial Class Ventas
TmpDT.Columns.Add("CveMarca", GetType(Integer))
TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
TmpDT.Columns.Add("PrecioLista", GetType(String))
TmpDT.Columns.Add("CveActivoFijo", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind()
@@ -3291,7 +3297,12 @@ Partial Class Ventas
DivAddUMPyME.Visible = False
End If
TabVentaAF.Visible = False
TabVentaAF.Visible = (UsuarioActual.CveRol = 1)
DivAgregarAF.Visible = (CveVenta <= 0 AndAlso UsuarioActual.CveRol = 1)
If DivAgregarAF.Visible Then
CargaDatosAF()
End If
'CARGA VALORES INICIALES PARA AGREGAR PS DESDE MODAL
CargaMetodosPSModal()
@@ -4635,8 +4646,12 @@ Partial Class Ventas
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
TmpDT.Columns.Add("TieneProntoPago", GetType(String))
TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
End If
CargaAFVenta()
'CargaFirmas
If ObjVentas.GetVentasFirmas(CveVenta) Then
If ObjVentas.DtResultados.Rows.Count > 0 Then
@@ -7658,12 +7673,20 @@ Partial Class Ventas
dtt = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
DdlSubProyectoDatos.DataSource = dtt.FiltraParametros("EsSucursal = True ")
DdlSubProyectoDatos.DataBind()
DdlSubProyectoCobranza.DataSource = dtt.FiltraParametros("EsSucursal = True ")
DdlSubProyectoCobranza.DataBind()
DdlSubProyectoEjecucion.DataSource = dtt.FiltraParametros("EsSucursal = True ")
DdlSubProyectoEjecucion.DataBind()
DdlSubProyectoPyME.DataSource = dtt
DdlSubProyectoPyME.DataBind()
DdlSubProyectoFiltroAF.DataSource = dtt
DdlSubProyectoFiltroAF.DataBind()
DdlSubProyectoFiltroAF.Items.Insert(0, New ListItem("Todos", "-1"))
dtt.Dispose()
End Sub
Private Sub CargaClasificaciones()
@@ -13337,7 +13360,7 @@ Partial Class Ventas
Row("PU").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("ImporteIVA").ToString().ToDouble, Math.Round((Row("Total").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)))), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), TiempoEntrega:=Row("TiempoEntrega").ToString(), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(),
CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(), IEPS:=Row("ImporteIEPS").ToString().ToDouble, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString().ToEntero(), ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble,
PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero()) Then
PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero(), CveActivoFijo:=Row("CveActivoFijo").ToString().ToEntero()) Then
ErrorList.Add("Ocurrió un error al agregar un Producto o Servicio a la Factura.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
Exit For
Else
@@ -13914,6 +13937,25 @@ Partial Class Ventas
IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
End If
IdCtaContableCliente = IdCtaContable
Dim DtAF As DataTable = TmpDT.FiltraParametros("CveActivoFijo > 0")
If DtAF.Rows.Count > 0 Then
For Each RowAF As DataRow In DtAF.FiltraParametros("", "", {"CveActivoFijo", "Obs"}).Rows
Dim ImporteDepreciado As Decimal = DtAF.SUMD("AFDepreciacion", $"CveActivoFijo = {RowAF("CveActivoFijo")}").RoundSQL(2)
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, ImporteDepreciado, Referencia, 271, $"Depreciación {RowAF("Obs")}", FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(ImporteDepreciado).RoundSQL, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
End If
'MARCAR EL ACTIVO FIJO COMO VENDEDIDO
If Not ErrorPrepoliza AndAlso RowAF("CveActivoFijo").ToString().ToEntero() > 0 Then
If Not ObjVentas.UpdateEstatusAFVendido(RowAF("CveActivoFijo").ToString().ToEntero(), UsuarioActual.CveEmpresa, 5) Then
ErrorPrepoliza = True
End If
End If
Next
End If
End If
'Case 7 'descuentos
@@ -14775,12 +14817,12 @@ Partial Class Ventas
CveVentaAmortizacionAplicar = ObjFactura.CveVenta
End If
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"})
DT = TmpDTDetalle.FiltraParametros($"CvePS <> {CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA", "CveActivoFijo"})
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
importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1} AND PorcentajeIVA = {2} AND ISNULL(CveActivoFijo,-1) = {3}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"), If(Row2("CveActivoFijo").ToString().ToEntero() > 0, Row2("CveActivoFijo").ToString().ToEntero(), -1))).ToString().ToDecimal()) * ValorMultiplicador
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString().ToEntero() > 0, GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString()}"), "")} - {If(Row2("CveSubProyecto").ToString().ToEntero() > 0, GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString()}"), "Sin SubProyecto Asignado")}"
@@ -14796,6 +14838,26 @@ Partial Class Ventas
If importeMovimiento <> 0 Then
If Row2("CveActivoFijo").ToString().ToEntero() > 0 Then
Dim DtAF As DataTable = TmpDT.FiltraParametros($"CveActivoFijo = {Row2("CveActivoFijo")}")
If DtAF.Rows.Count > 0 Then
For Each RowAF As DataRow In DtAF.FiltraParametros("", "", {"CveActivoFijo", "Obs"}).Rows
Dim ImporteCosto As Decimal = DtAF.SUMD("AFValorInicial", $"CveActivoFijo = {RowAF("CveActivoFijo")}").RoundSQL(2)
Dim ImporteDepreciacion As Decimal = DtAF.SUMD("AFDepreciacion", $"CveActivoFijo = {RowAF("CveActivoFijo")}").RoundSQL(2)
Dim ImporteC4 As Decimal = importeMovimiento
Dim ImporteC4MX As Decimal = importeMX
importeMovimiento = ImporteC4 - ImporteCosto + ImporteDepreciacion
importeMX = ImporteC4MX - ImporteCosto + ImporteDepreciacion
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, ImporteCosto, Referencia, 49, $"COSTO {RowAF("Obs")}", FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=(ImporteCosto).RoundSQL, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveActivoFijo:=Row2("CveActivoFijo").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then
ErrorPrepoliza = True
End If
Next
End If
End If
If IdCtaContable <= 0 Then
CuentasContablesInvalidas.Append("<br>" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString() + GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString()}"))
idCuentaContabilizacion = 0
@@ -19032,7 +19094,8 @@ Partial Class Ventas
Optional EntregaDirecta As Integer = 0, Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0, Optional CuentaPredial As String = "",
Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False,
Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "") As Boolean
Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "",
Optional CveActivoFijo As Integer = -1, Optional AFDepreciacion As Decimal = 0D, Optional AFValorInicial As Decimal = 0D) As Boolean
Dim Retorno As Boolean = False
Try
@@ -19128,6 +19191,10 @@ Partial Class Ventas
End If
End If
If CveUM <= 0 Then
CveUM = DrPS("CveUnidadMedida").ToString().ToEntero()
End If
Row("Cantidad") = Cantidad
Row("CveUM") = CveUM
Row("UM") = DrPS("UnidadMedida")
@@ -19291,6 +19358,11 @@ Partial Class Ventas
Row("CvePrecioLista") = CvePrecioLista
Row("PrecioLista") = PrecioLista
Row("CveActivoFijo") = CveActivoFijo
Row("AFDepreciacion") = AFDepreciacion
Row("AFValorInicial") = AFValorInicial
If UsuarioActual.CveEmpresa.Contiene(119, 13, 83) Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
@@ -19528,6 +19600,10 @@ Partial Class Ventas
TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
TmpDT.Columns.Add("PrecioLista", GetType(String))
TmpDT.Columns.Add("CveActivoFijo", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
TmpDT.Columns("EsOutSourcing").DefaultValue = False
TmpDT.Columns("EsCargo").DefaultValue = False
@@ -22254,7 +22330,7 @@ Partial Class Ventas
Row("PU").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDouble, Math.Round((Row("Total").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6),
Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(),
CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=If(DtPromociones IsNot Nothing, DtPromociones.FiltroPrimeroValor("CvePromocionDetalle", $"CvePS={Row("CvePS").ToString()}").ToEntero(), -1),
ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero()) Then
ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero(), CveActivoFijo:=Row("CveActivoFijo").ToString().ToEntero()) Then
OcurrioError = True
Exit For
Else
@@ -29986,6 +30062,9 @@ Partial Class Ventas
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
TmpDT.Columns.Add("TieneProntoPago", GetType(String))
TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
'TmpDT.Columns.Add("CveActivoFijo", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
End If
Dim FechaFactura As DateTime = Now
@@ -35149,6 +35228,8 @@ Partial Class Ventas
TmpDT = ObjVentas.DtResultados
TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
End If
If ObjVentas.GetVenta(CveVentaNC, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) Then
@@ -35309,6 +35390,10 @@ Partial Class Ventas
TmpDT.Columns.Add("CveMarca", GetType(Integer))
TmpDT.Columns.Add("CvePrecioLista", GetType(Integer))
TmpDT.Columns.Add("PrecioLista", GetType(String))
TmpDT.Columns.Add("CveActivoFijo", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
Return TmpDT
End Function
Private Function InicializaDTVentasNCProntoPago() As DataTable
@@ -36773,5 +36858,160 @@ Partial Class Ventas
End If
End Sub
#Region " A C T I V O S - F I J O S"
Protected Sub CargaDatosAF()
CargarTipoActivoFijo()
CargaDdlAF()
DdlTipoActivo_SelectedIndexChanged(DdlTipoActivoFiltro, EventArgs.Empty)
End Sub
Protected Sub CargarTipoActivoFijo()
DdlTipoActivoFiltro.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo")
DdlTipoActivoFiltro.DataBind()
DdlTipoActivoFiltro.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub DdlTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlSubTipoActivoFiltro.Items.Clear()
DdlSubTipoActivoFiltro.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoActivoFiltro.SelectedValue), "SubTipoActivoFijo")
DdlSubTipoActivoFiltro.DataBind()
DdlSubTipoActivoFiltro.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
Protected Sub BtnFiltrarAF_Click(sender As Object, e As EventArgs)
Using ObjAF As New ClsAF
If ObjAF.GetRepActivosFijosDepreciacion(UsuarioActual.CveEmpresa, Now, Depreciados:=1, CveTipoAF:=DdlTipoActivoFiltro.SelectedValue.ToEntero(), CveSubTipoAF:=DdlSubTipoActivoFiltro.SelectedValue.ToEntero(), CveSubProyecto:=DdlSubProyectoFiltroAF.SelectedValue.ToEntero()) Then
GvVentaAF.DataSource = ObjAF.DtResultados.FiltraParametros("CveActivoFijo > 0 AND CveEstadoActivoFijo <> 5")
End If
End Using
GvVentaAF.DataBind()
UpActivosFijos.Update()
End Sub
Private Sub CargaAFVenta()
If CveVenta > 0 AndAlso TmpDT IsNot Nothing AndAlso TmpDT.COUNT("CveActivoFijo", "CveActivoFijo > 0") > 0 Then
DivVentasAF.Visible = True
Using ObjAF As New ClsAF
If ObjAF.GetActivosFijosVenta(Me.CveVenta, UsuarioActual.CveEmpresa) Then
GvAF.DataSource = ObjAF.DtResultados
End If
End Using
GvAF.DataBind()
UpActivosFijos.Update()
End If
End Sub
Public Sub CargaDdlAF()
Dim strAF = UsuarioActual.Empresa.Funcionalidad(380)
Dim CvePSAF As Integer = -1
If String.IsNullOrEmpty(strAF) Then
Dim RowFuncionalidad380 As DataRow = Nothing
Using ObjEmpresas As New ClsSisEmpresas
If ObjEmpresas.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then
RowFuncionalidad380 = ObjEmpresas.DtResultados.FiltroPrimero("CveFuncionalidad = 380")
End If
End Using
If RowFuncionalidad380 IsNot Nothing Then
CvePSAF = RowFuncionalidad380("Valor").ToString().ToEntero()
End If
Else
CvePSAF = strAF.ToEntero()
End If
If CvePSAF > 0 Then
Dim dtt = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSAF, AplicaParaVenta:=1) ', SATClavePS:=CveSATNC
If dtt IsNot Nothing Then
DdlPSAF.DataSource = dtt
DdlPSAF.DataBind()
End If
Else
LnkGenerarPSAF.Visible = True
DdlPSAF.Items.Insert(0, New ListItem("Seleccione", "-1"))
End If
End Sub
Protected Sub BtnGuardarAF_Click(sender As Object, e As EventArgs)
Dim Cantidad As Decimal = 1
Dim CvePS = DdlPSAF.SelectedValue.ToEntero()
Dim CveUnidadMedida As Integer = -1
Dim UnidadMedida As String = ""
Dim CveClasificacion As Integer = -1
Dim Clasificacion As String = ""
Dim Obs As String = ""
Dim PrecioVenta As Decimal = 0.0D
Dim CveProyecto As Integer = -1
Dim Proyecto As String = ""
Dim CveSubProyecto As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero()
Dim SubProyecto As String = DdlSubProyectoDatos.SelectedItem.Text
If CveSubProyecto > 0 Then
Dim RowSP = GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("")
If RowSP IsNot Nothing Then
CveProyecto = RowSP("CveProyecto").ToString().ToEntero()
Proyecto = RowSP("Proyecto").ToString()
End If
End If
TmpDT.Rows.Clear()
Dim CveAF As Integer = -1
Dim AFDepreciacion As Decimal = 0
Dim AFValorInicial As Decimal = 0
For Each GvRow As GridViewRow In GvVentaAF.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
'LIMPIA VARIABLES
Obs = ""
CveAF = -1
AFDepreciacion = 0
AFValorInicial = 0
PrecioVenta = 0D
If GvRow.FCCheckBox("chkAF").Checked Then
Obs = GvRow.DataKey("Observaciones")
CveAF = GvRow.DataKey("CveActivoFijo").ToEntero()
AFDepreciacion = GvRow.DataKey("DepreciacionAcumulada").ToDecimal()
AFValorInicial = GvRow.DataKey("MOI").ToDecimal()
PrecioVenta = GvRow.FCTextBox("TxtPrecioAF").Text.ToDecimal()
If PrecioVenta < 1D Then
Alert($"El activo fijo '{GvRow.DataKey("Descripcion")}' debe tener un importe para venta.", TipoMensaje.MsgAdvertencia)
TmpDT.Rows.Clear()
Exit Sub
End If
AgregarProductoServicio(Cantidad, CveUnidadMedida, UnidadMedida, CveClasificacion, Clasificacion, CvePS, "", Obs, PrecioVenta, 0,
CveProyecto, Proyecto, CveSubProyecto, SubProyecto, CveActivoFijo:=CveAF, AFDepreciacion:=AFDepreciacion, AFValorInicial:=AFValorInicial)
End If
End If
Next
DdlMoneda.SelectedValue = "1"
DdlMoneda.Enabled = False
CalculaTotalesVenta()
Tab.ActiveTabIndex = 0
Updatetabs.Update()
End Sub
End Class