From 8a3e3d232f362c4b91fc993622cd1bef0025b070 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Mon, 23 Sep 2024 07:24:00 -0700 Subject: [PATCH] CalculoSBC --- App_Code/ClsRH.vb | 7 +- App_Code/ClsTransportes.vb | 19 +++ Imagenes/autobus.png | Bin 0 -> 17005 bytes Imagenes/sprinter.png | Bin 0 -> 25394 bytes Nomina/Nomina.aspx.cs | 1 - RH/CalculoSBC.aspx.cs | 7 +- RH/Personal.aspx.vb | 6 +- VIA/TripsChecks.aspx | 320 ++++++++++++++++++++++++++++++++++++- VIA/TripsChecks.aspx.cs | 265 +++++++++++++++++++++++++++++- 9 files changed, 609 insertions(+), 16 deletions(-) create mode 100644 Imagenes/autobus.png create mode 100644 Imagenes/sprinter.png diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index 912ed24d9..bd72d8ceb 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -4,6 +4,7 @@ Option Explicit On Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.[Shared].Json +Imports DocumentFormat.OpenXml.Presentation Imports Extensiones Imports Microsoft.Ajax.Utilities Imports Profact.TimbraCFDI40 @@ -2283,7 +2284,9 @@ Public Class ClsRH End Try Return Retorno End Function - Public Function UpdateSalarios(CvePersonal As Integer, Fecha As String, CveUsuario As Integer, CveEmpresa As Integer, SalarioDiario As Double, SDI As Double, SalarioDiarioSS As Double, SalarioDiarioPago As Double, Optional CalcularSDI As Boolean = False) As Boolean + Public Function UpdateSalarios(CvePersonal As Integer, Fecha As String, CveUsuario As Integer, CveEmpresa As Integer, SalarioDiario As Double, SDI As Double, + SalarioDiarioSS As Double, SalarioDiarioPago As Double, Optional CalcularSDI As Boolean = False, Optional ActualizaSalarioV As Boolean = False, + Optional OrigenU As String = "") As Boolean Dim Retorno As Boolean = False SqlDataAdapter("PA_RH_PersonalUpdateSalarios") With SqlAdapter.SelectCommand.Parameters @@ -2296,6 +2299,8 @@ Public Class ClsRH .Add("@SDI", SqlDbType.Money).Value = SDI .Add("@SalarioDiarioSS", SqlDbType.Money).Value = SalarioDiarioSS .Add("@CalcularSDI", SqlDbType.Bit).Value = CalcularSDI + .Add("@ActualizaSalarioV", SqlDbType.Bit).Value = ActualizaSalarioV + .Add("@OrigenU", SqlDbType.Bit).Value = OrigenU End With Try SqlAdapter.Fill(Data) diff --git a/App_Code/ClsTransportes.vb b/App_Code/ClsTransportes.vb index 07e43b962..e861b9e06 100644 --- a/App_Code/ClsTransportes.vb +++ b/App_Code/ClsTransportes.vb @@ -420,5 +420,24 @@ Public Class ClsTransportes Return Retorno End Function + + + Public Function VIA_FormularioTrip(cveTrip As Int32, cveUsuario As Int32, cveEmpresa As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_VIA_FormularioTrip", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveTrip", SqlDbType.Int).Value = cveTrip + .Add("@CveUsuario", SqlDbType.Int).Value = cveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el importe.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function #End Region End Class diff --git a/Imagenes/autobus.png b/Imagenes/autobus.png new file mode 100644 index 0000000000000000000000000000000000000000..cc13d8aa63ca2d257d7ca06c61d7c12d594a6924 GIT binary patch literal 17005 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 - + - + + - + - + - + - + - + + + + + +
+
+ + + +
+
+
+
+
+ Paso 1: Seleccione el Tipo de Unidad +
+
+ + +
+
+
+
+
+
+
+ +
+
+ + +

TRIP AUTOBUS

+ +
+
+ + +

TRIP SPRINTER

