Option Explicit On Option Strict On Imports Extensiones Imports System.Data Partial Class AF_ValesCombustible Inherits ClsPaginas #Region "PROPIEDADES" Private ReadOnly Property EstablecioFolio As Boolean Get Return CBool(ViewState("EstablecioFolio")) End Get End Property #End Region Private Sub AF_ValesCombustible_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CargarCombos() CargaFolios() TxtFechaVale.Text = NowADS().ToShortDateString BtnActualizar.Visible = False 'BtnAplicar.Visible = False End If End Sub #Region "C A R G A C O M B O S & L I M P I A D A T O S" Private Sub CargarCombos() DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() DdlProveedores.Items.Insert(0, New ListItem("Sin Asignar", "-1")) DdlActivoFijo.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa) DdlActivoFijo.DataBind() DdlActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlRHPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlRHPersonal.DataBind() DdlRHPersonal.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) 'If UsuarioActual.Empresa.GralSoloProyecto Then ' LtlSubProyecto.Text = "Proyecto" ' DdlSubProyecto.Items.Clear() ' DdlSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) ' DdlSubProyecto.DataBind() ' DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) ' DivProyecto.Visible = False ' 'DdlProyecto.Items(0).Text = "" 'Else DivProyecto.Visible = True DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.CveEmpresa) DdlProyecto.DataBind() DdlProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) 'End If DdlCombustible.DataSource = GlobalDTCombustibles(UsuarioActual.CveEmpresa) DdlCombustible.DataBind() DdlCombustible.Items.Insert(0, New ListItem("Seleccione", "-1")) 'DdProveedorVinculacion.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) 'DdProveedorVinculacion.DataBind() 'DdProveedorVinculacion.Items.Insert(0, New ListItem("Seleccione un Proveedor", "-1")) DdlBuscarProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlBuscarProveedor.DataBind() DdlBuscarProveedor.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlBuscarPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlBuscarPersonal.DataBind() DdlBuscarPersonal.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlBuscarActivo.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa) DdlBuscarActivo.DataBind() DdlBuscarActivo.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacen.DataBind() DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub CargaFolios() Dim ObjFolios As New ClsGralFolios() Dim TipoOC As String = "VaG" If ObjFolios.GetFolios(If(TipoOC = "VAG", "vag", TipoOC), UsuarioActual.CveEmpresa) Then Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("Estado = 'Activo'") 'Verificar primero en la sucursal del usuario If DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows.Count > 0 Then ViewState("CveFolio") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("CveFolio").ToString.ToEntero ViewState("FolioActual") = DT.FiltraParametros("CveSubProyecto = " + UsuarioActual.CveSubProyecto.ToString).Rows(0)("FActual").ToString TxtFolio.Text = DT.Rows(0)("FActual").ToString ElseIf DT.Rows.Count > 0 Then ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero ViewState("FolioActual") = DT.Rows(0)("FActual").ToString TxtFolio.Text = DT.Rows(0)("FActual").ToString Else Alert("No tiene registrados Folios en esta sucursal.", TipoMensaje.MsgAdvertencia) End If DT.Dispose() End If ObjFolios.Dispose() End Sub Private Sub LimpiarDatos() DdlProveedores.SelectedIndex = -1 DdlActivoFijo.SelectedIndex = -1 TxtOdometroActual.Text = "" DdlCombustible.SelectedIndex = -1 TxtLitros.Text = "" DdlRHPersonal.SelectedIndex = -1 DdlSubProyecto.SelectedIndex = -1 DdlProyecto.SelectedIndex = -1 DdlAlmacen.SelectedIndex = -1 ChkExterno.Checked = False ChkInterno.Checked = False TxtObservciones.Text = "" LblFecha.Text = "" LblLitrosAF.Text = "" LblCombustible.Text = "" LblOdometro.Text = "" LbPersonal.Text = "" TxtNombreRecibe.Text = "" UpParametros.Update() UpConsumo.Update() CargaFolios() End Sub #End Region #Region "DDL CHANGED & CHK CHANGED & TXT CHANGUED" Private Sub DdlActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlActivoFijo.SelectedIndexChanged Dim ObjValesCombustible As New ClsAF If ObjValesCombustible.GetValesCombustible(-1, -1, -1, -1, DdlActivoFijo.SelectedValue.ToEntero, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1) Then Dim dtAF As DataTable = ObjValesCombustible.DtResultados.FiltraParametros("", Orderby:="CveVale DESC") If dtAF.Rows.Count > 0 Then Dim dr As DataRow = dtAF.Rows(0) LblFecha.Text = dr("Fecha").ToString LblLitrosAF.Text = dr("Litros").ToString LblCombustible.Text = dr("Combustible").ToString LblOdometro.Text = dr("Odometro").ToString If dr("CvePersonal").ToString.ToEntero > 0 Then LbPersonal.Text = String.Format("{0}, {1}", dr("NombreCompleto").ToString, dr("Recibe").ToString) Else LbPersonal.Text = dr("NombreCompleto").ToString End If Else LblFecha.Text = "" LblLitrosAF.Text = "" LblCombustible.Text = "" LblOdometro.Text = "" LbPersonal.Text = "" UpConsumo.Update() End If End If ObjValesCombustible.Dispose() End Sub 'Private Sub DdProveedorVinculacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdProveedorVinculacion.SelectedIndexChanged ' Dim ObjValesCombustible As New ClsAF ' If ObjValesCombustible.GetValesCombustible(0, -1, -1, DdProveedorVinculacion.SelectedValue.ToEntero, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1) Then ' GvValesCombustible.DataSource = ObjValesCombustible.DtResultados ' BtnAplicar.Visible = True ' Else ' GvValesCombustible.DataSource = Nothing ' BtnAplicar.Visible = False ' End If ' ObjValesCombustible.Dispose() ' GvValesCombustible.DataBind() 'End Sub 'Private Sub BtnAplicar_Click(sender As Object, e As EventArgs) Handles BtnAplicar.Click ' Dim ObjValesCombustible As New ClsAF ' Dim CveCompra As Integer = 2 ' For Each gvr As GridViewRow In GvValesCombustible.Rows ' If gvr.RowType = DataControlRowType.DataRow Then ' If gvr.FCCheckBox("Chk").Checked Then ' ObjValesCombustible.UpdateValeCombustible(gvr.DataKey("CveVale").ToEntero, CveCompra, gvr.DataKey("CveProveedor").ToEntero, gvr.DataKey("Litros").ToEntero, gvr.DataKey("Recibo").ToEntero, gvr.DataKey("Importe").ToEntero, UsuarioActual.CveEmpresa) ' End If ' End If ' Next ' Alert("Se Aplico con exito") ' ObjValesCombustible.Dispose() 'End Sub Private Sub TxtFolio_TextChanged(sender As Object, e As EventArgs) Handles TxtFolio.TextChanged ViewState("EstablecioFolio") = True End Sub Private Sub ChkInterno_CheckedChanged(sender As Object, e As EventArgs) Handles ChkInterno.CheckedChanged 'Valida Si es interno o externo If ChkInterno.Checked = True Then DivProveedor.Visible = False DivAlmacen.Visible = True ChkExterno.Checked = False Else DivProveedor.Visible = True DivAlmacen.Visible = False ChkExterno.Checked = True End If End Sub Private Sub ChkExterno_CheckedChanged(sender As Object, e As EventArgs) Handles ChkExterno.CheckedChanged 'Valida Si es interno o externo If ChkExterno.Checked = True Then DivProveedor.Visible = True DivAlmacen.Visible = False ChkInterno.Checked = False Else ChkInterno.Checked = True DivProveedor.Visible = False DivAlmacen.Visible = True End If End Sub #End Region #Region "ROW DATA BOUND" Private Sub GVBuscar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVBuscar.RowDataBound For Each gvr As GridViewRow In GVBuscar.Rows If gvr.RowType = DataControlRowType.DataRow Then If gvr.FCLiteral("LtlProveedor").Text.Equals("") Then gvr.FCLiteral("LtlProveedor").Visible = False gvr.FCDropDownList("DdlBuscarP").DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) gvr.FCDropDownList("DdlBuscarP").DataBind() gvr.FCDropDownList("DdlBuscarP").Items.Insert(0, New ListItem("Sin Asignar", "-1")) Else gvr.FCDropDownList("DdlBuscarP").Visible = False End If End If Next End Sub #End Region #Region "BTN GUARDAR, ACTUALIZAR, BUSCAR, ETC...." Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click Dim ObjVales As New ClsAF Dim ObjInventario As New ClsInventarios(ObjVales.IniciaTransacSQL()) Dim CveVale As Integer Dim Folio As Integer Dim Msg As New StringBuilder Dim CapacidadTotal As Integer = 40 Dim Rendimiento As Integer = 10 Dim ProximaRecarga As Integer = LblOdometro.Text.ToEntero + (LblLitrosAF.Text.ToEntero * Rendimiento) Dim OdometroDif As Integer = TxtOdometroActual.Text.ToEntero - LblOdometro.Text.ToEntero Dim Porcentaje As Double = (OdometroDif / Rendimiento) * 0.15 Dim CveMovimientoSalida = -1 Dim FolioSalida = -1 Dim ErrorMovInv As Boolean = False Dim TextoError = "" Dim Row = GlobalDTCombustibles(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCombustible = {0}", DdlCombustible.SelectedValue.ToEntero)) Dim CvePS = Row("CvePS").ToString.ToEntero Dim CveUM = Row("CveUM").ToString.ToEntero 'TipoVale 1 = Externo 'TipoVale 2 = Interno ''codigo temporal, que desactiva la validacion del odometro If UsuarioActual.CveEmpresa = 13 Then ProximaRecarga = TxtOdometroActual.Text.ToEntero 'Si edito Folio Dim FolioUsuario = If(EstablecioFolio, TxtFolio.Text.Trim.ToEntero, -1) 'Si el odometro actual es menor a la proxima recarga If TxtOdometroActual.Text.ToEntero < ProximaRecarga Then If TxtOdometroActual.Text.ToEntero > LblOdometro.Text.ToEntero Then If TxtLitros.Text.ToEntero <= ((OdometroDif / Rendimiento) + Porcentaje) Then 'Si TipoVale es 1 = Externo If ChkExterno.Checked = True Then CveVale = ObjVales.AddValesCombustible(FolioUsuario, 0, DdlProveedores.SelectedValue.ToEntero, DdlActivoFijo.SelectedValue.ToEntero, DdlRHPersonal.SelectedValue.ToEntero, TxtFechaVale.Text.ToDate, TxtNombreRecibe.Text, DdlSubProyecto.SelectedValue.ToEntero, TxtObservciones.Text, TxtOdometroActual.Text.ToEntero, DdlCombustible.SelectedValue.ToEntero, TxtLitros.Text.ToDouble, 1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Folio = ObjVales.FolioVale If CveVale < 0 Then ErrorMovInv = True End If ElseIf ChkInterno.Checked = True Then CveVale = ObjVales.AddValesCombustible(FolioUsuario, 0, DdlProveedores.SelectedValue.ToEntero, DdlActivoFijo.SelectedValue.ToEntero, DdlRHPersonal.SelectedValue.ToEntero, TxtFechaVale.Text.ToDate, TxtNombreRecibe.Text, DdlSubProyecto.SelectedValue.ToEntero, TxtObservciones.Text, TxtOdometroActual.Text.ToEntero, DdlCombustible.SelectedValue.ToEntero, TxtLitros.Text.ToDouble, 2, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Folio = ObjVales.FolioVale 'AGREGAMOS LA SALIDA CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 3, 1, TxtFechaVale.Text.Trim.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1) FolioSalida = ObjInventario.Folio If CveMovimientoSalida <= 0 Then TextoError = "No se pudo generar el movimiento de salida correctamente" ErrorMovInv = True Else If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, TxtLitros.Text.Trim.ToEntero, CveUM, CvePS, -1, DdlActivoFijo.SelectedValue.ToEntero) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos" End If End If Else Alert("Debe Seleccionar un Tipo de Vale", TipoMensaje.MsgError) End If Else Alert("No se puede registrar una cantidad de litros mayor a " + ((OdometroDif / Rendimiento) + Porcentaje).ToString, TipoMensaje.MsgAdvertencia) End If Else Alert("El odómetro debe ser mayor a " + LblOdometro.Text, TipoMensaje.MsgAdvertencia) End If 'Si el odometro es mayor a la proxima recarga Else 'Si TipoVale es 1 = Externo If ChkExterno.Checked = True Then CveVale = ObjVales.AddValesCombustible(FolioUsuario, 0, DdlProveedores.SelectedValue.ToEntero, DdlActivoFijo.SelectedValue.ToEntero, DdlRHPersonal.SelectedValue.ToEntero, TxtFechaVale.Text.ToDate, TxtNombreRecibe.Text, DdlSubProyecto.SelectedValue.ToEntero, TxtObservciones.Text, TxtOdometroActual.Text.ToEntero, DdlCombustible.SelectedValue.ToEntero, TxtLitros.Text.ToEntero, 1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Folio = ObjVales.FolioVale If CveVale < 0 Then ErrorMovInv = True End If 'Si TipoVale es 2 = Interno ElseIf ChkInterno.Checked = True Then CveVale = ObjVales.AddValesCombustible(FolioUsuario, 0, DdlProveedores.SelectedValue.ToEntero, DdlActivoFijo.SelectedValue.ToEntero, DdlRHPersonal.SelectedValue.ToEntero, TxtFechaVale.Text.ToDate, TxtNombreRecibe.Text, DdlSubProyecto.SelectedValue.ToEntero, TxtObservciones.Text, TxtOdometroActual.Text.ToEntero, DdlCombustible.SelectedValue.ToEntero, TxtLitros.Text.ToDouble, 2, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Folio = ObjVales.FolioVale 'AGREGAMOS LA SALIDA CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 3, 1, TxtFechaVale.Text.Trim.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1) FolioSalida = ObjInventario.Folio If CveMovimientoSalida <= 0 Then TextoError = "No se pudo generar el movimiento de salida correctamente" ErrorMovInv = True Else If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, TxtLitros.Text.Trim.ToEntero, CveUM, CvePS, -1, DdlActivoFijo.SelectedValue.ToEntero) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos" End If End If Else Alert("Debe Seleccionar un Tipo de Vale", TipoMensaje.MsgError) End If End If If Not ErrorMovInv Then ObjVales.Commit() Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", Folio) Msg.AppendFormat("

