|
|
|
|
@@ -2053,6 +2053,10 @@ Partial Class Ventas
|
|
|
|
|
thPoliza2.Visible = True
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso UsuarioActual.CveUsuario = 100 Then
|
|
|
|
|
DivPenalizacion.Visible = True
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DdlSATPS.setEsWebService(True) : DdlSATPS.Attributes.Add("data-metodo", "getpssat")
|
|
|
|
|
DivPSSAT.Visible = True
|
|
|
|
|
@@ -23892,263 +23896,278 @@ Partial Class Ventas
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Private Sub AplicarNC(CvePS As Integer, Optional NCDescuento As Boolean = False, Optional EsNCAmortizacion As Boolean = False, Optional AplicaImpuestosLocales As Boolean = True, Optional AplicaNuevoDocumento As Boolean = False, Optional AplicoNCFacturaActual As Boolean = False)
|
|
|
|
|
Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("")
|
|
|
|
|
If DrPS Is Nothing Then
|
|
|
|
|
Alert("Ocurrió un error al cargar la información del producto. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
|
|
|
|
|
Exit Sub
|
|
|
|
|
Else
|
|
|
|
|
'VALIDA CLAVES SAT
|
|
|
|
|
If DrPS("SATClavePS").ToString() = "" Then
|
|
|
|
|
Alert($"El concepto <b>{DrPS("Codigo").ToString()}-{DrPS("PS").ToString()}</b> no cuenta con producto SAT. Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
|
|
|
|
|
Try
|
|
|
|
|
Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("")
|
|
|
|
|
If DrPS Is Nothing Then
|
|
|
|
|
Alert("Ocurrió un error al cargar la información del producto. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
|
|
|
|
|
Exit Sub
|
|
|
|
|
Else
|
|
|
|
|
'VALIDA CLAVES SAT
|
|
|
|
|
If DrPS("SATClavePS").ToString() = "" Then
|
|
|
|
|
Alert($"El concepto <b>{DrPS("Codigo").ToString()}-{DrPS("PS").ToString()}</b> no cuenta con producto SAT. Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
Exit Sub
|
|
|
|
|
End If
|
|
|
|
|
If DrPS("SATClaveUnidadMedida").ToString() = "" Then
|
|
|
|
|
Alert($"El concepto <b>{DrPS("Codigo").ToString()}-{DrPS("PS").ToString()}</b> no cuenta con Unidad Medida SAT. Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
Exit Sub
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
If DrPS("SATClaveUnidadMedida").ToString() = "" Then
|
|
|
|
|
Alert($"El concepto <b>{DrPS("Codigo").ToString()}-{DrPS("PS").ToString()}</b> no cuenta con Unidad Medida SAT. Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
Exit Sub
|
|
|
|
|
|
|
|
|
|
If Not AplicaImpuestosLocales Then
|
|
|
|
|
If TmpDTImpuestos IsNot Nothing Then
|
|
|
|
|
TmpDTImpuestos.Rows.Clear()
|
|
|
|
|
GvImpuestosLocales2.DataSource = TmpDTImpuestos
|
|
|
|
|
GvImpuestosLocales2.DataBind()
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
If Not AplicaImpuestosLocales Then
|
|
|
|
|
If TmpDTImpuestos IsNot Nothing Then
|
|
|
|
|
TmpDTImpuestos.Rows.Clear()
|
|
|
|
|
GvImpuestosLocales2.DataSource = TmpDTImpuestos
|
|
|
|
|
GvImpuestosLocales2.DataBind()
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
Me.AplicoNCFacturaActual = AplicoNCFacturaActual
|
|
|
|
|
|
|
|
|
|
Me.AplicoNCFacturaActual = AplicoNCFacturaActual
|
|
|
|
|
'CREAMOS DT PARA UTILIZAR AL TIMBRAR
|
|
|
|
|
InicializaDTVentasNC()
|
|
|
|
|
|
|
|
|
|
'CREAMOS DT PARA UTILIZAR AL TIMBRAR
|
|
|
|
|
InicializaDTVentasNC()
|
|
|
|
|
Dim DtImpuestos As New DataTable
|
|
|
|
|
DtImpuestos.Columns.Add("ImportePU", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteTotal", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteRetIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeRetISR", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteRetISR", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeIEPS", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteIEPS", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("CveSubProyecto", GetType(Integer))
|
|
|
|
|
DtImpuestos.AcceptChanges()
|
|
|
|
|
Dim AcumuladoNC As Decimal = 0
|
|
|
|
|
|
|
|
|
|
Dim DtImpuestos As New DataTable
|
|
|
|
|
DtImpuestos.Columns.Add("ImportePU", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteTotal", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteRetIVA", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeRetISR", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteRetISR", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("PorcentajeIEPS", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("ImporteIEPS", GetType(Decimal))
|
|
|
|
|
DtImpuestos.Columns.Add("CveSubProyecto", GetType(Integer))
|
|
|
|
|
DtImpuestos.AcceptChanges()
|
|
|
|
|
Dim AcumuladoNC As Decimal = 0
|
|
|
|
|
Dim DtImpuestosBonificacion As DataTable = DtImpuestos.Copy()
|
|
|
|
|
|
|
|
|
|
Dim DtImpuestosBonificacion As DataTable = DtImpuestos.Copy()
|
|
|
|
|
If Not AplicaNuevoDocumento Then
|
|
|
|
|
If AplicaNCMasiva Then
|
|
|
|
|
If NCDescuento Then
|
|
|
|
|
For Each RNC In ListaNCDesc
|
|
|
|
|
DtImpuestos.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero()), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
|
|
|
|
|
If Not AplicaNuevoDocumento Then
|
|
|
|
|
If AplicaNCMasiva Then
|
|
|
|
|
If NCDescuento Then
|
|
|
|
|
For Each RNC In ListaNCDesc
|
|
|
|
|
DtImpuestos.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero()), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
|
|
|
|
|
'SI HAY RNC DE BONIFICACION SE AGREGAN
|
|
|
|
|
If ListaNCBonificacion IsNot Nothing AndAlso ListaNCBonificacion.Count > 0 Then
|
|
|
|
|
For Each RNC In ListaNCBonificacion
|
|
|
|
|
DtImpuestosBonificacion.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero()), True, MissingSchemaAction.Ignore)
|
|
|
|
|
'SI HAY RNC DE BONIFICACION SE AGREGAN
|
|
|
|
|
If ListaNCBonificacion IsNot Nothing AndAlso ListaNCBonificacion.Count > 0 Then
|
|
|
|
|
For Each RNC In ListaNCBonificacion
|
|
|
|
|
DtImpuestosBonificacion.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero()), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
Dim NumVentasAplicar As Integer = 1
|
|
|
|
|
For Each Gvr As GridViewRow In GvCxC.Rows
|
|
|
|
|
If Gvr.FCCheckBox("ChkCxC").Checked Then
|
|
|
|
|
DtImpuestos.Merge(CargaDtImpuestosNC(Gvr.DataKey("CveVenta").ToString().ToEntero(), Gvr.FCTextBox("TxtImporte").Text.ToString().ToDecimal, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero()), True, MissingSchemaAction.Ignore)
|
|
|
|
|
'CARGA FACTURA A LA CUAL SE APLICA LA NC
|
|
|
|
|
AcumuladoNC += Gvr.FCTextBox("TxtImporte").Text.ToString().ToDecimal
|
|
|
|
|
CargaNCDT(Gvr.DataKey("CveVenta").ToString().ToEntero(), Gvr.FCTextBox("TxtImporte").Text.ToString().ToDecimal)
|
|
|
|
|
If UsuarioActual.CveEmpresa = 140 AndAlso NumVentasAplicar = 1 Then
|
|
|
|
|
DdlMetodoPago33.Enabled = True
|
|
|
|
|
DdlMetodoPago33.SelectedValueExist(Gvr.DataKey("CveMetodoPago33").ToString())
|
|
|
|
|
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
|
|
|
|
|
DdlFormaPago33.Enabled = True
|
|
|
|
|
DdlFormaPago33.SelectedValueExist(Gvr.DataKey("CveFormaPago33").ToString())
|
|
|
|
|
End If
|
|
|
|
|
NumVentasAplicar += 1
|
|
|
|
|
End If
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
DtImpuestos = CargaDtImpuestosNC(CveVenta, TxtNCImporte.Text.Trim.ToDecimal, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero())
|
|
|
|
|
|
|
|
|
|
For Each Gvr As GridViewRow In GvCxC.Rows
|
|
|
|
|
If Gvr.FCCheckBox("ChkCxC").Checked Then
|
|
|
|
|
DtImpuestos.Merge(CargaDtImpuestosNC(Gvr.DataKey("CveVenta").ToString().ToEntero(), Gvr.FCTextBox("TxtImporte").Text.ToString().ToDecimal, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero()), True, MissingSchemaAction.Ignore)
|
|
|
|
|
'CARGA FACTURA A LA CUAL SE APLICA LA NC
|
|
|
|
|
AcumuladoNC += Gvr.FCTextBox("TxtImporte").Text.ToString().ToDecimal
|
|
|
|
|
CargaNCDT(Gvr.DataKey("CveVenta").ToString().ToEntero(), Gvr.FCTextBox("TxtImporte").Text.ToString().ToDecimal)
|
|
|
|
|
If EsNCAmortizacion Then
|
|
|
|
|
If DtAnticipoAmortizacion Is Nothing Then
|
|
|
|
|
InicializaDTAnticiposAmortizacion()
|
|
|
|
|
End If
|
|
|
|
|
Dim PorcentajeAplicado As Decimal = (TxtNCPorcentaje.Text.ToDecimal / 100D)
|
|
|
|
|
|
|
|
|
|
Dim RowAnticipo As DataRow = DtAnticipoAmortizacion.NewRow
|
|
|
|
|
RowAnticipo("CveVenta") = Me.CveVenta
|
|
|
|
|
RowAnticipo("Importe") = TxtNCImporte.Text.Trim.ToDecimal
|
|
|
|
|
RowAnticipo("SaldoAnticipo") = SaldoAnticipo * PorcentajeAplicado
|
|
|
|
|
|
|
|
|
|
DtAnticipoAmortizacion.Rows.Add(RowAnticipo)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
For Each RNC In ListaRemisionesNC
|
|
|
|
|
DtImpuestos.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero(), AplicaNCUsado:=(UsuarioActual.CveEmpresa = 140)), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
For Each RNC In ListaNCBonificacion
|
|
|
|
|
DtImpuestosBonificacion.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero(), AplicaNCUsado:=(UsuarioActual.CveEmpresa = 140)), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim query = From dr In DtImpuestos
|
|
|
|
|
Group By PorcentajeIVA = dr("PorcentajeIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetIVA = dr("PorcentajeRetIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetISR = dr("PorcentajeRetISR").ToString().ToDecimal,
|
|
|
|
|
PorcentajeIEPS = dr("PorcentajeIEPS").ToString().ToDecimal
|
|
|
|
|
Into x = Group
|
|
|
|
|
Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal),
|
|
|
|
|
ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal),
|
|
|
|
|
ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA,
|
|
|
|
|
ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA,
|
|
|
|
|
ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR,
|
|
|
|
|
ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS,
|
|
|
|
|
PorcentajeIVA = PorcentajeIVA,
|
|
|
|
|
PorcentajeRetIVA = PorcentajeRetIVA,
|
|
|
|
|
PorcentajeRetISR = PorcentajeRetISR,
|
|
|
|
|
PorcentajeIEPS = PorcentajeIEPS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim queryBonificacion = From dr In DtImpuestosBonificacion
|
|
|
|
|
Group By PorcentajeIVA = dr("PorcentajeIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetIVA = dr("PorcentajeRetIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetISR = dr("PorcentajeRetISR").ToString().ToDecimal,
|
|
|
|
|
PorcentajeIEPS = dr("PorcentajeIEPS").ToString().ToDecimal
|
|
|
|
|
Into x = Group
|
|
|
|
|
Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal),
|
|
|
|
|
ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal),
|
|
|
|
|
ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA,
|
|
|
|
|
ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA,
|
|
|
|
|
ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR,
|
|
|
|
|
ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS,
|
|
|
|
|
PorcentajeIVA = PorcentajeIVA,
|
|
|
|
|
PorcentajeRetIVA = PorcentajeRetIVA,
|
|
|
|
|
PorcentajeRetISR = PorcentajeRetISR,
|
|
|
|
|
PorcentajeIEPS = PorcentajeIEPS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim DrSubProyecto = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, -1).FiltroPrimero("")
|
|
|
|
|
|
|
|
|
|
If DrSubProyecto Is Nothing Then
|
|
|
|
|
Alert("Ocurrió un error al cargar la información de centro de costos. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
|
|
|
|
|
Exit Sub
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
DtImpuestos = query.QueryToDataTable(False)
|
|
|
|
|
DtImpuestosBonificacion = queryBonificacion.QueryToDataTable(False)
|
|
|
|
|
|
|
|
|
|
If Not NCDescuento Then
|
|
|
|
|
LimpiaDocumentoNC()
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Dim CveSubProyecto = DrSubProyecto("CveSubProyecto").ToString().ToEntero()
|
|
|
|
|
Dim SubProyecto = DrSubProyecto("SubProyecto").ToString()
|
|
|
|
|
Dim CveProyecto = DrSubProyecto("CveProyecto").ToString().ToEntero()
|
|
|
|
|
Dim Proyecto = DrSubProyecto("Proyecto").ToString()
|
|
|
|
|
|
|
|
|
|
AplicaNC = True
|
|
|
|
|
|
|
|
|
|
If NCDescuento Then
|
|
|
|
|
TmpDTDescNC = TmpDT.Clone()
|
|
|
|
|
TmpDTDescNC.Clear()
|
|
|
|
|
|
|
|
|
|
If UsuarioActual.CveEmpresa = 140 Then
|
|
|
|
|
|
|
|
|
|
CrearDTNCCargo(ListaNCDesc, DtImpuestos, TmpDTDescNC, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
|
|
|
|
|
'EN LA NC DE BONIFICACION EL CONCEPTO DEBE SER SIEMPRE 'BONIFICACION POR USADO'
|
|
|
|
|
Dim DrPSBonificacion = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=360481).FiltroPrimero("")
|
|
|
|
|
If DrPSBonificacion IsNot Nothing Then
|
|
|
|
|
CrearDTNCBonificacion(ListaNCDesc, DtImpuestosBonificacion, TmpDTDescNC, DrPSBonificacion, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
Else
|
|
|
|
|
Alert("No se encontró el concepto de BONIFICACION POR USADO", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
CrearDTNCBonificacion(ListaNCDesc, DtImpuestosBonificacion, TmpDTDescNC, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Else
|
|
|
|
|
For Each Dr As DataRow In DtImpuestos.Rows
|
|
|
|
|
AgregaTempDT(TmpDTDescNC, DrPS("CvePS").ToString().ToEntero(), DrPS("PS").ToString(), DrPS("Codigo").ToString(), DrPS("PSCodigo").ToString(), DrPS("CveTipoPS").ToString().ToEntero(), DrPS("Inv_CveMetodoInventario").ToString().ToEntero(),
|
|
|
|
|
DrPS("CveUM").ToString().ToEntero(), DrPS("UnidadMedida").ToString(), DrPS("CveClasificacion").ToString().ToEntero(), DrPS("Clasificacion").ToString(), CveProyecto, Proyecto, CveSubProyecto, SubProyecto,
|
|
|
|
|
TxtNCObservaciones.Text.Trim, 1, Dr("ImportePU").ToString().ToDecimal, Dr("PorcentajeIVA").ToString().ToDecimal, Dr("ImporteIVA").ToString().ToDecimal, Dr("PorcentajeRetIVA").ToString().ToDecimal, Dr("ImporteRetIVA").ToString().ToDecimal,
|
|
|
|
|
Dr("PorcentajeRetISR").ToString().ToDecimal, Dr("ImporteRetISR").ToString().ToDecimal, Dr("PorcentajeIEPS").ToString().ToDecimal, Dr("ImporteIEPS").ToString().ToDecimal, -1, 0.0, Dr("ImporteTotal").ToString().ToDecimal, "", "", -1, -1,
|
|
|
|
|
DrPS("SATClavePS").ToString(), DrPS("SATClaveUnidadMedida").ToString(), -1, -1, -1, -1, -1, -1)
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
DtImpuestos = CargaDtImpuestosNC(CveVenta, TxtNCImporte.Text.Trim.ToDecimal, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero())
|
|
|
|
|
|
|
|
|
|
If EsNCAmortizacion Then
|
|
|
|
|
If DtAnticipoAmortizacion Is Nothing Then
|
|
|
|
|
InicializaDTAnticiposAmortizacion()
|
|
|
|
|
TrTipoRelacion.Visible = True
|
|
|
|
|
DdlTiposRelacion.SelectedValueExist("1")
|
|
|
|
|
|
|
|
|
|
'verifica el tipo de cambio que se actualice
|
|
|
|
|
If DdlMoneda.SelectedValue <> "1" Then
|
|
|
|
|
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
If DdlTipoComprobante.SelectedValue = "Ant" Then CveAnticipo = CveVenta
|
|
|
|
|
|
|
|
|
|
DdlTipoComprobante.SelectedValueExist("Egs")
|
|
|
|
|
'verifica el total de multiples facturas
|
|
|
|
|
Dim Acumulado12 As Decimal = 0
|
|
|
|
|
Dim UltimoRenglon As Integer = 1
|
|
|
|
|
Dim Ajuste As Decimal = 0
|
|
|
|
|
|
|
|
|
|
'DEBE AGREGAR LOS USADOS DE LA REMISION EN LA NOTA DE CREDITO
|
|
|
|
|
If UsuarioActual.CveEmpresa = 140 AndAlso (ListaRemisionesNC IsNot Nothing AndAlso ListaRemisionesNC.Count > 0) Then
|
|
|
|
|
|
|
|
|
|
CrearDTNCCargo(ListaRemisionesNC, DtImpuestos, TmpDT, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
'EN LA NC DE BONIFICACION EL CONCEPTO DEBE SER SIEMPRE 'BONIFICACION POR USADO'
|
|
|
|
|
Dim DrPSBonificacion = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=360481).FiltroPrimero("")
|
|
|
|
|
If DrPSBonificacion IsNot Nothing Then
|
|
|
|
|
CrearDTNCBonificacion(ListaRemisionesNC, DtImpuestosBonificacion, TmpDT, DrPSBonificacion, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
Else
|
|
|
|
|
Alert("No se encontró el concepto de BONIFICACION POR USADO", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
CrearDTNCBonificacion(ListaRemisionesNC, DtImpuestosBonificacion, TmpDT, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
End If
|
|
|
|
|
Dim PorcentajeAplicado As Decimal = (TxtNCPorcentaje.Text.ToDecimal / 100D)
|
|
|
|
|
|
|
|
|
|
Dim RowAnticipo As DataRow = DtAnticipoAmortizacion.NewRow
|
|
|
|
|
RowAnticipo("CveVenta") = Me.CveVenta
|
|
|
|
|
RowAnticipo("Importe") = TxtNCImporte.Text.Trim.ToDecimal
|
|
|
|
|
RowAnticipo("SaldoAnticipo") = SaldoAnticipo * PorcentajeAplicado
|
|
|
|
|
|
|
|
|
|
DtAnticipoAmortizacion.Rows.Add(RowAnticipo)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
For Each RNC In ListaRemisionesNC
|
|
|
|
|
DtImpuestos.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero(), AplicaNCUsado:=(UsuarioActual.CveEmpresa = 140)), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
For Each RNC In ListaNCBonificacion
|
|
|
|
|
DtImpuestosBonificacion.Merge(CargaDtImpuestosNC(RNC.CveVenta, RNC.TotalRemNCAplicado, NCDescuento:=True, AplicaImpuestosLocales:=AplicaImpuestosLocales, NivelTotal:=DdlNCNivelImporte.SelectedValue.ToEntero(), AplicaNCUsado:=(UsuarioActual.CveEmpresa = 140)), True, MissingSchemaAction.Ignore)
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim query = From dr In DtImpuestos
|
|
|
|
|
Group By PorcentajeIVA = dr("PorcentajeIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetIVA = dr("PorcentajeRetIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetISR = dr("PorcentajeRetISR").ToString().ToDecimal,
|
|
|
|
|
PorcentajeIEPS = dr("PorcentajeIEPS").ToString().ToDecimal
|
|
|
|
|
Into x = Group
|
|
|
|
|
Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal),
|
|
|
|
|
ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal),
|
|
|
|
|
ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA,
|
|
|
|
|
ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA,
|
|
|
|
|
ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR,
|
|
|
|
|
ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS,
|
|
|
|
|
PorcentajeIVA = PorcentajeIVA,
|
|
|
|
|
PorcentajeRetIVA = PorcentajeRetIVA,
|
|
|
|
|
PorcentajeRetISR = PorcentajeRetISR,
|
|
|
|
|
PorcentajeIEPS = PorcentajeIEPS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim queryBonificacion = From dr In DtImpuestosBonificacion
|
|
|
|
|
Group By PorcentajeIVA = dr("PorcentajeIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetIVA = dr("PorcentajeRetIVA").ToString().ToDecimal,
|
|
|
|
|
PorcentajeRetISR = dr("PorcentajeRetISR").ToString().ToDecimal,
|
|
|
|
|
PorcentajeIEPS = dr("PorcentajeIEPS").ToString().ToDecimal
|
|
|
|
|
Into x = Group
|
|
|
|
|
Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal),
|
|
|
|
|
ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal),
|
|
|
|
|
ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA,
|
|
|
|
|
ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA,
|
|
|
|
|
ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR,
|
|
|
|
|
ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS,
|
|
|
|
|
PorcentajeIVA = PorcentajeIVA,
|
|
|
|
|
PorcentajeRetIVA = PorcentajeRetIVA,
|
|
|
|
|
PorcentajeRetISR = PorcentajeRetISR,
|
|
|
|
|
PorcentajeIEPS = PorcentajeIEPS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim DrSubProyecto = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, -1).FiltroPrimero("")
|
|
|
|
|
|
|
|
|
|
If DrSubProyecto Is Nothing Then
|
|
|
|
|
Alert("Ocurrió un error al cargar la información de centro de costos. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
|
|
|
|
|
Exit Sub
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
DtImpuestos = query.QueryToDataTable(False)
|
|
|
|
|
DtImpuestosBonificacion = queryBonificacion.QueryToDataTable(False)
|
|
|
|
|
|
|
|
|
|
If Not NCDescuento Then
|
|
|
|
|
LimpiaDocumentoNC()
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Dim CveSubProyecto = DrSubProyecto("CveSubProyecto").ToString().ToEntero()
|
|
|
|
|
Dim SubProyecto = DrSubProyecto("SubProyecto").ToString()
|
|
|
|
|
Dim CveProyecto = DrSubProyecto("CveProyecto").ToString().ToEntero()
|
|
|
|
|
Dim Proyecto = DrSubProyecto("Proyecto").ToString()
|
|
|
|
|
|
|
|
|
|
AplicaNC = True
|
|
|
|
|
|
|
|
|
|
If NCDescuento Then
|
|
|
|
|
TmpDTDescNC = TmpDT.Clone()
|
|
|
|
|
TmpDTDescNC.Clear()
|
|
|
|
|
|
|
|
|
|
If UsuarioActual.CveEmpresa = 140 Then
|
|
|
|
|
|
|
|
|
|
CrearDTNCCargo(ListaNCDesc, DtImpuestos, TmpDTDescNC, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
|
|
|
|
|
'EN LA NC DE BONIFICACION EL CONCEPTO DEBE SER SIEMPRE 'BONIFICACION POR USADO'
|
|
|
|
|
Dim DrPSBonificacion = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=360481).FiltroPrimero("")
|
|
|
|
|
If DrPSBonificacion IsNot Nothing Then
|
|
|
|
|
CrearDTNCBonificacion(ListaNCDesc, DtImpuestosBonificacion, TmpDTDescNC, DrPSBonificacion, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
Else
|
|
|
|
|
Alert("No se encontró el concepto de BONIFICACION POR USADO", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
CrearDTNCBonificacion(ListaNCDesc, DtImpuestosBonificacion, TmpDTDescNC, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Else
|
|
|
|
|
For Each Dr As DataRow In DtImpuestos.Rows
|
|
|
|
|
AgregaTempDT(TmpDTDescNC, DrPS("CvePS").ToString().ToEntero(), DrPS("PS").ToString(), DrPS("Codigo").ToString(), DrPS("PSCodigo").ToString(), DrPS("CveTipoPS").ToString().ToEntero(), DrPS("Inv_CveMetodoInventario").ToString().ToEntero(),
|
|
|
|
|
DrPS("CveUM").ToString().ToEntero(), DrPS("UnidadMedida").ToString(), DrPS("CveClasificacion").ToString().ToEntero(), DrPS("Clasificacion").ToString(), CveProyecto, Proyecto, CveSubProyecto, SubProyecto,
|
|
|
|
|
TxtNCObservaciones.Text.Trim, 1, Dr("ImportePU").ToString().ToDecimal, Dr("PorcentajeIVA").ToString().ToDecimal, Dr("ImporteIVA").ToString().ToDecimal, Dr("PorcentajeRetIVA").ToString().ToDecimal, Dr("ImporteRetIVA").ToString().ToDecimal,
|
|
|
|
|
Dr("PorcentajeRetISR").ToString().ToDecimal, Dr("ImporteRetISR").ToString().ToDecimal, Dr("PorcentajeIEPS").ToString().ToDecimal, Dr("ImporteIEPS").ToString().ToDecimal, -1, 0.0, Dr("ImporteTotal").ToString().ToDecimal, "", "", -1, -1,
|
|
|
|
|
DrPS("SATClavePS").ToString(), DrPS("SATClaveUnidadMedida").ToString(), -1, -1, -1, -1, -1, -1)
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
TrTipoRelacion.Visible = True
|
|
|
|
|
DdlTiposRelacion.SelectedValueExist("1")
|
|
|
|
|
|
|
|
|
|
'verifica el tipo de cambio que se actualice
|
|
|
|
|
If DdlMoneda.SelectedValue <> "1" Then
|
|
|
|
|
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
If DdlTipoComprobante.SelectedValue = "Ant" Then CveAnticipo = CveVenta
|
|
|
|
|
|
|
|
|
|
DdlTipoComprobante.SelectedValueExist("Egs")
|
|
|
|
|
'verifica el total de multiples facturas
|
|
|
|
|
Dim Acumulado12 As Decimal = 0
|
|
|
|
|
Dim UltimoRenglon As Integer = 1
|
|
|
|
|
Dim Ajuste As Decimal = 0
|
|
|
|
|
|
|
|
|
|
'DEBE AGREGAR LOS USADOS DE LA REMISION EN LA NOTA DE CREDITO
|
|
|
|
|
If UsuarioActual.CveEmpresa = 140 AndAlso ListaRemisionesNC.Count > 0 Then
|
|
|
|
|
|
|
|
|
|
CrearDTNCCargo(ListaRemisionesNC, DtImpuestos, TmpDT, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
'EN LA NC DE BONIFICACION EL CONCEPTO DEBE SER SIEMPRE 'BONIFICACION POR USADO'
|
|
|
|
|
Dim DrPSBonificacion = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=360481).FiltroPrimero("")
|
|
|
|
|
If DrPSBonificacion IsNot Nothing Then
|
|
|
|
|
CrearDTNCBonificacion(ListaRemisionesNC, DtImpuestosBonificacion, TmpDT, DrPSBonificacion, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
Else
|
|
|
|
|
Alert("No se encontró el concepto de BONIFICACION POR USADO", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
CrearDTNCBonificacion(ListaRemisionesNC, DtImpuestosBonificacion, TmpDT, DrPS, CveProyecto, Proyecto, CveSubProyecto, SubProyecto)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Else
|
|
|
|
|
For Each Dr As DataRow In DtImpuestos.Rows
|
|
|
|
|
Acumulado12 += Dr("ImportePU").ToString().ToDecimal.RoundSQL + Dr("ImporteIVA").ToString().ToDecimal.RoundSQL + Dr("ImporteIEPS").ToString().ToDecimal
|
|
|
|
|
If UltimoRenglon = DtImpuestos.Rows.Count Then
|
|
|
|
|
'ajusta 5 centavos de diferencia
|
|
|
|
|
If Acumulado12 <> AcumuladoNC And Math.Abs(Acumulado12 - AcumuladoNC) <= 0.05 Then
|
|
|
|
|
Ajuste = (Acumulado12 - AcumuladoNC)
|
|
|
|
|
For Each Dr As DataRow In DtImpuestos.Rows
|
|
|
|
|
Acumulado12 += Dr("ImportePU").ToString().ToDecimal.RoundSQL + Dr("ImporteIVA").ToString().ToDecimal.RoundSQL + Dr("ImporteIEPS").ToString().ToDecimal
|
|
|
|
|
If UltimoRenglon = DtImpuestos.Rows.Count Then
|
|
|
|
|
'ajusta 5 centavos de diferencia
|
|
|
|
|
If Acumulado12 <> AcumuladoNC And Math.Abs(Acumulado12 - AcumuladoNC) <= 0.05 Then
|
|
|
|
|
Ajuste = (Acumulado12 - AcumuladoNC)
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
UltimoRenglon += 1
|
|
|
|
|
UltimoRenglon += 1
|
|
|
|
|
|
|
|
|
|
AgregaTempDT(TmpDT, DrPS("CvePS").ToString().ToEntero(), DrPS("PS").ToString(), DrPS("Codigo").ToString(), DrPS("PSCodigo").ToString(), DrPS("CveTipoPS").ToString().ToEntero(), DrPS("Inv_CveMetodoInventario").ToString().ToEntero(),
|
|
|
|
|
DrPS("CveUM").ToString().ToEntero(), DrPS("UnidadMedida").ToString(), DrPS("CveClasificacion").ToString().ToEntero(), DrPS("Clasificacion").ToString(), CveProyecto, Proyecto, CveSubProyecto, SubProyecto,
|
|
|
|
|
TxtNCObservaciones.Text.Trim, 1, Dr("ImportePU").ToString().ToDecimal + Ajuste, Dr("PorcentajeIVA").ToString().ToDecimal, Dr("ImporteIVA").ToString().ToDecimal, Dr("PorcentajeRetIVA").ToString().ToDecimal, Dr("ImporteRetIVA").ToString().ToDecimal,
|
|
|
|
|
Dr("PorcentajeRetISR").ToString().ToDecimal, Dr("ImporteRetISR").ToString().ToDecimal, Dr("PorcentajeIEPS").ToString().ToDecimal, Dr("ImporteIEPS").ToString().ToDecimal, -1, 0.0, Dr("ImporteTotal").ToString().ToDecimal(), "", "", -1, -1,
|
|
|
|
|
DrPS("SATClavePS").ToString(), DrPS("SATClaveUnidadMedida").ToString(), -1, -1, -1, -1, -1, -1)
|
|
|
|
|
AgregaTempDT(TmpDT, DrPS("CvePS").ToString().ToEntero(), DrPS("PS").ToString(), DrPS("Codigo").ToString(), DrPS("PSCodigo").ToString(), DrPS("CveTipoPS").ToString().ToEntero(), DrPS("Inv_CveMetodoInventario").ToString().ToEntero(),
|
|
|
|
|
DrPS("CveUM").ToString().ToEntero(), DrPS("UnidadMedida").ToString(), DrPS("CveClasificacion").ToString().ToEntero(), DrPS("Clasificacion").ToString(), CveProyecto, Proyecto, CveSubProyecto, SubProyecto,
|
|
|
|
|
TxtNCObservaciones.Text.Trim, 1, Dr("ImportePU").ToString().ToDecimal + Ajuste, Dr("PorcentajeIVA").ToString().ToDecimal, Dr("ImporteIVA").ToString().ToDecimal, Dr("PorcentajeRetIVA").ToString().ToDecimal, Dr("ImporteRetIVA").ToString().ToDecimal,
|
|
|
|
|
Dr("PorcentajeRetISR").ToString().ToDecimal, Dr("ImporteRetISR").ToString().ToDecimal, Dr("PorcentajeIEPS").ToString().ToDecimal, Dr("ImporteIEPS").ToString().ToDecimal, -1, 0.0, Dr("ImporteTotal").ToString().ToDecimal(), "", "", -1, -1,
|
|
|
|
|
DrPS("SATClavePS").ToString(), DrPS("SATClaveUnidadMedida").ToString(), -1, -1, -1, -1, -1, -1)
|
|
|
|
|
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GvPS.DataSource = TmpDT
|
|
|
|
|
GvPS.DataBind()
|
|
|
|
|
|
|
|
|
|
CalculaTotalesVenta(RecalculaImpuestosLocales:=AplicaImpuestosLocales)
|
|
|
|
|
|
|
|
|
|
TrTipoRelacion.Visible = True
|
|
|
|
|
DdlTiposRelacion.SelectedValueExist("1")
|
|
|
|
|
DdlSubProyectoDatos.Enabled = False
|
|
|
|
|
|
|
|
|
|
'condicióon, en la que se verifica que el importe total de aplicación de la nota de crédito sea igual al del total de la nota de crédito, ej. saldo de la factura 1000.01 y la nota de crédito se generó po 1000.00
|
|
|
|
|
If Not AplicaNCMasiva Then
|
|
|
|
|
Dim TT As Decimal = TxtNCImporte.Text.ToDecimal
|
|
|
|
|
If TT > TxtTotal.Text.ToDecimal Then TT = TxtTotal.Text.ToDecimal
|
|
|
|
|
CargaNCDT(CveVenta, TT)
|
|
|
|
|
End If
|
|
|
|
|
'verifica el tipo de cambio que se actualice
|
|
|
|
|
If DdlMoneda.SelectedValue <> "1" Then
|
|
|
|
|
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
|
|
|
|
|
End If
|
|
|
|
|
LblTCValuacion.Visible = False
|
|
|
|
|
UpPS.Update()
|
|
|
|
|
|
|
|
|
|
LBNotaCredito.Visible = False
|
|
|
|
|
CambiaTipoDocto()
|
|
|
|
|
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GvPS.DataSource = TmpDT
|
|
|
|
|
GvPS.DataBind()
|
|
|
|
|
|
|
|
|
|
CalculaTotalesVenta(RecalculaImpuestosLocales:=AplicaImpuestosLocales)
|
|
|
|
|
|
|
|
|
|
TrTipoRelacion.Visible = True
|
|
|
|
|
DdlTiposRelacion.SelectedValueExist("1")
|
|
|
|
|
DdlSubProyectoDatos.Enabled = False
|
|
|
|
|
|
|
|
|
|
'condicióon, en la que se verifica que el importe total de aplicación de la nota de crédito sea igual al del total de la nota de crédito, ej. saldo de la factura 1000.01 y la nota de crédito se generó po 1000.00
|
|
|
|
|
If Not AplicaNCMasiva Then
|
|
|
|
|
Dim TT As Decimal = TxtNCImporte.Text.ToDecimal
|
|
|
|
|
If TT > TxtTotal.Text.ToDecimal Then TT = TxtTotal.Text.ToDecimal
|
|
|
|
|
CargaNCDT(CveVenta, TT)
|
|
|
|
|
End If
|
|
|
|
|
'verifica el tipo de cambio que se actualice
|
|
|
|
|
If DdlMoneda.SelectedValue <> "1" Then
|
|
|
|
|
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
|
|
|
|
|
End If
|
|
|
|
|
LblTCValuacion.Visible = False
|
|
|
|
|
UpPS.Update()
|
|
|
|
|
|
|
|
|
|
LBNotaCredito.Visible = False
|
|
|
|
|
CambiaTipoDocto()
|
|
|
|
|
End If
|
|
|
|
|
Catch ex As Exception
|
|
|
|
|
OnError("Ocurrió un error al aplicar NC", ex)
|
|
|
|
|
End Try
|
|
|
|
|
UPCondicionesPago.Update()
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
Private Sub CrearDTNCCargo(ListaNC As List(Of Modelos.Factura), DtImpuestos As DataTable, ByRef TmpDTCargo As DataTable, DrPS As DataRow, CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String)
|
|
|
|
|
@@ -24467,11 +24486,13 @@ Partial Class Ventas
|
|
|
|
|
'ACTIVA CONDICIONES DE PAGO
|
|
|
|
|
DdlUsoCFDI.Enabled = True
|
|
|
|
|
DdlUsoCFDI.SelectedValueExist("2")
|
|
|
|
|
DdlMetodoPago33.Enabled = True
|
|
|
|
|
DdlMetodoPago33.SelectedValueExist("1") ' PUE
|
|
|
|
|
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
|
|
|
|
|
DdlFormaPago33.Enabled = True
|
|
|
|
|
DdlFormaPago33.SelectedValueExist("11") ' condonación por default
|
|
|
|
|
If UsuarioActual.CveEmpresa <> 140 Then
|
|
|
|
|
DdlMetodoPago33.Enabled = True
|
|
|
|
|
DdlMetodoPago33.SelectedValueExist("1") ' PUE
|
|
|
|
|
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
|
|
|
|
|
DdlFormaPago33.Enabled = True
|
|
|
|
|
DdlFormaPago33.SelectedValueExist("11") ' condonación por default
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
UpEstatus.Update()
|
|
|
|
|
UpnTools.Update()
|
|
|
|
|
@@ -24595,6 +24616,22 @@ Partial Class Ventas
|
|
|
|
|
UpDevolucion.Update()
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
Protected Sub BtnCalcularPenalizacion_Click(sender As Object, e As EventArgs)
|
|
|
|
|
Dim PorcentajePenalizacion As Decimal = (TxtPorPenalizacion.Text.ToDecimal() / 100D)
|
|
|
|
|
|
|
|
|
|
For Each GvRow As GridViewRow In GvAplicaDevolucion.Rows
|
|
|
|
|
If GvRow.FCCheckBox("Chk").Checked Then
|
|
|
|
|
|
|
|
|
|
Dim Total As Decimal = GvRow.DataKey("PU").ToDecimal() - (GvRow.DataKey("Descuento").ToDecimal() / GvRow.DataKey("Cantidad").ToDecimal())
|
|
|
|
|
|
|
|
|
|
'APLICA EL PORCENTAJE DE PENALIZACION
|
|
|
|
|
GvRow.FCTextBox("TxtPrecioEditado").Text = (Total - (Total * PorcentajePenalizacion)).FormatoNumero(2)
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
Next
|
|
|
|
|
|
|
|
|
|
UpDevolucion.Update()
|
|
|
|
|
End Sub
|
|
|
|
|
Protected Sub BtnAplicaDevolucion_Click(sender As Object, e As EventArgs)
|
|
|
|
|
|
|
|
|
|
'VALIDACIONES
|
|
|
|
|
@@ -27229,6 +27266,33 @@ Partial Class Ventas
|
|
|
|
|
End If
|
|
|
|
|
Next
|
|
|
|
|
|
|
|
|
|
'SI TIENE ALGUN AJUSTE O GARANTIA
|
|
|
|
|
If ListaRemisionesNC.Any(Function(RNC) RNC.Num2 = 1) Then
|
|
|
|
|
For Each RNC In ListaRemisionesNC.Where(Function(x) x.Num2 = 1)
|
|
|
|
|
Dim Salir As Boolean = False
|
|
|
|
|
Using ObjAcum As New ClsAcumuladores
|
|
|
|
|
If ObjAcum.GetGarantiasDetalle(RNC.CveVenta) Then
|
|
|
|
|
'SI ES GARANTIA TOTAL
|
|
|
|
|
If ObjAcum.DtResultados.MAX("PorcentajeAjuste") = "1" Then
|
|
|
|
|
DdlNCPS.SelectedValueExist(443174)
|
|
|
|
|
DdlNCPS.Enabled = False
|
|
|
|
|
Salir = True
|
|
|
|
|
Else
|
|
|
|
|
DdlNCPS.SelectedValueExist(443173)
|
|
|
|
|
DdlNCPS.Enabled = False
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
End Using
|
|
|
|
|
|
|
|
|
|
If Salir Then
|
|
|
|
|
Exit For
|
|
|
|
|
End If
|
|
|
|
|
Next
|
|
|
|
|
Else
|
|
|
|
|
DdlNCPS.Enabled = True
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For Each GvRow As GridViewRow In GvRemisionesNCBon.Rows
|
|
|
|
|
If GvRow.RowType = DataControlRowType.DataRow Then
|
|
|
|
|
If GvRow.FCCheckBox("ChkAplicar").Checked Then
|
|
|
|
|
@@ -27304,6 +27368,28 @@ Partial Class Ventas
|
|
|
|
|
End If
|
|
|
|
|
Next
|
|
|
|
|
|
|
|
|
|
'SI TIENE ALGUN AJUSTE O GARANTIA
|
|
|
|
|
If ListaNCDesc.Any(Function(RNC) RNC.Num2 = 1) Then
|
|
|
|
|
For Each RNC In ListaRemisionesNC.Where(Function(x) x.Num2 = 1)
|
|
|
|
|
Dim Salir As Boolean = False
|
|
|
|
|
Using ObjAcum As New ClsAcumuladores
|
|
|
|
|
If ObjAcum.GetGarantiasDetalle(RNC.CveVenta) Then
|
|
|
|
|
'SI ES GARANTIA TOTAL
|
|
|
|
|
If ObjAcum.DtResultados.MAX("PorcentajeAjuste") = "1" Then
|
|
|
|
|
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=443174, AplicaParaVenta:=1).Rows(0)
|
|
|
|
|
Salir = True
|
|
|
|
|
Else
|
|
|
|
|
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=443173, AplicaParaVenta:=1).Rows(0)
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
End Using
|
|
|
|
|
|
|
|
|
|
If Salir Then
|
|
|
|
|
Exit For
|
|
|
|
|
End If
|
|
|
|
|
Next
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Dim LimiteUsados As Decimal = LblSaldoMaximoUsados.Text.Trim().ToDecimal()
|
|
|
|
|
|
|
|
|
|
'VERIFICA EL LIMITE DE LOS USADOS
|
|
|
|
|
|