diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx
index b5bfea7dd..9d90e76a0 100644
--- a/Compras/Compras.aspx
+++ b/Compras/Compras.aspx
@@ -5158,7 +5158,7 @@
-
-
+ --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sub Total:
+
+
+
+
+
+
+
+
+
+
+
@@ -6292,14 +6396,80 @@
}
- //function ScrollVentanaAddProducto() {
- // let wh = $(window).height();
-
- // if (wh <= 770) {
- // // $('#DVBodyAddProducto').css("max-height", 450);
- // }
- //}
-
+ function ValidateCant(ncss, SubtotalValidar) {
+
+ let SubTotal = 0.0;
+
+ let CantidadS = $(".CssCantidad" + ncss).val();
+ let PuS = $(".CssPU" + ncss).val();
+
+ let Cantidad = 0.0;
+ let Pu = 0.0;
+
+ try{
+
+ if (CantidadS.length > 0 && PuS.length > 0) {
+
+ Cantidad = parseFloat(CantidadS);
+ Pu = parseFloat(PuS);
+
+ $(".CssImporte" + ncss).val(Cantidad * Pu);
+
+
+ }else{
+ $(".CssImporte" + ncss).val("0");
+ }
+
+
+ } catch (error) {
+ $(".CssImporte" + ncss).val("0");
+ }
+
+ //$('.ImporteCSS').each(function () {
+
+
+ // if(! isNaN(parseFloat($(this).val()) )){
+ // SubTotal = SubTotal + parseFloat($(this).val())
+ // }
+
+ //});
+
+ ValidaBotonContrato(SubtotalValidar);
+
+
+
+ //if (SubtotalValidar == SubTotal) {
+ // $('#BtnAplicarContrato').prop('disabled', false);
+ //} else {
+ // $('#BtnAplicarContrato').prop('disabled', true);
+ //}
+
+ }
+
+ function ValidaBotonContrato(SubtotalValidar) {
+
+ let SubTotal = 0.0;
+
+
+
+ $('.ImporteCSS').each(function () {
+
+ if (!isNaN(parseFloat($(this).val()))) {
+ SubTotal = SubTotal + parseFloat($(this).val())
+ }
+ });
+
+
+
+ if (SubtotalValidar == SubTotal) {
+ $('#BtnAplicarContrato').prop('disabled', false);
+ } else {
+ $('#BtnAplicarContrato').prop('disabled', true);
+ }
+
+ $('#LblTotalContrato').text(SubTotal);
+
+ }
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index 596aa860d..4f8101173 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -1181,6 +1181,37 @@ Partial Class Compras_Compras
+ Private Property MaxIVAProcentaje As Decimal
+ Get
+ If ViewState("MaxIVAProcentaje") Is Nothing Then
+ Return 0
+ Else
+ Return ViewState("MaxIVAProcentaje").ToString.ToDecimal
+ End If
+ End Get
+ Set(value As Decimal)
+ ViewState("MaxIVAProcentaje") = value
+ End Set
+ End Property
+
+
+ Private Property MAXRetIVAPorcentaje As Decimal
+ Get
+ If ViewState("MAXRetIVAPorcentaje") Is Nothing Then
+ Return 0
+ Else
+ Return ViewState("MAXRetIVAPorcentaje").ToString.ToDecimal
+ End If
+ End Get
+ Set(value As Decimal)
+ ViewState("MAXRetIVAPorcentaje") = value
+ End Set
+ End Property
+
+
+
+
+
@@ -1206,7 +1237,7 @@ Partial Class Compras_Compras
CveConceptoContableAlmacen = 0
EsNoDeducible = False
CveTipoConcepto = 1
- CargaContratos()
+ 'CargaContratos()
'******** Prorrateo ********************************************
If UsuarioActual.Empresa.Funcionalidad(117) <> "" Then
btnProrateo.Visible = True
@@ -1781,31 +1812,42 @@ Partial Class Compras_Compras
Xml.Append(Replace(Replace(Replace(nodeconceptos.OuterXml, " 0 Then
+ MaxIVAProcentaje = ObjeFacturas.DtResultados.MAX("IVAPorcentaje").ToDecimal
+ MAXRetIVAPorcentaje = ObjeFacturas.DtResultados.MAX("RetIVAPorcentaje").ToDecimal
+ Else
+ MaxIVAProcentaje = 0
+ End If
+
+
+
+
'TmpDT.Columns.Add("IVAPorcentaje")
'TmpDT.Columns.Add("RetIVAPorcentaje")
'TmpDT.Columns.Add("RetISRPorcentaje")
'TmpDT.Columns.Add("IEPSPSPorcentaje")
'TmpDT.Columns.Add("IEPSPSIVAPorcentaje")
SubTotalConceptos = Math.Round(TmpDT.SUM("Total"), 2).ToDecimal
- AddPS2(False)
+ AddPS2(False)
- 'VALIDA QUE EL XML SI VIENE CON EL CODIGO SAT 01010101
- Dim ProductosCodigoSATNoPermitidos As New StringBuilder("")
- For Each drr As DataRow In TmpDT.FiltraParametros("ClaveProdServ = '01010101'").Rows
+ 'VALIDA QUE EL XML SI VIENE CON EL CODIGO SAT 01010101
+ Dim ProductosCodigoSATNoPermitidos As New StringBuilder("")
+ For Each drr As DataRow In TmpDT.FiltraParametros("ClaveProdServ = '01010101'").Rows
- ProductosCodigoSATNoPermitidos.AppendFormat("{0}", drr("PS"))
+ ProductosCodigoSATNoPermitidos.AppendFormat("{0}", drr("PS"))
- Next
+ Next
- If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then
- Dim mensajeAdvertencia As String = String.Format("El comprobante contiene productos con código SAT '01010101', revise los productos:{0}", ProductosCodigoSATNoPermitidos.ToString)
- Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia)
+ If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then
+ Dim mensajeAdvertencia As String = String.Format("El comprobante contiene productos con código SAT '01010101', revise los productos:{0}", ProductosCodigoSATNoPermitidos.ToString)
+ Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia)
+
+ End If
End If
-
- End If
- Else
+ Else
CargaConceptosXML(XMLDoc)
End If
@@ -1831,7 +1873,7 @@ Partial Class Compras_Compras
DdlTipoCompra.Items.Add(New ListItem("Apoyo Logístico", "9"))
DdlTipoCompra.Items.Add(New ListItem("NC Por Devolución", "11"))
-
+ LiAccionesContratos.Visible = True
End Select
'DIV ALIAS
@@ -20475,22 +20517,183 @@ Partial Class Compras_Compras
End Function
- Private Sub CargaContratos()
- DdlContrato.DataSource = GlobalDTContratos.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveContratoTipo IN(30,31) ")
- DdlContrato.DataBind()
- DdlContrato.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todos", "-1"))
- End Sub
+ 'Private Sub CargaContratos()
+ ' DdlContrato.DataSource = GlobalDTContratos.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveContratoTipo IN(30,31) ")
+ ' DdlContrato.DataBind()
+ ' DdlContrato.Items.Insert(0, New System.Web.UI.WebControls.ListItem("Todos", "-1"))
+ 'End Sub
- Protected Sub BtnModalContratos_Click(sender As Object, e As EventArgs)
+ 'Protected Sub BtnModalContratos_Click(sender As Object, e As EventArgs)
- RegistraScript("$('#DvModalContratos').modal('hide');")
- CveContratoObra = DdlContrato.SelectedValue.ToEntero
+ ' RegistraScript("$('#DvModalContratos').modal('hide');")
+ ' CveContratoObra = DdlContrato.SelectedValue.ToEntero
+
+
+ 'End Sub
- End Sub
Protected Sub LnkContratos_Click(sender As Object, e As EventArgs)
- RegistraScript("$('#DvModalContratos').modal('show');")
+
+ 'RegistraScript("$('#DvModalContratos').modal('show');")
+
+ DdlContratosObra.Items.Clear()
+ DdlContratosObra.DataSource = GlobalDTContratos.FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}"))
+ DdlContratosObra.DataBind()
+ 'DdlContratosObra.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+
+ DdlTipoGastoObra.Items.Clear()
+ DdlTipoGastoObra.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa)
+ DdlTipoGastoObra.DataBind()
+ DdlTipoGastoObra.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+
+
+ RegistraScript($"$('#DivmodalConmtrato').modal('show'); $( '#BtnAplicarContrato' ).prop( 'disabled', true ); ValidaBotonContrato({TxtSubTotal2.Text.ToDecimal});")
+ UpModalContrato.Update()
+
+
End Sub
+
+
+ Protected Sub DdlContratosCompras_SelectedIndexChanged(sender As Object, e As EventArgs)
+
+
+ If DdlContratosObra.SelectedValue.ToEntero > 0 Then
+ Dim ObjContratos As New ClsContratos()
+
+ If ObjContratos.GetContratosObraCompras(DdlContratosObra.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
+
+ If ObjContratos.DtResultados.Rows.Count > 0 Then
+ GvContratosControl.DataSource = ObjContratos.DtResultados
+ 'BtnAplicarContrato.Visible = True
+ Else
+ GvContratosControl.DataSource = Nothing
+ 'BtnAplicarContrato.Visible = False
+ End If
+
+ End If
+
+
+ ObjContratos.Dispose()
+
+ GvContratosControl.DataBind()
+
+ UpModalContrato.Update()
+ End If
+
+ RegistraScript("$( '#BtnAplicarContrato' ).prop( 'disabled', true );")
+
+ End Sub
+
+
+ Protected Sub BtnAplicarContrato_Click(sender As Object, e As EventArgs)
+
+
+ TmpDT.Rows.Clear()
+
+ Dim CveTipoGastoObra As Integer = DdlTipoGasto.SelectedValue.ToEntero
+
+ For Each GvRow As GridViewRow In GvContratosControl.Rows
+
+ Dim CveContratoDetalle As Integer = GvRow.DataKey("CveContratoDetalle").ToEntero
+
+ Dim Cantidad As Double = GvRow.FCTextBox("TxtCantidad").Text.ToDouble
+ Dim CvePS As Integer = GvRow.DataKey("CvePS").ToEntero
+ Dim PS As String = GvRow.DataKey("PS")
+ Dim PU As Double = GvRow.FCTextBox("TxtPU").Text.ToDouble
+ Dim TotalPS As Double = GvRow.FCTextBox("TxtImporte").Text.ToDouble
+ Dim CveUnidadMedida As Integer = GvRow.DataKey("CveUnidadMedida").ToEntero
+ Dim UMAbreviatura As String = GvRow.DataKey("Abreviatura").ToString
+
+ Dim SubProyecto As String = GvRow.DataKey("SubProyecto")
+ Dim CveSubProyecto As Integer = GvRow.DataKey("CveSubProyecto").ToEntero
+ Dim Codigo As String = "" 'GvRow.DataKey("Codigo")
+
+ Dim Proyecto As String = GvRow.DataKey("Proyecto")
+ Dim CveProyecto As Integer = GvRow.DataKey("CveProyecto").ToEntero
+
+ Dim RetISR As Double = GvRow.DataKey("RetISR").ToString.ToDouble
+ Dim RetIVA As Double = MAXRetIVAPorcentaje 'GvRow.DataKey("RetIVA").ToString.ToDouble
+
+ Dim IvaPS As Double = MaxIVAProcentaje
+
+ Dim CveClasificacion As Integer = GvRow.DataKey("CveClasificacion").ToString.ToEntero
+ Dim Clasificacion As String = GvRow.DataKey("Clasificacion")
+
+
+ Dim IEPSPS As Double = GvRow.DataKey("IEPSPorcentaje").ToString.ToDouble
+ Dim IEPSPSIVA As Double = If(GvRow.DataKey("IEPSGrabaIVA").ToString = "True", IEPSPS, 0)
+
+
+ Dim CveTipoPS As Integer = GvRow.DataKey("CveTipoPS").ToEntero
+
+ Dim CveSATPS As Integer = GvRow.DataKey("CveSATPS").ToEntero
+
+
+ Dim IdCuentaPorEjercer As Integer = -1
+ Dim IdCuentaComprometido As Integer = -1
+
+ Dim TotalRow As Decimal = (PU * Cantidad).RoundSQL(2).ToDecimal
+
+ If Cantidad > 0 Then
+
+
+ AddPS(Cantidad, CveUnidadMedida, UMAbreviatura, CveClasificacion, Clasificacion, CvePS, PS, CveTipoPS, CveSubProyecto.ToString, SubProyecto, Proyecto, CveProyecto.ToString, "", PU, TotalRow, IvaPS, RetIVA, RetISR, IEPSPS, IEPSPSIVA, 0, -1, False,
+ CantidadF:=0, EntregaDirecta:=0, CveSATPS:=CveSATPS, CveTipoGasto:=DdlTipoGastoObra.SelectedValue.ToEntero, TipoGasto:=DdlTipoGastoObra.SelectedItem.Text, CveContratoDetalle:=CveContratoDetalle, CveCultivoCuadroDetalle:=-1)
+
+
+ 'AddPS(Cantidad, CvePS, PS, PS, PU, 0, TotalPS,
+ 'CveUnidadMedida, IvaPS, IEPSPS, IEPSPSIVA, CveClasificacion, UMAbreviatura, Clasificacion, CveProyecto, Proyecto,
+ 'CveSubProyecto, SubProyecto, Codigo, -1, 0, -1, -1, IdCuentaPorEjercer,
+ 'IdCuentaComprometido, -1, -1, -1, -1,
+ '-1, RetIVA, RetISR, CveContratoDetalle:=CveContratoDetalle, CveTipoGastoObra:=CveTipoGastoObra, CveCultivoCuadroDetalle:=-1, Cuadro:="")
+
+
+ '' ContratoObraAplciado = True
+
+ End If
+
+ Next
+
+ 'CargaSuperior()
+ 'CargaDatosDetalles()
+
+
+
+ GvPS.DataSource = TmpDT
+ GvPS.DataBind()
+ UpPS.Update()
+
+ RegistraScript("$('#DivmodalConmtrato').modal('hide')")
+ ' UPPDetalle.Update()
+
+
+ End Sub
+
+ Private Sub GvContratosControl_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvContratosControl.RowDataBound
+
+
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ Dim CveContratoDetalle As Integer = e.Row.DataKey("CveContratoDetalle").ToEntero
+
+ e.Row.FCTextBox("TxtCantidad").CssClass = $"CssCantidad{CveContratoDetalle}"
+ e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", $"ValidateCant('{CveContratoDetalle}',{TxtSubTotal2.Text.ToDecimal})")
+
+ e.Row.FCTextBox("TxtPU").CssClass = $"CssPU{CveContratoDetalle}"
+ e.Row.FCTextBox("TxtPU").Attributes.Add("onkeyup", $"ValidateCant('{CveContratoDetalle}',{TxtSubTotal2.Text.ToDecimal})")
+
+
+ e.Row.FCTextBox("TxtImporte").CssClass = $"ImporteCSS CssImporte{CveContratoDetalle}"
+
+
+
+ End If
+
+
+ End Sub
+
End Class
Public Class MMensajeDevolucion