From 0fac7c5b0949682bcc50ea26327489b7cb713322 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Wed, 7 Oct 2020 19:59:18 -0700 Subject: [PATCH] =?UTF-8?q?validaciones=20del=20producto=20servicio=20sat?= =?UTF-8?q?=20con=20c=C3=B3digo=2001010101=20al=20cargar=20una=20factura?= =?UTF-8?q?=20con=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 117 ++++++++++++++++++++++++++++++++-------- 1 file changed, 96 insertions(+), 21 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index be933f6a1..d7ef591ea 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -29,6 +29,24 @@ Partial Class Compras_Compras End Set End Property + Private Property EstaAsociadoACajaChica() As Boolean + Get + Return If(IsNothing(ViewState("EstaAsociadoACajaChica")), False, CBool(ViewState("EstaAsociadoACajaChica"))) + End Get + Set + ViewState("EstaAsociadoACajaChica") = Value + End Set + End Property + + Private Property EstaAsociadoAPersonal() As Boolean + Get + Return If(IsNothing(ViewState("EstaAsociadoAPersonal")), False, CBool(ViewState("EstaAsociadoAPersonal"))) + End Get + Set + ViewState("EstaAsociadoAPersonal") = Value + End Set + End Property + Private Property CveUsuarioEvaluador() As Integer Get Return If(IsNothing(ViewState("CveUsuarioEvaluador")), -1, CInt(ViewState("CveUsuarioEvaluador"))) @@ -848,6 +866,14 @@ Partial Class Compras_Compras ViewState("PopUpOC") = value End Set End Property + Private Property CompraEstaVinculadaOC As Boolean + Get + Return CBool(ViewState("CompraEstaVinculadaOC")) + End Get + Set(value As Boolean) + ViewState("CompraEstaVinculadaOC") = value + End Set + End Property #End Region #Region "PROPIEDADES ALMACEN" 'Charlie @@ -1307,6 +1333,9 @@ Partial Class Compras_Compras ViewState("CveFactura") = Request("CveFactura").ToEntero Dim RFC As String = CargaFactura(CveFactura) + If Not VerificarProductosSATPS() Then + Exit Sub + End If If RFC.Trim <> String.Empty Then DdlProveedor.Visible = False HplProveedor.Visible = True @@ -1734,6 +1763,7 @@ Partial Class Compras_Compras 'TmpDT.Columns.Add("IEPSPSIVAPorcentaje") SubTotalConceptos = Math.Round(TmpDT.SUM("Total"), 2).ToDecimal AddPS2(False) + End If Else CargaConceptosXML(XMLDoc) @@ -3971,6 +4001,17 @@ Partial Class Compras_Compras DtNoEncontrados.Dispose() End If + 'Verifica funcionalidad 702 "Require orden de compra para factura de compra" + + If UsuarioActual.Empresa.Funcionalidad(702) = "1" Then + If Not EstaAsociadoACajaChica And Not EstaAsociadoAPersonal Then + If Not CompraEstaVinculadaOC Then + Alert("Debe de vincular una orden de compra para realizar esta factura") + Exit Sub + End If + End If + End If + 'Si se marcó No Deducible en el encabezado mínimo se debe registrar un No Deducible en el Detalle Dim GuardaNoDeducibles As Boolean = False If ChkEsNoDeducible.Checked Then @@ -12712,6 +12753,7 @@ Partial Class Compras_Compras CveMoneda = dr("CveMoneda").ToString.ToEntero IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero CveCuentaBancaria = dr("IdCtaContableSIG").ToString.ToEntero + EstaAsociadoACajaChica = True End If If UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then @@ -12740,7 +12782,7 @@ Partial Class Compras_Compras ObjMovtos.Dispose() DDlCheques.DataBind() - + EstaAsociadoAPersonal = True DDlCheques_SelectedIndexChanged(DDlCheques, EventArgs.Empty) Else @@ -13751,6 +13793,9 @@ Partial Class Compras_Compras #Region " REEMBOLSOS NO USA AC " Protected Sub DdlPersonal2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPersonalReembolso.SelectedIndexChanged ViewState("CvePersonal") = DdlPersonalReembolso.SelectedValue + If DdlPersonalReembolso.SelectedValue.ToEntero > 0 Then + EstaAsociadoAPersonal = True + End If End Sub Protected Sub DdlCajaChica2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuentaCajaChicaReembolso.SelectedIndexChanged Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuentaCajaChicaReembolso.SelectedValue) @@ -13759,6 +13804,7 @@ Partial Class Compras_Compras CveMoneda = dr("CveMoneda").ToString.ToEntero IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero CveCuentaBancaria = dr("IdCtaContableSIG").ToString.ToEntero + EstaAsociadoACajaChica = True End If ViewState("CveCajaChica") = DdlCuentaCajaChicaReembolso.SelectedValue End Sub @@ -15381,27 +15427,27 @@ Partial Class Compras_Compras Dim SubTotalCompra As Decimal = Amortizacion Dim DiferenciaPermitida = 1 Dim Cont = 0 - Dim ProductosCodigoSATNoPermitidos As New StringBuilder("") - For Each gvr As GridViewRow In GvOC1.Rows - SubTotalGV += gvr.FCTextBox("TxtTotalOC1").Text.ToDecimal - If Cont = 0 Then DdlProveedorSucursal.SelectedValueExist(gvr.DataKey("CveProveedorSucursal").ToEntero()) - Cont = 1 - If GvOC1.Columns(6).Visible Then - Dim SatPS As String = gvr.FCDropDownLost("DdlSATPS").SelectedText() - Dim NombreProducto As String = gvr.FCLabel("LbProductoServicio").Text - If SatPS.Contains("01010101") Then - ProductosCodigoSATNoPermitidos.AppendFormat("{0}
", NombreProducto) - 'Dim mensajeAdvertencia As String = String.Format("Al vincular una Orden de Compra no se permiten productos con Producto/Servicio SAT igual a '{0}', revise el producto '{1}' en Orden(es) de Compra Vinculada(s)", SatPS, NombreProducto) - 'Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia) + 'Dim ProductosCodigoSATNoPermitidos As New StringBuilder("") + 'For Each gvr As GridViewRow In GvOC1.Rows + ' SubTotalGV += gvr.FCTextBox("TxtTotalOC1").Text.ToDecimal + ' If Cont = 0 Then DdlProveedorSucursal.SelectedValueExist(gvr.DataKey("CveProveedorSucursal").ToEntero()) + ' Cont = 1 + ' If GvOC1.Columns(6).Visible Then + ' Dim SatPS As String = gvr.FCDropDownLost("DdlSATPS").SelectedText() + ' Dim NombreProducto As String = gvr.FCLabel("LbProductoServicio").Text + ' If SatPS.Contains("01010101") Then + ' ProductosCodigoSATNoPermitidos.AppendFormat("{0}
", NombreProducto) + ' 'Dim mensajeAdvertencia As String = String.Format("Al vincular una Orden de Compra no se permiten productos con Producto/Servicio SAT igual a '{0}', revise el producto '{1}' en Orden(es) de Compra Vinculada(s)", SatPS, NombreProducto) + ' 'Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia) - End If - End If - Next - If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then - Dim mensajeAdvertencia As String = String.Format("No se permite vinculación de productos con código SAT '01010101', revise los productos:

