diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 06c455a78..ae62dc0f5 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1,4 +1,4 @@ -Option Explicit On +'{Option Explicit On Option Strict On Imports System.Data @@ -14,9 +14,6 @@ Imports System.Data.SqlClient Imports ClsPaginas Imports Microsoft.Owin.Security.Provider - - - Partial Class Compras_Compras Inherits ClsPaginas @@ -9364,44 +9361,94 @@ Partial Class Compras_Compras End If End If + If (NumeroReembolsoOriginal.Trim <> TxtRembolsoNumero.Text.Trim) Then + 'NOTA. si hay un cambio en el reembolso, puede tener estas consideraciones. + '1. no tenía comprobación y se ocupa relacionar, se deberá validar que no tenga pagos contabilizados + '2. se está cambiando de comprobación + '3. se está quitando la relación de una comprobación - If (TxtRembolsoNumero.Text.Trim.Length > 0 AndAlso IdPoliza <= 0) AndAlso (NumeroReembolsoOriginal.Trim <> TxtRembolsoNumero.Text.Trim) Then + If (TxtRembolsoNumero.Text.Trim.Length > 0) Then + 'valida. + If NumeroReembolsoOriginal = "" Then ' se asignará a una nueva comprobación + Dim CvePersonalVal As Integer = -1 + Dim CveCajaChicaVal As Integer = -1 + Dim tienePagoContabilizado As Boolean = False - 'CUANDO ES REEMBOLSO COMPROBACION Y CAJA CHICA - If UsuarioActual.CveEmpresa.Contiene(1, 119, 141, 172, 173, 174, 13, 83) AndAlso TxtRembolsoNumero.Text.Trim <> "" AndAlso (DdlRembolsoPersonal.SelectedValue.ToEntero > 0 Or DdlRembolsoCajaChica.SelectedValue.ToEntero > 0) Then - If ObjCompra.GetComprobacion(DdlRembolsoPersonal.SelectedValue.ToEntero, DdlRembolsoCajaChica.SelectedValue.ToEntero, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then - Dim CvePreComprobacion As Integer - If ObjCompra.DtResultados.Rows.Count = 0 Then - 'sino existe, creamos la comprobacion - Dim tConcepto As String = If(DdlRembolsoPersonal.SelectedValue.ToEntero > 0, DdlRembolsoPersonal.SelectedItem.Text, DdlRembolsoCajaChica.SelectedItem.Text) - tConcepto = String.Format("{0}-{1}", tConcepto, TxtRembolsoNumero.Text.Trim) - - CvePreComprobacion = ObjContabilidad.AddPrePolizas("Compras Comproba", 1, 0, 0, 1, TxtFecha.Text.ToDate, tConcepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - If ObjCompra.AddComprobacion(DdlRembolsoPersonal.SelectedValue.ToEntero, DdlRembolsoCajaChica.SelectedValue.ToEntero, TxtRembolsoNumero.Text.Trim, CvePreComprobacion, UsuarioActual.CveEmpresa) > 0 Then - - End If + If RblRembolso.SelectedValue.ToEntero = 1 Then + CvePersonalVal = DdlRembolsoPersonal.SelectedValue.ToEntero Else - 'si ya existe, obtenemos la prepóliza - CvePreComprobacion = ObjCompra.DtResultados.FiltroPrimeroValor("CvePrePoliza").ToEntero + CveCajaChicaVal = DdlRembolsoCajaChica.SelectedValue.ToEntero End If - ObjContabilidad.PrePolizaUnificacion(CvePreComprobacion, CvePrePoliza) + If ObjCompra.GetComprobacionPagosContabilizados(CvePersonalVal, CveCajaChicaVal, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then + + If ObjCompra.DtResultados IsNot Nothing AndAlso ObjCompra.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) + Retorno = 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 + Retorno = False + End If End If + If Retorno Then + + 'CUANDO ES REEMBOLSO COMPROBACION Y CAJA CHICA + If UsuarioActual.CveEmpresa.Contiene(1, 119, 141, 172, 173, 174, 13, 83) AndAlso TxtRembolsoNumero.Text.Trim <> "" AndAlso (DdlRembolsoPersonal.SelectedValue.ToEntero > 0 OrElse DdlRembolsoCajaChica.SelectedValue.ToEntero > 0) Then + If ObjCompra.GetComprobacion(DdlRembolsoPersonal.SelectedValue.ToEntero, DdlRembolsoCajaChica.SelectedValue.ToEntero, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then + Dim CvePreComprobacion As Integer + If ObjCompra.DtResultados.Rows.Count = 0 Then + 'sino existe, creamos la comprobacion + Dim tConcepto As String = If(DdlRembolsoPersonal.SelectedValue.ToEntero > 0, DdlRembolsoPersonal.SelectedItem.Text, DdlRembolsoCajaChica.SelectedItem.Text) + tConcepto = String.Format("{0}-{1}", tConcepto, TxtRembolsoNumero.Text.Trim) + + CvePreComprobacion = ObjContabilidad.AddPrePolizas("Compras Comproba", 1, 0, 0, 1, TxtFecha.Text.ToDate, tConcepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + If ObjCompra.AddComprobacion(DdlRembolsoPersonal.SelectedValue.ToEntero, DdlRembolsoCajaChica.SelectedValue.ToEntero, TxtRembolsoNumero.Text.Trim, CvePreComprobacion, UsuarioActual.CveEmpresa) > 0 Then + + End If + Else + 'si ya existe, obtenemos la prepóliza + CvePreComprobacion = ObjCompra.DtResultados.FiltroPrimeroValor("CvePrePoliza").ToEntero + End If + 'cambiar la prepóliza + If Not ObjContabilidad.PrePolizaCompraCambiaReembolso(CvePreComprobacion, CvePrePoliza, CveCompra, UsuarioActual.CveEmpresa, 1) Then + Retorno = False + End If + ' ObjContabilidad.PrePolizaUnificacion(CvePreComprobacion, CvePrePoliza) + End If + End If + End If + Else + 'Actualizar PrePoliza Actual de Donde CveCompra = CveCompra poner CvePrePolizaOriginal + If Not ObjContabilidad.PrePolizaCompraCambiaReembolso(-1, CvePrePoliza, CveCompra, UsuarioActual.CveEmpresa, 2) Then + Retorno = False + End If End If End If - Else Retorno = False End If Else - Alert("La compra no se puede actualizar debido a que los totales no son iguales, verifique sus cambios", TipoMensaje.MsgError) - End If If Retorno AndAlso (CveRetIVAConceptoOriginal <> DdlRetIVAConcepto.SelectedValue.ToEntero OrElse CveRetISRConceptoOriginal <> DdlRetISRConcepto.SelectedValue.ToEntero) Then @@ -9421,20 +9468,17 @@ Partial Class Compras_Compras End If - If Retorno AndAlso Not validaNumeroReembolso(ObjCompra.IniciaTransacSQL()) Then - Retorno = False - 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) ObjCompra.RollBack() If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() - Finally - - If Retorno Then If ObjContabilidad.MensajePolizaDescuadre IsNot Nothing AndAlso ObjContabilidad.MensajePolizaDescuadre.ToString <> "" Then Alert(ObjContabilidad.MensajePolizaDescuadre.ToString) @@ -9546,112 +9590,95 @@ Partial Class Compras_Compras End Function - Private Function validaNumeroReembolso(ByRef transaccionSql As SqlTransaction) As Boolean + 'Private Function validaNumeroReembolso(ByRef transaccionSql As SqlTransaction) As Boolean - Dim CvePersonalVal As Integer = -1 - Dim CveCajaChicaVal As Integer = -1 + ' 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 RblRembolso.SelectedValue.ToEntero = 1 Then + ' CvePersonalVal = DdlRembolsoPersonal.SelectedValue.ToEntero + ' Else + ' CveCajaChicaVal = DdlRembolsoCajaChica.SelectedValue.ToEntero + ' End If - Dim objCompras As New ClsCompras(transaccionSql) - Dim objConta As New ClsContabilidad(transaccionSql) + ' Dim objCompras As New ClsCompras(transaccionSql) + ' Dim objConta As New ClsContabilidad(transaccionSql) - Dim tienePagoContabilizado As Boolean = False - Dim ErrorProceso As Boolean = False + ' Dim tienePagoContabilizado As Boolean = False + ' Dim ErrorProceso As Boolean = False - Dim CvePrePolizaReembolsoActual As Integer = CvePrePoliza - Dim CvePrePolizaReembolsoNuevo As Integer = -1 + ' Dim CvePrePolizaReembolsoActual As Integer = CvePrePoliza + ' Dim CvePrePolizaReembolsoNuevo As Integer = -1 - If TxtRembolsoNumero.Text.Trim.Length > 0 Then + ' If TxtRembolsoNumero.Text.Trim.Length > 0 Then - If objCompras.GetComprobacion(CvePersonalVal, CveCajaChicaVal, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then + ' 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 + ' 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) + ' Dim tConcepto As String = If(DdlRembolsoPersonal.SelectedValue.ToEntero > 0, DdlRembolsoPersonal.SelectedItem.Text, DdlRembolsoCajaChica.SelectedItem.Text) - tConcepto = String.Format("{0}-{1}", tConcepto, TxtRembolsoNumero.Text.Trim) + ' 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) + ' 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 + ' 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 - End If - End If + ' If objCompras.GetComprobacionPagosContabilizados(CvePersonalVal, CveCajaChicaVal, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then - If NumeroReembolsoOriginal = "" And TxtRembolsoNumero.Text.Trim.Length > 0 Then + ' If objCompras.DtResultados IsNot Nothing AndAlso objCompras.DtResultados.Rows.Count > 0 Then + ' tienePagoContabilizado = True + ' End If - If objCompras.GetComprobacionPagosContabilizados(CvePersonalVal, CveCajaChicaVal, TxtRembolsoNumero.Text.Trim, UsuarioActual.CveEmpresa) Then + ' 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 objCompras.DtResultados IsNot Nothing AndAlso objCompras.DtResultados.Rows.Count > 0 Then - tienePagoContabilizado = True - End If + ' If objConta.GetPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa) Then - 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 + ' 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 objConta.GetPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa) Then + ' 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 - Dim FolioPoliza As Integer = objConta.DtResultados.Rows(0)("FolioPoliza").ToString.ToEntero + ' End If - 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 + ' Return If(ErrorProceso, False, True) + 'End Function Private Sub MandaCorreoActualizacionDetalle() - - Dim DTCorreos As New DataTable Dim DTMovimientos As New DataTable Dim strBody As New StringBuilder @@ -9701,10 +9728,8 @@ Partial Class Compras_Compras strBody.Append("
") strBody.Append($"Se realizo una actualización en los detalles de la compra {SerieFolioCompra} del proveedor {HplProveedor.Text}
") strBody.Append("") - strBody.Append("