Option Explicit On Option Strict On Imports Extensiones Imports System.IO Imports System.Data Imports Microsoft.Reporting.WebForms Imports System.Globalization Imports GemBox.Spreadsheet Partial Class Contratos_Default Inherits ClsPaginas #Region " PROPIEDADES " Private Property CveContrato As Integer Get If ViewState("CveContrato") Is Nothing Then Return 0 Else Return ViewState("CveContrato").ToString.ToEntero End If End Get Set(value As Integer) ViewState("CveContrato") = value End Set End Property Private Property CveTipoContrato As Integer Get If ViewState("CveTipoContrato") Is Nothing Then Return 0 Else Return ViewState("CveTipoContrato").ToString.ToEntero End If End Get Set(value As Integer) ViewState("CveTipoContrato") = value End Set End Property Private Property CveMovimiento As Integer Get Return ViewState("CveMovimiento").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMovimiento") = value End Set End Property Private Property CveMovimientoDevolucion As Integer Get Return ViewState("CveMovimientoDevolucion").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMovimientoDevolucion") = value End Set End Property Private Property FolioSugerido As String Get Return ViewState("FolioSugerido").ToString End Get Set(value As String) ViewState("FolioSugerido") = value End Set End Property Private Property CveVenta As Integer Get Return ViewState("CveVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveVenta") = value End Set End Property Public Property Autorizado As Boolean Get Return DirectCast(ViewState("Autorizado"), Boolean) End Get Set(value As Boolean) ViewState("Autorizado") = value End Set End Property Private Property ArchivoUpdate As String Get Return ViewState("ArchivoUpdate").ToString End Get Set(value As String) ViewState("ArchivoUpdate") = value End Set End Property Private Property TipoContrato As Integer Get Return ViewState("TipoContrato").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoContrato") = value End Set End Property Private Property DtDatos As DataTable Get Return CType(ViewState("DtDatos"), DataTable) End Get Set(value As DataTable) ViewState("DtDatos") = value End Set End Property Private Property DtPlantillasContratos As DataTable Get Return CType(ViewState("DtPlantillasContratos"), DataTable) End Get Set(value As DataTable) ViewState("DtPlantillasContratos") = value End Set End Property Private Property DtPeriodo As DataTable Get Return CType(ViewState("DtPeriodo"), DataTable) End Get Set(value As DataTable) ViewState("DtPeriodo") = value End Set End Property Private Property TmpDT As DataTable Get Return CType(ViewState("TmpDT"), DataTable) End Get Set(value As DataTable) ViewState("TmpDT") = value End Set End Property Private Property ModalidadDetalle As Integer Get Return DirectCast(ViewState(" ModalidadDetalle"), Integer) End Get Set(value As Integer) ViewState(" ModalidadDetalle") = value End Set End Property Public Property DtMovimientos() As DataTable Get Return CType(ViewState("DtMovimientos"), DataTable) End Get Set(value As DataTable) ViewState("DtMovimientos") = value End Set End Property Public Property DtGastos() As DataTable Get Return CType(ViewState("DtGastos"), DataTable) End Get Set(value As DataTable) ViewState("DtGastos") = value End Set End Property Public Property DtSuministros() As DataTable Get Return CType(ViewState("DtSuministros"), DataTable) End Get Set(value As DataTable) ViewState("DtSuministros") = value End Set End Property Public Property DtAvance() As DataTable Get Return CType(ViewState("DtAvance"), DataTable) End Get Set(value As DataTable) ViewState("DtAvance") = value End Set End Property Public Property DtPresupuestos() As DataTable Get Return CType(ViewState("DtPresupuestos"), DataTable) End Get Set(value As DataTable) ViewState("DtPresupuestos") = value End Set End Property Private Property FechaI As DateTime Get Return CType(ViewState("FechaI"), DateTime) End Get Set(value As DateTime) ViewState("FechaI") = value End Set End Property Private Property FechaF As DateTime Get Return CType(ViewState("FechaF"), DateTime) End Get Set(value As DateTime) ViewState("FechaF") = value End Set End Property Public Property DtActivosFijos() As DataTable Get Return CType(ViewState("DtActivosFijos"), DataTable) End Get Set(value As DataTable) ViewState("DtActivosFijos") = value End Set End Property Private Property CvePSSerieLote As Integer Get Return CType(ViewState("CvePSSerieLote"), Integer) End Get Set(value As Integer) ViewState("CvePSSerieLote") = value End Set End Property Private Property CveUMSerieLote As Integer Get Return CType(ViewState("CveUMSerieLote"), Integer) End Get Set(value As Integer) ViewState("CveUMSerieLote") = value End Set End Property Private Property DtAvanceDocumento As DataTable Get Return CType(ViewState("DtAvanceDocumento"), DataTable) End Get Set(value As DataTable) ViewState("DtAvanceDocumento") = value End Set End Property Private Property Titulo As String Get Return ViewState("Titulo").ToString End Get Set(value As String) ViewState("Titulo") = value End Set End Property Private Property TituloCorto As String Get Return ViewState("TituloCorto").ToString End Get Set(value As String) ViewState("TituloCorto") = value End Set End Property Private Property TipoDocumento As String Get Return ViewState("TipoDocumento").ToString End Get Set(value As String) ViewState("TipoDocumento") = value End Set End Property Private Property Contratante As String Get Return ViewState("Contratante").ToString End Get Set(value As String) ViewState("Contratante") = value End Set End Property Private Property SumaAvance As Double Get Return If(ViewState("SumaAvance") IsNot Nothing, ViewState("SumaAvance").ToString.ToDouble, 0) End Get Set(value As Double) ViewState("SumaAvance") = value End Set End Property Private Property SumaUtilidad As Double Get Return If(ViewState("SumaUtilidad") IsNot Nothing, ViewState("SumaUtilidad").ToString.ToDouble, 0) End Get Set(value As Double) ViewState("SumaUtilidad") = value End Set End Property Private Property SumaGasto As Double Get Return If(ViewState("SumaGasto") IsNot Nothing, ViewState("SumaGasto").ToString.ToDouble, 0) End Get Set(value As Double) ViewState("SumaGasto") = value End Set End Property Private Property NumRow As Integer Private Property EsEditarFianza As Boolean Get Return CType(ViewState("EsEditarFianza"), Boolean) End Get Set(value As Boolean) ViewState("EsEditarFianza") = value End Set End Property Private Property IndexFianzaEditar As Integer Get Return CType(ViewState("IndexFianzaEditar"), Integer) End Get Set(value As Integer) ViewState("IndexFianzaEditar") = value End Set End Property Public Property DtTmpFianzas() As DataTable Get Return CType(ViewState("DtTmpFianzas"), DataTable) End Get Set(value As DataTable) ViewState("DtTmpFianzas") = value End Set End Property Public Property DtTmpFianzasInicial() As DataTable Get Return CType(ViewState("DtTmpFianzasInicial"), DataTable) End Get Set(value As DataTable) ViewState("DtTmpFianzasInicial") = value End Set End Property Private Property MensajeAlert As StringBuilder Get Return CType(ViewState("MensajeAlert"), StringBuilder) End Get Set(value As StringBuilder) ViewState("MensajeAlert") = value End Set End Property Private Property DsDatosPedDev As DataSet Get DsDatosPedDev = DirectCast(ViewState("DsDatosPedDev"), DataSet) End Get Set(ByVal value As DataSet) ViewState("DsDatosPedDev") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then CargaValoresIniciales() CreaDtTmpFianzas() If Request("CveCliente") IsNot Nothing Then cargaClientes() End If If Request("CveContrato") IsNot Nothing AndAlso IsNumeric(Request("CveContrato")) AndAlso Request("CveContrato").ToEntero > 0 Then ViewState("CveContrato") = Request("CveContrato") DvBitacora.Visible = True DdlEstatus.Enabled = False If UsuarioActual.TienePermisoProceso(126) Then BtnAutorizar.Visible = True End If DivContent.Visible = True ' DivTipoContrato.Visible = False 'TxtArchivo.Visible = True CargaDatos() CargaDatosAvance() CargaDatosAvancePorDocumento() CargaInventarios() '12/04/2018 - Si el tipo de contrato es convenio de precio fijo configura campos If CveTipoContrato = 28 Then CargaConvenioPrecioFijo() End If 'Configuración de Modalidad Update BtnGuardar.Text = "Guardar Cambios" If Request("Opt") IsNot Nothing AndAlso IsNumeric(Request("Opt")) Then Tab.ActiveTabIndex = Request("Opt").ToEntero Else 'Configuración de Modalidad Insert LblFechaCaptura.Text = Now.ToShortDateString() LblUsuarioCapturo.Text = UsuarioActual.Usuario ViewState("CveContrato") = -1 DvBitacora.Visible = False TabContratosGastos.Visible = False TabAF.Visible = False TabReporteAvance.Visible = False TabAvanveDocumento.Visible = False Tab.ActiveTabIndex = 0 If UsuarioActual.Empresa.CvePlataforma = 3 Then rdventa.Checked = True rdventa_CheckedChanged(Nothing, Nothing) If (DdlTipoContrato.Items.FindByValue("14") Is Nothing) Then DdlTipoContrato.Items.Insert(1, New ListItem("Contrato de Cuenta y Equipo", "14")) End If DdlTipoContrato.SelectedValue = "14" TipoContrato = 14 BtnTipoContrato_Click(Nothing, Nothing) End If End If 'carga combos CargaClasificaciones() CargaPS() CargaPSInsumos() ConfiguraTipos() CargaDatosEncabezado() CargaImpuestosLocales() End If '[IPP] PORQUE ESTA TODO ESTO EN TODOS LOS POSTBACK ??? - REVISEN BIEN DONDE PONEN EL CODIGO If UsuarioActual.TienePermisoProceso(165) Then BtnGuardar.Visible = True Else BtnGuardar.Visible = False End If If CveContrato > 0 Then If UsuarioActual.TienePermisoProceso(164) Then BtnEliminar.Visible = True Gv.Columns(11).Visible = True GvInsumos.Columns(9).Visible = True Else BtnEliminar.Visible = False Gv.Columns(11).Visible = False GvInsumos.Columns(9).Visible = False End If 'If CveTipoContrato.Contiene(11, 25) Then 'ciclo comercial ' Gv.Columns(9).Visible = False ' GvInsumos.Columns(8).Visible = False 'End If Else TabPres.Visible = False Gv.Columns(11).Visible = True GvInsumos.Columns(9).Visible = True End If End Sub #Region " CARGA VALORES INICIALES " Private Sub CargaValoresIniciales() CveContrato = -1 ViewState("TipoContrato") = 0 CveVenta = -1 Autorizado = False BtnAutorizar.Visible = False Session("FileUpload") = "" Session("FileExtension") = "" Session("FileFolder") = "" ArchivoUpdate = "" ModalidadDetalle = 1 FolioSugerido = "" CargaProyecto() CargaContratista() CargaVendedores() DdlUM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) DdlUM.DataBind() DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataBind() CargaContratoPadre() CargaContratosEstatus() CreaDT() DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) If UsuarioActual.TienePermisoProceso(172) Then RowPorcentajeComision.Visible = True End If If UsuarioActual.CveEmpresa.Contiene(72, 80) Then divResponsable.Visible = False End Sub Public Sub CargaDireccionesEnvios(CveCliente As Integer) Dim ObjVentas As New ClsClientes If ObjVentas.DireccionEnvioGet(-1, CveCliente, -1) Then If ObjVentas.DtResultados.Rows.Count > 0 Then DdlClienteDireccionEnvio.DataSource = ObjVentas.DtResultados DdlClienteDireccionEnvio.DataBind() DivClienteDireccion.Visible = True Else DivClienteDireccion.Visible = False End If End If ObjVentas.Dispose() UpGral.Update() End Sub Protected Sub DdlMoneda_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlMoneda.SelectedIndexChanged If DdlMoneda.SelectedIndex = 0 Then tipoCambio.Visible = False TxtTipoCambio.Text = "" UpGral.Update() Else tipoCambio.Visible = True TxtTipoCambio.Text = "" UpGral.Update() End If End Sub Public Function isWithFamily() As Boolean Return UsuarioActual.CveEmpresa = 66 End Function Private Sub cargaClientes() TrCliente.Visible = True TrProveedor.Visible = False DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) DdlCliente.DataBind() End Sub Private Sub CreaDT() TmpDT = New DataTable TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) TmpDT.Columns.Add("Cantidad", GetType(Double)) TmpDT.Columns.Add("CantidadContratada", GetType(Double)) TmpDT.Columns.Add("CveUM", GetType(Integer)) TmpDT.Columns.Add("UM", GetType(String)) TmpDT.Columns.Add("CveClasificacion", GetType(Integer)) TmpDT.Columns.Add("Clasificacion", GetType(String)) TmpDT.Columns.Add("CvePS", GetType(Integer)) TmpDT.Columns.Add("PS", GetType(String)) TmpDT.Columns.Add("CodigoPS", GetType(String)) TmpDT.Columns.Add("PU", GetType(Double)) TmpDT.Columns.Add("Total", GetType(Double)) TmpDT.Columns.Add("CveTipoPresupuesto", GetType(Integer)) TmpDT.Columns.Add("PermitirAvance", GetType(Integer)) TmpDT.Columns.Add("PermitirEstimacion", GetType(Integer)) TmpDT.Columns.Add("UsuarioAvance", GetType(Integer)) TmpDT.Columns.Add("Cantidad_Original", GetType(Double)) TmpDT.Columns.Add("PU_Original", GetType(Double)) TmpDT.Columns.Add("Total_Original", GetType(Double)) TmpDT.Columns.Add("NoIdentificacion", GetType(String)) TmpDT.Columns.Add("LimitarCantidad", GetType(Integer)) TmpDT.Columns.Add("OCInterna", GetType(String)) TmpDT.Columns.Add("Observacion", GetType(String)) End Sub Protected Sub Limpiar() TxtNumeroContrato.Text = "" TxtDescripcionContrato.Text = "" DdlContratista.SelectedValue = "-1" DdlCliente.SelectedValue = "-1" TxtFechaInicial.Text = "" TxtFechaFinal.Text = "" TxtPorIVA.Text = "" txtMinimo.Text = "" txtMaximo.Text = "" 'TxtArchivo.Text = "" DdlProyecto.SelectedValue = "-1" DdlSubProyectoContrato.SelectedValue = "-1" DdlContratoPadre.SelectedValue = "-1" 'Tab Presupuesto TxtCantidad.Text = "" TxtPU.Text = "" TmpDT.Clear() CargaGVPresupuestos(TmpDT) CargaGVPresupuestosInsumos(TmpDT) LbTotalGeneral.Text = "0.00" 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 End If 'TabContratosGastos.Visible = False 'DONDE OCUPA ALMACEN Dim CveTipoAlmacenOrigen = "12" Dim CveTipoAlmacenDestino = "11,12" If TipoContrato.Contiene({7, 9, 13, 16, 18, 21, 27}) Then RowAlmacen.Visible = True If TipoContrato.Contiene(7, 9, 13, 21, 27) Then If TipoContrato.Contiene(27) Then CveTipoAlmacenOrigen = "1" CveTipoAlmacenDestino = "17" End If RowAlmacenOrigen.Visible = True End If End If Dim CveOrigen = DdlAlmacenOrigen.SelectedValue DdlAlmacenOrigen.Items.Clear() DdlAlmacenOrigen.SelectedValue = "-1" DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenOrigen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen IN ({CveTipoAlmacenOrigen})") ' GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacenOrigen.DataBind() DdlAlmacenOrigen.SelectedValueExist(CveOrigen) 'SI EL ALMACEN ANTERIOR DEL CONTRATO NO ESTA EN LOS ALMACENES ACTUALES LO INSERTA A FUERZAS If DdlAlmacenOrigen.SelectedValue <> CveOrigen Then DdlAlmacenOrigen.Items.Insert(1, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveOrigen}"), CveOrigen)) DdlAlmacenOrigen.SelectedValueExist(CveOrigen) End If Dim CveDestino = DdlAlmacenDestino.SelectedValue DdlAlmacenDestino.Items.Clear() DdlAlmacenDestino.SelectedValue = "-1" DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenDestino.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoAlmacen In ({CveTipoAlmacenDestino})") 'GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) DdlAlmacenDestino.DataBind() DdlAlmacenDestino.SelectedValueExist(CveDestino) 'SI EL ALMACEN ANTERIOR DEL CONTRATO NO ESTA EN LOS ALMACENES ACTUALES LO INSERTA A FUERZAS If DdlAlmacenDestino.SelectedValue <> CveDestino Then DdlAlmacenDestino.Items.Insert(1, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveDestino}"), CveDestino)) DdlAlmacenDestino.SelectedValueExist(CveDestino) End If End Sub Private Sub MuestraPermiteAvance() 'If Not TipoContrato.Contiene({4, 5, 25, 11}) Then ' Gv.Columns(9).Visible = False ' GvInsumos.Columns(7).Visible = False ' THAvance.Style.Add("display", "none") ' TDAvance.Style.Add("display", "none") ' THAvance.Visible = False ' THAvanceInsumos.Visible = False ' ' tdCol7.Visible = False ' TDAvance.Visible = False ' TDAvanceInsumos.Visible = False 'Else ' Gv.Columns(9).Visible = True ' GvInsumos.Columns(6).Visible = True ' THAvance.Visible = True ' THAvanceInsumos.Visible = True ' 'tdCol7.Visible = True ' TDAvance.Visible = True ' TDAvanceInsumos.Visible = True 'End If 'UpTitulos.Update() 'UpGral.Update() End Sub #End Region #Region " PANTALLA INICIAL" Protected Sub rpCompra_CheckedChanged(sender As Object, e As EventArgs) Handles rpCompra.CheckedChanged loadComboTipoContrato(False) End Sub Protected Sub rdventa_CheckedChanged(sender As Object, e As EventArgs) Handles rdventa.CheckedChanged loadComboTipoContrato(True) End Sub Private Sub loadComboTipoContrato(venta As Boolean) Try If venta Then DdlTipoContrato.DataSource = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros(" TipoMovimiento = 1") Else DdlTipoContrato.DataSource = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros(" TipoMovimiento = 0") End If dvDetContrato.Visible = True ' DdlTipoContrato.Visible = True DdlTipoContrato.DataBind() DdlTipoContrato.Items.Insert(0, New ListItem("Seleccione una opción", "-1")) If UsuarioActual.CveEmpresa.Contiene(1, 11, 4, 12) And venta Then DdlTipoContrato.Items.Insert(1, New ListItem("Contrato con facturación ciclica", "25")) End If UPTipo.Update() Catch ex As Exception Alert(ex.Message, TipoMensaje.MsgError) End Try End Sub #End Region #Region " INICIO DE PAGINA " Protected Sub DdlTipoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) CargaTipoContrato() '12/04/2018 - Se configuran campos de convenio de precio fijo If DdlTipoContrato.SelectedValue = "28" Then CargaConvenioPrecioFijo() End If If UsuarioActual.CveEmpresa = 72 And DdlTipoContrato.SelectedValue.Contiene("7", "8", "10", "13", "28") Then GetNoContratoNuevo() End If End Sub Private Sub CargaTipoContrato() If DdlTipoContrato.SelectedIndex = 0 Then TxtDescripcionTipoContrato.Text = "" Exit Sub End If TipoContrato = DdlTipoContrato.SelectedValue.ToEntero TxtDescripcionTipoContrato.Text = GlobalDTContratosTipos(UsuarioActual.CveEmpresa).FiltraParametros("CveContratoTipo = " & DdlTipoContrato.SelectedValue)(0)("Descripcion").ToString() TxtDescripcionTipoContrato.Visible = True CargaContratoPadre() UpProyecto.Update() End Sub Private Sub modalidades(modalidadDetalleInt As Integer) If modalidadDetalleInt = 1 Then ModalidadDetalle = 1 DvMax.Visible = True DvMin.Visible = True DvTotal.Visible = True If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then TableDatosCabecera.Visible = True End If ElseIf modalidadDetalleInt = 2 Then ModalidadDetalle = 2 DvMax.Visible = True DvMin.Visible = True DvTotal.Visible = True 'TxtCantidad.Visible = False If CveContrato > 0 AndAlso CveTipoContrato <> 25 Then TableDatosCabecera.Visible = True End If End If UpGral.Update() End Sub Protected Sub chkDetalleContrato_CheckedChanged(sender As Object, e As EventArgs) If chkDetalleContrato.Checked = False Then modalidades(1) Else modalidades(2) End If End Sub Protected Sub BtnTipoContrato_Click(sender As Object, e As EventArgs) Handles BtnTipoContrato.Click If DdlTipoContrato.SelectedIndex = 0 Then Alert("Tiene que seleccionar un tipo de Contrato.", TipoMensaje.MsgAdvertencia) Exit Sub End If 'Dim TipoMov = GlobalDTContratosTipos.FiltroPrimeroValor("TipoMovimiento", $"CveContratoTipo='{CveTipoContrato}'").ToEntero If rpCompra.Checked Then Dim CveContratoTipo = DdlTipoContrato.SelectedValue.ToEntero Response.Redirect($"/Contratos/Presupuestos.aspx?CveContrato=-1&CveContratoTipo={CveContratoTipo}") 'RegistraScript("window.location='/Contratos/Presupuestos.aspx") Else modalidades(1) DivTipoContrato.Visible = False If rdventa.Checked Then DdlCliente.Visible = True TrCliente.Visible = True DdlContratista.Visible = False TrProveedor.Visible = False Else DdlCliente.Visible = False TrCliente.Visible = False TrProveedor.Visible = True DdlContratista.Visible = True End If If rdventa.Checked Then cargaClientes() Else CargaContratista() End If If DdlTipoContrato.SelectedValue = "14" Then TrCtaEquipo.Visible = True TrPeriodo.Visible = True RFVEstatus.ValidationGroup = "" RequiredFieldValidator1.ValidationGroup = "" DvMin.Visible = True DvMax.Visible = True DvTotal.Visible = True RowFlexible.Visible = False RowEstatus.Visible = False RowPorcentajeComision.Visible = False dvAddendum.Visible = False CargaPeriodos() CargaPlantillas() TrContratoPlantilla.Visible = True TabPres.HeaderText = "Partidas" Else DtPeriodo = Nothing End If If DdlTipoContrato.SelectedValue = "25" Then trLicitacion.Visible = False divResponsable.Visible = False TrPeriodo.Visible = True CargaPeriodos() trIva.Visible = False trAnticipo.Visible = False trAmortizacion.Visible = False trPorGarantia.Visible = False DvMin.Visible = False RowFlexible.Visible = False RowPorcentajeComision.Visible = False DvMax.Visible = False DvTotal.Visible = False RowEstatus.Visible = False TabPres.HeaderText = "Partidas" DdlSubProyectoContrato.AutoPostBack = True DvObservaciones.Visible = True End If Dim CveTipoContrato = DdlTipoContrato.SelectedValue 'Dim TipoMov = GlobalDTContratosTipos.AsEnumerable().Where(Function(a) a("CveContratoTipo").ToString = CveTipoContrato).FirstOrDefault()("TipoMovimiento") DivContent.Visible = True ConfiguraTipos() UpGral.Update() UPTipo.Update() End If End Sub Protected Sub DdlSubProyectoContrato_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoContrato.SelectedIndexChanged Dim ObjFolios As New ClsGralFolios If ObjFolios.GetFolios("Con", UsuarioActual.CveEmpresa) Then If ObjFolios.DtResultados.FiltraParametros($"CveSubProyecto = {DdlSubProyectoContrato.SelectedValue}").Rows.Count > 0 Then FolioSugerido = $"{GlobalDTSubProyectos(-1, DdlSubProyectoContrato.SelectedValue.ToEntero).FiltroPrimeroValor("Serie")}-{ObjFolios.DtResultados.FiltroPrimeroValor("FActual", $"CveSubProyecto = {DdlSubProyectoContrato.SelectedValue}")}" TxtNumeroContrato.Text = FolioSugerido Else Alert("La sucursal no cuenta con folios de contratos", TipoMensaje.MsgAdvertencia) End If End If ObjFolios.Dispose() UpGral.Update() End Sub #End Region #Region " CARGA DATOS " Private Sub CargaDatos() Dim ObjContratos As New ClsContratos() Dim Ruta = Request.ApplicationPath + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" DivTipoContrato.Visible = False If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then If ObjContratos.DtResultados.Rows.Count > 0 Then GRidsPresupuestos.Visible = True msjpresupuestos.Visible = False If ArchivoUpdate = ObjContratos.Archivo.ToString Then LinkArchivo.Visible = True LinkArchivo.HRef = String.Format("{0}{1}", Ruta, ObjContratos.Archivo.ToString) End If Titulo = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} ({ObjContratos.DtResultados.Rows(0)("ContratoTipo")})" TituloCorto = $"{ObjContratos.NumeroContrato} - {ObjContratos.DescripcionContrato} " TipoDocumento = ObjContratos.DtResultados.Rows(0)("ContratoTipo").ToString LtlTitulo.Text = $"Contrato: {Titulo})" 'Pestaña Datos Generales TxtObservaciones.Text = ObjContratos.Observaciones TxtDescripcionContrato.Text = ObjContratos.DescripcionContrato TxtNumeroContrato.Text = ObjContratos.NumeroContrato TxtNumeroLicitacion.Text = ObjContratos.NumeroLicitacion TipoContrato = ObjContratos.CveContratoTipo TxtPorcentajeComision.Text = ObjContratos.PorcentajeComision.ToString CveTipoContrato = ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero TxtCorreoNotificacion.Text = ObjContratos.DtResultados.Rows(0)("CorreoNotificacionPedDev").ToString If ObjContratos.CveProveedor > 0 Then TrProveedor.Visible = True TrCliente.Visible = False CargaContratista() DdlContratista.SelectedValue = ObjContratos.CveProveedor.ToString Else cargaClientes() DdlCliente.SelectedValueExist(ObjContratos.CveCliente.ToString) UpGral.Update() CargaSucursalCliente() DdlSucursalCliente.SelectedValue = ObjContratos.CveSucursalCliente.ToString End If If DdlCliente.SelectedValue.ToEntero > 0 Then CargaDireccionesEnvios(DdlCliente.SelectedValue.ToEntero) DdlClienteDireccionEnvio.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveDireccionEnvio").ToString.ToEntero) End If CargaContratoPadre() CargaContratoAddendum() If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 14 Then CargaPeriodos() TrCtaEquipo.Visible = True TrPeriodo.Visible = True RFVEstatus.ValidationGroup = "" RequiredFieldValidator1.ValidationGroup = "" DvMin.Visible = True DvMax.Visible = True DvTotal.Visible = True RowFlexible.Visible = False RowPorcentajeComision.Visible = False RowEstatus.Visible = False dvAddendum.Visible = False liImprimir.Visible = True CargaPlantillas() TrContratoPlantilla.Visible = True DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo")) DdlCuentaEquipo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveCuentaEquipo")) DdlPlantillaContrato.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveContratoPlantilla")) TabPres.HeaderText = "Partidas" End If If ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero = 25 Then trLicitacion.Visible = False divResponsable.Visible = False TrPeriodo.Visible = True CargaPeriodos() trIva.Visible = False trAnticipo.Visible = False trAmortizacion.Visible = False trPorGarantia.Visible = False DvMin.Visible = False DvMax.Visible = False DvTotal.Visible = False TabPVInsumos.Visible = False RowEstatus.Visible = False TabPres.HeaderText = "Partidas" thOcCliente.Style.Add("display", "none") tdOcCliente.Style.Add("display", "none") thNoIdentificacionv.Style.Add("display", "none") thLimitar.Style.Add("display", "none") tdLimitar2.Style.Add("display", "none") tdNoIdentificacionv.Style.Add("display", "none") RowFlexible.Visible = False TableDatosCabecera.Visible = False TabAvanveDocumento.Visible = False TabSistema.Visible = False RowPorcentajeComision.Visible = False TabContratosGastos.Visible = False tdCveInterna.Text = "" tdLimitar.Text = "" tdOC.Text = "" THAvance.Visible = False THAvance.Style.Add("display", "none") TDAvance.Style.Add("display", "none") TxtOCInterna.Visible = False TxtNoIdentificacionv.Visible = False ChkLimitarVenta.Visible = False DvObservaciones.Visible = True TDObservacion.Visible = True tdObservaciones.Visible = True TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString Gv.Columns(6).Visible = True DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo").ToString) End If If ObjContratos.DtResultados.Rows(0)("CveVendedor").ToString.ToEntero > 0 Then DdlVendedor.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveVendedor")) End If If (DdlAlmacenDestino.Items.FindByValue(ObjContratos.CveAlmacen.ToString()) Is Nothing) Then Dim dr As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", ObjContratos.CveAlmacen)) If dr IsNot Nothing Then DdlAlmacenDestino.Items.Insert(1, New ListItem(dr("Almacen").ToString, dr("CveAlmacen").ToString)) ' lo genera Obj.SelectedValue = Valor.ToString End If End If DdlAlmacenDestino.SelectedValue = ObjContratos.CveAlmacen.ToString If (DdlAlmacenOrigen.Items.FindByValue(ObjContratos.CveAlmacenOrigen.ToString()) Is Nothing) Then Dim dr As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", ObjContratos.CveAlmacenOrigen)) If dr IsNot Nothing Then DdlAlmacenOrigen.Items.Insert(1, New ListItem(dr("Almacen").ToString, dr("CveAlmacen").ToString)) ' lo genera Obj.SelectedValue = Valor.ToString End If End If DdlAlmacenOrigen.SelectedValue = ObjContratos.CveAlmacenOrigen.ToString FechaF = ObjContratos.FechaFinal FechaI = ObjContratos.FechaInicial TxtFechaFinal.Text = ObjContratos.FechaFinal.ToShortDateString TxtFechaInicial.Text = ObjContratos.FechaInicial.ToShortDateString TxtUbicacion.Text = ObjContratos.Ubicacion TxtResponsable.Text = ObjContratos.Responsable TxtPorAnticipo.Text = ObjContratos.PorAmortizacionAnticipo.FormatoNumero TxtPorAmortizacionAnticipo.Text = ObjContratos.PorAmortizacionAnticipo.FormatoNumero TxtPorGarantia.Text = ObjContratos.PorGarantia.FormatoNumero DdlProyecto.SelectedValue = ObjContratos.CveProyecto.ToString CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero) DdlSubProyectoContrato.SelectedValue = ObjContratos.CveSubProyecto.ToString TxtPorIVA.Text = ObjContratos.PorIVA.ToString txtMinimo.Text = ObjContratos.Minimo.FormatoNumero txtMaximo.Text = ObjContratos.Maximo.FormatoNumero TxtTotal.Text = ObjContratos.Importe.FormatoNumero 'TxtArchivo.Text = ObjContratos.Archivo DdlTipoGarantia.SelectedValueExist(ObjContratos.TipoGarantia) DdlEstatusFianza.SelectedValueExist(ObjContratos.EstatusFianza) TxtFolio.Text = ObjContratos.Folio.ToString txtFechaVenc.Text = ObjContratos.FechaVenc.ToString DdlEstatus.SelectedValueExist(ObjContratos.CveContratosEstatus.ToString) CargarFianzas() If ObjContratos.TipoEstatus = 2 Then DdlEstatus.Enabled = False If UsuarioActual.TienePermisoProceso(173) Then liVigenteContrato.Visible = True LBVigenteContrato.Visible = True End If Else DdlEstatus.Items.Clear() 'Se esta ocultando concluido' DdlEstatus.DataSource = CType(DdlEstatus.DataSource, DataTable).FiltraParametros("TipoEstatus NOT IN (2)") DdlEstatus.DataBind() Select Case ObjContratos.TipoEstatus Case 1 If UsuarioActual.TienePermisoProceso(173) Then liTerminarContrato.Visible = True LBTerminarContrato.Visible = True liCancelarContrato.Visible = True LBCancelarContrato.Visible = True End If Case 2, 3 ' reactivar el contrato If UsuarioActual.TienePermisoProceso(173) Then liVigenteContrato.Visible = True LBVigenteContrato.Visible = True End If End Select End If TxtTipoCambio.Text = ObjContratos.TipoCambio.ToString ModalidadDetalle = ObjContratos.ModalidadDetalle chkDetalleContrato.Checked = If(ModalidadDetalle = 2, True, False) ChkImpuestosLocales.Checked = ObjContratos.AplicaImpuestosLocales GvImpuestosLocales.Visible = ObjContratos.AplicaImpuestosLocales modalidades(ModalidadDetalle) CargaGVGastos() DdlMoneda.SelectedValue = ObjContratos.CveMoneda.ToString If DdlMoneda.SelectedIndex > 0 Then tipoCambio.Visible = True End If If ObjContratos.CveProveedor > 0 Then Contratante = ObjContratos.RazonSocial.ToString Else Contratante = ObjContratos.NombreComercial.ToString End If 'AFU.Visible = False 'TxtArchivo.Text = ObjContratos.Archivo.ToString 'ChkEstatusContrato.Checked = CBool(ObjContratos.EstatusContrato) DdlContratoPadre.SelectedValue = ObjContratos.CveContratoPadre.ToString LblFechaCaptura.Text = ObjContratos.FechaIng.ToShortDateString 'HplSecciones.NavigateUrl = "/Contratos/ContratosSecciones.aspx?CveContrato=" & CveContrato 'CargaDatosPresup() CargaPresupuesto() ' MuestraPermiteAvance() cargarBitacora() If LblImporte.Text.ToDecimal <= 0 Then LblImporte.Text = ObjContratos.ImporteTotal.ToString.FormatoNumero End If If Not IsDBNull(ObjContratos.Archivo) AndAlso ObjContratos.Archivo <> "" AndAlso ObjContratos.Archivo <> "-1" AndAlso ObjContratos.Archivo <> $"{ObjContratos.CveContrato}." Then ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "CONTRATOS", ObjContratos.Archivo) 'A2.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CONTRATO&CveEmpresa={0}&Archivo={1}", ObjContratos.CveEmpresa, ViewState("FUrl").ToString))) BtnDescargar.Visible = True Else BtnDescargar.Visible = False A1.Visible = True End If Else CveContrato = -1 Alert("El Contrato Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False End If Else CveContrato = -1 Alert("Ocurrió un error al cargar el Contrato. Por favor vuelva a intentar.", TipoMensaje.MsgError) BtnGuardar.Enabled = False End If UpGral.Update() UPAFUL.Update() UpProyecto.Update() UpImpuestos.Update() UpTitulos.Update() ObjContratos.Dispose() End Sub Private Sub CargaContratoAddendum() Dim ObjContratos As New ClsContratos If ObjContratos.GetContratosAddendum(CveContrato) Then If ObjContratos.DtResultados.Rows.Count > 0 Then TabAddendum.Visible = True GvAddendum.DataSource = ObjContratos.DtResultados GvAddendum.DataBind() End If End If End Sub Private Sub CargaPresupuesto() Dim ObjContratos As New ClsContratos TabPres.Visible = True If TipoContrato = 4 Then TabPI.Visible = True End If If ObjContratos.GetContratosDetalle(CveContrato) Then TmpDT = ObjContratos.DtResultados If TmpDT.MAX("Cantidad_Original").ToString.ToEntero > 0 OrElse TmpDT.MAX("PU_Original").ToString.ToEntero > 0 Then BtnAutorizar.Visible = False Autorizado = True BtnAgregarDetalle.Visible = False AgregarInt.Visible = UsuarioActual.TienePermisoProceso(129) End If CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") GvInt.DataBind() UpGV.Update() UpGVInsumos.Update() UPGVInt.Update() LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero() LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero() LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero() LblImporte.Text = "$" & TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero() End If End Sub Private Sub CargarFianzas() DivFianzas.Visible = True Dim ObjContrato As ClsContratos = New ClsContratos() If ObjContrato.GetContratoFianza(CveContrato, -1, "-1", "-1", UsuarioActual.CveEmpresa, -1) Then DtTmpFianzas = ObjContrato.DtResultados GvFianzas.DataSource = ObjContrato.DtResultados DtTmpFianzasInicial = DtTmpFianzas.Copy() End If ObjContrato.Dispose() GvFianzas.DataBind() UpGvFianzas.Update() End Sub #End Region #Region " GUARDAR " Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click Dim ObjContratos As New ClsContratos Dim ObjInventarios As New ClsInventarios(ObjContratos.IniciaTransacSQL) Dim TieneError = False Dim Modificado = False ' Dim Extension = Session("FileExtension").ToString Dim Archivo = Session("FileUpload").ToString Dim Ruta = Session("FileFolder").ToString Dim Minimo, Maximo, Total As Double 'If txtMinimo.Text.ToDouble > 0 Then Minimo = txtMinimo.Text.ToDouble Else Minimo = -1 'If txtMaximo.Text.ToDouble > 0 Then Maximo = txtMaximo.Text.ToDouble Else Maximo = -1 'If TxtTotal.Text.ToDouble > 0 Then Total = TxtTotal.Text.ToDouble Else Total = -1 Minimo = txtMinimo.Text.ToDouble Maximo = txtMaximo.Text.ToDouble Total = TxtTotal.Text.ToDouble If DdlMoneda.SelectedIndex > 0 Then If TxtTipoCambio.Text.Trim.Length = 0 Or TxtTipoCambio.Text.Trim.ToDouble = 0.0 Then Alert("Cuando seleccione una moneda diferencte a peso debe especificar el tipo de cambio.", TipoMensaje.MsgAdvertencia) Exit Sub End If End If 'Crear Contrato If Not CveContrato > 0 Then If DdlContratista.SelectedValue.ToEntero = -1 And DdlCliente.SelectedValue.ToEntero = -1 Then Alert("Debe seleccionar con quién está haciendo el contrato. Proveedor o Cliente", TipoMensaje.MsgAdvertencia) Exit Sub End If CveContrato = ObjContratos.AddContratos(TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate, TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble, TxtPorGarantia.Text.ToDouble, "." & Session("FileExtension").ToString, "", DdlContratoPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, If(DdlTipoContrato.SelectedValue.ToEntero = 25 OrElse UsuarioActual.Empresa.CvePlataforma = 3, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato, TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=DdlAlmacenOrigen.SelectedValue.ToEntero, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, PorcentajeComision:=TxtPorcentajeComision.Text.ToEntero, TipoGarantia:=DdlTipoGarantia.SelectedValue.ToEntero, Folio:=TxtFolio.Text.ToEntero, FechaVenc:=txtFechaVenc.Text.ToDate, EstatusFianza:=DdlEstatusFianza.SelectedValue.ToEntero, CvePeriodo:=DdlPeriodo.SelectedValue.ToEntero, CveCuentaEquipo:=DdlCuentaEquipo.SelectedValue.ToEntero, CveContratoPlantilla:=DdlPlantillaContrato.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=DdlClienteDireccionEnvio.SelectedValue.ToEntero, AplicaImpuestosLocales:=ChkImpuestosLocales.Checked, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim()) TieneError = Not GuardaFianzas(ObjContratos) If CveContrato > 0 AndAlso Not TieneError Then 'Renombrar archivo If ViewState("extencion") IsNot Nothing Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") End If Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" 'ViewState("extencion") = FileExtension 'ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", ViewState("FName").ToString) Try If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) End If System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Catch ex As Exception End Try End If End If If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF) Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero For Ciclo As Integer = 1 To CiclosComerciales If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For Next ElseIf DdlTipoContrato.SelectedValue = "25" Then Dim FechaI As DateTime = TxtFechaInicial.Text.ToDateTime Dim FechaF As DateTime = TxtFechaFinal.Text.ToDateTime If FechaI >= DateTime.Today Then If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI) Then TieneError = True End If Dim Periodo As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF) Dim CiclosComerciales As Integer = Math.Ceiling(VigenciaMeses / Periodo).ToEntero For Ciclo As Integer = 1 To CiclosComerciales If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, If(FechaI.AddMonths(Periodo * Ciclo) > FechaF, FechaF, FechaI.AddMonths(Periodo * Ciclo))) Then TieneError = True : Exit For Next End If If TxtNumeroContrato.Text = FolioSugerido Then Dim ObjFolios As New ClsGralFolios If Not ObjFolios.UpdateFolioActual(DdlSubProyectoContrato.SelectedValue.ToEntero, "Con", True, UsuarioActual.CveEmpresa) Then TieneError = True End If ObjFolios.Dispose() End If If ChkImpuestosLocales.Checked Then Dim count As Integer = 0 For Each GVR As GridViewRow In GvImpuestosLocales.Rows If GVR.FCCheckBox("ChkDeduccion").Checked Then count = count + 1 ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero) End If Next If count = 0 Then Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia) TieneError = True End If End If Else TieneError = True End If Else Modificado = True If DdlContratista.SelectedValue.ToEntero = -1 And DdlCliente.SelectedValue.ToEntero = -1 Then Alert("Debe seleccionar con quién está haciendo el contrato. Proveedor o Cliente", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ArchivoUpdate As String = "-1" If Session("FileExtension").ToString <> "" Then ArchivoUpdate = "." & Session("FileExtension").ToString Else End If If ObjContratos.UpdateContratos(CveContrato, TxtNumeroContrato.Text, TxtDescripcionContrato.Text, TxtNumeroLicitacion.Text.Trim, DdlContratista.SelectedValue.ToEntero, DdlCliente.SelectedValue.ToEntero, -1, TxtFechaInicial.Text.ToDate, TxtFechaFinal.Text.ToDate, TxtUbicacion.Text, TxtResponsable.Text, DdlSubProyectoContrato.SelectedValue.ToEntero, TxtPorIVA.Text.ToDouble, TxtPorAnticipo.Text.ToDouble, TxtPorAmortizacionAnticipo.Text.ToDouble, TxtPorGarantia.Text.ToDouble, ArchivoUpdate, "", DdlContratoPadre.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, Minimo, Maximo, Total, DdlMoneda.SelectedValue.ToEntero, ModalidadDetalle, If(UsuarioActual.Empresa.CvePlataforma = 3 OrElse CveTipoContrato = 25, 1, DdlEstatus.SelectedValue.ToEntero), TipoContrato, TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=DdlAlmacenOrigen.SelectedValue.ToEntero, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, PorcentajeComision:=TxtPorcentajeComision.Text.ToEntero, TipoGarantia:=DdlTipoGarantia.SelectedValue.ToEntero, Folio:=TxtFolio.Text.ToEntero, FechaVenc:=txtFechaVenc.Text.ToDate, EstatusFianza:=DdlEstatusFianza.SelectedValue.ToEntero, CveContratoPlantilla:=DdlPlantillaContrato.SelectedValue.ToEntero, CveCuentaEquipo:=DdlCuentaEquipo.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=DdlClienteDireccionEnvio.SelectedValue.ToEntero, AplicaImpuestosLocales:=ChkImpuestosLocales.Checked, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim()) Then TieneError = Not GuardaFianzas(ObjContratos) 'Renombrar archivo If Not TieneError Then If UsuarioActual.Empresa.CvePlataforma = 3 AndAlso DdlTipoContrato.SelectedValue = "14" Then Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime Dim Periodo As Integer = DtPeriodo.FiltraParametros($"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").Rows(0)("Dias").ToString.ToEntero Dim VigenciaEnDias As Double = DateDiff(DateInterval.Day, FechaI, FechaF) Dim CiclosComerciales As Integer = Math.Round(VigenciaEnDias / Periodo).ToEntero For Ciclo As Integer = 1 To CiclosComerciales If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaI.AddDays(Periodo * Ciclo)) Then TieneError = True : Exit For Next ElseIf CveTipoContrato = 25 Then Dim FechaIN As DateTime = TxtFechaInicial.Text.ToDateTime Dim FechaFN As DateTime = TxtFechaFinal.Text.ToDateTime If FechaFN <> FechaF OrElse FechaI <> FechaIN Then If Not ObjContratos.CicloComercialDelete(CveContrato, False, UsuarioActual.CveEmpresa) Then TieneError = True End If If Not TieneError Then If FechaIN >= DateTime.Today Then If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, FechaIN) Then TieneError = True End If Dim Periodo As Integer = DtPeriodo.FiltroPrimeroValor("Meses", $"CvePeriodo = {DdlPeriodo.SelectedValue.ToEntero}").ToEntero Dim VigenciaMeses As Double = DateDiff(DateInterval.Month, FechaI, FechaF) Dim CiclosComerciales As Integer = Math.Ceiling(VigenciaMeses / Periodo).ToEntero For Ciclo As Integer = 1 To CiclosComerciales If Not ObjContratos.CicloComercialAdd(CveContrato, -1, DdlCliente.SelectedValue.ToEntero, False, -1, 1, UsuarioActual.CveEmpresa, If(FechaIN.AddMonths(Periodo * Ciclo) > FechaFN, FechaFN, FechaIN.AddMonths(Periodo * Ciclo))) Then TieneError = True : Exit For Next End If End If End If If ViewState("extencion") IsNot Nothing Then If ViewState("FUrl").ToString.Length > 0 AndAlso ViewState("extencion").ToString.Length > 0 Then If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos") End If Ruta = ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Contratos\" Try If File.Exists(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Then File.Delete(String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) End If System.IO.File.Move(ViewState("FUrl").ToString, String.Format("{0}{1}.{2}", Ruta, CveContrato.ToString, ViewState("extencion").ToString)) Catch ex As Exception End Try ' System.IO.File.Move(Archivo, String.Format("{0}{1}{2}", Ruta, CveContrato.ToString, Extension)) End If End If If ChkImpuestosLocales.Checked Then Dim count As Integer = 0 ObjContratos.LimpiaImpuestosLocales(CveContrato) For Each GVR As GridViewRow In GvImpuestosLocales.Rows If GVR.FCCheckBox("ChkDeduccion").Checked Then count = count + 1 ObjContratos.AddContratoImpuestosLocales(CveContrato, GVR.DataKey("CveImpuestoLocal").ToEntero) End If Next If count = 0 Then Alert("Debe seleccionar un Impuesto Local", TipoMensaje.MsgAdvertencia) TieneError = True End If Else ObjContratos.LimpiaImpuestosLocales(CveContrato) End If End If Else TieneError = True End If End If 'If Not TieneError Then ' TieneError = GuardarAlmacen(ObjInventarios) 'End If If TieneError Then ObjContratos.RollBack() Else ObjContratos.Commit() If ObjContratos.GetContratos(-1, -1) Then Application("GlobalDTContratos") = ObjContratos.DtResultados End If Limpiar() If Modificado Then Alert("El Contrato se modificó Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) Else Alert("El Contrato se registró Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) End If End If UpGral.Update() ObjContratos.Dispose() End Sub #End Region #Region " ELIMINAR " Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click Dim objContratos As New ClsContratos If objContratos.RemoveContrato(CveContrato, UsuarioActual.Empresa.CveEmpresa) Then Response.Redirect("./Contratos.aspx") Else ' Alert("Ocurrio un error al eliminar el contrato", TipoMensaje.MsgError) End If End Sub #End Region #Region " TERMINAR/CANCELAR CONTRATO " Protected Sub LBTerminarContrato_Click(sender As Object, e As EventArgs) Dim ObjContratos As New ClsContratos If ObjContratos.TerminarContrato(CveContrato, 2, UsuarioActual.CveEmpresa) > 0 Then Alert("El Contrato fue terminado Correctamente.", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) End If ObjContratos.Dispose() End Sub Protected Sub LBCancelarContrato_Click(sender As Object, e As EventArgs) Dim ObjContratos As New ClsContratos If ObjContratos.TerminarContrato(CveContrato, 3, UsuarioActual.CveEmpresa) > 0 Then 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 Protected Sub LBVigenteContrato_Click(sender As Object, e As EventArgs) Dim ObjContratos As New ClsContratos If ObjContratos.TerminarContrato(CveContrato, 1, UsuarioActual.CveEmpresa) > 0 Then 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 Region #Region " TABS " #Region " TAB: INFORMACION GENERAL" #Region "COMBOS - INFO GENERAL" Private Sub CargaProyecto() If UsuarioActual.Empresa.GralSoloProyecto Then CargaSubProyectoContrato(-1) trddlproyecto.Visible = False lblsubproyecto.Text = "Proyecto" Else DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa).FiltraParametros("", "", {"CveProyecto", "Proyecto"}) DdlProyecto.DataBind() End If End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero) End Sub Protected Sub CargaSubProyectoContrato(CveProyecto As Integer) DdlSubProyectoContrato.Items.Clear() DdlSubProyectoContrato.DataSource = GlobalDTSubProyectos(CveProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto2"}) DdlSubProyectoContrato.DataBind() DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione un Proyecto", "-1")) End Sub Private Sub CargaContratista() DdlContratista.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlContratista.DataBind() End Sub Private Sub CargaVendedores() DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataBind() 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.DataBind() DdlContratoPadre.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub CargaContratosEstatus() Dim ObjContratos As New ClsContratos ObjContratos.GetContratosEstatus(UsuarioActual.CveEmpresa) DdlEstatus.DataSource = ObjContratos.DtResultados DdlEstatus.DataBind() ObjContratos.Dispose() End Sub Protected Sub DdlCliente_SelectedIndexChanged(sender As Object, e As EventArgs) CargaSucursalCliente() CargaDireccionesEnvios(DdlCliente.SelectedValue.ToEntero) UPPDatos.Update() End Sub Private Sub CargaSucursalCliente() TrClienteSucursal.Visible = False Dim ObjCliente As New ClsClientes() If DdlCliente.SelectedValue.ToEntero > 0 Then If ObjCliente.GetSucursales(DdlCliente.SelectedValue.ToEntero) Then DdlSucursalCliente.DataSource = ObjCliente.DtResultados If ObjCliente.DtResultados.Rows.Count > 0 Then TrClienteSucursal.Visible = True End If DdlSucursalCliente.DataBind() DdlTipoContrato.Items.Insert(0, New ListItem("Matriz", "-1")) End If If UsuarioActual.Empresa.CvePlataforma = 3 Then ' QUITAR CargaCuentasEquipos() End If End If ObjCliente.Dispose() CargaContratoPadre() UpProyecto.Update() End Sub #End Region #Region " ARCHIVO " Private Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click DescargarArchivo() End Sub Private Sub DescargarArchivo() Dim File As New FileInfo(ViewState("FUrl").ToString) If File.Exists Then 'set appropriate headers Response.Clear() Response.ClearHeaders() Response.ClearContent() Response.AddHeader("Content-Disposition", "attachment; filename=" & TxtNumeroContrato.Text & ".pdf") Response.AddHeader("Content-Length", File.Length.ToString()) 'Response.ContentType = "text/plain" Response.ContentType = "application/octet-stream" Response.Flush() ' Response.TransmitFile(File.FullName) Response.WriteFile(File.FullName) Response.End() 'if file does not exist Alert("Descargado Correctamente.", TipoMensaje.MsgInformacion) Else Alert("Ocurrio un error al descargar el archivo", TipoMensaje.MsgAdvertencia, "window.close()") End If 'nothing in the URL as HTTP GET End Sub Protected Sub BtnGuardarArchivo_Click1(sender As Object, e As EventArgs) Handles BtnGuardarArchivo.Click Dim FileExtension As String = "-1" Dim Filesgral As List(Of Archivo) = Anexo.getfiles().Archivos Dim Filename As String = "" Dim folderContratosPath As String = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos") If Not Directory.Exists(folderContratosPath) Then Directory.CreateDirectory(folderContratosPath) End If If Not Directory.Exists(Path.Combine(folderContratosPath, "Temp")) Then Directory.CreateDirectory(Path.Combine(folderContratosPath, "Temp")) End If For Each fileItem As Archivo In Filesgral FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Session("FileExtension") = FileExtension Dim tempArray() As String tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) ViewState("extencion") = FileExtension ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", fileItem.filename) File.Move(fileItem.FileUrl, ViewState("FUrl").ToString) TxtArchivo.Text = tempArray(1) ' imgFileOk.Visible = True 'ImgArchivo.Src = "/imagenes/accept.png" Next UPAFUL.Update() RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1") A1.Visible = True If Not FileExtension = "-1" Then BtnDescargar.Visible = True End If 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) End Function Private Sub CargaClasificaciones() DdlClasificacionAdd.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) ' GlobalDTClasificacionesPresupuestos(UsuarioActual.CveEmpresa) DdlClasificacionAdd.DataBind() DdlClasificacionAdd.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlClasificacionAddInsumos.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) ' GlobalDTClasificacionesPresupuestos(UsuarioActual.CveEmpresa) DdlClasificacionAddInsumos.DataBind() DdlClasificacionAddInsumos.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlClasificacionInt.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) 'GlobalDTSubFamilias(UsuarioActual.CveEmpresa) DdlClasificacionInt.DataBind() DdlClasificacionInt.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub #Region " FUNCIONALIDAD 105 " Private Sub CargaPS() DdlProductows.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If Not DdlProductows.UsaWebService AndAlso CType(DdlProductows.DataSource, DataTable) Is Nothing Then DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlProductows.DataBind() Else DdlProductows.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionAdd.SelectedValue) End If ElProductoChange() End Sub Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductows.selectedindexchange ElProductoChange() End Sub Private Sub ElProductoChange() DdlUM.Items.Clear() DdlUM.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductows.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) DdlUM.DataBind() UpTitulos.Update() End Sub Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAdd.SelectedIndexChanged ChangeDdlProducto() End Sub Private Sub ChangeDdlProducto() If UsuarioActual.Empresa.Funcionalidad(105) = "" Then DdlProductows.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionAdd.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") DdlProductows.DataBind() DdlProductows.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) Else DdlProductows.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacionAdd.SelectedValue) DdlProductows.SelectedText = "Seleccione" DdlProductows.SelectedValue = "-1" End If End Sub Private Sub CargaPSInsumos() DdlProductowsInsumos.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If Not DdlProductowsInsumos.UsaWebService AndAlso CType(DdlProductowsInsumos.DataSource, DataTable) Is Nothing Then DdlProductowsInsumos.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlProductowsInsumos.DataBind() End If ElProductoChangeInsumos() End Sub Protected Sub DdlProductoInsumos_ValueChanged(sender As Object, e As EventArgs) Handles DdlProductowsInsumos.selectedindexchange ElProductoChangeInsumos() End Sub Private Sub ElProductoChangeInsumos() DdlUMInsumos.Items.Clear() DdlUMInsumos.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProductowsInsumos.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) DdlUMInsumos.DataBind() UpTitulos.Update() End Sub Protected Sub DdlClasificacionInsumos_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacionAddInsumos.SelectedIndexChanged ChangeDdlProductoInsumos() End Sub Private Sub ChangeDdlProductoInsumos() If UsuarioActual.Empresa.Funcionalidad(105) = "" Then 'Dim filtro As String = "" 'If Not (DdlClasificacionAddInsumos.SelectedValue = "-1") Then ' If isWhitFamily() Then ' filtro = String.Format("CveSubFamilia={0}", DdlClasificacionAddInsumos.SelectedValue) ' Else ' filtro = String.Format("CveClasificacion={0}", DdlClasificacionAddInsumos.SelectedValue) ' End If 'End If DdlProductowsInsumos.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacionAddInsumos.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") DdlProductowsInsumos.DataBind() DdlProductowsInsumos.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) Else 'If isWhitFamily() Then ' DdlProductowsInsumos.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacionAddInsumos.SelectedValue) 'Else DdlProductowsInsumos.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacionAddInsumos.SelectedValue) 'End If End If End Sub #End Region #End Region #Region " TAB PRESUPUESTOS VENTAS " Private Sub CargaGVPresupuestos(DtTemp As DataTable) Gv.DataSource = DtTemp DtPresupuestos = DtTemp Gv.DataBind() If CveTipoContrato = 25 Then Gv.Columns(0).Visible = False Gv.Columns(2).Visible = False Gv.Columns(3).Visible = False Gv.Columns(9).Visible = False End If 'If (Gv.Rows.Count > 0) Then ' Gv.UseAccessibleHeader = True ' Gv.HeaderRow.TableSection = TableRowSection.TableHeader ' RegistraScript("OrdenarGVPresupuestos();") 'End If UpGV.Update() End Sub Protected Sub BtnAutorizar_Click(sender As Object, e As EventArgs) Handles BtnAutorizar.Click Dim pinterno = TmpDT.SUM("Total", "CveTipoPresupuesto=1").ToString.ToDouble Dim pventas = TmpDT.SUM("Total", "CveTipoPresupuesto=2").ToString.ToDouble If (pinterno < pventas) Then Dim objContrato As New ClsContratos If objContrato.AutorizarContratos(CveContrato, UsuarioActual.CveUsuario) Then BtnAutorizar.Visible = False Autorizado = True Alert("Contrato Autorizado", TipoMensaje.MsgInformacion, String.Format("document.location.href=""/Contratos/Contrato.aspx?CveContrato={0}""", CveContrato)) End If objContrato.Dispose() Else Alert("el presupuesto de ventas debe ser mayor al presupuesto interno!", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub BtnAgregarDetalle_Click(sender As Object, e As EventArgs) Dim Row As DataRow = TmpDT.NewRow() Row("Cantidad") = TxtCantidad.Text.ToDouble.FormatoNumero Row("CantidadContratada") = TxtCantidad.Text.ToDouble.FormatoNumero Row("CveUM") = DdlUM.SelectedValue.ToEntero Row("UM") = DdlUM.SelectedItem Row("CveClasificacion") = DdlClasificacionAdd.SelectedValue Row("Clasificacion") = DdlClasificacionAdd.SelectedItem Row("CvePS") = DdlProductows.SelectedValue.ToEntero Row("PS") = DdlProductows.SelectedText Row("CodigoPS") = DdlProductows.SelectedText Row("PU") = TxtPU.Text.ToDouble.FormatoNumero Row("Total") = (TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble).FormatoNumero Row("CveTipoPresupuesto") = 2 Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim Row("OCInterna") = TxtOCInterna.Text.Trim Row("LimitarCantidad") = If(ChkLimitarVenta.Checked, 1, 0) Row("Observacion") = TxtObservacionesDetalles.Text Dim ObjContratos As New ClsContratos If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then If Autorizado Then Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) guardarBitacora(msj) End If Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") TmpDT.Rows.Add(Row) TmpDT.AcceptChanges() Dim TotalRow = Row("Total").ToString.ToDouble CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) UpGV.Update() TxtCantidad.Text = "" TxtOCInterna.Text = "" TxtNoIdentificacionv.Text = "" TxtObservacionesDetalles.Text = "" TxtPU.Text = "" DdlClasificacionAdd.SelectedValue = "-1" LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero LblImporte.Text = LbTotalGeneral.Text TxtCantidad.Focus() UpGral.Update() Else Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError) End If ObjContratos.Dispose() End Sub Private Sub CargaDatosPresup() Dim ContratosSecciones As New ClsContratos() If ContratosSecciones.GetContratosSecciones(-1, CveContrato, -1, -1, -1, UsuarioActual.CveEmpresa) Then 'If ContratosSecciones.GetContratosSecciones(-1, DdlEstatus.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlContrato.SelectedValue.ToEntero, -1, -1, FechaI, FechaF) Then DtDatos = ContratosSecciones.DtResultados ' DtDatos.Rows.RemoveAt(0) CargaGVPresupuestos(DtDatos) LblImporte.Text = "$" & DtDatos.MAX("Total").FormatoNumero() Else Gv.DataSource = Nothing End If ContratosSecciones.Dispose() UpGral.Update() End Sub #Region "GV PRESUPUESTOS" Protected Sub EstClick(sender As Object, e As System.EventArgs) 'Get the button that raised the event Dim btn As CheckBox = DirectCast(sender, CheckBox) Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow) Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero Dim objContrato As New ClsContratos If objContrato.UpdateContratosDetalleEstimacion(CveContratoDetalle, IIf(btn.Checked, 1, 0).ToString.ToEntero) Then Dim row = TmpDT.Select(String.Format("CveContratoDetalle={0}", CveContratoDetalle))(0) row("PermitirEstimacion") = IIf(btn.Checked, 1, 0).ToString.ToEntero Alert("Se ha permitido estimar", TipoMensaje.MsgInformacion) Else Alert("no se pudo permitir avance") End If objContrato.Dispose() End Sub Protected Sub AvaClick(sender As Object, e As System.EventArgs) 'Get the button that raised the event Dim btn As CheckBox = DirectCast(sender, CheckBox) Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow) Dim CveContratoDetalle As Integer = gvr.DataKey("CveContratoDetalle").ToString.ToEntero Dim objContrato As New ClsContratos If objContrato.UpdateContratosDetalleAvance(CveContratoDetalle, IIf(btn.Checked, 1, 0).ToString.ToEntero) Then Dim row = TmpDT.Select(String.Format("CveContratoDetalle={0}", CveContratoDetalle))(0) row("PermitirAvance") = IIf(btn.Checked, 1, 0).ToString.ToEntero CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) Alert("Se ha permitido levantar avance", TipoMensaje.MsgInformacion) Else Alert("no se pudo permitir avance", TipoMensaje.MsgAdvertencia) End If objContrato.Dispose() End Sub Protected Sub GV_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles Gv.RowDataBound If e.Row.RowIndex > -1 Then e.Row.FCCheckBox("CHKPAvance").Visible = Autorizado 'e.Row.FCCheckBox("CHKPEstimacion").Visible = Autorizado If UsuarioActual.TienePermisoProceso(124) Then e.Row.FCCheckBox("CHKPAvance").Enabled = True End If If e.Row.DBCampo("PermitirAvance").ToString = "1" Then e.Row.FCCheckBox("CHKPAvance").Checked = True ' If UsuarioActual.TienePermisoProceso(125) Then : e.Row.FCCheckBox("CHKPEstimacion").Enabled = True : End If End If If e.Row.DBCampo("PermitirEstimacion").ToString = "1" Then ' e.Row.FCCheckBox("CHKPEstimacion").Checked = True End If If Autorizado Then e.Row.FCLinkButton("imgE").Visible = False e.Row.FCLinkButton("imgD").Visible = False End If If CveTipoContrato = 25 Then e.Row.Cells(1).Width = Unit.Pixel(10) e.Row.Cells(6).Width = Unit.Pixel(250) End If End If If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then e.Row.FCDropDownList("DdlUMEdit").DataSource = GlobalDTProductosServiciosEquivalencias(e.Row.DataKey("CvePS").ToString.ToEntero, -1, UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlUMEdit").DataBind() e.Row.FCDropDownList("DdlUMEdit").SelectedValue = e.Row.DataKey("CveUM") End If End Sub Protected Sub GV_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles Gv.RowEditing Gv.EditIndex = e.NewEditIndex CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) End Sub Protected Sub Gv_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles Gv.RowUpdating Dim Cantidad, PU As Double : Dim CvePS, CveContratoDetalle, CveUM As Integer Dim NoIdentificacion As String = "" Dim OCInterna As String = "" Dim LimitarCantidad As Boolean Dim Observaciones As String = "" CveContratoDetalle = Gv.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero Cantidad = Gv.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble PU = Gv.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble CvePS = Gv.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero CveUM = Gv.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero NoIdentificacion = Gv.Rows(e.RowIndex).FCTextBox("TxtNoIdentificacion").Text.ToString OCInterna = Gv.Rows(e.RowIndex).FCTextBox("TxtOCInternaEdit").Text.ToString LimitarCantidad = Gv.Rows(e.RowIndex).FCCheckBox("ChkLimitarCantidad").Checked Observaciones = Gv.Rows(e.RowIndex).FCTextBox("TxtObservacion").Text.ToString Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) If row("CantidadContratada").ToString.ToEntero <> Cantidad OrElse row("PU").ToString.ToEntero <> PU OrElse CveUM <> row("CveUM").ToString.ToEntero OrElse row("NoIdentificacion").ToString <> NoIdentificacion OrElse row("OCInterna").ToString <> OCInterna Then Dim ObjContratos As New ClsContratos If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, LimitarCantidad, OCInterna, Observaciones) Then If Autorizado Then Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}", row("PS").ToString, row("Cantidad").ToString, row("PU").ToString, Cantidad, PU) guardarBitacora(msj) End If row("Cantidad") = Cantidad row("CantidadContratada") = Cantidad row("PU") = PU row("Total") = Cantidad * PU row("CveUM") = CveUM row("UM") = Gv.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text row("NoIdentificacion") = NoIdentificacion row("OCInterna") = OCInterna row("LimitarCantidad") = LimitarCantidad row("Observacion") = Observaciones TmpDT.AcceptChanges() Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion) Else Alert("Error al Actualizar Detalle", TipoMensaje.MsgError) End If ObjContratos.Dispose() Else Alert("Cambios realizados correctamente") End If Gv.EditIndex = -1 LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero LblImporte.Text = LbTotalGeneral.Text CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) End Sub Protected Sub GV_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles Gv.RowCancelingEdit Gv.EditIndex = -1 CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) End Sub Protected Sub GV_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles Gv.RowDeleting Dim ObjContratos As New ClsContratos Dim DbRow As DataRow = Nothing Dim CveContratoDetalle As Integer = Gv.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) If Autorizado Then Dim msj As String = String.Format("Se eliminaron {0} {1} producto {2} con el precio {3}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU")) guardarBitacora(msj) End If If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then TmpDT.Rows.Remove(DbRow) CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2")) LbTotalGeneral.Text = Gv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero Else Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjContratos.Dispose() End Sub Protected Sub GV_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles Gv.RowCommand If e.CommandName = "Sel" Then ' Seleccionado = e.CommandArgument.ToString Gv.SelectRow(e.CommandArgument.ToString.ToEntero - 1) End If End Sub #End Region #End Region #Region " TAB PRESUPUESTOS INSUMOS " Private Sub CargaGVPresupuestosInsumos(DtTemp As DataTable) GvInsumos.DataSource = DtTemp DtSuministros = DtTemp GvInsumos.DataBind() 'If (GvInsumos.Rows.Count > 0) Then ' GvInsumos.UseAccessibleHeader = True ' GvInsumos.HeaderRow.TableSection = TableRowSection.TableHeader ' RegistraScript("OrdenarGVPresupuestosInsumos();") 'End If UpGVInsumos.Update() End Sub Protected Sub BtnAgregarDetalleInsumos_Click(sender As Object, e As EventArgs) Dim Row As DataRow = TmpDT.NewRow() Row("Cantidad") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero Row("CantidadContratada") = TxtCantidadInsumos.Text.ToDouble.FormatoNumero Row("CveUM") = DdlUMInsumos.SelectedValue.ToEntero Row("UM") = DdlUMInsumos.SelectedItem Row("CveClasificacion") = DdlClasificacionAddInsumos.SelectedValue Row("Clasificacion") = DdlClasificacionAddInsumos.SelectedItem Row("CvePS") = DdlProductowsInsumos.SelectedValue.ToEntero Row("PS") = DdlProductowsInsumos.SelectedText Row("CodigoPS") = DdlProductowsInsumos.SelectedText Row("PU") = TxtPUInsumos.Text.ToDouble.FormatoNumero Row("Total") = (TxtCantidadInsumos.Text.ToDouble * TxtPUInsumos.Text.ToDouble).FormatoNumero Row("CveTipoPresupuesto") = 1 Row("NoIdentificacion") = TxtNoIdentificacionvInsumos.Text.Trim Row("LimitarCantidad") = If(ChkLimitar.Checked, 1, 0) Dim ObjContratos As New ClsContratos If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), "") Then If Autorizado Then Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) guardarBitacora(msj) End If Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") TmpDT.Rows.Add(Row) Dim TotalRow = Row("Total").ToString.ToDouble CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) UpGVInsumos.Update() TxtCantidadInsumos.Text = "" TxtPUInsumos.Text = "" DdlClasificacionAddInsumos.SelectedValue = "-1" LbTotalGeneralInsumos.Text = (LbTotalGeneralInsumos.Text.ToDouble + TotalRow).ToString.FormatoNumero 'LblImporte.Text = LbTotalGeneral.Text TxtCantidadInsumos.Focus() UpGral.Update() Else Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError) End If ObjContratos.Dispose() 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 e.Row.FCCheckBox("CHKPAvance").Visible = Autorizado 'e.Row.FCCheckBox("CHKPEstimacion").Visible = Autorizado If UsuarioActual.TienePermisoProceso(124) Then e.Row.FCCheckBox("CHKPAvance").Enabled = True End If If e.Row.DBCampo("PermitirAvance").ToString = "1" Then e.Row.FCCheckBox("CHKPAvance").Checked = True ' If UsuarioActual.TienePermisoProceso(125) Then : e.Row.FCCheckBox("CHKPEstimacion").Enabled = True : End If End If If e.Row.DBCampo("PermitirEstimacion").ToString = "1" Then ' e.Row.FCCheckBox("CHKPEstimacion").Checked = True End If If Autorizado Then e.Row.FCLinkButton("imgE").Visible = False e.Row.FCLinkButton("imgD").Visible = False End If End If If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then e.Row.FCDropDownList("DdlUMEdit").DataSource = GlobalDTProductosServiciosEquivalencias(e.Row.DataKey("CvePS").ToString.ToEntero, -1, UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlUMEdit").DataBind() e.Row.FCDropDownList("DdlUMEdit").SelectedValue = e.Row.DataKey("CveUM") End If End Sub Protected Sub GVInsumos_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvInsumos.RowEditing GvInsumos.EditIndex = e.NewEditIndex CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) End Sub Protected Sub GvInsumos_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvInsumos.RowUpdating Dim Cantidad, PU As Double Dim CvePS, CveContratoDetalle, CveUM As Integer Dim NoIdentificacion As String = "" Dim LimitarCantidad As Boolean CveContratoDetalle = GvInsumos.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero Cantidad = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble PU = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble CvePS = GvInsumos.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero CveUM = GvInsumos.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero NoIdentificacion = GvInsumos.Rows(e.RowIndex).FCTextBox("TxtNoIdentificacion").Text.ToString LimitarCantidad = GvInsumos.Rows(e.RowIndex).FCCheckBox("ChkLimitarCantidad").Checked Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) If row("Cantidad").ToString.ToEntero <> Cantidad OrElse row("PU").ToString.ToEntero <> PU OrElse CveUM <> row("CveUM").ToString.ToEntero OrElse row("NoIdentificacion").ToString <> NoIdentificacion OrElse (row("LimitarCantidad").ToString = "True") <> LimitarCantidad Then Dim ObjContratos As New ClsContratos If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, NoIdentificacion, LimitarCantidad, "") Then If Autorizado Then Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}", row("PS").ToString, row("Cantidad").ToString, row("PU").ToString, Cantidad, PU) guardarBitacora(msj) End If row("Cantidad") = Cantidad row("CantidadContratada") = Cantidad row("PU") = PU row("Total") = Cantidad * PU row("CveUM") = CveUM row("UM") = GvInsumos.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text row("NoIdentificacion") = NoIdentificacion row("LimitarCantidad") = LimitarCantidad TmpDT.AcceptChanges() Alert("Cambios realizados correctamente.", TipoMensaje.MsgInformacion) Else Alert("Error al Actualizar Detalle", TipoMensaje.MsgError) End If ObjContratos.Dispose() Else Alert("Cambios realizados correctamente") End If GvInsumos.EditIndex = -1 LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero 'LblImporte.Text = LbTotalGeneral.Text CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) End Sub Protected Sub GVInsumos_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvInsumos.RowCancelingEdit GvInsumos.EditIndex = -1 CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) End Sub Protected Sub GVInsumos_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvInsumos.RowDeleting Dim ObjContratos As New ClsContratos Dim DbRow As DataRow = Nothing Dim CveContratoDetalle As Integer = GvInsumos.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) If Autorizado Then Dim msj As String = String.Format("Se eliminaron {0} {1} producto {2} con el precio {3}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU")) guardarBitacora(msj) End If If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then TmpDT.Rows.Remove(DbRow) CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1")) LbTotalGeneralInsumos.Text = GvInsumos.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLiteral("LtTotal").Text.ToDouble).ToString.FormatoNumero Else Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjContratos.Dispose() End Sub Protected Sub GVInsumos_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInsumos.RowCommand If e.CommandName = "Sel" Then ' Seleccionado = e.CommandArgument.ToString GvInsumos.SelectRow(e.CommandArgument.ToString.ToEntero - 1) End If 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 Row("CveUM") = DdlUMInt.SelectedValue.ToEntero Row("UM") = DdlUMInt.SelectedItem Row("CveClasificacion") = DdlClasificacionInt.SelectedValue Row("Clasificacion") = DdlClasificacionInt.SelectedItem Row("CvePS") = HFProductoInt.Value Row("PS") = HFTProductoInt.Value Row("PU") = TxtPUInt.Text.ToDouble.FormatoNumero Row("Total") = (TxtCantidadInt.Text.ToDouble * TxtPUInt.Text.ToDouble).FormatoNumero Row("CveTipoPresupuesto") = 1 Row("NoIdentificacion") = TxtNoIdentificacionv.Text.Trim Row("LimitarCantidad") = ChkLimitar.Checked Dim ObjContratos As New ClsContratos If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Row("LimitarCantidad").ToString.ToEntero = 1, "") Then If Autorizado Then Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU")) guardarBitacora(msj) End If Row("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") TmpDT.Rows.Add(Row) Dim TotalRow = Row("Total").ToString.ToDouble GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") GvInt.DataBind() HFProductoInt.Value = "" HFTProductoInt.Value = "" TxtCantidadInt.Text = "" TxtPUInt.Text = "" DdlClasificacionInt.SelectedValue = "-1" LbTotalGeneralInt.Text = (LbTotalGeneralInt.Text.ToDouble + TotalRow).ToString.FormatoNumero TxtCantidad.Focus() UPGVInt.Update() Else 'Alert("No se pudo agregar el detalle") End If ObjContratos.Dispose() 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") GvInt.DataBind() UPGVInt.Update() End Sub Protected Sub GvInt_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvInt.RowUpdating Dim Cantidad, PU As Double : Dim CvePS, CveContratoDetalle, CveUM As Integer CveContratoDetalle = GvInt.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero Dim NoIdentificacion As String = "" Dim LimitarCantidad As Boolean 'Row("NoIdentificacion") = txtNoIdentificacion.Text.Trim Cantidad = GvInt.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.Trim.ToDouble PU = GvInt.Rows(e.RowIndex).FCTextBox("TxtPU").Text.Trim.ToDouble LimitarCantidad = False CvePS = GvInt.Rows(e.RowIndex).DataKey("CvePS").ToString.ToEntero CveUM = GvInt.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedValue.ToEntero 'NoIdentificacion = GvInt.Rows(e.RowIndex).FCDropDownList("NoIdentificacion").ToString Dim row = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) Dim c1 = row("Cantidad").ToString.ToEntero Dim p1 = row("PU").ToString.ToEntero Dim cvum1 = row("CveUM").ToString.ToEntero If c1 <> Cantidad OrElse p1 <> PU OrElse CveUM <> cvum1 Then Dim ObjContratos As New ClsContratos If ObjContratos.UpdateContratosDetalle(CveContratoDetalle, CveContrato, CvePS, Cantidad, PU, UsuarioActual.CveUsuario, Nothing, LimitarCantidad, "") Then If Autorizado Then Dim msj As String = String.Format("Se realizaron los siguientes cambios, el Presupuesto Interno se modificó: {1} {0} {2:C2} a {3} {0} {4:C2}", row("PS").ToString, row("Cantidad"), row("PU").ToString, Cantidad, PU) guardarBitacora(msj) End If row("Cantidad") = Cantidad row("PU") = PU row("Total") = Cantidad * PU row("CveUM") = CveUM row("UM") = GvInt.Rows(e.RowIndex).FCDropDownList("DdlUMEdit").SelectedItem.Text Else End If ObjContratos.Dispose() Else Alert("No realizaste ningun Cambio") End If GvInt.EditIndex = -1 GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") GvInt.DataBind() LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero End Sub Protected Sub GVInt_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvInt.RowCancelingEdit GvInt.EditIndex = -1 GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") GvInt.DataBind() UPGVInt.Update() End Sub Protected Sub GVInt_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvInt.RowDeleting Dim ObjContratos As New ClsContratos Dim DbRow As DataRow = Nothing Dim CveContratoDetalle As Integer = GvInt.Rows(e.RowIndex).DataKey("CveContratoDetalle").ToString.ToEntero If ObjContratos.RemoveContratosDetalle(CveContratoDetalle, CveContrato) Then DbRow = TmpDT.Select(String.Format(" CveContratoDetalle={0}", CveContratoDetalle))(0) If Autorizado Then Dim msj As String = String.Format("Se eliminaron {0} {1} {2} con el precio {3:C2}", DbRow("Cantidad"), DbRow("UM"), DbRow("PS"), DbRow("PU")) guardarBitacora(msj) End If TmpDT.Rows.Remove(DbRow) GvInt.DataSource = TmpDT.FiltraParametros("CveTipoPresupuesto=1") GvInt.DataBind() UPGVInt.Update() LbTotalGeneralInt.Text = GvInt.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.FCLabel("LtTotal").Text.ToDouble).ToString.FormatoNumero Else Alert("Ocurrió un error al eliminar el detalle (Producto/Servicio). Por favor vuelva a intentar", TipoMensaje.MsgAdvertencia) End If ObjContratos.Dispose() End Sub Protected Sub GVInt_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvInt.RowCommand If e.CommandName = "Sel" Then ' Seleccionado = e.CommandArgument.ToString GvInt.SelectRow(e.CommandArgument.ToString.ToEntero - 1) End If End Sub #End Region #End Region #End Region #Region " TAB: REPORTE AVANCES " Private Sub CargaDatosAvance() If CveContrato <= 0 Then Exit Sub End If TabReporteAvance.Visible = True lbImprimirAvance.Visible = True Dim Modalidad = IfNull(Request("Tipo"), 1, 2) If Modalidad.ToString.ToEntero = 2 Then Tab.ActiveTabIndex = 2 End If Dim ObjContratos As New ClsContratos If ObjContratos.GetReporteContratosAvancesDetalleCP(CveContrato, UsuarioActual.CveEmpresa) Then GvDatosAvance.DataSource = ObjContratos.DtResultados SumaAvance = ObjContratos.DtResultados.SUM("AvanceImporte", "CveClasificacion IS NULL") SumaUtilidad = ObjContratos.DtResultados.SUM("AvanceUtilidad", "CveClasificacion IS NULL") DtAvance = ObjContratos.DtResultados Else Alert("Ocurrió un Error al obtener el Reporte de Avances. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjContratos.Dispose() GvDatosAvance.DataBind() If (GvDatosAvance.Rows.Count > 0) Then GvDatosAvance.UseAccessibleHeader = True GvDatosAvance.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGV();") End If UpGral.Update() End Sub Protected Sub GvDatosAvance_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosAvance.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("CveClasificacion").ToString.ToEntero = 0 Then e.Row.CssClass = "Totales white" ElseIf e.Row.DBCampo("CvePS").ToString.ToEntero = 0 Then e.Row.CssClass = "SubTotales" End If Dim Liga1 = $"{e.Row.DBCampo("CveClasificacion").ToEntero}|{e.Row.DBCampo("Clasificacion")}|{e.Row.DBCampo("CvePS").ToEntero}|{e.Row.DBCampo("CodigoPS")}|1" e.Row.FCLinkButton("LBAvanceCantidad").CommandArgument = Liga1 e.Row.FCLinkButton("LBAvanceImporte").CommandArgument = Liga1 Dim Liga2 = $"{e.Row.DBCampo("CveClasificacion").ToEntero}|{e.Row.DBCampo("Clasificacion")}|{e.Row.DBCampo("CvePS").ToEntero}|{e.Row.DBCampo("CodigoPS")}|2" e.Row.FCLinkButton("LBAvanceXFacturarCantidad").CommandArgument = Liga2 e.Row.FCLinkButton("LBAvanceXFacturarImporte").CommandArgument = Liga2 End If End Sub Protected Sub MuestaModalVentasAvance(sender As Object, e As EventArgs) Dim Btn = CType(sender, LinkButton) Dim Parametros = Btn.CommandArgument.Split("|"c) Dim ObjContratos As New ClsContratos If ObjContratos.GetVentasAvance(CveContrato, If(Parametros(0).ToEntero > 0, Parametros(0).ToEntero, -1), If(Parametros(2).ToEntero > 0, Parametros(2).ToEntero, -1), If(Parametros(4).ToEntero > 0, Parametros(4).ToEntero, -1)) Then GvDatosVentasAvance.DataSource = ObjContratos.DtResultados RegistraScript("$('#ModalVentasAvance').modal('show');RecargaAvances = true;") Else Alert("Ocurrió un error al obtener el Listado de Ventas/Remisiones de Avance. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjContratos.Dispose() GvDatosVentasAvance.DataBind() LbTituloModalVentasAvance.Text = If(Parametros(4).ToEntero = 1, "Ventas de Avance", "Remisiones de Avance") LbClasificacionVentasAvance.Text = Parametros(1) LbPSVentasAvance.Text = If(Parametros(2).ToEntero > 0, Parametros(3), "") UpVentasAvance.Update() End Sub #End Region #Region " TAB: REPORTE AVANCES POR DOCUMENTO " Protected Sub RBLTipoDocto_SelectedIndexChanged(sender As Object, e As EventArgs) CargaDatosAvancePorDocumento() End Sub Private Sub CargaDatosAvancePorDocumento() If CveContrato <= 0 Then Exit Sub End If Dim ObjContratos As New ClsContratos If ObjContratos.GetContratosAvancePorDocumento(CveContrato, RBLTipoDocto.SelectedValue, UsuarioActual.CveEmpresa) Then GVAvanceXDocumento.DataSource = ObjContratos.DtResultados DtAvanceDocumento = ObjContratos.DtResultados If DtAvanceDocumento.Rows.Count > 0 Then LBImprimir.Visible = True End If LBImprimirInformacionG.Visible = True Else Alert("Ocurrió un error al obtener el Reporte de Avances por Documento. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjContratos.Dispose() GVAvanceXDocumento.DataBind() If (GVAvanceXDocumento.Rows.Count > 0) Then GVAvanceXDocumento.UseAccessibleHeader = True GVAvanceXDocumento.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGVPorDocumento();") End If UpGral.Update() End Sub Private Sub GVAvanceXDocumento_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVAvanceXDocumento.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If Not e.Row.DBCampo("CveVenta").ToEntero > 0 Then e.Row.Cells(2).Text = "TOTAL: " e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(0).Text = e.Row.DBCampo("Cantidad").FormatoNumero(0) e.Row.CssClass = "Totales" End If End If 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) Dim Mail As New ClsSisMail() Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body) End Sub Protected Sub EnvioCorreo(Dr As DataRow) Dim Body As String = GeneraCorreoContratoGasto(Dr) Dim Asunto As String = $"Se agrego un gasto en el {LtlTitulo.Text}" Dim Correo As String = "" If UsuarioActual.CveEmpresa = 72 Then Correo = "anamartinez@compuproveedores.com;benjamincarrillo@compuproveedores.com" Else Correo = "signotificaciones@adssistemas.mx" End If Try Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Correo, Asunto, Body)) Hilo.Start() Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) End Try End Sub Public Function GeneraCorreoContratoGasto(Dr As DataRow) As String Dim strBody As New StringBuilder strBody.Append(" ") strBody.Append("
") strBody.Append(" ") strBody.Append(" ") strBody.Append(" ") strBody.Append("