Imprimir Vale ", Encripta(String.Format("OP=VAL&CveVale={0}", CveVale))) If ChkInterno.Checked = True Then Msg.AppendFormat("

Folio de Salida: {1}", CveMovimientoSalida, FolioSalida) End If Alert(Msg.ToString, TipoMensaje.MsgInformacion) Else ObjVales.RollBack() Alert(TextoError, TipoMensaje.MsgError) End If ObjVales.Dispose() LimpiarDatos() End Sub Private Sub BtnActualizar_Click(sender As Object, e As EventArgs) Handles BtnActualizar.Click Dim ObjValesCombustible As New ClsAF For Each gvr As GridViewRow In GVBuscar.Rows If gvr.RowType = DataControlRowType.DataRow Then If gvr.FCCheckBox("Chk").Checked Then Dim CveProveedor = If(gvr.FCDropDownList("DdlBuscarP").Visible, gvr.FCDropDownList("DdlBuscarP").SelectedValue.ToEntero, gvr.FCLiteral("LtlProveedor").Text.ToEntero) ObjValesCombustible.UpdateValeCombustible(gvr.DataKey("CveVale").ToEntero, gvr.DataKey("CveCompra").ToEntero, CveProveedor, gvr.FCTextBox("TxtNombreRecibe").Text, gvr.FCTextBox("TxtCantidad").Text.ToDouble, gvr.FCTextBox("TxtRecibo").Text.ToEntero, gvr.FCTextBox("TxtImporte").Text.ToEntero, UsuarioActual.CveEmpresa) Alert("Se Actualizo con exito") ActualizarM() Else Alert("Seleccione una opcion") End If End If Next ObjValesCombustible.Dispose() End Sub Private Sub BtnBuscar_Click(sender As Object, e As EventArgs) Handles BtnBuscar.Click Dim ObjValesCombustible As New ClsAF If ObjValesCombustible.GetValesCombustible(-1, -1, If(TxtBuscar.Text.Equals(""), -1, TxtBuscar.Text.ToEntero), DdlBuscarProveedor.SelectedValue.ToEntero, DdlBuscarActivo.SelectedValue.ToEntero, -1, -1, -1, -1, DdlBuscarPersonal.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1) Then GVBuscar.DataSource = ObjValesCombustible.DtResultados If ObjValesCombustible.DtResultados.Rows.Count > 0 Then BtnActualizar.Visible = True End If Else GVBuscar.DataSource = Nothing BtnActualizar.Visible = False End If ObjValesCombustible.Dispose() GVBuscar.DataBind() UpBuscar.Update() End Sub Private Sub ActualizarM() Dim ObjValesCombustible As New ClsAF If ObjValesCombustible.GetValesCombustible(-1, -1, If(TxtBuscar.Text.Equals(""), -1, TxtBuscar.Text.ToEntero), DdlBuscarProveedor.SelectedValue.ToEntero, DdlBuscarActivo.SelectedValue.ToEntero, -1, -1, -1, -1, DdlBuscarPersonal.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1) Then GVBuscar.DataSource = ObjValesCombustible.DtResultados Else GVBuscar.DataSource = Nothing End If ObjValesCombustible.Dispose() GVBuscar.DataBind() UpBuscar.Update() End Sub #End Region End Class