diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index 5cfb77001..154097b80 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -720,11 +720,14 @@ Public Class ClsClientes ElseIf Ex1.Message.Contains("Número: 2601;") Then If Ex1.Message.Contains("UN_ClientesRFCEmpresa") Then - Alert("Ya existe un cliente registrado con el mismo RFC.", TipoMensaje.MsgAdvertencia) + Dim tRFC As String = Ex1.Message.Substring(194, 13) + Alert("Ya existe un cliente registrado con el mismo RFC: " & tRFC, TipoMensaje.MsgAdvertencia) + GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", "Ya existe un cliente registrado con el mismo RFC.", Ex1.ToString, vbCrLf, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)) End If If Ex1.Message.Contains("IND_Clientes_Codigo") Then Alert("Ya existe un cliente registrado con el mismo Código.", TipoMensaje.MsgAdvertencia) + GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", "Ya existe un cliente registrado con el mismo Código.", Ex1.ToString, vbCrLf, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)) End If Else Me.OnError("Ocurrió un error al Intentar guardar el Nuevo Cliente.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) diff --git a/App_Code/ClsContPAQi.vb b/App_Code/ClsContPAQi.vb index ec9312444..bef333969 100644 --- a/App_Code/ClsContPAQi.vb +++ b/App_Code/ClsContPAQi.vb @@ -5048,8 +5048,8 @@ Public Class ClsContPAQi ") - 'SqlDataAdapter(StrSQL.ToString, CommandType.Text) - SqlDataAdapter("PA_EstadoResultadosPorSegmento", CommandType.StoredProcedure) + SqlDataAdapter(StrSQL.ToString, CommandType.Text) + 'SqlDataAdapter("PA_EstadoResultadosPorSegmento", CommandType.StoredProcedure) With SqlAdapter.SelectCommand.Parameters diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 289b3981f..fbf0a6182 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -5747,7 +5747,7 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetCuentasAsignacionesSistema(CveEmpresa As Integer, Tipo As Integer) As Boolean + Public Function GetCuentasAsignacionesSistema(CveEmpresa As Integer, Tipo As Integer, Opcion As Integer) As Boolean Dim Retorno = False DataAdapter("PA_Conta_CuentasAsignacionesSistemaGet") @@ -5755,6 +5755,7 @@ Public Class ClsContabilidad With SqlAdapter.SelectCommand.Parameters .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@Tipo", SqlDbType.Int).Value = Tipo + .Add("@Opcion", SqlDbType.Int).Value = Opcion End With Try @@ -5851,6 +5852,71 @@ Public Class ClsContabilidad Return Retorno End Function +#Region "Globales" + Public Function GetCuentasGlobales(CveEmpresa As Integer) As Boolean + Dim Retorno = False + + DataAdapter("PA_Conta_CuentasGlobalesGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + Me.OnError("Ocurrió un error al obtener el catálogo de cuentas globales", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function AddCuentasGlobales(CveConceptoContable As Integer, CveCuenta As Integer, TipoGlobal As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno = False + + DataAdapter("PA_Conta_CuentasGlobalesAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveConceptoContable", SqlDbType.Int).Value = CveConceptoContable + .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta + .Add("@TipoGlobal", SqlDbType.Int).Value = TipoGlobal + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + Me.OnError("Ocurrió un error al eliminar el catálogo de cuentas asignación", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function RemoveCuentasGlobales(CveConceptoContable As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno = False + + DataAdapter("PA_Conta_CuentasGlobalesDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveConceptoContable", SqlDbType.Int).Value = CveConceptoContable + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + Me.OnError("Ocurrió un error al eliminar el catálogo de globales", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + +#End Region + Public Function GetContaEjercicio(CveEmpresa As Integer) As Boolean Dim Retorno = False diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 83a20daf6..7c27793f3 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -1084,12 +1084,14 @@ Public Class ClsContratos End Function - Public Function GetContratosDetalle(CveContrato As Integer) As Boolean + Public Function GetContratosDetalle(CveContrato As Integer, CveEmpresa As Integer, Optional Grupo As Integer = 1) As Boolean Dim Retorno = False DataAdapter("PA_Con_ContratosDetalleGet") With SqlAdapter.SelectCommand.Parameters .Add("@CveContrato", SqlDbType.Int).Value = CveContrato + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@Grupo", SqlDbType.Int).Value = Grupo End With Try @@ -1179,6 +1181,23 @@ Public Class ClsContratos Return Retorno End Function + Public Function ValidaPSContrato(DtPS As String) As Boolean + Dim Retorno = False + + DataAdapter("PA_Con_ValidarPSContrato") + With SqlAdapter.SelectCommand.Parameters + .Add("@DtPS", SqlDbType.VarChar).Value = DtPS + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al cargar los Detalles del Contrato.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function #End Region #Region "Contratos detalles Avance" diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 286840260..39ebe63e7 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -2783,12 +2783,13 @@ Public Class ClsInventarios Return Retorno End Function - Public Function GetInventarioFisicoResultadosAvance(CveInventarioFisico As Integer, CveEmpresa As Integer) As Boolean + Public Function GetInventarioFisicoResultadosAvance(CveInventarioFisico As Integer, CveEmpresa As Integer, Optional GPO As Integer = 1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_InventarioFisicoResultadoAvance") With SqlAdapter.SelectCommand.Parameters .Add("@CveInventarioFisico", SqlDbType.Int).Value = CveInventarioFisico .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@GPO", SqlDbType.Int).Value = GPO End With Try SqlAdapter.Fill(Data) @@ -2833,7 +2834,26 @@ Public Class ClsInventarios Return Retorno End Function + Public Function GetInventarioFisicoUniversoProductos(CveInventarioFisico As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Inv_InventarioFisicoUniversoProductosGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveInventarioFisico", SqlDbType.Int).Value = CveInventarioFisico + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + + Catch Ex1 As SqlException + Me.OnError("Ocurrió un error al obtener el universo de productos del inventario fisico.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + OnError("Ocurrió un error al obtener el universo de productos del inventario fisico.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function #End Region #Region " INVENTARIOS - MAXIMO MINIMO" diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 4d2fd0a71..9e898f86c 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -1798,12 +1798,29 @@ Public Class ClsPaginas Application("GlobalDTContratosSecciones") = value End Set End Property - Property GlobalDTContratos() As DataTable + Property GlobalDTContratos(CveEmpresa As Integer, Optional CveContrato As Integer = -1, Optional CveSubProyecto As Integer = -1) As DataTable Get - GlobalDTContratos = DirectCast(Application("GlobalDTContratos"), DataTable) + Dim AppNombre As String = String.Format("GlobalDTContratos-{0}", CveEmpresa) + 'sino existe, recarga los datos + If Application(AppNombre) Is Nothing Then + Using ObjContratos As New ClsContratos + If ObjContratos.GetContratos(-1, CveEmpresa) Then Application(AppNombre) = ObjContratos.DtResultados Else Application(AppNombre) = Nothing + End Using + End If + + Dim StrSQL As New StringBuilder + StrSQL.Append(" 1 = 1 ") + If CveContrato >= 0 Then StrSQL.AppendFormat(" AND CveContrato = {0} ", CveContrato) + If CveSubProyecto >= 0 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0} ", CveSubProyecto) + + Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) + GlobalDTContratos = Dv.ToTable + Dv.Dispose() + End Get Set(value As DataTable) - Application("GlobalDTContratos") = value + Dim AppNombre As String = String.Format("GlobalDTContratos-{0}", CveEmpresa) + Application(AppNombre) = value End Set End Property Property GlobalDTContratosTipos(CveEmpresa As Integer) As DataTable diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index afc155043..e4f5db821 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -4615,6 +4615,10 @@ Namespace Modelos '1 NORMAL, 2 CON PAGOS Dim ModalidadRefacturacion As Integer = UsuarioActual.Empresa.Funcionalidad(586).ToEntero() + If UsuarioActual.CveUsuario = 1719 Then + ModalidadRefacturacion = 2 + End If + If EsRefacturacion AndAlso ModalidadRefacturacion <= 0 Then Retorno.Mensaje = "La factura no se puede refacturar debido a que la empresa no tiene asignada una modalidad de refacturación." Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 43a82a7dc..e0ef0f2ee 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -193,6 +193,20 @@ Partial Class Bancos_IE End Set End Property + Private Property CveIECancelado As Integer + Get + If ViewState("CveIECancelado") Is Nothing Then + Return -1 + Else + Return ViewState("CveIECancelado").ToString().ToEntero() + End If + + End Get + Set(value As Integer) + ViewState("CveIECancelado") = value + End Set + End Property + Private Property ImporteOriginalDevDin As Decimal Get Return ViewState("ImporteOriginalDevDin").ToString.ToDecimal @@ -1132,6 +1146,7 @@ Partial Class Bancos_IE LbMovimientoCancelado.Text = "Movimiento Cancelado:" HLIECancelacion.NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", ObjIE.CveIECancelado) HLIECancelacion.Text = ObjIE.FolioIECancelado + CveIECancelado = ObjIE.CveIECancelacion End If 'Esconde datos que no tenemos @@ -4736,7 +4751,7 @@ Partial Class Bancos_IE End Sub Protected Sub LnkEliminar_Click(sender As Object, e As EventArgs) Handles LnkEliminar.Click - If CveIECancelacion > 0 Then + If CveIECancelado > 0 Then Alert("El Movimiento no se puede eliminar porque tiene una cancelación relacionada, se tiene que eliminar primero la cancelación", TipoMensaje.MsgAdvertencia) Else RegistraScript(String.Format("$('#{0}').modal('show');", "divDescripcion")) diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index 1582d5826..67e647931 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1577,8 +1577,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioCompra CveIE = rw.DataKey("CveIE").ToString.ToEntero @@ -1625,8 +1625,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioCompra CveIE = rw.DataKey("CveIE").ToString.ToEntero @@ -1672,8 +1672,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL CveIE = rw.DataKey("CveIE").ToString.ToEntero If CveMonedaCompra <> 1 Then @@ -1718,8 +1718,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL If CveMonedaCompra <> 1 Then 'si la factura es en dólares y trae complementaria, el importemn debe ser igual al importe @@ -1763,8 +1763,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioCompra End If @@ -1795,8 +1795,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioCompra If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1829,8 +1829,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1863,8 +1863,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioCompra If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2136,8 +2136,8 @@ Partial Class Bancos_PopIECompras ' ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ' ImporteMX = ImporteMovimiento * tipoCambioCompra ' End If - ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ' ImporteMX = Math.Round(ImporteMX, 2) + ' ImporteMovimiento = ImporteMovimiento.RoundSQL + ' ImporteMX = ImporteMX.RoundSQL ' TimpocambioGeneral = tipoCambioCompra ' If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2171,8 +2171,8 @@ Partial Class Bancos_PopIECompras ' ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioCompra, tipoCambioPago) ' End If - ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ' ImporteMX = Math.Round(ImporteMX, 2) + ' ImporteMovimiento = ImporteMovimiento.RoundSQL + ' ImporteMX = ImporteMX.RoundSQL ' TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioCompra, tipoCambioPago) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2206,8 +2206,8 @@ Partial Class Bancos_PopIECompras ' ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioCompra, tipoCambioPago) ' End If - ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ' ImporteMX = Math.Round(ImporteMX, 2) + ' ImporteMovimiento = ImporteMovimiento.RoundSQL + ' ImporteMX = ImporteMX.RoundSQL ' TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioCompra, tipoCambioPago) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2242,8 +2242,8 @@ Partial Class Bancos_PopIECompras ' ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioCompra, tipoCambioPago) ' End If - ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ' ImporteMX = Math.Round(ImporteMX, 2) + ' ImporteMovimiento = ImporteMovimiento.RoundSQL + ' ImporteMX = ImporteMX.RoundSQL ' TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioCompra, tipoCambioPago) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2431,7 +2431,7 @@ Partial Class Bancos_PopIECompras ImporteMXNoDeducible = ImporteMovimientoNoDeducible * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) End If ImporteMovimientoNoDeducible = Math.Round(ImporteMovimientoNoDeducible, 2) - ImporteMXNoDeducible = Math.Round(ImporteMX, 2) + ImporteMXNoDeducible = ImporteMX.RoundSQL TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimientoNoDeducible.FormatoNumero(2)}" @@ -2596,8 +2596,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.IVADeducible) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2620,8 +2620,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.IVADeducible * PorcentajePago) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2657,7 +2657,7 @@ Partial Class Bancos_PopIECompras ImporteMXNoDeducible = ImporteMovimientoNoDeducible * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) End If ImporteMovimientoNoDeducible = Math.Round(ImporteMovimientoNoDeducible, 2) - ImporteMXNoDeducible = Math.Round(ImporteMX, 2) + ImporteMXNoDeducible = ImporteMX.RoundSQL TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimientoNoDeducible.FormatoNumero(2)}" @@ -2742,8 +2742,8 @@ Partial Class Bancos_PopIECompras ' ImporteMovimiento = (MovimientoPagar.IVANoDeducible) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) ' End If - ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ' ImporteMX = Math.Round(ImporteMX, 2) + ' ImporteMovimiento = ImporteMovimiento.RoundSQL + ' ImporteMX = ImporteMX.RoundSQL ' TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2765,8 +2765,8 @@ Partial Class Bancos_PopIECompras ' ImporteMovimiento = (MovimientoPagar.IVANoDeducible * PorcentajePago) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) ' End If - ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ' ImporteMX = Math.Round(ImporteMX, 2) + ' ImporteMovimiento = ImporteMovimiento.RoundSQL + ' ImporteMX = ImporteMX.RoundSQL ' TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -2802,8 +2802,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioCompra End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioCompra If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then @@ -2825,8 +2825,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioCompra) If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then @@ -2854,7 +2854,7 @@ Partial Class Bancos_PopIECompras ImporteMovimiento += ((MovimientoPagar.RetIVA * PorcentajePago) * TCImpuestos) - ((MovimientoPagar.RetIVA * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el RetIVA ImporteMovimiento += ((MovimientoPagar.RetISR * PorcentajePago) * TCImpuestos) - ((MovimientoPagar.RetISR * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el RetISR ImporteMovimiento -= ((MovimientoPagar.IEPS * PorcentajePago) * TCImpuestos) - ((MovimientoPagar.IEPS * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el IEPS - ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2)) + ImporteMovimiento = Math.Abs(ImporteMovimiento.RoundSQL) ImporteMX = ImporteMovimiento End If Else @@ -2878,7 +2878,7 @@ Partial Class Bancos_PopIECompras ImporteMovimiento += ((MovimientoPagar.RetIVA * PorcentajePago) * tipoCambioCompra) - ((MovimientoPagar.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA ImporteMovimiento += ((MovimientoPagar.RetISR * PorcentajePago) * tipoCambioCompra) - ((MovimientoPagar.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR ImporteMovimiento -= ((MovimientoPagar.IEPS * PorcentajePago) * tipoCambioCompra) - ((MovimientoPagar.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS - ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2)) + ImporteMovimiento = Math.Abs(ImporteMovimiento.RoundSQL) ImporteMX = ImporteMovimiento End If Else @@ -2899,8 +2899,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioPago If CveMoneda = 1 Then @@ -2946,8 +2946,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL CveIE = rw.DataKey("CveIE").ToString.ToEntero @@ -2975,8 +2975,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL CveIE = rw.DataKey("CveIE").ToString.ToEntero @@ -3003,8 +3003,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL TimpocambioGeneral = tipoCambioPago IdCtaContable = GlobalDTRHPersonal(UsuarioActual.CveEmpresa, CvePersonal:=CvePersonal).FiltroPrimeroValor("IdCtaContPersonal", "").ToEntero @@ -3028,8 +3028,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL CveIE = rw.DataKey("CveIE").ToString.ToEntero IdCtaContable = CtaProveedorDeudores @@ -3057,8 +3057,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL If rw.DataKey("CveMoneda").ToEntero = 1 Then IdCtaContable = IdCuentaCliente @@ -3100,8 +3100,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL 'Conta ContPAQ If IdCtaContRetIVACliente <> 0 Then @@ -3141,8 +3141,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL 'Conta ContPAQ If IdCtaContRetISR <> 0 Then @@ -3183,8 +3183,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL PorcentajeImpuesto = rw.DataKey("PorcentajeIVA").ToDecimal Dim IdCtaIVAXTrasladar As Integer = 0 @@ -3225,8 +3225,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL PorcentajeImpuesto = rw.DataKey("PorcentajeIVA").ToDecimal @@ -3268,8 +3268,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL IdCtaContable = UsuarioActual.Empresa.IdCuentaIEPSxTrasladar @@ -3301,8 +3301,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL IdCtaContable = UsuarioActual.Empresa.IdCuentaIEPSTrasladado @@ -3334,8 +3334,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL 'Conta ContPAQ If IdCtaContRetIVA <> 0 Then @@ -3377,8 +3377,8 @@ Partial Class Bancos_PopIECompras ImporteMovimiento = rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoVenta ImporteMX = ImporteMovimiento * tipoCambioPago End If - ImporteMovimiento = Math.Round(ImporteMovimiento, 2) - ImporteMX = Math.Round(ImporteMX, 2) + ImporteMovimiento = ImporteMovimiento.RoundSQL + ImporteMX = ImporteMX.RoundSQL 'Conta ContPAQ If IdCtaContRetISR <> 0 Then diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 699a08d12..f65919d08 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -10,6 +10,7 @@ Imports System.Text.RegularExpressions Imports System.Threading.Tasks Imports System.Xml Imports Extensiones +Imports Newtonsoft.Json Partial Class Compras_Compras Inherits ClsPaginas @@ -4280,7 +4281,13 @@ Partial Class Compras_Compras Next If ErrorValidacion Then Exit Sub - + If UsuarioActual.Empresa.Funcionalidad(545) = "1" Then + Dim dtPSInvalidos As String = ValidarPSContrato(TmpDT.FiltraParametros("", "", {"CveSubProyecto", "CvePS", "Cantidad", "PU"})) + If dtPSInvalidos <> "" Then + Alert(dtPSInvalidos, TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If 'RECORRO LOS PRODUCTOS O SERVICIOS PARA REGISTRARLOS LOS QUE NO EXISTEN EN EL CATÁLOGO Dim tCve As Integer @@ -4586,7 +4593,7 @@ Partial Class Compras_Compras Else CveConceptoContableAlmacen = 205 End If - If OCVinculada AndAlso DdlOCVinculaInv.visible AndAlso Not (CveImportacion > 0 Or CveFlete > 0) Then + If OCVinculada AndAlso DdlOCVinculaInv.Visible AndAlso Not (CveImportacion > 0 Or CveFlete > 0) Then CveConceptoContableAlmacen = DdlOCVinculaInv.SelectedValue.ToEntero End If If UsuarioActual.CveEmpresa.Contiene(72, 80, 140, 141) And Not (CveImportacion > 0 Or CveFlete > 0) Then 'se comento, RMF. 2020.08.19, no le hallo sentido @@ -9056,7 +9063,7 @@ Partial Class Compras_Compras PorcentajeImpuesto = TmpDT.MAX("IVAPorcentaje").ToDecimal IdCtaContable = If(IdCtaIVAXAcreditar > 0, IdCtaIVAXAcreditar, 0) - If chkImportacion.checked Then + If chkImportacion.Checked Then ConceptoContable = 287 End If @@ -9109,7 +9116,7 @@ Partial Class Compras_Compras PorcentajeImpuesto = TmpDT.MAX("IVAPorcentaje").ToDecimal IdCtaContable = If(IdCtaIVAAcreditable > 0, IdCtaIVAAcreditable, 0) - If chkImportacion.checked Then + If chkImportacion.Checked Then ConceptoContable = 288 End If If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then @@ -10283,6 +10290,7 @@ Partial Class Compras_Compras (row1("CveTipoGasto").ToString.ToEntero <> row2("CveTipoGasto").ToString.ToEntero) Or (row1("Total").ToString.ToDouble <> row2("Total").ToString.ToDouble) Or (row1("NoDeducible").ToString <> row2("NoDeducible").ToString) Or + (row1("CveActivoFijo").ToString.ToEntero <> row2("CveActivoFijo").ToString.ToEntero) Or (row1("CvePS").ToString.ToEntero <> row2("CvePS").ToString.ToEntero) Then Return False End If @@ -11199,7 +11207,7 @@ Partial Class Compras_Compras Dim subproyectos As New List(Of Integer) For Each Row As DataRow In TmpDT.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}).Rows - Dim RowCon As DataRow = GlobalDTContratos.FiltroPrimero(String.Format("CveSubProyecto={0}", Row("CveSubProyecto"))) + Dim RowCon As DataRow = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveSubProyecto={0}", Row("CveSubProyecto"))) If Not IsNothing(RowCon) Then filtro.AppendFormat(",{0}", Row("CveSubProyecto")) subproyectos.Add(Row("CveSubProyecto").ToString.ToEntero) @@ -15042,7 +15050,7 @@ Partial Class Compras_Compras dt = ObjContabilidad.DtResultados For Each dr As DataRow In dt.Rows - If Not ObjContabilidad.UpdatePrepolizasDetalle(dr("CvePrePolizaDetalle").ToString.ToEntero, dr("Concepto").ToString, dr("CveSubProyecto").ToString.ToEntero, dr("IdCtaContable").ToString.ToEntero, CBool(dr("TipoMovto").ToString), 0, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + If Not ObjContabilidad.UpdatePrePolizasDetalle(dr("CvePrePolizaDetalle").ToString.ToEntero, dr("Concepto").ToString, dr("CveSubProyecto").ToString.ToEntero, dr("IdCtaContable").ToString.ToEntero, CBool(dr("TipoMovto").ToString), 0, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then ErrorCancelar = True : Exit For End If Next @@ -18100,110 +18108,110 @@ Partial Class Compras_Compras End If ActualizaTotales = True - Dim ObjContratos As New ClsContratos - Dim TieneError As Boolean = False - Dim Mensaje As String = "" - Dim dttemp As DataTable = Nothing ' GlobalDTContratos().FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue.ToString)) - If dttemp IsNot Nothing AndAlso dttemp.Rows.Count > 0 Then - Dim drContrato As DataRow = dttemp.Rows(0) - If ObjContratos.GetContratosDetalle(drContrato("CveContrato").ToString.ToEntero) Then - Dim dtContratodetalle As DataTable = ObjContratos.DtResultados.FiltraParametros(String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)) - If dtContratodetalle IsNot Nothing AndAlso dtContratodetalle.Rows.Count > 0 Then - Dim drContratoDetalle As DataRow = dtContratodetalle(0) - If Convert.ToBoolean(drContratoDetalle("LimitarCantidad")) Then - If ObjContratos.GetReporteContratosAvancesDetalleControl(drContrato("CveContrato").ToString.ToEntero, UsuarioActual.CveEmpresa) Then - Dim dtContratodetalleControl As DataTable = ObjContratos.DtResultados.FiltraParametros(String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)) - If dtContratodetalleControl IsNot Nothing AndAlso dtContratodetalleControl.Rows.Count > 0 Then - Dim drContratoDetalleControl As DataRow = dtContratodetalleControl(0) - If TxtCantidad.Text.Trim.ToDouble > drContratoDetalleControl("FaltanteCantidad").ToString.ToDouble Then - Mensaje = String.Format("La cantidad del Producto/Servicio debe ser menor o igual a {0}", drContratoDetalleControl("FaltanteCantidad").ToString) - TieneError = True - End If - Else - Mensaje = "Este producto no pertenece al contrato seleccionado." - TieneError = True - End If - Else - Mensaje = "Error al consultar el contrato." - End If - End If - Else - Mensaje = "Este producto no pertenece al contrato seleccionado." - TieneError = True - End If - Else - Mensaje = "Error al consultar el contrato." + If UsuarioActual.Empresa.Funcionalidad(545) = "1" Then + Dim TieneError As Boolean = False + Dim dttemp As New DataTable '= GlobalDTContratos().FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue.ToString)) + dttemp.Columns.Add("CveSubProyecto", GetType(Integer)) + dttemp.Columns.Add("CvePS", GetType(Integer)) + dttemp.Columns.Add("Cantidad", GetType(Decimal)) + dttemp.Columns.Add("PU", GetType(Decimal)) + + Dim DrPS = dttemp.NewRow + DrPS("CveSubProyecto") = DdlSubProyecto.SelectedValue.ToString.ToEntero + DrPS("CvePS") = DdlPS.SelectedValue.ToString.ToEntero + DrPS("Cantidad") = TxtCantidad.Text.Trim.ToDecimal + DrPS("PU") = TxtPrecio.Text.Trim.ToDecimal + dttemp.Rows.Add(DrPS) + + Dim dtPSInvalidos As String = ValidarPSContrato(dttemp) + If dtPSInvalidos <> "" Then + TieneError = True + Alert(dtPSInvalidos, TipoMensaje.MsgAdvertencia) + Exit Sub End If End If - If Not TieneError Then - Select Case Modalidad - Case "A" 'ADD - Dim SATClavePS = -1 - Dim PSRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") - If PSRow IsNot Nothing Then - SATClavePS = PSRow("SATClavePS").ToString.ToEntero - End If - Dim IVA As Double - If chkImportacion.Checked Then - IVA = (txtImportacion.Text.Trim.ToDouble / (TxtCantidad.Text.Trim.ToDouble * TxtPrecio.Text.Trim.ToDouble)) - Else - IVA = Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2) - End If - AddPS(TxtCantidad.Text.Trim.ToDouble, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero, - DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, IVA, - TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, - NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS) - AddPS2() - LimpiaAgregar() - - If ChkAgregar.Checked = True And Modalidad = "A" Then - RegistraScript("displayToastr(1);", "display") - Else - RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) - End If - - Case "U" 'UPDATE - UpdatePS() - Alert("Concepto actualizado Correctamente.", TipoMensaje.MsgInformacion) - RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) - End Select - ActualizaTotales = False - - If UsuarioActual.Empresa.Funcionalidad(562).ToEntero > 0 Then CargaGastosServicios(UsuarioActual.Empresa.Funcionalidad(562).ToEntero) - - If UsuarioActual.Empresa.UsaAC Then - CompruebaAgregar() - GuardaAC() - End If - Else - Alert(Mensaje, TipoMensaje.MsgAdvertencia) - End If - - 'If UsuarioActual.Empresa.Funcionalidad(577).ToString = "1" Then - - ' 'If UsuarioActual.CveRol = 1 Then - ' ' Alert($"Ok funcionalidad 577 RetencionIVA { RetencionIVA} IVAOriginal {IVAOriginal}") - ' 'End If - - ' If RetencionIVA = 0 And IVAOriginal > 0 Then - ' For Each dRow As DataRow In TmpDT.Rows - ' If dRow("CveTipoPS").ToString.ToEntero = 1 Then - ' 'Comnetado para reubicar el boton - ' 'tdIVA6.Visible = True - ' Exit For + 'If dttemp IsNot Nothing AndAlso dttemp.Rows.Count > 0 Then + ' Dim drContrato As DataRow = dttemp.Rows(0) + ' If ObjContratos.GetContratosDetalle(drContrato("CveContrato").ToString.ToEntero) Then + ' Dim dtContratodetalle As DataTable = ObjContratos.DtResultados.FiltraParametros(String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)) + ' If dtContratodetalle IsNot Nothing AndAlso dtContratodetalle.Rows.Count > 0 Then + ' Dim drContratoDetalle As DataRow = dtContratodetalle(0) + ' If Convert.ToBoolean(drContratoDetalle("LimitarCantidad")) Then + ' If ObjContratos.GetReporteContratosAvancesDetalleControl(drContrato("CveContrato").ToString.ToEntero, UsuarioActual.CveEmpresa) Then + ' Dim dtContratodetalleControl As DataTable = ObjContratos.DtResultados.FiltraParametros(String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)) + ' If dtContratodetalleControl IsNot Nothing AndAlso dtContratodetalleControl.Rows.Count > 0 Then + ' Dim drContratoDetalleControl As DataRow = dtContratodetalleControl(0) + ' If TxtCantidad.Text.Trim.ToDouble > drContratoDetalleControl("FaltanteCantidad").ToString.ToDouble Then + ' Mensaje = String.Format("La cantidad del Producto/Servicio debe ser menor o igual a {0}", drContratoDetalleControl("FaltanteCantidad").ToString) + ' TieneError = True + ' End If + ' Else + ' Mensaje = "Este producto no pertenece al contrato seleccionado." + ' TieneError = True + ' End If + ' Else + ' Mensaje = "Error al consultar el contrato." + ' End If ' End If - ' Next - ' End If + ' Else + ' Mensaje = "Este producto no pertenece al contrato seleccionado." + ' TieneError = True + ' End If + ' Else + ' Mensaje = "Error al consultar el contrato." + ' End If 'End If + Select Case Modalidad + Case "A" 'ADD + + Dim SATClavePS = -1 + Dim PSRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") + If PSRow IsNot Nothing Then + SATClavePS = PSRow("SATClavePS").ToString.ToEntero + End If + Dim IVA As Double + If chkImportacion.Checked Then + IVA = (txtImportacion.Text.Trim.ToDouble / (TxtCantidad.Text.Trim.ToDouble * TxtPrecio.Text.Trim.ToDouble)) + Else + IVA = Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2) + End If + AddPS(TxtCantidad.Text.Trim.ToDouble, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero, + DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, IVA, + TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, + NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS) + + AddPS2() + LimpiaAgregar() + + If ChkAgregar.Checked = True And Modalidad = "A" Then + RegistraScript("displayToastr(1);", "display") + Else + RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) + End If + + Case "U" 'UPDATE + UpdatePS() + Alert("Concepto actualizado Correctamente.", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) + End Select + ActualizaTotales = False + + If UsuarioActual.Empresa.Funcionalidad(562).ToEntero > 0 Then CargaGastosServicios(UsuarioActual.Empresa.Funcionalidad(562).ToEntero) + + If UsuarioActual.Empresa.UsaAC Then + CompruebaAgregar() + GuardaAC() + End If + UpPS.Update() - CargaGvPersonal() + CargaGvPersonal() End Sub ''' ''' Regresa el INDEX del row que acaba de agregar en el TMPDT @@ -20775,7 +20783,7 @@ Partial Class Compras_Compras DdlContratosObra.Items.Clear() - DdlContratosObra.DataSource = GlobalDTContratos.FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}")) + DdlContratosObra.DataSource = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}")) DdlContratosObra.DataBind() DdlContratosObra.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -20892,6 +20900,42 @@ Partial Class Compras_Compras End If End Sub + Private Function ValidarPSContrato(DtPS As DataTable) As String + Dim Retorno As String = "" + Dim objContratos As New ClsContratos + Dim TempPS As String = JsonConvert.SerializeObject(DtPS).ToString + Dim MensajeProducto As String = "" + Dim MensajeCantidad As String = "" + Dim MensajeImporte As String = "" + If objContratos.ValidaPSContrato(TempPS) Then + If objContratos.DtResultados.Rows.Count > 0 Then + MensajeProducto = "Los siguientes productos no pertenece al contrato seleccionado: " + MensajeCantidad = "Los siguientes productos sobrepasan la cantidad faltante del contrato seleccionado: " + MensajeImporte = "Los siguientes productos sobrepasan los importes faltantes del contrato seleccionado: " + For Each dr As DataRow In objContratos.DtResultados.Rows + If dr("ProductoNoContratado").ToString.ToEntero = 1 Then + MensajeProducto += String.Format("
{0}", dr("PS")) + ElseIf dr("CantidadSobrePasada").ToString.ToEntero = 1 Then + MensajeCantidad += String.Format("
{0} - Cantidad maxima: {1}", dr("PS"), dr("FaltanteCantidad")) + ElseIf dr("ImporteSobrePasado").ToString.ToEntero = 1 Then + MensajeImporte += String.Format("
{0} - Importe maximo: {1}", dr("PS"), dr("FaltanteImporte")) + End If + Next + End If + End If + objContratos.Dispose() + + If MensajeProducto.Length <> 64 Then + Retorno = MensajeProducto + ElseIf MensajeCantidad.Length <> 84 Then + Retorno = MensajeCantidad + ElseIf MensajeImporte.Length <> 86 Then + Retorno = MensajeImporte + End If + + Return Retorno + + End Function #End Region diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index cc01a4d23..1cb659ebc 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -2233,10 +2233,10 @@ Partial Class PopUpVerFactura Dim CveContrato As Integer = DtMovimientos(0)("CveContrato").ToString.ToEntero If CveContrato > 0 Then - Contrato = GlobalDTContratos().FiltroPrimeroValor("DescripcionContrato", $"CveContrato={CveContrato} AND CveEmpresa = {UsuarioActual.CveEmpresa}") - NumContrato = GlobalDTContratos().FiltroPrimeroValor("NumeroContrato", $"CveContrato={CveContrato} AND CveEmpresa = {UsuarioActual.CveEmpresa}") - CveCliente = GlobalDTContratos().FiltroPrimeroValor("CveCliente", $"CveContrato = {CveContrato}").ToEntero - CveDireccionEnvio = GlobalDTContratos().FiltroPrimeroValor("CveDireccionEnvio", $"CveContrato = {CveContrato}").ToEntero + Contrato = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("DescripcionContrato", $"CveContrato={CveContrato} AND CveEmpresa = {UsuarioActual.CveEmpresa}") + NumContrato = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("NumeroContrato", $"CveContrato={CveContrato} AND CveEmpresa = {UsuarioActual.CveEmpresa}") + CveCliente = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveCliente", $"CveContrato = {CveContrato}").ToEntero + CveDireccionEnvio = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveDireccionEnvio", $"CveContrato = {CveContrato}").ToEntero If CveCliente > 0 Then DTCliente = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros($"CveCliente = {CveCliente}") diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx b/Contabilidad2/CatCuentasAsignaciones.aspx index 5169e3e04..ea32e31b3 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx +++ b/Contabilidad2/CatCuentasAsignaciones.aspx @@ -14,7 +14,10 @@
  • - + +
  • +
  • +
  • @@ -45,6 +48,15 @@ + + +
    + + + + + +
    @@ -77,6 +89,27 @@ +
    + + + + + + + + + + + + + + + + + +
    @@ -162,6 +195,53 @@ + + + + + + + diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx.vb b/Contabilidad2/CatCuentasAsignaciones.aspx.vb index b350aa975..526852767 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx.vb +++ b/Contabilidad2/CatCuentasAsignaciones.aspx.vb @@ -21,7 +21,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones End If End Sub - Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click + Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) CargaDatosSistema() End Sub @@ -37,11 +37,17 @@ Partial Class Contabilidad2_CatCuentasAsignaciones Private Sub CargaDatosSistema() Dim ObjConta As New ClsContabilidad - If ObjConta.GetCuentasAsignacionesSistema(UsuarioActual.CveEmpresa, DdlTipo.selectedvalue.toentero) Then + If ObjConta.GetCuentasAsignacionesSistema(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero, DdlOpcion.SelectedValue.ToEntero) Then GvDatos.DataSource = ObjConta.DtResultados End If + + If ObjConta.GetCuentasGlobales(UsuarioActual.CveEmpresa) Then + GvGlobal.DataSource = ObjConta.DtResultados + End If + ObjConta.Dispose() GvDatos.DataBind() + GvGlobal.DataBind() UpDatos.Update() End Sub @@ -53,10 +59,12 @@ Partial Class Contabilidad2_CatCuentasAsignaciones If ObjConta.GetConta_ConceptosContables() Then DdlCconceptosContables.DataSource = ObjConta.DtResultados + DdlConceptoGlobal.DataSource = ObjConta.DtResultados.FiltraParametros("EsCuentaUnica = false AND EsSistema = True AND EsGlobal = True") End If If ObjConta.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa) Then DdlCuenta.DataSource = ObjConta.DtResultados + DdlCuentaGlobal.DataSource = ObjConta.DtResultados End If ObjConta.Dispose() DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) @@ -79,7 +87,9 @@ Partial Class Contabilidad2_CatCuentasAsignaciones DdlCuentaBancaria.DataBind() DdlCconceptosContables.DataBind() + DdlConceptoGlobal.DataBind() DdlCuenta.DataBind() + DdlCuentaGlobal.DataBind() DdlProveedor.DataBind() 'DdlPersonal.DataBind() DdlClasificacion.DataBind() @@ -145,6 +155,11 @@ Partial Class Contabilidad2_CatCuentasAsignaciones End If End If + If Dr("AplicaImpuesto").ToString = "True" Then + divPorcentajeIVA.Visible = True + End If + + If Dr("AplicaClasificacion").ToString = "True" Then divClasificacion.Visible = True End If @@ -184,7 +199,24 @@ Partial Class Contabilidad2_CatCuentasAsignaciones ObjConta.Dispose() End Sub - Protected Sub BtnAgregarMotivoD_Click(sender As Object, e As EventArgs) Handles BtnAgregarMotivoD.Click + Protected Sub BtnAgregarGlobal_Click(sender As Object, e As EventArgs) Handles BtnAgregarGlobal.Click + + UppModalGlobal.Update() + RegistraScript("$('#ModalGlobal').modal();") + End Sub + + Protected Sub EliminarRowGlobal(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim ObjConta As New ClsContabilidad + If ObjConta.RemoveCuentasGlobales(GvRow.DataKey("CveConceptoContable").ToEntero, GvRow.DataKey("CveEmpresa").ToEntero) Then + Alert("se elimino correctamente") + End If + CargaDatosSistema() + UpDatos.Update() + ObjConta.Dispose() + End Sub + + Protected Sub BtnAgregarAsignacion_Click(sender As Object, e As EventArgs) Handles BtnAgregarAsignacion.Click LimpiarDatos() LbAgregar.Text = "Agregar" @@ -238,4 +270,22 @@ Partial Class Contabilidad2_CatCuentasAsignaciones CargaDatosSistema() UpDatos.Update() End Sub + + Protected Sub LBAgregaGlobal_Click(sender As Object, e As EventArgs) + + Dim ErrorString As String = "" + Dim ObjConta As New ClsContabilidad + If Not ObjConta.AddCuentasGlobales(DdlConceptoGlobal.SelectedValue.ToEntero, DdlCuentaGlobal.SelectedValue.ToEntero, DdlTipoGlobal.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + ErrorString = "Error al agregar" + End If + ObjConta.Dispose() + + If ErrorString.Length > 0 Then + Alert(ErrorString) + Else + Alert("Agregado correctamente") + End If + CargaDatosSistema() + UpDatos.Update() + End Sub End Class diff --git a/Contratos/Contrato.aspx.vb b/Contratos/Contrato.aspx.vb index 62fc596a4..31f16c46a 100644 --- a/Contratos/Contrato.aspx.vb +++ b/Contratos/Contrato.aspx.vb @@ -9,8 +9,8 @@ Imports System.Globalization Imports GemBox.Spreadsheet Partial Class Contratos_Default - Inherits ClsPaginas - + Inherits ClsPaginas + #Region " PROPIEDADES " Private Property CveContrato As Integer Get @@ -340,10 +340,10 @@ Partial Class Contratos_Default Set(ByVal value As DataSet) ViewState("DsDatosPedDev") = value End Set - End Property - + End Property + #End Region - + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then CargaValoresIniciales() @@ -449,8 +449,8 @@ Partial Class Contratos_Default End If - End Sub - + End Sub + #Region " CARGA VALORES INICIALES " Private Sub CargaValoresIniciales() CveContrato = -1 @@ -574,11 +574,11 @@ Partial Class Contratos_Default CargaGVPresupuestos(TmpDT) CargaGVPresupuestosInsumos(TmpDT) LbTotalGeneral.Text = "0.00" - End Sub + End Sub #End Region - + #Region " CONFIGURA TIPOS CONTRATO " - + Private Sub ConfiguraTipos() If Not TipoContrato.Contiene({7, 9, 13, 16, 18, 21}) Then TabAF.Visible = False @@ -650,10 +650,10 @@ Partial Class Contratos_Default 'End If 'UpTitulos.Update() 'UpGral.Update() - End Sub - + End Sub + #End Region - + #Region " PANTALLA INICIAL" Protected Sub rpCompra_CheckedChanged(sender As Object, e As EventArgs) Handles rpCompra.CheckedChanged loadComboTipoContrato(False) @@ -681,9 +681,9 @@ Partial Class Contratos_Default Alert(ex.Message, TipoMensaje.MsgError) End Try - End Sub + End Sub #End Region - + #Region " INICIO DE PAGINA " Protected Sub DdlTipoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) CargaTipoContrato() @@ -1182,7 +1182,7 @@ Partial Class Contratos_Default If TipoContrato = 4 Then TabPI.Visible = True End If - If ObjContratos.GetContratosDetalle(CveContrato) Then + If ObjContratos.GetContratosDetalle(CveContrato, UsuarioActual.CveEmpresa) Then TmpDT = ObjContratos.DtResultados If TmpDT.MAX("Cantidad_Original").ToString.ToEntero > 0 OrElse TmpDT.MAX("PU_Original").ToString.ToEntero > 0 Then BtnAutorizar.Visible = False @@ -1589,9 +1589,9 @@ Partial Class Contratos_Default Else ' Alert("Ocurrio un error al eliminar el contrato", TipoMensaje.MsgError) End If - End Sub + End Sub #End Region - + #Region " TERMINAR/CANCELAR CONTRATO " Protected Sub LBTerminarContrato_Click(sender As Object, e As EventArgs) Dim ObjContratos As New ClsContratos @@ -1615,13 +1615,13 @@ Partial Class Contratos_Default Alert("El Contrato fue cancelado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) End If ObjContratos.Dispose() - End Sub + End Sub #End Region - + #Region " TABS " - + #Region " TAB: INFORMACION GENERAL" - + #Region "COMBOS - INFO GENERAL" Private Sub CargaProyecto() CargarCentrosDeCosto(DdlProyecto, DdlSubProyectoContrato, LblProyecto, lblsubproyecto) @@ -1654,7 +1654,7 @@ Partial Class Contratos_Default End Sub Private Sub CargaContratoPadre() DdlContratoPadre.Items.Clear() - DdlContratoPadre.DataSource = GlobalDTContratos.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveContratoTipo = {TipoContrato} {If(DdlCliente.SelectedValue.ToEntero > 0, $"AND CveCliente = {DdlCliente.SelectedValue}", "")} {If(CveContrato > 0, $"AND CveContrato <> {CveContrato}", "")} ") + DdlContratoPadre.DataSource = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltraParametros($" CveContratoTipo = {TipoContrato} {If(DdlCliente.SelectedValue.ToEntero > 0, $"AND CveCliente = {DdlCliente.SelectedValue}", "")} {If(CveContrato > 0, $"AND CveContrato <> {CveContrato}", "")} ") DdlContratoPadre.DataBind() DdlContratoPadre.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub @@ -1694,20 +1694,20 @@ Partial Class Contratos_Default CargaContratoPadre() UpProyecto.Update() - End Sub - - - - - - - - - + End Sub + + + + + + + + + #End Region - + #Region " ARCHIVO " - + Private Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click DescargarArchivo() End Sub @@ -1774,13 +1774,13 @@ Partial Class Contratos_Default If Not FileExtension = "-1" Then BtnDescargar.Visible = True End If - End Sub + End Sub #End Region - + #End Region - + #Region " TAB: PRESUPUESTOS " - + #Region "C O M B O S - PRESUPUESTOS" Private Function isWhitFamily() As Boolean Return (UsuarioActual.CveEmpresa = 66) @@ -1798,8 +1798,8 @@ Partial Class Contratos_Default DdlClasificacionInt.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) 'GlobalDTSubFamilias(UsuarioActual.CveEmpresa) DdlClasificacionInt.DataBind() DdlClasificacionInt.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - + End Sub + #Region " FUNCIONALIDAD 105 " Private Sub CargaPS() DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") @@ -1876,11 +1876,11 @@ Partial Class Contratos_Default DdlProductowsInsumos.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacionAddInsumos.SelectedValue) 'End If End If - End Sub + End Sub #End Region - + #End Region - + #Region " TAB PRESUPUESTOS VENTAS " Private Sub CargaGVPresupuestos(DtTemp As DataTable) Gv.DataSource = DtTemp @@ -1982,8 +1982,8 @@ Partial Class Contratos_Default ContratosSecciones.Dispose() UpGral.Update() - End Sub - + End Sub + #Region "GV PRESUPUESTOS" Protected Sub EstClick(sender As Object, e As System.EventArgs) 'Get the button that raised the event @@ -2146,12 +2146,12 @@ Partial Class Contratos_Default ' Seleccionado = e.CommandArgument.ToString Gv.SelectRow(e.CommandArgument.ToString.ToEntero - 1) End If - End Sub + End Sub #End Region - - + + #End Region - + #Region " TAB PRESUPUESTOS INSUMOS " Private Sub CargaGVPresupuestosInsumos(DtTemp As DataTable) GvInsumos.DataSource = DtTemp @@ -2207,10 +2207,10 @@ Partial Class Contratos_Default End If ObjContratos.Dispose() - End Sub - + End Sub + #Region "GV PRESUPUESTOS" - + Protected Sub GVInsumos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvInsumos.RowDataBound If e.Row.RowIndex > -1 Then @@ -2328,14 +2328,14 @@ Partial Class Contratos_Default ' Seleccionado = e.CommandArgument.ToString GvInsumos.SelectRow(e.CommandArgument.ToString.ToEntero - 1) End If - End Sub + End Sub #End Region - - + + #End Region - + #Region " TAB PRESUPUESTOS INTERNOS" - + Protected Sub AgregarInt_Click(sender As Object, e As EventArgs) Handles AgregarInt.Click Dim Row As DataRow = TmpDT.NewRow() Row("Cantidad") = TxtCantidadInt.Text.ToDouble.FormatoNumero @@ -2375,12 +2375,12 @@ Partial Class Contratos_Default 'Alert("No se pudo agregar el detalle") End If ObjContratos.Dispose() - End Sub - - + End Sub + + #Region "GVInternos" - - + + Protected Sub GVInt_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvInt.RowEditing GvInt.EditIndex = e.NewEditIndex GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") @@ -2462,13 +2462,13 @@ Partial Class Contratos_Default ' Seleccionado = e.CommandArgument.ToString GvInt.SelectRow(e.CommandArgument.ToString.ToEntero - 1) End If - End Sub + End Sub #End Region - + #End Region - + #End Region - + #Region " TAB: REPORTE AVANCES " Private Sub CargaDatosAvance() If CveContrato <= 0 Then @@ -2549,9 +2549,9 @@ Partial Class Contratos_Default UpVentasAvance.Update() - End Sub + End Sub #End Region - + #Region " TAB: REPORTE AVANCES POR DOCUMENTO " Protected Sub RBLTipoDocto_SelectedIndexChanged(sender As Object, e As EventArgs) CargaDatosAvancePorDocumento() @@ -2595,10 +2595,10 @@ Partial Class Contratos_Default e.Row.CssClass = "Totales" End If End If - End Sub - + End Sub + #End Region - + #Region " TAB: CONTRATO GASTOS " Private Sub MandaCorreo(Para As String, Asunto As String, Body As String) Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) @@ -2824,9 +2824,9 @@ Partial Class Contratos_Default Protected Sub LnkDescargar_Click1(sender As Object, e As EventArgs) Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) RegistraScript($"window.location.href = '/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=CONG&CVECONTRATO={0}&CVECONTRATOGASTO={1}", CveContrato, gvRow.DataKey("CveContratoGasto").ToString))}'") - End Sub + End Sub #End Region - + #Region "TAB: PEDIDOS / DEVOLUCIONES" Private Sub CargaDatosPedDev() Dim ObjContratos As New ClsContratos @@ -2936,10 +2936,10 @@ Partial Class Contratos_Default End If End If - End Sub - + End Sub + #End Region - + #Region " TAB: ALMACEN - ACTIVOS FIJBtnAlmacenEsInterno_ClickOS " Private Sub CargaInventarios() @@ -3120,10 +3120,10 @@ Partial Class Contratos_Default UpHajusteAcciones.Update() UpAlmacen.Update() - End Sub - - - + End Sub + + + #Region " DEVOLUCION ALMACEN " Protected Sub BtnDevolucionAlmacen_Click(sender As Object, e As EventArgs) Dim ObjVentas As New ClsVentas @@ -3160,12 +3160,12 @@ Partial Class Contratos_Default LblFacturado.Text = SumaAvance.FormatoNumero LblPorFacturar.Text = (LblImporte.Text.ToDouble - SumaAvance).FormatoNumero - End Sub - + End Sub + #End Region - + #End Region - + #Region "TAB SISTEMA" Protected Sub ChkPermitirAvance_CheckedChanged(sender As Object, e As EventArgs) Dim ObjContrato As New ClsContratos @@ -3183,11 +3183,11 @@ Partial Class Contratos_Default ObjContrato.Dispose() Alert("Se ha permitido estimar en la sección", TipoMensaje.MsgInformacion) CargaDatos() - End Sub + End Sub #End Region - + #End Region - + #Region " BITACORA " Private Sub guardarBitacora(Descripcion As String) Dim ObjEventoBitacora As New ClsOIEventos @@ -3300,10 +3300,10 @@ Partial Class Contratos_Default txtFileBit.getfiles().Archivos.Clear() txtFileBit.Text = "" - End Sub - + End Sub + #End Region - + #Region "SUBIR EXCEL" Public Sub DescargarFormato() Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoContrato.xlsx" @@ -3325,7 +3325,7 @@ Partial Class Contratos_Default End Sub Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) - Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath) + Dim excelFile As ExcelFile = excelFile.Load(flatFilePath) Dim unnamed As Integer = 0 Dim cols As Integer @@ -3560,11 +3560,11 @@ Partial Class Contratos_Default Else Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError) End If - End Sub - - + End Sub + + #End Region - + #Region " GPS " Private Sub CargaCuentasEquipos() Dim GPS As New ClsGPS @@ -3719,11 +3719,11 @@ Partial Class Contratos_Default End If ImprimirPDF("Empresas/Grales/Formatos/Contrato.rdlc", dt, params, $"Contrato-{Titulo}", Formato:="PDF") - End Sub - - + End Sub + + #End Region - + #Region "I M P R E S I O N D E G A S T O S" Protected Sub ImgImprimirGastos_Click(sender As Object, e As EventArgs) Handles LBImprimirGastos.Click GenerarPDFGastos() @@ -3765,10 +3765,10 @@ Partial Class Contratos_Default TxtFecha.Text = "" UpAgregarGastos.Update() RegistraScript("$('#ModalAgregarGastos').modal();") - End Sub - + End Sub + #End Region - + #Region "I M P R E S I O N D E S U M I N I S T R O S" Protected Sub ImgImprimirSuministros_Click(sender As Object, e As EventArgs) Handles LbImprimirSuministros.Click GenerarPDFSuministros() @@ -3797,9 +3797,9 @@ Partial Class Contratos_Default End If Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) ImprimirPDF("Empresas/Grales/Formatos/RepContratoSuministros.rdlc", dt, params, $"{Nombre}-Suministros", Formato:=Formato) - End Sub + End Sub #End Region - + #Region "I M P R E S I O N D E A V A N C E " Private Sub lbImprimirAvance_Click(sender As Object, e As EventArgs) Handles lbImprimirAvance.Click GenerarPDFAvance() @@ -3829,9 +3829,9 @@ Partial Class Contratos_Default End If Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) ImprimirPDF("Empresas/Grales/Formatos/ContratoAvance.rdlc", dt, params, $"{Nombre}-Avance", Formato:=Formato) - End Sub + End Sub #End Region - + #Region "I M P R E S I O N D E P R E S U P U E S T O " Private Sub lLbImprimirPresupuesto_Click(sender As Object, e As EventArgs) Handles LbImprimirPresupuesto.Click GenerarPDFPPresupuesto() @@ -3861,9 +3861,9 @@ Partial Class Contratos_Default End If Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) ImprimirPDF("Empresas/Grales/Formatos/RepContratoPresupuestos.rdlc", dt, params, $"{Nombre}-Presupuestos", Formato:=Formato) - End Sub + End Sub #End Region - + #Region "I M P R E S I O N D E A C T I V O S F I J O S " Private Sub LbImprmirAF_Click(sender As Object, e As EventArgs) Handles LbImprmirAF.Click GenerarPDFActivosFijos() @@ -3915,11 +3915,11 @@ Partial Class Contratos_Default End If Dim Nombre As String = If(LtlTitulo.Text.Length > 20, LtlTitulo.Text.Substring(0, 20), LtlTitulo.Text) ImprimirPDF("Empresas/Grales/Formatos/RepContratoActivosFijos.rdlc", dt, params, $"{Nombre}-ActivosFijos", Formato:=Formato) - End Sub - - + End Sub + + #End Region - + #Region " IMPRIMIR DOCUMENTO - SABE " Public Sub DescarFormato(documento As String) @@ -3996,12 +3996,12 @@ Partial Class Contratos_Default Protected Sub BtnImprimirC_Click(sender As Object, e As EventArgs) Handles liImprimir.Click Dim docx As String = DtPlantillasContratos.FiltroPrimeroValor("URL", $"CveContratoPlantilla = {DdlPlantillaContrato.SelectedValue}") DescarFormato(docx) - End Sub + End Sub #End Region - - + + #End Region - + #Region "CREAR A PARTIR DE" Private Sub BtnAgregarContratoHijo_Click(sender As Object, e As EventArgs) Handles BtnAgregarContratoHijo.Click Dim TieneError = False @@ -4133,97 +4133,97 @@ Partial Class Contratos_Default End If Return TieneError - End Function - - 'Private Sub AgregarMovimientosAFHijo(CveContratoHijo As Integer) - ' 'BUSCA LOS ACTIVOS FIJOS VIGENTES - ' Dim Dt As DataTable = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)") - - - ' Dim DtVentas As DataTable = Dt.FiltraParametros($"No = 0") - - ' Dim CveAlmacenOrigen As Integer = DdlAlmacenOrigen.SelectedValue.ToEntero - ' Dim CveAlmacenDestino As Integer = DdlAlmacenDestino.SelectedValue.ToEntero - ' Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero - - ' Dim CveConceptoSalida As Integer = 8 - ' Dim CveConceptoEntrada As Integer = 9 - ' Dim CveCliente As Integer = If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, DdlCliente.SelectedValue.ToEntero) - - ' Dim ObjInv As New ClsInventarios() - ' Try - ' ObjInv.IniciaTransacSQL() - ' Dim TieneError As Boolean = False - - ' For Each Dr As DataRow In DtVentas.Rows - - ' Dim CveVentaAlmacen As Integer = Dr("CveVenta").ToString.ToEntero - - ' 'Movimiento de salida por traspaso al almacen destino - ' Dim CveMovimientoSalida As Integer = ObjInv.AddMovimiento(CveAlmacenDestino, CveConceptoSalida, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContrato, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenOrigen) - - ' If CveMovimientoSalida > 0 Then - ' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows - - ' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble - ' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero - ' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero - ' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero - ' Dim PU As Double = Row("PU").ToString.ToDouble - - ' If Not ObjInv.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then - ' TieneError = True - ' Exit For - ' End If - ' Next - ' Else - ' TieneError = True - ' Exit For - ' End If - - ' 'Movimeinto de entrada por traspaso al almacen origen - ' Dim CveMovimientoEntrada As Integer = ObjInv.AddMovimiento(CveAlmacenOrigen, CveConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContratoHijo, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenDestino) - - ' If CveMovimientoEntrada > 0 Then - ' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows - - ' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble - ' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero - ' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero - ' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero - ' Dim PU As Double = Row("PU").ToString.ToDouble - - ' If Not ObjInv.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then - ' TieneError = True - ' Exit For - ' End If - ' Next - ' Else - ' TieneError = True - ' Exit For - ' End If - - ' Next - ' If TieneError Then - ' Alert("Ocurrió un error al traspasar los activos fijos", TipoMensaje.MsgAdvertencia) - ' ObjInv.RollBack() - ' Else - ' ObjInv.Commit() - ' End If - - ' Catch ex As Exception - ' ObjInv.RollBack() - ' OnError("Ocurrió un error al traspasar los activos fijos", ex) - ' End Try - ' ObjInv.Dispose() - - - 'End Sub - - - + End Function + + 'Private Sub AgregarMovimientosAFHijo(CveContratoHijo As Integer) + ' 'BUSCA LOS ACTIVOS FIJOS VIGENTES + ' Dim Dt As DataTable = DtMovimientos.FiltraParametros($"(CodigoPS IS NULL AND Cantidad - CantidadDevolucion > 0) OR (CodigoPS IS NOT NULL AND SerieFolioDevolucion IS NULL)") + + + ' Dim DtVentas As DataTable = Dt.FiltraParametros($"No = 0") + + ' Dim CveAlmacenOrigen As Integer = DdlAlmacenOrigen.SelectedValue.ToEntero + ' Dim CveAlmacenDestino As Integer = DdlAlmacenDestino.SelectedValue.ToEntero + ' Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero + + ' Dim CveConceptoSalida As Integer = 8 + ' Dim CveConceptoEntrada As Integer = 9 + ' Dim CveCliente As Integer = If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, DdlCliente.SelectedValue.ToEntero) + + ' Dim ObjInv As New ClsInventarios() + ' Try + ' ObjInv.IniciaTransacSQL() + ' Dim TieneError As Boolean = False + + ' For Each Dr As DataRow In DtVentas.Rows + + ' Dim CveVentaAlmacen As Integer = Dr("CveVenta").ToString.ToEntero + + ' 'Movimiento de salida por traspaso al almacen destino + ' Dim CveMovimientoSalida As Integer = ObjInv.AddMovimiento(CveAlmacenDestino, CveConceptoSalida, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContrato, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenOrigen) + + ' If CveMovimientoSalida > 0 Then + ' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows + + ' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble + ' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero + ' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero + ' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero + ' Dim PU As Double = Row("PU").ToString.ToDouble + + ' If Not ObjInv.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then + ' TieneError = True + ' Exit For + ' End If + ' Next + ' Else + ' TieneError = True + ' Exit For + ' End If + + ' 'Movimeinto de entrada por traspaso al almacen origen + ' Dim CveMovimientoEntrada As Integer = ObjInv.AddMovimiento(CveAlmacenOrigen, CveConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, DdlSubProyectoContrato.SelectedValue.ToEntero, -1, CveContrato:=CveContratoHijo, CveCliente:=CveCliente, CveAlmacenDestino:=CveAlmacenDestino) + + ' If CveMovimientoEntrada > 0 Then + ' For Each Row As DataRow In Dt.FiltraParametros($"CvePS IS NOT NULL AND CveVenta = {CveVentaAlmacen}").Rows + + ' Dim Cantidad As Double = Row("Cantidad").ToString.ToDouble + ' Dim CvePS As Integer = Row("CvePS").ToString.ToEntero + ' Dim CveVentaDetalle As Integer = Row("CveVentaDetalle").ToString.ToEntero + ' Dim CveUnidadMedida As Integer = Row("CveUnidadMedida").ToString.ToEntero + ' Dim PU As Double = Row("PU").ToString.ToDouble + + ' If Not ObjInv.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, CveUnidadMedida, CvePS, PU, -1) Then + ' TieneError = True + ' Exit For + ' End If + ' Next + ' Else + ' TieneError = True + ' Exit For + ' End If + + ' Next + ' If TieneError Then + ' Alert("Ocurrió un error al traspasar los activos fijos", TipoMensaje.MsgAdvertencia) + ' ObjInv.RollBack() + ' Else + ' ObjInv.Commit() + ' End If + + ' Catch ex As Exception + ' ObjInv.RollBack() + ' OnError("Ocurrió un error al traspasar los activos fijos", ex) + ' End Try + ' ObjInv.Dispose() + + + 'End Sub + + + #End Region - + #Region "FIANZAS" Protected Sub LimpiarCamposModalFianzas() txtFolioFianza.Text = "" @@ -4440,10 +4440,10 @@ Partial Class Contratos_Default ScriptManager.GetCurrent(Me).RegisterPostBackControl(lb) End If End If - End Sub - + End Sub + #End Region - + #Region "CONVENIO DE PRECIO FIJO" Protected Sub CargaConvenioPrecioFijo() '12/04/2018 - oculta campo de licitacion, portlet finanzas y campo tipo de garantia @@ -4452,9 +4452,9 @@ Partial Class Contratos_Default DivTipoGarantia.Visible = False UpGral.Update() - End Sub + End Sub #End Region - + #Region "NOMENCLATURA CONTRATOS" Protected Sub GetNoContratoNuevo() Dim ObjContratos As New ClsContratos() @@ -4486,9 +4486,9 @@ Partial Class Contratos_Default End If ObjContratos.Dispose() - End Sub + End Sub #End Region - + #Region "IMPUESOS LOCALES" Protected Sub ChkImpuestosLocales_CheckedChanged(sender As Object, e As EventArgs) If ChkImpuestosLocales.Checked Then diff --git a/Contratos/Contrato.vb b/Contratos/Contrato.vb index 546200e3f..7972d98d8 100644 --- a/Contratos/Contrato.vb +++ b/Contratos/Contrato.vb @@ -529,7 +529,7 @@ Partial Class Contratos_Default If TipoContrato = 4 Then TabPI.Visible = True End If - If ObjContratos.GetContratosDetalle(CveContrato) Then + If ObjContratos.GetContratosDetalle(CveContrato, UsuarioActual.CveEmpresa) Then TmpDT = ObjContratos.DtResultados If TmpDT.MAX("Cantidad_Original").ToString.ToEntero > 0 OrElse TmpDT.MAX("PU_Original").ToString.ToEntero > 0 Then BtnAutorizar.Visible = False diff --git a/Contratos/ContratoAvance.aspx.vb b/Contratos/ContratoAvance.aspx.vb index a2271dff1..43540332c 100644 --- a/Contratos/ContratoAvance.aspx.vb +++ b/Contratos/ContratoAvance.aspx.vb @@ -135,7 +135,7 @@ Partial Class Contratos_ContratoAvance #Region "Filtros" Private Sub CargaContrato() - DdlContratos.DataSource = GlobalDTContratos.FiltraParametros(String.Format($"CveContratoTipo in (30,31) AND CveEmpresa = {UsuarioActual.CveEmpresa}")) + DdlContratos.DataSource = GlobalDTContratos(UsuarioActual.CveEmpresa).FiltraParametros(" CveContratoTipo in (30,31) ") DdlContratos.DataBind() End Sub diff --git a/Contratos/ContratoObra.aspx b/Contratos/ContratoObra.aspx index 62d582d06..6092a9d45 100644 --- a/Contratos/ContratoObra.aspx +++ b/Contratos/ContratoObra.aspx @@ -355,10 +355,8 @@
    - - - -
    + + @@ -675,9 +673,7 @@ - - - +
    @@ -765,11 +761,7 @@
    - - - - - +