diff --git a/App_Code/ClsValidaCFDi.vb b/App_Code/ClsValidaCFDi.vb index 35248b76d..4b480d905 100644 --- a/App_Code/ClsValidaCFDi.vb +++ b/App_Code/ClsValidaCFDi.vb @@ -41,9 +41,9 @@ Public Class ClsValidaCFDi End Sub Public Sub New(FolioFiscal As String, RFCEmisor As String, RFCReceptor As String, Optional Importe As Decimal = 0) - Me.LFolioFiscal = HttpUtility.UrlEncode(FolioFiscal) - Me.LRFCEmisor = HttpUtility.UrlEncode(RFCEmisor) - Me.LRFCReceptor = HttpUtility.UrlEncode(RFCReceptor) + Me.LFolioFiscal = FolioFiscal + Me.LRFCEmisor = RFCEmisor + Me.LRFCReceptor = RFCReceptor Me.LImporte = Importe VerificaCFDI() End Sub diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 8741dbff4..cd5dbd416 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1779,10 +1779,10 @@ Partial Class Compras_Compras DdlTipoComprobante.SelectedValueExist("DEV") End If - If Not CveCompra > 0 Or (CveCompra > 0 And UsuarioActual.CveEmpresa = 141) Then - LnkProrrateoGasolina.Visible = True - InicializaDTProrrateoGasolina() - End If + 'If Not CveCompra > 0 Or (CveCompra > 0 And UsuarioActual.CveEmpresa = 141) Then + LnkProrrateoGasolina.Visible = True + InicializaDTProrrateoGasolina() + 'End If 'If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then ' If Request("SaldarRNC") IsNot Nothing AndAlso Request("SaldarRNC").ToString.ToEntero = 1 Then @@ -8011,67 +8011,73 @@ Partial Class Compras_Compras AutoConta = False End If - If Not ErrorPrepoliza AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=4, AutoConta:=AutoConta) Then - TieneError = True - If ObjConta.ValorPolizaDescuadre > 0 Then - Alert($"{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia}", TipoMensaje.MsgError) - ErrorPrepolizaDescuadre = True - End If + Dim OpValidacion As Integer = 4 + + If UsuarioActual.CveEmpresa.Contiene(7, 11, 12, 122, 145) AndAlso RBLPago.SelectedValue.ToEntero = 3 AndAlso RBLContado.SelectedValue.ToEntero.Contiene(6, 2) Then + OpValidacion = 499 End If - If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 OrElse ImporteRNCProntoPago > 0) Then + If Not ErrorPrepoliza AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=OpValidacion, AutoConta:=AutoConta) Then + TieneError = True + If ObjConta.ValorPolizaDescuadre > 0 Then + Alert($"{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia}", TipoMensaje.MsgError) + ErrorPrepolizaDescuadre = True + End If + End If - If ImporteRNC > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNC, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, + If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 OrElse ImporteRNCProntoPago > 0) Then + + If ImporteRNC > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNC, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, TxtSerie.Text, TxtFolio.Text) Then - TieneError = True - End If + TieneError = True + End If - If ImporteRNCProntoPago > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNCProntoPago, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, + If ImporteRNCProntoPago > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNCProntoPago, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal, TxtSerie.Text, TxtFolio.Text, PrefijoSerie:="PP") Then - TieneError = True + TieneError = True + End If + + End If + + If Not TieneError Then + ObjCompras.Commit() + If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() + + Dim CveEvaluacionProveedor As Integer = -1 + + If Me.RequiereEvaluacion Then + Dim ObjPro As New ClsCompProveedores() + CveEvaluacionProveedor = ObjPro.AddEvaluacionProveedor(CveProveedor, CveCompra, NowADS(), "", Me.CveUsuarioEvaluador, "", "", UsuarioActual.CveEmpresa) + ObjPro.Dispose() + End If + + 'ENVIO DE CORREO NOTIFICACION A VENDEDORES DE OC + MandaCorreoOCVendedores(CveCompra) + If Not ErrorMovInv Then + For Each intMovimientoAlmacen As Integer In ListaMovimientosAlmacen + MandaCorreoOCVendedoresRecepcionAlmacen(CveCompra, intMovimientoAlmacen) + Next + End If + + If CveEvaluacionProveedor > 0 Then + Msg.Append("

El proveedor tiene evaluaciones pendientes
") + Msg.Append("¿Desea realizar una evaluación al proveedor?") + Msg.AppendFormat($"
Evaluar Proveedor.") + End If + + BtnGuardar.Enabled = False + UpFacturar.Update() + + Alert(Msg.ToString, TipoMensaje.MsgInformacion, MsgAccionAceptar) + Else + ObjCompras.RollBack() + If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() + Alert("Ocurrio un error al guardar la compra. Por favor intente nuevamente.", TipoMensaje.MsgError) End If End If - If Not TieneError Then - ObjCompras.Commit() - If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() - - Dim CveEvaluacionProveedor As Integer = -1 - - If Me.RequiereEvaluacion Then - Dim ObjPro As New ClsCompProveedores() - CveEvaluacionProveedor = ObjPro.AddEvaluacionProveedor(CveProveedor, CveCompra, NowADS(), "", Me.CveUsuarioEvaluador, "", "", UsuarioActual.CveEmpresa) - ObjPro.Dispose() - End If - - 'ENVIO DE CORREO NOTIFICACION A VENDEDORES DE OC - MandaCorreoOCVendedores(CveCompra) - If Not ErrorMovInv Then - For Each intMovimientoAlmacen As Integer In ListaMovimientosAlmacen - MandaCorreoOCVendedoresRecepcionAlmacen(CveCompra, intMovimientoAlmacen) - Next - End If - - If CveEvaluacionProveedor > 0 Then - Msg.Append("

El proveedor tiene evaluaciones pendientes
") - Msg.Append("¿Desea realizar una evaluación al proveedor?") - Msg.AppendFormat($"
Evaluar Proveedor.") - End If - - BtnGuardar.Enabled = False - UpFacturar.Update() - - Alert(Msg.ToString, TipoMensaje.MsgInformacion, MsgAccionAceptar) Else - ObjCompras.RollBack() - If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() - Alert("Ocurrio un error al guardar la compra. Por favor intente nuevamente.", TipoMensaje.MsgError) - End If - - End If - - Else ObjCompras.RollBack() If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() Alert("Ocurrio un error al guardar la compra. Por favor intente nuevamente..", TipoMensaje.MsgError) @@ -23028,6 +23034,16 @@ Partial Class Compras_Compras End If If DTProrrateoGasolina.Rows.Count > 0 Then + + If CveCompra > 0 Then + For Each dRow As DataRow In TmpDT.Rows + Dim CveCompraDetalle As Integer = dRow("CveCompraDetalle").ToString.ToEntero + If CveCompraDetalle > 0 Then + ClavesBorradas.Add(CveCompraDetalle) + End If + Next + End If + TmpDT.Rows.Clear() For Each dRow As DataRow In DTProrrateoGasolina.Rows AddPS(1, dRow("CveUM").ToString.ToEntero, dRow("UM").ToString, dRow("CveClasificacion").ToString.ToEntero, dRow("Clasificacion").ToString, dRow("CvePS").ToString.ToEntero, dRow("PS").ToString, 1, dRow("CveSubProyecto").ToString, dRow("SubProyecto").ToString, "",