diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index e70d402ef..211711478 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -4,6 +4,7 @@ Option Strict On Imports System.Data Imports System.Data.SqlClient Imports Extensiones +Imports iText.StyledXmlParser.Css.Resolve.Shorthand.Impl Public Class ClsCompras Implements IDisposable @@ -3115,6 +3116,29 @@ Public Class ClsCompras Return Retorno End Function + + Public Function GetComprobacionPagosContabilizados(CvePersonal As Integer, CveCajaChica As Integer, NumeroReembolso As String, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_ComprobacionPagosContabilizadosGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal + .Add("@CveCajaChica", SqlDbType.Int).Value = CveCajaChica + .Add("@NumeroReembolso", SqlDbType.VarChar).Value = NumeroReembolso + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveComprobacion", SqlDbType.Int).Direction = ParameterDirection.Output + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al consultar los pagos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function GetRepComprasInventarios(FechaIC As Date, FechaFC As Date, FechaI As Date, FechaF As Date, CveEmpresa As Integer, CveSubProyecto As Integer, CveProveedor As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_InventariosRepGet") diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index cda545d68..0eafa3c5b 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -865,6 +865,37 @@ Public Class ClsContabilidad End Function + Public Function PrePolizaCompraCambiaReembolso(CvePrePoliza As Integer, CvePrePolizaVieja As Integer, CveCompra As Integer, CveEmpresa As Integer, Opcion As Integer) As Boolean + Dim Retorno As Boolean = False + + SeUnifico = False + YaEstabaUnifida = False + EstaContabilizada = False + + DataAdapter("PA_Conta_PrePolizaCompraCambiaReembolso") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrePoliza + .Add("@CvePrePolizaVieja", SqlDbType.Int).Value = CvePrePolizaVieja + .Add("@CveCompra", SqlDbType.Int).Value = CveCompra + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@Opcion", SqlDbType.Int).Value = Opcion + End With + + Try + + SqlAdapter.Fill(Data) + Retorno = True + Catch ex1 As SqlException + OnError("Ocurrió un error al actualizar prepolizas", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + Catch ex As Exception + OnError("Ocurrió un error al actualizar prepolizas", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + + End Function + Public Function PrePolizaSimplificacion(CvePrePoliza As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Conta_PrePolizasSimplificacion") @@ -878,9 +909,9 @@ Public Class ClsContabilidad SqlAdapter.Fill(Data) Retorno = True Catch ex1 As SqlException - OnError("Ocurrió un error al simplificar prepolizas", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + OnError("Ocurrió un error al actualizar prepolizas", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) Catch ex As Exception - OnError("Ocurrió un error al simplificar prepolizas", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + OnError("Ocurrió un error al actualizar prepolizas", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) End Try Return Retorno diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 170fc058f..f70d68b75 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -13,6 +13,8 @@ Imports MoreLinq Imports System.Data.SqlClient Imports ClsPaginas Imports System.Activities.Expressions +Imports Microsoft.Data.Edm.Expressions +Imports Telerik.Web.UI Partial Class Compras_Compras Inherits ClsPaginas @@ -3549,7 +3551,7 @@ Partial Class Compras_Compras ViewState("CveProveedor") = ObjProveedor.CveProveedor ViewState("CveTipoProveedor") = ObjProveedor.CveTipoProveedor - RFCProveedor = ObjProveedor.RFC + RFCProveedor = ObjProveedor.RFC If ObjProveedor.CveTipoProveedor = 2 Then LblProveedor.Text = "Acreedor:" Else @@ -8693,10 +8695,6 @@ Partial Class Compras_Compras Next - 'If Not validaNumeroReembolso() Then - ' Exit Sub - 'End If - Dim ObjCompra As New ClsCompras Dim ObjProveedores As New ClsCompProveedores(ObjCompra.IniciaTransacSQL()) Dim ObjInventario As New ClsInventarios(ObjCompra.IniciaTransacSQL) @@ -9240,6 +9238,9 @@ Partial Class Compras_Compras End If + If Retorno AndAlso Not validaNumeroReembolso(ObjCompra.IniciaTransacSQL()) Then + Retorno = False + End If Catch ex As Exception Alert("Ocurrió un error al actualizar la compra", TipoMensaje.MsgError) @@ -9248,6 +9249,9 @@ Partial Class Compras_Compras Finally + + + If Retorno Then If ObjContabilidad.MensajePolizaDescuadre IsNot Nothing AndAlso ObjContabilidad.MensajePolizaDescuadre.ToString <> "" Then Alert(ObjContabilidad.MensajePolizaDescuadre.ToString) @@ -9290,12 +9294,109 @@ Partial Class Compras_Compras End Sub - Private Function validaNumeroReembolso() As Boolean + Private Function validaNumeroReembolso(transaccionSql As SqlTransaction) As Boolean - If NumeroReembolsoOriginal <> TxtNumeroReembolso.Text Then + + Dim objCompras As New ClsCompras(transaccionSql) + Dim objConta As New ClsContabilidad(transaccionSql) + + + Dim tienePagoContabilizado As Boolean = False + Dim ErrorProceso As Boolean = False + + Dim CvePrePolizaReembolsoActual As Integer = CvePrePoliza + Dim CvePrePolizaReembolsoNuevo As Integer = -1 + + If TxtRembolsoNumero.Text.Trim.Length > 0 Then + + Dim CvePersonalVal As Integer = -1 + Dim CveCajaChicaVal As Integer = -1 + + If RblRembolso.SelectedValue.ToEntero = 1 Then + CvePersonalVal = DdlRembolsoPersonal.SelectedValue.ToEntero + Else + CveCajaChicaVal = DdlRembolsoCajaChica.SelectedValue.ToEntero + End If + + If objCompras.GetComprobacion(CvePersonalVal, CveCajaChicaVal, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then + + If objCompras.DtResultados.Rows.Count > 0 Then + CvePrePolizaReembolsoNuevo = objCompras.DtResultados.Rows(0)("CvePrePoliza").ToString.ToEntero + Else + + Dim tConcepto As String = If(DdlRembolsoPersonal.SelectedValue.ToEntero > 0, DdlRembolsoPersonal.SelectedItem.Text, DdlRembolsoCajaChica.SelectedItem.Text) + + tConcepto = String.Format("{0}-{1}", tConcepto, TxtRembolsoNumero.Text.Trim) + + CvePrePolizaReembolsoNuevo = objConta.AddPrePolizas("Compras Comproba", 1, 0, 0, 1, TxtFecha.Text.ToDate, tConcepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + If Not objCompras.AddComprobacion(DdlRembolsoPersonal.SelectedValue.ToEntero, DdlRembolsoCajaChica.SelectedValue.ToEntero, TxtRembolsoNumero.Text.Trim, CvePrePolizaReembolsoNuevo, UsuarioActual.CveEmpresa) > 0 Then + ErrorProceso = True + End If + + + End If + End If + + + If NumeroReembolsoOriginal = "" And TxtRembolsoNumero.Text.Trim.Length > 0 Then + + + If objCompras.GetComprobacionPagosContabilizados(CvePersonalVal, CveCajaChicaVal, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then + + If objCompras.DtResultados IsNot Nothing AndAlso objCompras.DtResultados.Rows.Count > 0 Then + tienePagoContabilizado = True + End If + + If tienePagoContabilizado Then + Alert($"No se puede actualizar el número de reembolso {TxtRembolsoNumero.Text}, ya tiene pagos contabilizados.", TipoMensaje.MsgAdvertencia) + Return False + End If + + + If objConta.GetPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa) Then + + Dim FolioPoliza As Integer = objConta.DtResultados.Rows(0)("FolioPoliza").ToString.ToEntero + + If FolioPoliza > 0 Then + If Not objConta.ContabilizaDesContabilizaPrePoliza(CvePrePoliza, False, UsuarioActual.CveEmpresa) Then + ErrorProceso = True + End If + End If + + End If + + + Else + ErrorProceso = True + End If + + + + ElseIf NumeroReembolsoOriginal.Length > 0 And TxtRembolsoNumero.Text.Trim.Length > 0 Then + 'cambiar de prepoliza la compra actual, de la prepoliza actual a la nueva + If Not objConta.PrePolizaCompraCambiaReembolso(CvePrePolizaReembolsoNuevo, CvePrePoliza, CveCompra, UsuarioActual.CveEmpresa, 1) Then + ErrorProceso = True + End If + End If + + + Else + + If NumeroReembolsoOriginal.Length > 0 And TxtRembolsoNumero.Text.Trim.Length = 0 Then + 'Actualizar PrePoliza Actual de Donde CveCompra = CveCompra poner CvePrePolizaOriginal + If Not objConta.PrePolizaCompraCambiaReembolso(-1, CvePrePoliza, CveCompra, UsuarioActual.CveEmpresa, 2) Then + ErrorProceso = True + End If + End If End If + + + + Return If(ErrorProceso, False, True) + End Function Private Sub MandaCorreoActualizacionDetalle() @@ -10785,7 +10886,7 @@ Partial Class Compras_Compras If ChkConsignacion.Checked Then End If - UpINV.Update() + UpInv.Update() End Sub