+
+
+
+ +
+
+ +
+ + +
+
+
+
+
+ Paso 2: CHECK PT +
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+
+
+ + + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + + + +
+ + +
+
+
+
+ +
+
+
+ + + +
+ +
+
+
+ +
+ + + +
+
+ +
+
+
+
+ + +
+
+
+ +
+ + +
+
+
+
+
+ Paso 3: +
+
+ + +
+
+
+
+
+
+ +
+
+
+
+
+
- + + diff --git a/VIA/TripsChecks.aspx.cs b/VIA/TripsChecks.aspx.cs index a8e28c66e..57b77ff75 100644 --- a/VIA/TripsChecks.aspx.cs +++ b/VIA/TripsChecks.aspx.cs @@ -1,13 +1,274 @@ -using System; +using CrystalDecisions.Shared.Json; +using System; +using System.Activities.Expressions; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using Extensiones; -public partial class VYA_TripsChecks : System.Web.UI.Page +public partial class VYA_TripsChecks : ClsPaginas { + + #region "Propiedades" + + private int Paso + { + get + { + return ViewState["Paso"].ToEntero(); + } + + set + { + PnlPaso1.Visible = (value == 1); + PnlPaso2.Visible = (value == 2 || value == 3); + PnlPaso3.Visible = (value == 3 || value == 2); + ViewState["Paso"] = value; + } + } + private int _currentFormIndex + { + get + { + return ViewState["_currentFormIndex"].ToEntero(); + } + + set + { + ViewState["_currentFormIndex"] = value; + } + } + private DataTable _dtPreguntas + { + get + { + if (ViewState["_dtPreguntas"] != null) + return (DataTable)ViewState["_dtPreguntas"]; + else + return null; + } + + set + { + ViewState["_dtPreguntas"] = value; + } + } + #endregion protected void Page_Load(object sender, EventArgs e) + { + + if (!IsPostBack) + { + Paso = (Request["Paso"] != null && Request["Paso"].ToString().ToEntero() > 0) ? Request["Paso"].ToString().ToEntero() : 1; + _currentFormIndex = (Request["FormIndex"] != null && Request["FormIndex"].ToString().ToEntero() > 0) ? Request["FormIndex"].ToString().ToEntero() : 1; + CargaCombos(); + LoadData(); + BindForm(); + } + } + + public void CargaCombos() + { + + DataTable dttipoaf = get_GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("MedidaVehicularClave IN (2,3)"); + DdlTipoUnidad.DataSource = dttipoaf; + DdlTipoUnidad.Items.Insert(0, new ListItem("Todos", "-1")); + DdlTipoUnidad.DataBind(); + + //CvePuesto =702 valor fijo V&A + DataTable dtchofer = get_GlobalDTRHPersonal(UsuarioActual.CveEmpresa).FiltraParametros("CvePuesto = 702 and CveEstatusPersonal = 1", "NombreCompleto"); + DdlChofer.DataSource = dtchofer; + DdlChofer.DataBind(); + DdlChofer.Items.Insert(0, new ListItem("-", "-1")); + } + public void cargaUnidades() + { + DataTable dt = get_GlobalDTActivoFijos(UsuarioActual.CveEmpresa).FiltraParametros(string.Format(" EstadoActivoFijo= 'Activo' ", DdlTipoUnidad.SelectedValue)); + DdlAF.DataSource = dt; + DdlAF.DataBind(); + DdlAF.Items.Insert(0, new ListItem("-", "-1")); + + } + #region "Paso 1" + protected void ImgBtnAutobus_Click(object sender, ImageClickEventArgs e) + { + DdlTipoUnidad.SelectedValue = "181"; + Paso = 2; + cargaUnidades(); + } + + protected void ImgBtnSprinter_Click(object sender, ImageClickEventArgs e) + { + DdlTipoUnidad.SelectedValue = "184"; + Paso = 2; + cargaUnidades(); + } + #endregion + + protected void DdlTipoUnidad_SelectedIndexChanged(object sender, EventArgs e) + { + cargaUnidades(); + + } + + + #region "Formulario" + private void LoadData() + { + _dtPreguntas = new DataTable(); + using(ClsTransportes nom =new ClsTransportes()) + { + if(nom.VIA_FormularioTrip(-1,UsuarioActual.CveUsuario,UsuarioActual.CveEmpresa)) + { + _dtPreguntas =nom.DtResultados; + } + } + //// Para la demostración, aquí va un código para llenar el DataTable con datos ficticios. + //_dtPreguntas.Columns.Add("CveFormulario", typeof(int)); + //_dtPreguntas.Columns.Add("Formulario", typeof(string)); + //_dtPreguntas.Columns.Add("CvePregunta", typeof(int)); + //_dtPreguntas.Columns.Add("Pregunta", typeof(string)); + //_dtPreguntas.Columns.Add("Valor", typeof(int)); + //_dtPreguntas.Columns.Add("OrdenPregunta", typeof(int)); + //_dtPreguntas.Columns.Add("OrdenFormulario", typeof(int)); + + //// Agregar datos de prueba + //_dtPreguntas.Rows.Add(1, "Formulario 1", 1, "Pregunta 1", null, 1, 1); + //_dtPreguntas.Rows.Add(1, "Formulario 1", 2, "Pregunta 2", null, 2, 1); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 3, "Pregunta 3", null, 1, 2); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 4, "Pregunta 4", null, 2, 2); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 5, "Pregunta 5", null, 1, 3); + //_dtPreguntas.Rows.Add(2, "Formulario 2", 6, "Pregunta 6", null, 2, 3); + } + + private void BindForm() + { + var filteredRowsant = _dtPreguntas.FiltraParametros($"OrdenFormulario = {_currentFormIndex - 1}"); + var filteredRowsnext = _dtPreguntas.FiltraParametros($"OrdenFormulario = {_currentFormIndex + 1}"); + btnAnt.Visible = filteredRowsant.Rows.Count > 0; + btnNext.Visible = filteredRowsnext.Rows.Count > 0; + btnGuardar.Visible = !(filteredRowsnext.Rows.Count > 0); + var filteredRows = _dtPreguntas.Select($"OrdenFormulario = {_currentFormIndex}"); + var sortedRows = filteredRows.CopyToDataTable(); + if(sortedRows.Rows.Count > 0) + { + lblFormulario.Text = $"{sortedRows.Rows[0]["Formulario"]}:"; + lblFormularioobserv.Text = $"Observaciones {sortedRows.Rows[0]["Formulario"]}"; + + } + gvPreguntas.DataSource = sortedRows; + gvPreguntas.DataBind(); + UpDatos.Update(); + } + protected void gvPreguntas_RowDataBound(object sender, GridViewRowEventArgs e) + { + if (e.Row.RowType == DataControlRowType.DataRow) + { + string valor = e.Row.DataKey("Valor"); + + // Botón btnOk + Button btnOk = (Button)e.Row.FindControl("btnOk"); + if (btnOk != null) + { + btnOk.CssClass = valor == "1" ? "btn btn-primary" : "btn btn-default"; + } + + // Botón btnDetected + Button btnDetected = (Button)e.Row.FindControl("btnDetected"); + if (btnDetected != null) + { + btnDetected.CssClass = valor == "0" ? "btn btn-primary" : "btn btn-default"; + } + } + } + + private void UpdateValue(int cvePregunta, int newValue) + { + foreach (DataRow row in _dtPreguntas.Rows) + { + if (Convert.ToInt32(row["CvePregunta"]) == cvePregunta) + { + row["Valor"] = newValue; + break; + } + } + } + protected void btnOk_Click(object sender, EventArgs e) + { + Button btnOk = (Button)sender; + GridViewRow row = (GridViewRow)btnOk.NamingContainer; + int cvePregunta = row.DataKey("CvePregunta").ToEntero(); + + UpdateValue(cvePregunta, 1); + BindForm(); + } + + protected void btnDetected_Click(object sender, EventArgs e) + { + Button btnDetected = (Button)sender; + GridViewRow row = (GridViewRow)btnDetected.NamingContainer; + int cvePregunta = row.DataKey("CvePregunta").ToEntero(); + + UpdateValue(cvePregunta, 0); + BindForm(); + } + public bool ValidarGridView() + { + bool ok = true; + + foreach (GridViewRow row in gvPreguntas.Rows) + { + // Obtener el valor del DataKey correspondiente a la fila actual + string valor = row.DataKey("Valor"); + + // Verificar si el valor es diferente de '0' o '1' + if (valor != "0" && valor != "1") + { + ok = false; + + // Marcar lblPregunta como requerido si el valor es diferente + Label lblPregunta = (Label)row.FindControl("lblPregunta"); + if (lblPregunta != null) + { + lblPregunta.CssClass = "requerido"; // Añade tu clase CSS para marcar como requerido + } + } + } + + return ok; + } + + protected void btnNext_Click(object sender, EventArgs e) + { + if (ValidarGridView()) + { + // Incrementar el índice del formulario + _currentFormIndex++; + BindForm(); + } + } + protected void btnAnt_Click(object sender, EventArgs e) + { + _currentFormIndex--; + BindForm(); + } + + protected void BtnCancel_Click(object sender, EventArgs e) + { + Paso = 1; + } + #endregion + + + protected void btnGuardar_Click(object sender, EventArgs e) + { + + } + + protected void btnContinuar_Click(object sender, EventArgs e) { }