{0}", ProductosCodigoSATNoPermitidos.ToString) - Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia) - Exit Sub - End If + ' End If + ' End If + 'Next + 'If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then + ' Dim mensajeAdvertencia As String = String.Format("No se permite vinculación de productos con código SAT '01010101', revise los productos:

{0}", ProductosCodigoSATNoPermitidos.ToString) + ' Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If If Math.Abs(SubTotalGV - SubTotalCompra) < DiferenciaPermitida Then LbSubTotalDif.Visible = False @@ -15639,6 +15685,7 @@ Partial Class Compras_Compras End If CalculaTotales() + CompraEstaVinculadaOC = True End Sub @@ -20156,7 +20203,35 @@ Partial Class Compras_Compras End Sub + Private Function VerificarProductosSATPS() As Boolean + Dim CvePSGRuposAux As New StringBuilder("") + For Each gvr As GridViewRow In GvPS.Rows + Dim CvePSIndividual As String = gvr.DataKey("CvePS") + CvePSGRuposAux.AppendFormat("{0},", CvePSIndividual) + Next + Dim CvePSGRupos As String = Left(CvePSGRuposAux.ToString, CvePSGRuposAux.Length - 1) + + Dim PSSat As DataTable = GlobalDTPS(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CvePS IN ({0})", CvePSGRuposAux)) + + Dim ProductosCodigoSATNoPermitidos As New StringBuilder("") + For Each PS As GridViewRow In GvPS.Rows + Dim PSIndividual As String = PS.DataKey("PS") + Dim ClavePSSAT As String = PSSat.FiltroPrimeroValor("CveSATPS", String.Format("PS = '{0}'", PSIndividual)) + If ClavePSSAT = "46920" Then + ProductosCodigoSATNoPermitidos.AppendFormat("{0}
", PSIndividual) + End If + Next + + If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then + Dim mensajeAdvertencia As String = String.Format("No se permite vinculación de productos con código SAT '01010101', revise los productos:

{0}", ProductosCodigoSATNoPermitidos.ToString) + Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia) + Return False + End If + + Return True + + End Function End Class