using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Extensiones; using System.Data; using System.Text; using static Extensiones.ModExtensiones; using System.Drawing; using iTextSharp.text.pdf; using System.IO; using System.Data.SqlClient; using System.Configuration; public partial class Nomina_Nomina2 : ClsPaginas { #region Propiedades private int FilaConceptos { get { return 5; } } private DataTable dtPeriodos { get { if (ViewState["dtPeriodos"] == null) { return null; } else { return (DataTable)ViewState["dtPeriodos"]; } } set { ViewState["dtPeriodos"] = value; } } private DataTable dtConceptos { get { if (ViewState["dtConceptos"] == null) { return null; } else { return (DataTable)ViewState["dtConceptos"]; } } set { ViewState["dtConceptos"] = value; } } private DataTable dtempleadosConceptos { get { if (ViewState["dtempleadosConceptos"] == null) { return null; } else { return (DataTable)ViewState["dtempleadosConceptos"]; } } set { ViewState["dtempleadosConceptos"] = value; } } private DataTable dtempleados { get { if (ViewState["dtempleados"] == null) { return null; } else { return (DataTable)ViewState["dtempleados"]; } } set { ViewState["dtempleados"] = value; } } private DataTable DtSuaProcesado { get { if (ViewState["dtempleados"] == null) { return null; } else { return (DataTable)ViewState["dtempleados"]; } } set { ViewState["dtempleados"] = value; } } protected bool PermisoCancelarEmitido { get { if (ViewState["PermisoCancelarEmitido"] == null) { return false; } else { return (bool)ViewState["PermisoCancelarEmitido"]; } } set { ViewState["PermisoCancelarEmitido"] = value; } } protected bool PermisoAutorizar { get { if (ViewState["PermisoAutorizar"] == null) { return false; } else { return (bool)ViewState["PermisoAutorizar"]; } } set { ViewState["PermisoAutorizar"] = value; } } protected bool PermisoEmitir { get { if (ViewState["PermisoEmitir"] == null) { return false; } else { return (bool)ViewState["PermisoEmitir"]; } } set { ViewState["PermisoEmitir"] = value; } } protected int CvePeriodoSeleccionado { get { if (ViewState["CvePeriodoSeleccionado"] == null) { return 0; } else { return ViewState["CvePeriodoSeleccionado"].ToString().ToEntero(); } } set { ViewState["CvePeriodoSeleccionado"] = value; } } protected int CcveMovtoPermanente { get { if (ViewState["CcveMovtoPermanente"] == null) { return 0; } else { return ViewState["CcveMovtoPermanente"].ToString().ToEntero(); } } set { ViewState["CcveMovtoPermanente"] = value; } } protected int FiltCveProyecto { get { if (ViewState["FiltCveProyecto"] == null) { return 0; } else { return ViewState["FiltCveProyecto"].ToString().ToEntero(); } } set { ViewState["FiltCveProyecto"] = value; } } protected int FiltCveSubProyecto { get { if (ViewState["FiltCveSubProyecto"] == null) { return 0; } else { return ViewState["FiltCveSubProyecto"].ToString().ToEntero(); } } set { ViewState["FiltCveSubProyecto"] = value; } } protected int FiltCveTurno { get { if (ViewState["FiltCveTurno"] == null) { return 0; } else { return ViewState["FiltCveTurno"].ToString().ToEntero(); } } set { ViewState["FiltCveTurno"] = value; } } protected int FiltCvePeriodo { get { if (ViewState["FiltCvePeriodo"] == null) { return 0; } else { return ViewState["FiltCvePeriodo"].ToString().ToEntero(); } } set { ViewState["FiltCvePeriodo"] = value; } } protected int FiltAgrupador { get { if (ViewState["FiltAgrupador"] == null) { return 0; } else { return ViewState["FiltAgrupador"].ToString().ToEntero(); } } set { ViewState["FiltAgrupador"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { CargarCentrosDeCosto(DdlProyecto, null, LblProyecto, LblSubProyeccto); cargaEjercicios(); CargaTiposPeriodo(); cargaPeriodos(); //Permisos if (UsuarioActual.TienePermisoProceso(82)) { PermisoAutorizar = true; } else { PermisoAutorizar = false; } if (UsuarioActual.TienePermisoProceso(83)) { PermisoEmitir = true; PermisoCancelarEmitido = true; } else { PermisoEmitir = false; PermisoCancelarEmitido = false; } DataTable dtperinc = null; using (ClsNominas onom = new ClsNominas()) { if (onom.PersonalIncapacidadCatalogos()) { dtperinc = onom.DtResultados; } } if (dtperinc != null) { DdlSRINCcveTipodeIncidencia.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =1 "); DdlSRINCcveRamoSeguro.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =2 "); DdlSRINCcveTipoRiesgo.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =3 "); DdlSRINCcveSecuelaConsecuencia.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =4 "); DdlSRINCcveControlIncapacidad.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =5 "); DdlSRINCcveTipodeIncidencia.DataBind(); DdlSRINCcveRamoSeguro.DataBind(); DdlSRINCcveTipoRiesgo.DataBind(); DdlSRINCcveSecuelaConsecuencia.DataBind(); DdlSRINCcveControlIncapacidad.DataBind(); } } } #region Filtros private void cargaEjercicios() { int EjercicioActual = UsuarioActual.Empresa.EjercicioActual; if (EjercicioActual == 0) { EjercicioActual = DateTime.Now.Year; } DataTable dtejercicio = null; using (ClsNominas objnom = new ClsNominas()) { if (objnom.GetEjercicios(UsuarioActual.CveEmpresa)) { dtejercicio = objnom.DtResultados; } } DdlEjercicios.DataSource = dtejercicio; DdlEjerciciosCM.DataSource = dtejercicio; DdlEjercicios.DataBind(); DdlEjerciciosCM.DataBind(); ListItem litem = null; if ((dtejercicio != null) && dtejercicio.Rows.Count > 0) { if (dtejercicio.COUNT("Ejercicio", string.Format("Ejercicio={0}", EjercicioActual)) == 0) { litem = new ListItem(EjercicioActual.ToString(), EjercicioActual.ToString()); DdlEjercicios.Items.Insert(0, litem); DdlEjerciciosCM.Items.Insert(0, litem); } if (dtejercicio.COUNT("Ejercicio", string.Format("Ejercicio={0}", (EjercicioActual - 1))) == 0) { litem = new ListItem((EjercicioActual - 1).ToString(), (EjercicioActual - 1).ToString()); DdlEjercicios.Items.Insert(1, litem); DdlEjerciciosCM.Items.Insert(1, litem); } } else { litem = new ListItem(EjercicioActual.ToString(), EjercicioActual.ToString()); DdlEjercicios.Items.Insert(0, litem); DdlEjerciciosCM.Items.Insert(0, litem); litem = new ListItem((EjercicioActual - 1).ToString(), (EjercicioActual - 1).ToString()); DdlEjercicios.Items.Insert(0, litem); DdlEjerciciosCM.Items.Insert(0, litem); } if (DdlEjercicios.Items.Count > 0) { DdlEjercicios.SelectedIndex = 0; } DdlEjercicios.SelectedValueExist(DateTime.Now.Year.ToString()); } private void CargaTiposPeriodo() { DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo.FiltraParametros("Estatus = 'Activo'"); DdlTipoPeriodoCM.DataSource = DdlTipoPeriodo.DataSource; DdlTipoPeriodoSim.DataSource = DdlTipoPeriodo.DataSource; DdlTipoPeriodoSim.DataBind(); DdlTipoPeriodoCM.DataBind(); DdlTipoPeriodo.DataBind(); DdlTipoPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1")); if (DdlTipoPeriodo.Items.Count > 0) { DdlTipoPeriodo.SelectedIndex = 0; } } private void cargaPeriodos() { int tipoPeriodo = DdlTipoPeriodo.SelectedValue.ToEntero(); int ejercicio = DdlEjercicios.SelectedValue.ToEntero(); dtPeriodos = null; if (DdlTipoPeriodo.SelectedValue.ToEntero() > 0) { using (ClsNominas objperiodos = new ClsNominas()) { if (objperiodos.GetPeriodos(tipoPeriodo, UsuarioActual.CveEmpresa, ejercicio, -1, -1)) { dtPeriodos = objperiodos.DtResultados.FiltraParametros("Estatus IN (1,2,3,4,5)"); } } } DdlPeriodo.DataSource = dtPeriodos; DdlPeriodo.DataBind(); DdlPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1")); muestraPeriodo(); } protected void DdlEjercicios_SelectedIndexChanged(object sender, EventArgs e) { cargaPeriodos(); } protected void DdlTipoPeriodo_SelectedIndexChanged(object sender, EventArgs e) { cargaPeriodos(); DdlEjercicios.AutoPostBack = true; } protected void DdlPeriodo_SelectedIndexChanged(object sender, EventArgs e) { muestraPeriodo(); } private void muestraPeriodo() { int CvePeriodo = DdlPeriodo.SelectedValue.ToEntero(); LnkConsultar.Visible = (CvePeriodo > 0); UPFiltros.Update(); UpDatos.Update(); } #endregion #region Datos protected void LnkConsultar_Click(object sender, EventArgs e) { FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero(); FiltCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero(); FiltCveTurno = DdlTurno.SelectedValue.ToEntero(); FiltCvePeriodo = DdlPeriodo.SelectedValue.ToEntero(); FiltAgrupador = 1; HypPDFSTimbrados.Attributes.Add("onclick", string.Format("GETPDF({0},{1})", -1, FiltCvePeriodo)); cargaDatos(); } public void cargaDatos(bool cargaasistencia = true) { int CveEmpresa = UsuarioActual.CveEmpresa; bool continuar = false; CvePeriodoSeleccionado = 0; dtempleados = null; dtConceptos = null; DataTable dtPeriodo = new DataTable(); DataTable dtasistencia = new DataTable(); if (FiltCvePeriodo > 0) { using (ClsNominas objnom = new ClsNominas()) { if (objnom.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, FiltCvePeriodo)) { DataRow drow = objnom.DtResultados.Rows[0]; int Estatus = drow["Estatus"].ToString().ToEntero(); int CvePrePolizaProvision = drow["CvePrePolizaProvision"].ToString().ToEntero(); LnkConceptoEmpleado.Visible = (Estatus == 1); LnkAutorizar.Visible = true;// (Estatus == 1); LnkRegistrarProvision.Visible = (Estatus > 2) && CvePrePolizaProvision < 0; LnkConceptoEmpleado.Visible = (Estatus < 2); LnkCargaAsistenciaMasiva.Visible = (Estatus < 2); LnkModalPlantillaNomina.Visible = (Estatus < 2); LnkTimbrarTodos.Visible = (Estatus > 2); LnkLayoutContable.Visible = (Estatus > 2); LnkProvisionNomina.Visible = CvePrePolizaProvision > 0; LnkProvisionNomina.NavigateUrl = $"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaProvision}&Tipo=NOMPROV"; UpAccciones.Update(); } LnkListaRaya.Visible = true; LnkFormatoTabular.Visible = true; HypPDFSTimbrados.Visible = true; if (objnom.GetNominaEmpleado(FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodo, CveEmpresa, FiltAgrupador, DdlRegimenContratacion.SelectedValue.ToEntero()) && objnom.DTSetResultados.Tables.Count > 1) { dtempleados = objnom.DTSetResultados.Tables[3]; dtempleadosConceptos = objnom.DTSetResultados.Tables[4]; dtConceptos = objnom.DTSetResultados.Tables[0]; dtPeriodo = objnom.DTSetResultados.Tables[1]; dtasistencia = objnom.DTSetResultados.Tables[2]; CvePeriodoSeleccionado = FiltCvePeriodo; continuar = true; } LnkTimbrarTodos.Visible = dtempleados.Rows.Count > 0 && dtempleados.COUNT("CvePersonal", "SeTimbro=0 AND CvePersonal >0") > 0; } } #region CargaGrid if (continuar) { //string ctipo = "P"; /* while (GvNominas.Columns.Count > 3) { GvNominas.Columns.RemoveAt(2); //GvNominas.Columns.sa(); }*/ int CurrentColumn = 2; BoundField bf; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); int SoloVisible = row["SoloVisible"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; if (SoloVisible == 1) { GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible "; } GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0); bf = (BoundField)GvNominas.Columns[CurrentColumn]; bf.DataField = string.Format("V_{0}", CveConcepto); bf.HeaderText = Concepto; if (GvNominas.Columns[CurrentColumn].Visible) { CurrentColumn++; } } if (true) { BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Percepciones"; field.DataField = "SumaPercepciones"; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('D') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); int SoloVisible = row["SoloVisible"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; if (SoloVisible == 1) { GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible "; } GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0); bf = (BoundField)GvNominas.Columns[CurrentColumn]; bf.DataField = string.Format("V_{0}", CveConcepto); bf.HeaderText = Concepto; if (GvNominas.Columns[CurrentColumn].Visible) { CurrentColumn++; } } if (true) { BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Deducciones"; field.DataField = "SumaDeducciones"; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Total"; field.DataField = "Total"; field.ItemStyle.BackColor = System.Drawing.Color.DarkGray; field.ItemStyle.CssClass = "TotalWhite"; field.HeaderStyle.CssClass = "TotalWhite"; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('O') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); int SoloVisible = row["SoloVisible"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; if (SoloVisible == 1) { GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible "; } GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0); bf = (BoundField)GvNominas.Columns[CurrentColumn]; bf.DataField = string.Format("V_{0}", CveConcepto); bf.HeaderText = Concepto; if (GvNominas.Columns[CurrentColumn].Visible) { CurrentColumn++; } } if (true) { BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; field.HeaderText = "Obligaciones"; field.DataField = "SumaObligaciones"; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].Visible = true; CurrentColumn++; } for (int i = CurrentColumn; i < 102; i++) { bf = (BoundField)GvNominas.Columns[i]; bf.DataField = ""; bf.HeaderText = ""; GvNominas.Columns[i].ItemStyle.BackColor = System.Drawing.Color.Transparent; GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; GvNominas.Columns[i].Visible = false; } bool tr = false; if (tr) { /* bool sumaPercepciones = false; bool sumaDeducciones = false; if (GvNominas.Columns.Count > 3) { foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Tipo = row["Tipo"].ToString(); if (Tipo != ctipo) { if (ctipo == "P") { CurrentColumn++; if (Tipo != "D") { CurrentColumn++; CurrentColumn++; } } else if (ctipo == "D") { CurrentColumn++; CurrentColumn++; } ctipo = Tipo; } CurrentColumn++; } } else { foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Tipo = row["Tipo"].ToString(); if (Tipo != ctipo) { if (ctipo == "P") { BoundField field = new BoundField(); field.HeaderText = "Percepciones"; field.DataField = "SumaPercepciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; GvNominas.Columns.Insert(CurrentColumn++, field); sumaPercepciones = true; if (Tipo != "D") { field = new BoundField(); field.HeaderText = "Deducciones"; field.DataField = "SumaDeducciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); field = new BoundField(); field.HeaderText = "Total"; field.DataField = "Total"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); sumaDeducciones = true; } } else if (ctipo == "D") { BoundField field = new BoundField(); if (!sumaPercepciones) { field.HeaderText = "Percepciones"; field.DataField = "SumaPercepciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); field = new BoundField(); sumaPercepciones = true; } field.HeaderText = "Deducciones"; field.DataField = "SumaDeducciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); field = new BoundField(); field.HeaderText = "Total"; field.DataField = "Total"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = "TotalWhite "; field.HeaderStyle.CssClass = "TotalWhite "; GvNominas.Columns.Insert(CurrentColumn++, field); sumaDeducciones = true; } ctipo = Tipo; } if (true) { BoundField field = new BoundField(); field.Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); field.HeaderText = Concepto; field.DataField = string.Format("V_{0}", CveConcepto); field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(80); GvNominas.Columns.Insert(CurrentColumn++, field); } } if (true) { BoundField field = new BoundField(); if (!sumaPercepciones) { field.HeaderText = "Percepciones"; field.DataField = "SumaPercepciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); field = new BoundField(); sumaPercepciones = true; } if (!sumaDeducciones) { field.HeaderText = "Deducciones"; field.DataField = "SumaDeducciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); field = new BoundField(); field.HeaderText = "Total"; field.DataField = "Total"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); sumaDeducciones = true; field = new BoundField(); } field.HeaderText = "Obligaciones"; field.DataField = "SumaObligaciones"; field.DataFormatString = "{0:N2}"; field.ItemStyle.Width = Unit.Pixel(120); field.ItemStyle.HorizontalAlign = HorizontalAlign.Right; field.ItemStyle.BackColor = System.Drawing.Color.LightGray; field.ItemStyle.CssClass = " "; field.HeaderStyle.CssClass = " "; GvNominas.Columns.Insert(CurrentColumn++, field); } } */ } setGVNominas(); } else { GvNominas.DataSource = null; GvNominas.DataBind(); } if (cargaasistencia) { if (dtPeriodo != null && dtPeriodo.Rows.Count > 0) { DateTime FechaInicio = (DateTime)dtPeriodo.Rows[0]["FechaInicio"]; DateTime FechaFin = (DateTime)dtPeriodo.Rows[0]["FechaFin"]; StringBuilder gvasistencia = new StringBuilder(); gvasistencia.Append("
"); if (true) { DateTime fecha = FechaInicio; gvasistencia.Append(""); gvasistencia.Append(""); while (fecha <= FechaFin) { gvasistencia.AppendFormat("", fecha); fecha = fecha.AddDays(1); } gvasistencia.Append(""); } string tipo = ""; foreach (DataRow rempl in dtempleados.FiltraParametros("CvePersonal>0").Rows) { int CvePersonal = rempl["CvePersonal"].ToString().ToEntero(); string nombre = rempl["Nombre"].ToString(); string Codigo = rempl["Codigo"].ToString(); DateTime fecha = FechaInicio; int HorasDobles, HorasTriples; gvasistencia.Append(""); gvasistencia.AppendFormat("", CvePersonal, nombre, Codigo); while (fecha <= FechaFin) { DataRow drow = dtasistencia.FiltroPrimero(string.Format("Fecha='{0:yyyy/MM/dd}' AND CvePersonal={1}", fecha, CvePersonal)); tipo = "-"; if (drow != null) { tipo = string.Format("{0} ({1}%)", drow["Tipo"], drow["PorcentajePago"]); HorasDobles = drow["HorasDobles"].ToString().ToEntero(); HorasTriples = drow["HorasTriples"].ToString().ToEntero(); if (HorasDobles > 0) { tipo = string.Format("{0}
{1} horas dobles", tipo, HorasDobles); } if (HorasTriples > 0) { tipo = string.Format("{0}
{1} horas triple", tipo, HorasTriples); } drow.Delete(); } gvasistencia.AppendFormat("", tipo, CvePersonal, fecha); fecha = fecha.AddDays(1); } gvasistencia.Append(""); } gvasistencia.Append("
Nombre{0:dd/MM/yyyy}
{2} {1} {0}
"); ltlGvAsistencia.Text = gvasistencia.ToString(); } } #endregion UpDatos.Update(); } private void setGVNominas() { string filtrogrupo = ""; DataTable dt = dtempleados.Copy(); if (DdlAgrupadorB.SelectedValue == "1") { foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveSubProyecto", "SubProyecto" }).Rows) { DataRow dr = dt.NewRow(); filtrogrupo = (drow["CveSubProyecto"] == DBNull.Value ? "CveSubProyecto IS NULL AND CvePersonal>0 " : string.Format("CveSubProyecto = {0} AND CvePersonal>0", drow["CveSubProyecto"])); foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); } dr["CveSubProyecto"] = drow["CveSubProyecto"]; dr["SubProyecto"] = drow["SubProyecto"]; dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); dr["Total"] = dtempleados.SUM("Total", filtrogrupo); dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); dt.Rows.Add(dr); } dt.AcceptChanges(); dt = dt.FiltraParametros("", "CveSubProyecto,SubProyecto,Codigo,Nombre"); } if (DdlAgrupadorB.SelectedValue == "2") { foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveDepartamento", "Departamento" }).Rows) { DataRow dr = dt.NewRow(); filtrogrupo = (drow["CveDepartamento"] == DBNull.Value ? "CveDepartamento IS NULL AND CvePersonal>0 " : string.Format("CveDepartamento = {0} AND CvePersonal>0", drow["CveDepartamento"])); foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); } dr["CveDepartamento"] = drow["CveDepartamento"]; dr["Departamento"] = drow["Departamento"]; dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); dr["Total"] = dtempleados.SUM("Total", filtrogrupo); dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); dt.Rows.Add(dr); } dt.AcceptChanges(); dt = dt.FiltraParametros("", "CveDepartamento,Departamento,Codigo,Nombre"); } if (DdlAgrupadorB.SelectedValue == "3") { foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveTurno", "Turno" }).Rows) { DataRow dr = dt.NewRow(); filtrogrupo = (drow["CveTurno"] == DBNull.Value ? "CveTurno IS NULL AND CvePersonal>0 " : string.Format("CveTurno = {0} AND CvePersonal>0", drow["CveTurno"])); foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) { int CveConcepto = row["CveConcepto"].ToString().ToEntero(); dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); } dr["CveTurno"] = drow["CveTurno"]; dr["Turno"] = drow["Turno"]; dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); dr["Total"] = dtempleados.SUM("Total", filtrogrupo); dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); dt.Rows.Add(dr); } dt.AcceptChanges(); dt = dt.FiltraParametros("", "CveDepartamento,Departamento,Codigo,Nombre"); } GvNominas.DataSource = dt; GvNominas.DataBind(); } protected void GvNominas_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Literal LtlNombre = e.Row.FCLiteral("LtlNombre"); LinkButton LnkTimbrar = (LinkButton)e.Row.FindControl("LnkTimbrar"); int cvePersonal = e.Row.DataKey("CvePersonal").ToEntero(); int CvePeriodo = e.Row.DataKey("CvePeriodo").ToEntero(); int CveNomina = e.Row.DataKey("CveNomina").ToEntero(); string SeTimbro = e.Row.DataKey("SeTimbro").ToString(); string NomAutorizado = e.Row.DataKey("NomAutorizado").ToString(); string Nombre = e.Row.DataKey("Nombre").ToString(); string Codigo = e.Row.DataKey("Codigo").ToString(); string Turno = e.Row.DataKey("Turno").ToString(); string Departamento = e.Row.DataKey("Departamento").ToString(); string SubProyecto = e.Row.DataKey("SubProyecto").ToString(); LnkTimbrar.Visible = false; if (cvePersonal > 0) { LtlNombre.Text = String.Format("{2} {1}", cvePersonal, Nombre, Codigo); if (CveNomina > 0) { if (NomAutorizado == "False") { } else { if (SeTimbro == "False") { LnkTimbrar.Visible = true; e.Row.CssClass = "info"; } else { //onclick() e.Row.FCHyperLink("HypPDF").Attributes.Add("onclick", string.Format("GETPDF({0},{1})", cvePersonal, CvePeriodo)); e.Row.FCHyperLink("HypXml").Attributes.Add("onclick", string.Format("GETXML({0},{1})", cvePersonal, CvePeriodo)); e.Row.FindControl("HypPDF").Visible = true; e.Row.FindControl("HypXml").Visible = true; e.Row.CssClass = "success"; } } } } else { LtlNombre.Text = "Total General"; e.Row.FindControl("LnkTimbrar").Visible = false; if (Turno.Length == 0 && SubProyecto.Length > 0) { LtlNombre.Text = String.Format("Centro de costos: {0}", SubProyecto); } else if (Turno.Length > 0) { LtlNombre.Text = String.Format("Turno: {0}", SubProyecto); } else if (Departamento.Length > 0) { LtlNombre.Text = String.Format("Departamento: {0}", Departamento); } else { e.Row.FCHyperLink("HypPDF").Attributes.Add("onclick", string.Format("GETPDF({0},{1})", -1, CvePeriodoSeleccionado)); e.Row.FindControl("HypPDF").Visible = false; e.Row.CssClass = "SubTotales"; } e.Row.FindControl("LnkSobreRecibo").Visible = false; } } } #endregion protected void LnkTimbrarTodos_Click(object sender, EventArgs e) { string msggral = ""; foreach (GridViewRow gvRow in GvNominas.Rows) { int CvePeriodo = gvRow.DataKey("CvePeriodo").ToEntero(); int CvePersonal = gvRow.DataKey("CvePersonal").ToEntero(); int CveNomina = gvRow.DataKey("CveNomina").ToEntero(); LinkButton LnkTimbrar = gvRow.FCLinkButton("LnkTimbrar"); if (CvePersonal > 0 && LnkTimbrar.Visible) { LogicNominas lognom = new LogicNominas(); string Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual); if (Msg != null && Msg.Length > 0) { msggral = string.Format("{0}{3}{2}
{1}
", msggral, Msg, gvRow.DataKey("Nombre"), gvRow.DataKey("Codigo")); } else { ClsNominas ObjPeriodo = new ClsNominas(); ObjPeriodo.CambiaEstatusPeriodo(CvePeriodo, (int)enumNominasEstatus.Timbrada, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); ObjPeriodo.Dispose(); LnkTimbrar.Visible = false; gvRow.FindControl("ImgDelete").Visible = false; gvRow.FindControl("LnkCancelar").Visible = false; gvRow.FindControl("HypXml").Visible = true; gvRow.FindControl("HypPDF").Visible = true; gvRow.ForeColor = Color.Green; } } } if (msggral.Length > 0) { Alert(string.Format("Ocurrieron los siguientes errores {0}
CódigoNombreError
", msggral), TipoMensaje.MsgAdvertencia); } UpDatos.Update(); } protected void LnkTimbrar_Click(object sender, EventArgs e) { LinkButton lnk = (LinkButton)sender; GridViewRow gvRow = (GridViewRow)lnk.NamingContainer; int CvePeriodo = gvRow.DataKey("CvePeriodo").ToEntero(); int CvePersonal = gvRow.DataKey("CvePersonal").ToEntero(); int CveNomina = gvRow.DataKey("CveNomina").ToEntero(); LogicNominas lognom = new LogicNominas(); string Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual); if (Msg != null && Msg.Length > 0) { Alert(Msg, TipoMensaje.MsgAdvertencia); } else { ClsNominas ObjPeriodo = new ClsNominas(); ObjPeriodo.CambiaEstatusPeriodo(CvePeriodo, (int)enumNominasEstatus.Timbrada, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); ObjPeriodo.Dispose(); Alert("Se ha timbrado correctamente"); gvRow.FindControl("ImgDelete").Visible = false; gvRow.FindControl("LnkCancelar").Visible = false; gvRow.FindControl("HypXml").Visible = true; gvRow.FindControl("HypPDF").Visible = true; gvRow.ForeColor = Color.Green; lnk.Visible = false; UpDatos.Update(); } } protected void ImgDelete_Click(object sender, EventArgs e) { int Cve = ((LinkButton)sender).CommandArgument.ToEntero(); ClsNominas Nom = new ClsNominas(); if (Nom.RemoveNom_Nominas(Cve)) { Alert("Los movimientos de la nómina fueron eliminados", TipoMensaje.MsgInformacion); cargaDatos(); } Nom.Dispose(); } protected void LnkCancelar_Click(object sender, EventArgs e) { int CveNomina = ((LinkButton)sender).CommandArgument.ToEntero(); if (CveNomina > 0) { ClsNominas Nom = new ClsNominas(); if (Nom.GetNom_Nominas(CveNomina, -1, -1, -1, UsuarioActual.CveEmpresa)) { Timbrado ObjTimbrado = new Timbrado(); string FolioFiscal = Nom.FolioFiscal; decimal Total = Nom.Total.ToString().ToDecimal(); string RFCReceptor = Nom.RFC; string RFCEmisor = UsuarioActual.Empresa.RFC; if (ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, RFCEmisor, 4)) { Nom.UpdateEstatusNomNominas(2, UsuarioActual.Empresa.CvePAC, "", "", ("01/01/2000").ToDate(), CveNomina, 0, 0, 0, 0, 0); Alert($"La nómina con folio fiscal '{FolioFiscal}' fue cancelada ante el SAT", TipoMensaje.MsgInformacion); } else { ObjTimbrado.MensajeErrorCFDI.GuardaLog(); Alert($"no se pudo cancelar el folio fiscal
{ObjTimbrado.MensajeErrorCFDI}", TipoMensaje.MsgAdvertencia); } } Nom.Dispose(); cargaDatos(); } } protected void LnkModalPlantillaNomina_Click(object sender, EventArgs e) { RegistraScript("$('#DModalNominas').modal();"); using (ClsNominas ObjNomina = new ClsNominas()) { if (ObjNomina.GetConceptos(UsuarioActual.CveEmpresa)) { GVConceptosPlantilla.DataSource = ObjNomina.DtResultados.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}"); GVConceptosPlantilla.DataBind(); } } UpCargarNomina.Update(); } protected void LnkFormato_Click(object sender, EventArgs e) { try { StringBuilder str = new StringBuilder("0"); bool continuar = false; foreach (GridViewRow gvrow in GVConceptosPlantilla.Rows) { if (gvrow.DataKey("CveConcepto").ToEntero() > 0 && gvrow.FCCheckBox("chkCon").Checked) { str.AppendFormat(",{0}", gvrow.DataKey("CveConcepto")); continuar = true; } } if (continuar) { ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); var libro = wb.AddWorksheet("Nomina"); int column = 1; libro.Row(1).Hide(); libro.Cell(1, column).Value = "Codigo"; libro.Cell(3, column).Value = "Codigo"; column++; libro.Cell(1, column).Value = "Empleado"; libro.Cell(3, column).Value = "Empleado"; libro.Column(column).Width = 35; DataTable dtcP = dtConceptos.FiltraParametros(string.Format("Tipo = 'P' AND EsPadre = 1 AND CveConcepto in({0})", str)); DataTable dtcD = dtConceptos.FiltraParametros(string.Format("Tipo = 'D' AND EsPadre = 1 AND CveConcepto in({0})", str)); DataTable dtcO = dtConceptos.FiltraParametros(string.Format("Tipo = 'O' AND EsPadre = 1 AND CveConcepto in({0})", str)); int iniciotipe = column; foreach (DataRow row in dtcP.Rows) { column++; libro.Cell(1, column).Value = row["CveConcepto"].ToString(); libro.Cell(FilaConceptos, column).Value = "N"; libro.Cell(3, column).Value = row["Concepto"].ToString(); libro.Cell(4, column).Value = row["Codigo"].ToString(); libro.Column(column).Width = 15; } if (iniciotipe < column) { libro.Range(2, iniciotipe + 1, 2, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(2, iniciotipe + 1, 2, column).Merge().Value = "Percepciones"; } iniciotipe = column; foreach (DataRow row in dtcD.Rows) { column++; libro.Cell(1, column).Value = row["CveConcepto"].ToString(); libro.Cell(FilaConceptos, column).Value = "N"; libro.Cell(3, column).Value = row["Concepto"].ToString(); libro.Cell(4, column).Value = row["Codigo"].ToString(); libro.Column(column).Width = 15; } if (iniciotipe < column) { libro.Range(2, iniciotipe + 1, 2, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(2, iniciotipe + 1, 2, column).Merge().Value = "Deducciones"; } iniciotipe = column; foreach (DataRow row in dtcO.Rows) { column++; libro.Cell(1, column).Value = row["CveConcepto"].ToString(); libro.Cell(FilaConceptos, column).Value = "N"; libro.Cell(3, column).Value = row["Concepto"].ToString(); libro.Cell(4, column).Value = row["Codigo"].ToString(); libro.Column(column).Width = 15; } if (iniciotipe < column) { libro.Range(2, iniciotipe + 1, 2, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(2, iniciotipe + 1, 2, column).Merge().Value = "Obligaciones"; } libro.Range(2, 1, 2, 2).Merge().Value = ""; libro.Range(4, 1, 4, 2).Merge().Value = ""; libro.Range(2, 1, 2, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Range(4, 1, 4, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(3).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(4).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(FilaConceptos).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(4).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); //libro.Row(FilaConceptos).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Cell(FilaConceptos, 1).Value = "'-------"; libro.Cell(FilaConceptos, 1).Style.Font.FontColor = ClosedXML.Excel.XLColor.FromArgb(177, 160, 199); libro.Cell(FilaConceptos, 2).Value = "¿Modificar SI(S)/NO(N)?"; libro.Cell(FilaConceptos, 1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199)); libro.Row(FilaConceptos).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199)); int Fila = 5; foreach (DataRow erow in dtempleados.FiltraParametros("CvePersonal>0 AND NomAutorizado=0").Rows) { Fila++; column = 1; libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]); column++; libro.Cell(Fila, column).Value = erow["Nombre"]; foreach (DataRow row in dtcP.Rows) { column++; string Concepto = string.Format("V_{0}", row["CveConcepto"]); libro.Cell(Fila, column).Value = erow[Concepto]; } foreach (DataRow row in dtcD.Rows) { column++; string Concepto = string.Format("V_{0}", row["CveConcepto"]); libro.Cell(Fila, column).Value = erow[Concepto]; } foreach (DataRow row in dtcO.Rows) { column++; string Concepto = string.Format("V_{0}", row["CveConcepto"]); libro.Cell(Fila, column).Value = erow[Concepto]; } } System.IO.Stream fs = new System.IO.MemoryStream(); wb.SaveAs(fs); fs.Position = 0; System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); using (System.IO.Stream input = fs) { input.CopyTo(memoryStream); } memoryStream.Position = 0; Response.Clear(); Response.Buffer = true; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "Plantilla conceptos nómina ")); Response.BinaryWrite(memoryStream.ToArray()); Response.End(); } else { Alert("Debe seleccionar los conceptos a cargar.", TipoMensaje.MsgAdvertencia); } } catch (Exception ex) { Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString()); } } protected void LnkCargarNomina_Click(object sender, EventArgs e) { List Filesgral = TxtArchivoNomina.getfiles().Archivos; bool continuar = Filesgral.Count > 0; string stringError = ""; Archivo fileItem = continuar ? Filesgral[0] : null; if (continuar) { string FileExtension = fileItem.Extencion.ToUpper(); if (FileExtension == "XLS" | FileExtension == "XLSX" | FileExtension == "CSV") { } else { continuar = false; stringError = "No se inserto un archivo de tipo Excel"; } } DataTable DTEXcel = new DataTable(); if (continuar) { try { DTEXcel = Extensiones.ModExtensiones.ReadExcelFile(fileItem.FileUrl, true).FiltraParametros(" LEN(Codigo)>0 AND Codigo <> 'Codigo'"); } catch (Exception ex) { continuar = false; stringError = "Ocurrio un Error al procesar el excel "; string.Format("{0} \r\n{0}", stringError, ex.ToString()).GuardaLog(); } } if (continuar && DTEXcel.Rows.Count == 0) { continuar = false; stringError = "No se encontraron cambios"; } StringBuilder str = new StringBuilder(); bool rollback = false; if (continuar) { int CveMoneda = 1; //List lConceptos = new List(); //foreach (DataColumn item in DTEXcel.Columns) //{ // if (item.ColumnName.ToEntero() > 0) // { // lConceptos.Add(item.ColumnName.ToEntero()); // } //} using (ClsRH objpersonal = new ClsRH()) { using (ClsNominas objNomina = new ClsNominas(objpersonal.IniciaTransacSQL())) { foreach (DataRow row in DTEXcel.FiltraParametros("LEN(Codigo)>0 ").Rows) { if (!rollback) { string Codigo = row["Codigo"].ToString(); int CvePersonal = -1; // row["CvePersonal"].ToString().ToEntero(); int CveNomina = 0; double SubTotal = 0; double Total = 0; int CveMetodoPago = 0; if (Codigo != "-1" && objpersonal.GetPersonal(CvePersonal, Codigo, "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) && objpersonal.DtResultados.Rows.Count == 1) { CvePersonal = objpersonal.CvePersonal; CveMetodoPago = objpersonal.CveMetodoPago; } else { CvePersonal = 0; str.AppendLine(string.Format("No se encontro el codigo {0}
", Codigo)); } if (CvePersonal > 0) { if (objNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa)) { if (objNomina.DtResultados.Rows.Count > 0) { CveNomina = objNomina.CveNomina; } else { if (objNomina.AddNom_Nominas(-1, 1, CvePersonal, CvePeriodoSeleccionado, SubTotal, 0, 0, Total, CveMoneda, 1, CveMetodoPago, DateTime.Now, "Deducciones nómina", "", "", "", "", 0, 0, 0, new DateTime(), new DateTime(), new DateTime(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, false)) { CveNomina = objNomina.CveNomina; } else { rollback = true; } } } else { rollback = true; } } if (CveNomina > 0) { for (int i = 1; i < DTEXcel.Columns.Count; i++) { int CveConcepto = DTEXcel.Columns[i].ColumnName.ToEntero(); decimal Importe = 0; decimal ImporteGravado = 0; decimal ImporteExento = 0; decimal ImporteValor = 0; bool dontsaveconcepto = ((row[i].ToString().ToUpper() == "N") || (DTEXcel.Rows[0][i].ToString().ToUpper() == "N")); Importe = row[i].ToString().ToDecimal(); ImporteGravado = Importe - ImporteExento; ImporteValor = 0; if (CveConcepto > 0) { if (!dontsaveconcepto)//el usuario definira si desea actualizar o no el concepto en el periodo { if (!objNomina.AddUPNom_NominasDetalles(objNomina.CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, Importe, ImporteGravado, ImporteExento, ImporteValor, UsuarioActual.CveUsuario, true)) { rollback = true; } } } else { rollback = false; stringError = "ocurrio un error al procesar el archivo favor de intentar de nuevo volviendo a descargar la plantilla.
si el problema Persiste Contacte a soporte."; } } } } } if (rollback) { objpersonal.RollBack(); continuar = false; } else { objpersonal.Commit(); } } } } if (!continuar) { Alert(stringError, ModExtensiones.TipoMensaje.MsgAdvertencia); } else { Alert("La información se a actualizado satisfactoriamente"); } } protected void LnkFormatoEmpleados_Click(object sender, EventArgs e) { } #region SobreRecibo protected int SRCvePersonal { get { if (ViewState["SRCvePersonal"] == null) { return 0; } else { return ViewState["SRCvePersonal"].ToString().ToEntero(); } } set { ViewState["SRCvePersonal"] = value; } } protected int SRCvePeriodo { get { if (ViewState["SRCvePeriodo"] == null) { return 0; } else { return ViewState["SRCvePeriodo"].ToString().ToEntero(); } } set { ViewState["SRCvePeriodo"] = value; } } protected int SRCveConcepto { get { if (ViewState["SRCveConcepto"] == null) { return 0; } else { return ViewState["SRCveConcepto"].ToString().ToEntero(); } } set { ViewState["SRCveConcepto"] = value; } } protected string SRTipoConcepto { get { if (ViewState["SRTipoConcepto"] == null) { return ""; } else { return ViewState["SRTipoConcepto"].ToString(); } } set { ViewState["SRTipoConcepto"] = value; } } protected void LnkSobreRecibo_Click(object sender, EventArgs e) { GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer); if (DdlCtaContable.Items.Count == 0) { using (ClsContPAQi ObjConta = new ClsContPAQi(UsuarioActual.Empresa)) { if (ObjConta.GetCuentas(-1, "-1", 1)) { DdlCtaContable.DataSource = ObjConta.DtResultados; DdlCtaContable.DataBind(); } } DdlCtaContable.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlCtaContable.SelectedValueExist("-1"); } string Nombre = gvrow.DataKey("Nombre").ToString(); SRCvePersonal = gvrow.DataKey("CvePersonal").ToEntero(); SRCvePeriodo = gvrow.DataKey("CvePeriodo").ToEntero(); int CveNomina = gvrow.DataKey("CveNomina").ToEntero(); LblEmpleado.Text = Nombre; TabPersonal.ActiveTabIndex = 0; mostrarConceptos(); pnlAddupMovto.Visible = false; CargaMovtoPermanente(); CargaPersonalIncapacidad(); RegistraScript("$('#ModalConceptos').modal();"); } protected void LnkConcepto_Click(object sender, EventArgs e) { SRCveConcepto = ((LinkButton)sender).CommandArgument.ToEntero(); SRTipoConcepto = ((LinkButton)sender).CommandArgument; #region carga conceptos DataTable dtCon; if (SRCveConcepto > 0) { DataRow drow = dtConceptos.FiltroPrimero(string.Format("CveConcepto={0}", SRCveConcepto)); if (drow != null) { SRTipoConcepto = drow["Tipo"].ToString(); } else { SRCveConcepto = 0; SRTipoConcepto = "D"; } } if (SRTipoConcepto == "P") { dtCon = dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 ").Copy(); } else { dtCon = dtConceptos.FiltraParametros("Tipo ='D' AND EsPadre = 1 ").Copy(); SRTipoConcepto = "D"; } dtCon.Columns.Add(new DataColumn("CodigoConcepto")); foreach (DataRow trow in dtCon.Rows) { trow["CodigoConcepto"] = string.Format("{0} - {1}", trow["Codigo"], trow["Concepto"]); } dtCon.AcceptChanges(); DataRow row = dtCon.NewRow(); row["CveConcepto"] = "-1"; row["CodigoConcepto"] = "Seleccione"; dtCon.Rows.InsertAt(row, 0); #endregion DdlmcConceptos.DataSource = dtCon; DdlmcConceptos.DataBind(); if (SRCveConcepto > 0) { DdlmcConceptos.SelectedValueExist(SRCveConcepto); } DdlmcConceptos_SelectedIndexChanged(DdlmcConceptos, null); RegistraScript(string.Format("$('#ModalUpConcepto').on('shown.bs.modal', function () {{$('#{0}').trigger('focus')}});$('#ModalUpConcepto').modal();", TxtmcImporte.ClientID)); UPpanelModalUpConcepto.Update(); } protected void LnkConceptoEmpleado_Click(object sender, EventArgs e) { SRCveConcepto = -1; SRTipoConcepto = "P"; SRCvePersonal = -1; using (ClsRH ObjPersonal = new ClsRH()) { if (ObjPersonal.GetPersonal(-1, UsuarioActual.CveEmpresa)) { DdlmcPersonal.DataSource = ObjPersonal.DtResultados; DdlmcPersonal.DataBind(); } } #region carga conceptos DataTable dtCon; dtCon = dtConceptos.FiltraParametros("Tipo IN('P','D') AND EsPadre = 1 ").Copy(); dtCon.Columns.Add(new DataColumn("CodigoConcepto")); foreach (DataRow trow in dtCon.Rows) { trow["CodigoConcepto"] = string.Format("{0} - {1}", trow["Codigo"], trow["Concepto"]); } dtCon.AcceptChanges(); #endregion DdlmcConceptos.DataSource = dtCon; DdlmcConceptos.DataBind(); if (SRCveConcepto > 0) { DdlmcConceptos.SelectedValueExist(SRCveConcepto); } DdlmcConceptos_SelectedIndexChanged(DdlmcConceptos, null); RegistraScript(string.Format("$('#ModalUpConcepto').on('shown.bs.modal', function () {{$('#{0}').trigger('focus')}});$('#ModalUpConcepto').modal();", TxtmcImporte.ClientID)); UPpanelModalUpConcepto.Update(); } protected void DdlmcConceptos_SelectedIndexChanged(object sender, EventArgs e) { int CvePersonal = SRCvePersonal; int CveConcepto = DdlmcConceptos.SelectedValue.ToEntero(); TxtmcImporte.Text = ""; TxtmcImporteGrabado.Text = ""; Txtmcvalor.Text = ""; if (CveConcepto > 0) { DataRow drow = dtempleadosConceptos.FiltroPrimero(string.Format("CveConcepto={0} AND CvePersonal ={1}", CveConcepto, CvePersonal)); if (drow != null) { TxtmcImporte.Text = string.Format("{0:N2}", drow["Importe"]); TxtmcImporteGrabado.Text = string.Format("{0:N2}", drow["ImporteGravado"]); Txtmcvalor.Text = string.Format("{0:N2}", drow["Valor"]); } } else { if (e != null) { Alert("Seleccione un concepto.", TipoMensaje.MsgAdvertencia); } } UPpanelModalUpConcepto.Update(); } protected void BtnAceptarMC_Click(object sender, EventArgs e) { bool continuar = true; int CveNomina = 0; double Total = 0; int CveMoneda = 1; int CveMetodoPago = 0; int CvePersonal = SRCvePersonal; if (CvePersonal <= 0) { CvePersonal = DdlmcPersonal.SelectedValue.ToEntero(); } int CveConcepto = DdlmcConceptos.SelectedValue.ToEntero(); if (CveConcepto > 0 && CvePersonal > 0) { decimal ImporteConcepto = TxtmcImporte.Text.Replace("$", "").Replace(",", "").ToDecimal(); decimal ImporteGravadoConcepto = TxtmcImporteGrabado.Text.Replace("$", "").Replace(",", "").ToDecimal(); decimal ImporteExentoConcepto = ImporteConcepto - ImporteGravadoConcepto; decimal ImporteValor = Txtmcvalor.Text.Replace("$", "").Replace(",", "").ToDecimal(); using (ClsNominas objNomina = new ClsNominas()) { if (continuar) { if (objNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa)) { if (objNomina.DtResultados.Rows.Count > 0) { CveNomina = objNomina.CveNomina; } else { if (objNomina.AddNom_Nominas(-1, 1, CvePersonal, CvePeriodoSeleccionado, Total, 0, 0, Total, CveMoneda, 1, CveMetodoPago, DateTime.Now, "Deducciones nómina", "", "", "", "", 0, 0, 0, new DateTime(), new DateTime(), new DateTime(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, false)) { CveNomina = objNomina.CveNomina; } else { continuar = false; } } } } if (CveNomina == 0) { continuar = false; } if (continuar) { if (continuar) { if (!objNomina.AddUPNom_NominasDetalles(CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, ImporteConcepto, ImporteGravadoConcepto, ImporteExentoConcepto, ImporteValor, UsuarioActual.CveUsuario, true)) { continuar = false; } } } } if (continuar) { cargaDatos(); cargasobrericiboconceptos(); UpModalConceptos.Update(); RegistraScript("$('#ModalUpConcepto').modal('hide');"); Alert("El cambio se ha guardado correctamente."); } } else { if (CveConcepto > 0) { Alert("Debe seleccionar un empleado.", TipoMensaje.MsgAdvertencia); } else { Alert("Debe seleccionar un concepto.", TipoMensaje.MsgAdvertencia); } } } private void mostrarConceptos() { #region "Llenado de datos empleado" string CodigoEmpleado = ""; string NombreCompleto = ""; string RFC = ""; string CURP = ""; string TipoPeriodo = ""; string NSS = ""; string DiasLaborados = ""; string DiasFaltados = ""; string DiasVacaciones = ""; string FechaInicio = ""; string FechaFin = ""; string DiasRetardos = ""; string DiasIncapacidad = ""; string Puesto = ""; string Departamento = ""; string SD = ""; string SDI = ""; string SalarioDiarioIMSS = ""; DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal)); if (drow != null) { DiasLaborados = string.Format("{0}", drow["DiasLaborados"].ToString().ToEntero()); DiasFaltados = string.Format("{0}", drow["DiasFaltados"].ToString().ToEntero()); DiasVacaciones = string.Format("{0}", drow["DiasVacaciones"].ToString().ToEntero()); FechaInicio = string.Format("{0:dd/MM/yyyy}", drow["FechaInicio"]); FechaFin = string.Format("{0:dd/MM/yyyy}", drow["FechaFin"]); DiasRetardos = string.Format("{0}", drow["DiasRetardos"].ToString().ToEntero()); DiasIncapacidad = string.Format("{0}", drow["DiasIncapacidad"].ToString().ToEntero()); SD = string.Format("{0:####.####}", drow["SalarioDiario"]); SDI = string.Format("{0:####.####}", drow["SalarioDiarioIntegrado"]); SalarioDiarioIMSS = string.Format("{0:####.####}", drow["SalarioDiarioIMSS"]); } using (ClsRH objrh = new ClsRH()) { if (objrh.GetPersonal(SRCvePersonal, UsuarioActual.CveEmpresa) && objrh.DtResultados.Rows.Count > 0) { DataRow erow = objrh.DtResultados.Rows[0]; CodigoEmpleado = erow["Codigo"].ToString(); NombreCompleto = erow["NombreCompleto"].ToString(); RFC = erow["RFC"].ToString(); CURP = erow["CURP"].ToString(); TipoPeriodo = erow["TipoPeriodo"].ToString(); NSS = erow["NSS"].ToString(); Puesto = erow["Puesto"].ToString(); Departamento = erow["Departamento"].ToString(); } } LblCodigoEmpleado.Text = CodigoEmpleado; //LblNombreCompleto.Text = NombreCompleto; LblRFC.Text = RFC; LblCURP.Text = CURP; LblTipoPeriodo.Text = TipoPeriodo; LblNSS.Text = NSS; LblDiasLaborados.Text = DiasLaborados; LblDiasFaltados.Text = DiasFaltados; LblDiasVacaciones.Text = DiasVacaciones; LblFecha.Text = string.Format("{0} al {1}", FechaInicio, FechaFin); LblDiasRetardos.Text = DiasRetardos; LblDiasIncapacidad.Text = DiasIncapacidad; LblSRPuesto.Text = Puesto; LblSRDepartamento.Text = Departamento; LblSRSalarioDiario.Text = SD; LblSRSalarioDiarioIntegrado.Text = SDI; LblSRSbc.Text = SalarioDiarioIMSS; #endregion #region "Sobre Recibo" cargasobrericiboconceptos(); #endregion #region "Infonavit" { using (ClsRH objper = new ClsRH()) { objper.GetPersonalConceptos(SRCvePersonal, UsuarioActual.CveEmpresa); DataRow frow = objper.DtResultados.FiltroPrimero("CveSistema =3"); TxtInfoValor.Text = ""; DdlInfoTipoAplicacion.SelectedValueExist("-1"); TxtInfoDescripcion.Text = ""; TxtInfoNumCredito.Text = ""; TxtInfoFechaInicio.Text = ""; ChkInfo.Checked = false; if (frow != null) { TxtInfoValor.Text = String.Format("{0:###,###.##}", frow["Importe"]); DdlInfoTipoAplicacion.SelectedValueExist(frow["TipoAplicacion"].ToString()); TxtInfoDescripcion.Text = String.Format("{0}", frow["Descripcion02"]); TxtInfoNumCredito.Text = String.Format("{0}", frow["Descripcion01"]); TxtInfoFechaInicio.Text = String.Format("{0:dd/MM/yyyy}", frow["FInicioAplicacion"]); ChkInfo.Checked = frow["estatus"].ToString().ToUpper().Contiene("1", "TRUE"); } frow = objper.DtResultados.FiltroPrimero("CveSistema =4"); TxtFonValor.Text = ""; DdlFonTipoAplicacion.SelectedValueExist("-1"); TxtFonDescripcion.Text = ""; TxtFonNumCredito.Text = ""; TxtFonFechaInicio.Text = ""; ChkFonacot.Checked = false; if (frow != null) { TxtFonValor.Text = String.Format("{0:###,###.##}", frow["Importe"]); DdlFonTipoAplicacion.SelectedValueExist(frow["TipoAplicacion"].ToString()); TxtFonDescripcion.Text = String.Format("{0}", frow["Descripcion02"]); TxtFonNumCredito.Text = String.Format("{0}", frow["Descripcion01"]); TxtFonFechaInicio.Text = String.Format("{0:dd/MM/yyyy}", frow["FInicioAplicacion"]); ChkFonacot.Checked = frow["estatus"].ToString().ToUpper().Contiene("1", "TRUE"); } } } #endregion UpModalConceptos.Update(); } public void cargasobrericiboconceptos() { { DataTable dtper = dtConceptos.FiltraParametros("Tipo IN ('P') AND EsPadre = 1 "); DataTable dtded = dtConceptos.FiltraParametros("Tipo IN ('D') AND EsPadre = 1 "); dtper.Columns.Add("BorradoLogico", typeof(int)); dtded.Columns.Add("BorradoLogico", typeof(int)); foreach (DataRow row in dtper.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)) != 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtper.AcceptChanges(); foreach (DataRow row in dtded.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)) != 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtded.AcceptChanges(); dtper = dtper.FiltraParametros("BorradoLogico=0"); dtded = dtded.FiltraParametros("BorradoLogico=0"); int maxper = dtper.Rows.Count; int maxded = dtded.Rows.Count; int i = 0; List lconc = new List(); for (i = 0; i < maxper || i < maxded; i++) { NConcepto nConcepto = new NConcepto(); DataRow row; if (maxper > i) { row = dtper.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); nConcepto.CveConceptoP = CveConcepto; nConcepto.ConceptoP = Concepto; nConcepto.NoConceptoP = Codigo; nConcepto.ImporteP = Importe; nConcepto.ValorP = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); nConcepto.isOnlyBisibleP = row["SoloVisible"].ToString().ToEntero(); nConcepto.isEditedP = dtempleadosConceptos.COUNT("CveConcepto", string.Format("CveConcepto={0} AND CvePersonal ={1} AND Estatus =2", CveConcepto, SRCvePersonal)); } if (maxded > i) { row = dtded.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); nConcepto.CveConceptoD = CveConcepto; nConcepto.ConceptoD = Concepto; nConcepto.NoConceptoD = Codigo; nConcepto.ImporteD = Importe; nConcepto.ValorD = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); nConcepto.isOnlyBisibleD = row["SoloVisible"].ToString().ToEntero(); nConcepto.isEditedD = dtempleadosConceptos.COUNT("CveConcepto", string.Format("CveConcepto={0} AND CvePersonal ={1} AND Estatus =2", CveConcepto, SRCvePersonal)); } lconc.Add(nConcepto); } lconc.Add(new NConcepto()); NConcepto SubTotales = new NConcepto(); SubTotales.CveConceptoP = 0; SubTotales.ConceptoP = "Total Percepciones"; SubTotales.EstatusP = -2; SubTotales.ImporteP = dtempleados.SUM("SumaPercepciones", string.Format("CvePersonal = {0}", SRCvePersonal)); ///Alert(SubTotales.ImporteP.ToString()); SubTotales.CveConceptoD = 0; SubTotales.ConceptoD = "Total Deducciones"; SubTotales.EstatusD = -2; SubTotales.ImporteD = dtempleados.SUM("SumaDeducciones", string.Format("CvePersonal = {0}", SRCvePersonal)); NConcepto Totales = new NConcepto(); Totales.CveConceptoD = 0; Totales.ConceptoD = "Total"; Totales.EstatusD = -3; Totales.ImporteD = dtempleados.SUM("Total", string.Format("CvePersonal = {0}", SRCvePersonal)); lconc.Add(SubTotales); lconc.Add(Totales); GvConceptos.DataSource = lconc; GvConceptos.DataBind(); } } protected void BtnImprimirsobrerecibo_Click(object sender, EventArgs e) { DataTable dtper = dtConceptos.FiltraParametros("Tipo IN ('P') AND EsPadre = 1 AND SoloVisible =0"); DataTable dtded = dtConceptos.FiltraParametros("Tipo IN ('D') AND EsPadre = 1 AND SoloVisible =0"); dtper.Columns.Add("BorradoLogico", typeof(int)); dtded.Columns.Add("BorradoLogico", typeof(int)); foreach (DataRow row in dtper.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)) != 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtper.AcceptChanges(); foreach (DataRow row in dtded.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)) != 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtded.AcceptChanges(); dtper = dtper.FiltraParametros("BorradoLogico=0"); dtded = dtded.FiltraParametros("BorradoLogico=0"); int maxper = dtper.Rows.Count; int maxded = dtded.Rows.Count; int i = 0; List lconc = new List(); for (i = 0; i < maxper || i < maxded; i++) { NConcepto nConcepto = new NConcepto(); DataRow row; if (maxper > i) { row = dtper.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); nConcepto.CveConceptoP = CveConcepto; nConcepto.ConceptoP = Concepto; nConcepto.NoConceptoP = Codigo; nConcepto.ImporteP = Importe; nConcepto.ValorP = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); } if (maxded > i) { row = dtded.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); nConcepto.CveConceptoD = CveConcepto; nConcepto.ConceptoD = Concepto; nConcepto.NoConceptoD = Codigo; nConcepto.ImporteD = Importe; nConcepto.ValorD = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", SRCvePersonal)); } lconc.Add(nConcepto); } lconc.Add(new NConcepto()); NConcepto SubTotales = new NConcepto(); SubTotales.CveConceptoP = 0; SubTotales.ConceptoP = "Total Percepciones"; SubTotales.EstatusP = -2; SubTotales.ImporteP = dtempleados.SUM("SumaPercepciones", string.Format("CvePersonal = {0}", SRCvePersonal)); ///Alert(SubTotales.ImporteP.ToString()); SubTotales.CveConceptoD = 0; SubTotales.ConceptoD = "Total Deducciones"; SubTotales.EstatusD = -2; SubTotales.ImporteD = dtempleados.SUM("SumaDeducciones", string.Format("CvePersonal = {0}", SRCvePersonal)); NConcepto Totales = new NConcepto(); Totales.CveConceptoD = 0; Totales.ConceptoD = "Total"; Totales.EstatusD = -3; Totales.ImporteD = dtempleados.SUM("Total", string.Format("CvePersonal = {0}", SRCvePersonal)); lconc.Add(SubTotales); lconc.Add(Totales); DataTable dtCon = new DataTable(); dtCon.Columns.Add(new DataColumn("NoConceptoP", typeof(string))); dtCon.Columns.Add(new DataColumn("ConceptoP", typeof(string))); dtCon.Columns.Add(new DataColumn("LabelValorP", typeof(string))); dtCon.Columns.Add(new DataColumn("CveConceptoP", typeof(int))); dtCon.Columns.Add(new DataColumn("ImporteP", typeof(double))); dtCon.Columns.Add(new DataColumn("ValorP", typeof(double))); dtCon.Columns.Add(new DataColumn("EstatusP", typeof(int))); dtCon.Columns.Add(new DataColumn("isEditedP", typeof(int))); dtCon.Columns.Add(new DataColumn("isOnlyBisibleP", typeof(int))); dtCon.Columns.Add(new DataColumn("NoConceptoD", typeof(string))); dtCon.Columns.Add(new DataColumn("ConceptoD", typeof(string))); dtCon.Columns.Add(new DataColumn("LabelValorD", typeof(string))); dtCon.Columns.Add(new DataColumn("CveConceptoD", typeof(int))); dtCon.Columns.Add(new DataColumn("ImporteD", typeof(double))); dtCon.Columns.Add(new DataColumn("ValorD", typeof(double))); dtCon.Columns.Add(new DataColumn("EstatusD", typeof(int))); dtCon.Columns.Add(new DataColumn("isEditedD", typeof(int))); dtCon.Columns.Add(new DataColumn("isOnlyBisibleD", typeof(int))); foreach (NConcepto itc in lconc) { DataRow dr = dtCon.NewRow(); dr["NoConceptoP"] = itc.NoConceptoP; dr["ConceptoP"] = itc.ConceptoP; dr["LabelValorP"] = itc.LabelValorP; dr["CveConceptoP"] = itc.CveConceptoP; dr["ImporteP"] = itc.ImporteP; dr["ValorP"] = itc.ValorP; dr["EstatusP"] = itc.EstatusP; dr["isEditedP"] = itc.isEditedP; dr["isOnlyBisibleP"] = itc.isOnlyBisibleP; dr["NoConceptoD"] = itc.NoConceptoD; dr["ConceptoD"] = itc.ConceptoD; dr["LabelValorD"] = itc.LabelValorD; dr["CveConceptoD"] = itc.CveConceptoD; dr["ImporteD"] = itc.ImporteD; dr["ValorD"] = itc.ValorD; dr["EstatusD"] = itc.EstatusD; dr["isEditedD"] = itc.isEditedD; dr["isOnlyBisibleD"] = itc.isOnlyBisibleD; dtCon.Rows.Add(dr); } dtCon.AcceptChanges(); List lrds = new List(); Microsoft.Reporting.WebForms.ReportDataSource rds = new Microsoft.Reporting.WebForms.ReportDataSource(); rds.Name = "DataSet1"; rds.Value = dtCon;// lconc; lrds.Add(rds); List parametros = new List(); string CodigoEmpleado = ""; string NombreCompleto = ""; string RFC = ""; string CURP = ""; string TipoPeriodo = ""; string NSS = ""; string DiasLaborados = ""; string DiasFaltados = ""; string DiasVacaciones = ""; string FechaInicio = ""; string FechaFin = ""; string DiasRetardos = ""; string DiasIncapacidad = ""; string SubProyecto = ""; { DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal)); if (drow != null) { DiasLaborados = string.Format("{0}", drow["DiasLaborados"].ToString().ToEntero()); DiasFaltados = string.Format("{0}", drow["DiasFaltados"].ToString().ToEntero()); DiasVacaciones = string.Format("{0}", drow["DiasVacaciones"].ToString().ToEntero()); FechaInicio = string.Format("{0:dd/MM/yyyy}", drow["FechaInicio"]); FechaFin = string.Format("{0:dd/MM/yyyy}", drow["FechaFin"]); DiasRetardos = string.Format("{0}", drow["DiasRetardos"].ToString().ToEntero()); DiasIncapacidad = string.Format("{0}", drow["DiasIncapacidad"].ToString().ToEntero()); } } //string Codigo = ""; using (ClsRH objrh = new ClsRH()) { if (objrh.GetPersonal(SRCvePersonal, UsuarioActual.CveEmpresa) && objrh.DtResultados.Rows.Count > 0) { DataRow drow = objrh.DtResultados.Rows[0]; SubProyecto = drow["SubProyecto"].ToString(); CodigoEmpleado = drow["Codigo"].ToString(); NombreCompleto = drow["NombreCompleto"].ToString(); RFC = drow["RFC"].ToString(); CURP = drow["CURP"].ToString(); TipoPeriodo = drow["TipoPeriodo"].ToString(); NSS = drow["NSS"].ToString(); } } parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("DiasIncapacidad", DiasIncapacidad)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("Codigo", CodigoEmpleado)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("NombreCompleto", NombreCompleto)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("RFC", RFC)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("CURP", "")); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("TipoPeriodo", TipoPeriodo)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("NSS", NSS)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("DiasLaborados", DiasLaborados)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("DiasFaltados", DiasFaltados)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("DiasVacaciones", DiasVacaciones)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("FechaInicio", FechaInicio)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("FechaFin", FechaFin)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("DiasRetardos", DiasRetardos)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("SubProyecto", SubProyecto)); parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("FechaPago", "")); //parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("", "")); //parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("", "")); //parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("", "")); //parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("", "")); //parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("", "")); string urlfile = System.IO.Path.Combine(ModExtensiones.DirectorioBaseEmpresas, string.Format("Empresas/{0}/Formatos/SobreRecibo.rdlc", UsuarioActual.CveEmpresa)); if (!System.IO.File.Exists(urlfile)) { urlfile = System.IO.Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas/Grales/Formatos/SobreRecibo.rdlc"); } ImprimirPDF(urlfile, lrds, parametros, "SobreRecibo", "PDF", null); } protected void BtnGuardarInfornavit_Click(object sender, EventArgs e) { double importe = TxtInfoValor.Text.ToDouble(); int TipoAplicacion = DdlInfoTipoAplicacion.SelectedValue.ToEntero(); int NoPagos = 0; double SaldoIni = 0; string descripcion02 = TxtInfoDescripcion.Text; string descripcion01 = TxtInfoNumCredito.Text; string fecha = TxtInfoFechaInicio.Text.Replace("_", ""); int estatus = ChkInfo.Checked ? 1 : 0; if (fecha.Length > 8) fecha = fecha.ToDateTime().ToString("yyyy/MM/dd"); else fecha = ""; bool continuar = true; using (ClsRH ObjPersonal = new ClsRH()) { if (!ObjPersonal.AddConcepto(SRCvePersonal, -1, importe, TipoAplicacion, NoPagos, SaldoIni, UsuarioActual.CveUsuario, 3, descripcion01, descripcion02, fecha, "", estatus, UsuarioActual.CveEmpresa)) continuar = false; } if (continuar) { LnkConsultar_Click(null, null); mostrarConceptos(); Alert("Se actualizo el calculo de infonavit"); } } private class NConcepto { public string NoConceptoP { get; set; } public string ConceptoP { get; set; } public string LabelValorP { get; set; } public int CveConceptoP { get; set; } public double ImporteP { get; set; } public double ValorP { get; set; } public int EstatusP { get; set; } public int isEditedP { get; set; } public int isOnlyBisibleP { get; set; } public string NoConceptoD { get; set; } public string ConceptoD { get; set; } public string LabelValorD { get; set; } public int CveConceptoD { get; set; } public double ImporteD { get; set; } public double ValorD { get; set; } public int EstatusD { get; set; } public int isEditedD { get; set; } public int isOnlyBisibleD { get; set; } public string NoConceptoO { get; set; } public string ConceptoO { get; set; } public string LabelValorO { get; set; } public int CveConceptoO { get; set; } public double ImporteO { get; set; } public double ValorO { get; set; } public int EstatusO { get; set; } public int isEditedO { get; set; } public int isOnlyBisibleO { get; set; } } int CveConceptoPolgvc, CveConceptoDolgvc; protected void GvConceptos_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.RowIndex == 0) { CveConceptoPolgvc = 1; CveConceptoDolgvc = 1; } // Datakeys // Concepto,CveConcepto,Importe,Estatus,ConceptoD,CveConceptoD,ImporteD,EstatusD int CveConcepto = e.Row.DataKey("CveConceptoP").ToEntero(); int CveConceptoD = e.Row.DataKey("CveConceptoD").ToEntero(); // Dim Importe As Decimal = e.Row.DataKey("Importe").ToDecimal() // Dim ImporteD As Decimal = e.Row.DataKey("ImporteD").ToDecimal() int Estatus = e.Row.DataKey("EstatusP").ToEntero(); int EstatusD = e.Row.DataKey("EstatusD").ToEntero(); int isOnlyBisibleP = e.Row.DataKey("isOnlyBisibleP").ToEntero(); int isOnlyBisibleD = e.Row.DataKey("isOnlyBisibleD").ToEntero(); bool isEditedP = e.Row.DataKey("isEditedP").ToEntero() > 0; bool isEditedD = e.Row.DataKey("isEditedD").ToEntero() > 0; //isEditedD // Controles Label LtlConcepto = e.Row.FCLabel("LtlConcepto"); LinkButton LnkConcepto = e.Row.FCLinkButton("LnkConcepto"); Label LtlConceptoD = e.Row.FCLabel("LtlConceptoD"); LinkButton LnkConceptoD = e.Row.FCLinkButton("LnkConceptod"); Label LtlImporte = e.Row.FCLabel("LtlImporte"); LinkButton LnkImporte = e.Row.FCLinkButton("LnkImporte"); Label LtlImporteD = e.Row.FCLabel("LtlImporteD"); LinkButton LnkImporteD = e.Row.FCLinkButton("LnkImporteD"); //isEditedD if (isOnlyBisibleP == 1) { e.Row.CssClass = string.Format("{0} isOnlyBisibleP", e.Row.CssClass); } if (isOnlyBisibleD == 1) { e.Row.CssClass = string.Format("{0} isOnlyBisibleD", e.Row.CssClass); } if (isEditedP) { e.Row.CssClass = string.Format("{0} isEditedP", e.Row.CssClass); } if (isEditedD) { e.Row.CssClass = string.Format("{0} isEditedD", e.Row.CssClass); } if (Estatus == -1) { LtlConcepto.Visible = false; } else if (Estatus > 0) { LtlImporte.Visible = false; } if (EstatusD == -1) { LtlConceptoD.Visible = false; } else if (EstatusD > 0) { LtlImporteD.Visible = false; } LtlImporte.Visible = false; LtlImporteD.Visible = false; if (Estatus < -1 | EstatusD < -1) { e.Row.CssClass = "ConceptosTotales"; LtlImporte.Visible = true; LtlImporteD.Visible = true; } LnkImporte.CommandArgument = (CveConcepto > 0 ? CveConcepto.ToString() : "P"); LnkImporteD.CommandArgument = (CveConceptoD > 0 ? CveConceptoD.ToString() : "D"); LnkImporte.Text = (CveConcepto > 0 ? string.Format("${0:N2}", e.Row.DataKey("ImporteP").ToDecimal()) : (CveConceptoPolgvc > 0 ? "" : "")); LnkImporteD.Text = (CveConceptoD > 0 ? string.Format("${0:N2}", e.Row.DataKey("ImporteD").ToDecimal()) : (CveConceptoDolgvc > 0 ? "" : "")); if (CveConcepto == 0 && (Estatus == 0 || Estatus == -1 || Estatus == -3)) { LtlImporte.Text = ""; } if (CveConceptoD == 0 && (EstatusD == 0 || EstatusD == -1)) { LtlImporteD.Text = ""; } LnkConcepto.Visible = !LtlConcepto.Visible; LnkConceptoD.Visible = !LtlConceptoD.Visible; LnkImporte.Visible = !LtlImporte.Visible; LnkImporteD.Visible = !LtlImporteD.Visible; LinkButton LnkConceptoO = e.Row.FCLinkButton("LnkConceptoO"); LinkButton LnkImporteO = e.Row.FCLinkButton("LnkImporteO"); if (LnkConceptoO != null) { LnkConceptoO.Visible = false; LnkImporteO.Visible = false; if (e.Row.DBCampo("ImporteO").ToDecimal() == 0) { e.Row.FCLabel("LtlConceptoO").Visible = false; e.Row.FCLabel("LtlImporteO").Visible = false; if (e.Row.DataKey("isOnlyBisibleO").ToEntero() == 1) { e.Row.CssClass = string.Format("{0} isOnlyBisibleO", e.Row.CssClass); } } } CveConceptoPolgvc = CveConcepto; CveConceptoDolgvc = CveConceptoD; } } #endregion protected void LnkFormatoTabular_Click(object sender, EventArgs e) { try { ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); var libro = wb.AddWorksheet("Nomina"); int column = 1; int filainicio = 3; libro.Cell(filainicio + 1, column).Value = " "; libro.Cell(filainicio + 2, column).Value = "Codigo"; libro.Cell(filainicio + 3, column).Value = " "; column++; libro.Cell(filainicio + 1, column).Value = " "; libro.Cell(filainicio + 2, column).Value = "Empleado"; libro.Cell(filainicio + 3, column).Value = " "; libro.Column(column).Width = 35; libro.Cell(1, 1).Value = "Empresa"; libro.Range(1, 2, 1, 4).Merge().Value = UsuarioActual.Empresa.Empresa; libro.Cell(2, 1).Value = "período"; string periodo = DdlPeriodo.SelectedItem.Text; periodo = periodo.Substring(0, (periodo.Length > 27 ? 27 : periodo.Length)); libro.Range(2, 2, 2, 4).Merge().Value = periodo; int iniciotipe = column; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 ").Rows) { column++; libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString(); libro.Cell(filainicio + 3, column).Value = row["Codigo"].ToString(); libro.Column(column).Width = 15; if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0)) { libro.Column(column).Hide(); } } column++; libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Percepciones"; libro.Column(column).Width = 15; if (iniciotipe < column) { libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Percepciones"; } iniciotipe = column; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) { column++; libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString(); libro.Cell(filainicio + 3, column).Value = row["Codigo"].ToString(); libro.Column(column).Width = 15; if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0)) { libro.Column(column).Hide(); } } column++; libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Deducciones"; libro.Column(column).Width = 15; if (iniciotipe < column) { libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Deducciones"; } column++; libro.Cell(filainicio + 1, column).Value = " "; libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Total"; libro.Column(column).Width = 15; iniciotipe = column; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows) { column++; libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString(); libro.Cell(filainicio + 3, column).Value = row["Codigo"].ToString(); libro.Column(column).Width = 15; if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0)) { libro.Column(column).Hide(); } } column++; libro.Range(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Obligaciones"; libro.Column(column).Width = 15; if (iniciotipe < column) { libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Obligaciones"; } //libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; //libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; //libro.Row(3).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; //libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199)); //libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); //libro.Row(3).Cell(1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); //libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); int maxnocolumn = column; int Fila = filainicio + 3; int cveSupProyecto = -5; string subproyecto = ""; int oldcveSupProyecto = -5; bool newsubproyecto = false; bool newsubproyectoTitulo = false; DataTable dtsr = dtempleados.FiltraParametros("", "CveSubProyecto"); dtsr.Rows.Add(dtsr.NewRow()); foreach (DataRow erow in dtsr.Rows) { Fila++; newsubproyecto = false; newsubproyectoTitulo = false; if (cveSupProyecto != erow["CveSubProyecto"].ToString().ToEntero()) { if (oldcveSupProyecto != -5) { Fila += 2; newsubproyecto = true; } oldcveSupProyecto = cveSupProyecto; cveSupProyecto = erow["CveSubProyecto"].ToString().ToEntero(); subproyecto = erow["SubProyecto"].ToString(); if (cveSupProyecto != -5 && oldcveSupProyecto != -5) { Fila++; newsubproyectoTitulo = true; } } column = 1; libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]); column++; if (newsubproyectoTitulo) { libro.Cell(Fila - 1, column).Value = subproyecto; libro.Range(Fila - 1, 1, Fila - 1, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230)); } if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = "Total"; libro.Range(Fila - 3, 1, Fila - 3, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230)); } libro.Cell(Fila, column).Value = erow["Nombre"]; foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' AND EsPadre = 1 ").Rows) { column++; string Concepto = string.Format("V_{0}", row["CveConcepto"]); libro.Cell(Fila, column).Value = erow[Concepto]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } } column++; libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); libro.Cell(Fila, column).Value = erow["SumaPercepciones"]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) { column++; string Concepto = string.Format("V_{0}", row["CveConcepto"]); libro.Cell(Fila, column).Value = erow[Concepto]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } } column++; libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); libro.Cell(Fila, column).Value = erow["SumaDeducciones"]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } column++; libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); libro.Cell(Fila, column).Value = erow["Total"]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM("Total", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows) { column++; string Concepto = string.Format("V_{0}", row["CveConcepto"]); libro.Cell(Fila, column).Value = erow[Concepto]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } } column++; libro.Cell(Fila, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); libro.Cell(Fila, column).Value = erow["SumaObligaciones"]; if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); } } libro.Range(filainicio + 1, 1, filainicio + 4, maxnocolumn).Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Range(filainicio + 1, 1, filainicio + 4, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); System.IO.Stream fs = new System.IO.MemoryStream(); wb.SaveAs(fs); fs.Position = 0; System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); using (System.IO.Stream input = fs) { input.CopyTo(memoryStream); } memoryStream.Position = 0; Response.Clear(); Response.Buffer = true; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", string.Format("attachment;filename={0} {1}.xlsx", "Nomina tabular", periodo)); Response.BinaryWrite(memoryStream.ToArray()); Response.End(); } catch (Exception ex) { Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString()); } } protected void LnkConceptoD_Click(object sender, EventArgs e) { } public void loadtablas() { using (ClsNominas objnom = new ClsNominas()) { if (objnom.GetTablasNomina(UsuarioActual.CveEmpresa) && objnom.DTSetResultados.Tables.Count > 1) { GVFactorDesctInfonavit.DataSource = objnom.DTSetResultados.Tables[0]; GVSalariosMinimos.DataSource = objnom.DTSetResultados.Tables[1]; GVIMMSRiesgot.DataSource = objnom.DTSetResultados.Tables[2]; GVInfonavitSegViv.DataSource = objnom.DTSetResultados.Tables[3]; GVVigISRMensual.DataSource = objnom.DTSetResultados.Tables[4]; GVVigSubEmpMensual.DataSource = objnom.DTSetResultados.Tables[5]; GVUma.DataSource = objnom.DTSetResultados.Tables[6]; } } GVFactorDesctInfonavit.DataBind(); GVSalariosMinimos.DataBind(); GVIMMSRiesgot.DataBind(); GVInfonavitSegViv.DataBind(); GVVigISRMensual.DataBind(); GVVigSubEmpMensual.DataBind(); GVVigSubEmpMensual.DataBind(); GVUma.DataBind(); UpModalTablas.Update(); } protected void LnkVerTablas_Click(object sender, EventArgs e) { loadtablas(); RegistraScript("$('#ModalTablas').modal();"); } private void ImprimirReporte() { string RutaDocumento = System.IO.Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas/Grales/Lista de Raya.docx"); DataTable dtpersonas = null; using (ClsRH ObjRH = new ClsRH()) { if (ObjRH.GetPersonal(-1, UsuarioActual.CveEmpresa)) { dtpersonas = ObjRH.DtResultados; } } if (dtempleados != null && dtempleados.Rows.Count > 0 && dtpersonas != null) { if (System.IO.File.Exists(RutaDocumento)) { try { clsGemBoxDocument GemDocumen = new clsGemBoxDocument(RutaDocumento); List listaTags = new List(); string strEmpresa = UsuarioActual.Empresa.Empresa; string strFechaInicio = ""; string strFechaFin = ""; string strTipo = ""; string strPeriodoNum = ""; string strUbicacion = string.Format("{0}, {1}, {2}, {3}, C.P. {4}", UsuarioActual.Empresa.Direccion, UsuarioActual.Empresa.Colonia, UsuarioActual.Empresa.Ciudad, UsuarioActual.Empresa.Estado, UsuarioActual.Empresa.CP).ToLower(); string strRegPatImss = UsuarioActual.Empresa.RegistroPatronal; string strRFC = UsuarioActual.Empresa.RFC; string strfecha = DateTime.Now.ToString("dd/MMM/yyyy", System.Globalization.CultureInfo.CreateSpecificCulture("es-MX")); string strhora = DateTime.Now.ToString("HH:mm:ss", System.Globalization.CultureInfo.CreateSpecificCulture("es-MX")); int CvePeriodo = DdlPeriodo.SelectedValue.ToEntero(); DataRow rperiodo = dtPeriodos.FiltroPrimero(string.Format("CvePeriodo = {0}", CvePeriodo)); if (rperiodo != null) { strFechaInicio = string.Format("{0:dd/MM/yyyy}", rperiodo["FechaInicio"]); strFechaFin = string.Format("{0:dd/MM/yyyy}", rperiodo["FechaFin"]); strPeriodoNum = rperiodo["Numero"].ToString(); strTipo = DdlTipoPeriodo.SelectedItem.Text; } listaTags.Add(new TagsDocumentos("[Empresa]", strEmpresa)); listaTags.Add(new TagsDocumentos("[FechaInicio]", strFechaInicio)); listaTags.Add(new TagsDocumentos("[FechaFin]", strFechaFin)); listaTags.Add(new TagsDocumentos("[Tipo]", strTipo)); listaTags.Add(new TagsDocumentos("[PeriodoNum]", strPeriodoNum)); listaTags.Add(new TagsDocumentos("[Ubicacion]", strUbicacion)); listaTags.Add(new TagsDocumentos("[RegPatImss]", strRegPatImss)); listaTags.Add(new TagsDocumentos("[RFC]", strRFC)); listaTags.Add(new TagsDocumentos("[fecha]", strfecha)); listaTags.Add(new TagsDocumentos("[hora]", strhora)); GemBox.Document.DocumentModel document = GemDocumen.documento; var section = document.Sections[0]; GemBox.Document.Tables.TableRow row; GemBox.Document.Tables.Table sobrereciboTable; GemBox.Document.Tables.Table tconeptos; GemBox.Document.Paragraph paragraphh; int CveSubProyecto = 0; string SubProyecto = ""; GemBox.Document.ParagraphStyle styilo = (GemBox.Document.ParagraphStyle)document.Styles.GetOrAdd(GemBox.Document.StyleTemplateType.Normal); GemBox.Document.ParagraphStyle styilostrong = (GemBox.Document.ParagraphStyle)document.Styles.GetOrAdd(GemBox.Document.StyleTemplateType.NoSpacing); //GemBox.Document.Style styilonegrita = GemBox.Document.Style.CreateStyle(GemBox.Document.StyleTemplateType.Strong, document); //document.Styles.Add(styilonegrita); foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveSubProyecto", "SubProyecto" }).Rows) { CveSubProyecto = drow["CveSubProyecto"].ToString().ToEntero(); SubProyecto = drow["SubProyecto"].ToString(); paragraphh = new GemBox.Document.Paragraph(document, SubProyecto); paragraphh.ParagraphFormat.Style = styilostrong; section.Blocks.Add(paragraphh); paragraphh = new GemBox.Document.Paragraph(document, "........................................................................................................................................................................"); section.Blocks.Add(paragraphh); foreach (DataRow drow2 in dtempleados.FiltraParametros(string.Format("CveSubProyecto={0}", CveSubProyecto)).Rows) { int CvePersonal = drow2["CvePersonal"].ToString().ToEntero(); sobrereciboTable = new GemBox.Document.Tables.Table(document); sobrereciboTable.TableFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(100, GemBox.Document.Tables.TableWidthUnit.Percentage); section.Blocks.Add(sobrereciboTable); row = new GemBox.Document.Tables.TableRow(document); sobrereciboTable.Rows.Add(row); var cell = new GemBox.Document.Tables.TableCell(document); row.Cells.Add(cell); /* string SalarioDiariop = ""; string FechaIngreso = "", Nombre = "", DiasLaborados = "";*/ paragraphh = new GemBox.Document.Paragraph(document, string.Format("{1} : {0}", drow2["Nombre"].ToString(), drow2["Codigo"].ToString())); cell.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; // DataRow drh = dtpersonas.FiltroPrimero(string.Format("CvePersonal ={0}", CvePersonal)); if (drh != null) { paragraphh = new GemBox.Document.Paragraph(document, string.Format("CURP:{0} RFC:{1} Afiliación IMSS:{2}", drh["CURP"], drh["RFC"], drh["NumeroSS"])); cell.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; } paragraphh = new GemBox.Document.Paragraph(document, string.Format("Fecha Ingr:{0:dd/MM/yyyy}, S.D.:{1:N2}, S.D.I.:{2:N2}, S.B.C.:{3:N2} ", drow2["FechaIngreso"], drow2["SalarioDiario"], drow2["SalarioDiarioIntegrado"], drow2["SalarioDiarioIMSS"])); cell.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; paragraphh = new GemBox.Document.Paragraph(document, string.Format("Días pagados:{0}, Retardos: {1}, Ausencias:{2}, Centro de costos: {3}", drow2["DiasLaborados"], drow2["DiasRetardos"], drow2["DiasFaltados"], drow2["SubProyecto"])); cell.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; row = new GemBox.Document.Tables.TableRow(document); sobrereciboTable.Rows.Add(row); cell = new GemBox.Document.Tables.TableCell(document); row.Cells.Add(cell); tconeptos = new GemBox.Document.Tables.Table(document); tconeptos.TableFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(100, GemBox.Document.Tables.TableWidthUnit.Percentage); cell.Blocks.Add(tconeptos); GemBox.Document.Tables.TableRow rowx; GemBox.Document.Tables.TableCell cellx; { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Percepción"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Valor"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Deducción"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Valor"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } //Percepción Valor Importe Deducción Valor Importe bool gonext = true; int cindex = 0; while (gonext) { cindex = cindex + 1; int CveConcepto; string Concepto = ""; string Codigo = ""; string importe = ""; string valor = ""; rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); DataRow rowconcept = dtempleadosConceptos.FiltroPrimero(string.Format("CvePersonal={0} AND Tipo =1 AND SoloVisible =0 AND FilaRaya ={1} AND Importe <> 0 ", CvePersonal, cindex)); if (rowconcept != null) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", rowconcept["Importe"]); valor = string.Format("{0:#,###.##}", rowconcept["Valor"]); Concepto = ""; rowconcept = dtConceptos.FiltroPrimero(string.Format("CveConcepto={0}", CveConcepto)); if (rowconcept != null) { Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); } } else { gonext = false; } //percepciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, valor); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } CveConcepto = 0; Concepto = ""; importe = ""; Codigo = ""; valor = ""; rowconcept = dtempleadosConceptos.FiltroPrimero(string.Format("CvePersonal={0} AND Tipo =2 AND SoloVisible =0 AND FilaRaya ={1} AND Importe <> 0", CvePersonal, cindex)); if (rowconcept != null) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", rowconcept["Importe"]); valor = string.Format("{0:#,###.##}", rowconcept["Valor"]); //string valor = ""; Concepto = ""; rowconcept = dtConceptos.FiltroPrimero(string.Format("CveConcepto={0}", CveConcepto)); if (rowconcept != null) { Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); } gonext = true; } //deducciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, valor); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); } //Total Percepciones y deducciones { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Percepciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", drow2["SumaPercepciones"])); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Deducciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", drow2["SumaDeducciones"])); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Neto a Pagar"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", drow2["Total"])); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } setborderclear(tconeptos); keeptablesamepage(sobrereciboTable); } paragraphh = new GemBox.Document.Paragraph(document, "........................................................................................................................................................................"); section.Blocks.Add(paragraphh); paragraphh = new GemBox.Document.Paragraph(document, string.Format("Total Centro de costos {0}", SubProyecto.ToUpper())); paragraphh.ParagraphFormat.Style = styilostrong; section.Blocks.Add(paragraphh); #region "totaldepto" { sobrereciboTable = new GemBox.Document.Tables.Table(document); sobrereciboTable.TableFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(100, GemBox.Document.Tables.TableWidthUnit.Percentage); section.Blocks.Add(sobrereciboTable); row = new GemBox.Document.Tables.TableRow(document); sobrereciboTable.Rows.Add(row); var cell = new GemBox.Document.Tables.TableCell(document); row.Cells.Add(cell); tconeptos = new GemBox.Document.Tables.Table(document); tconeptos.TableFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(100, GemBox.Document.Tables.TableWidthUnit.Percentage); cell.Blocks.Add(tconeptos); GemBox.Document.Tables.TableRow rowx; GemBox.Document.Tables.TableCell cellx; //Percepción Valor Importe Deducción Valor Importe bool gonext = true; int cindex = 0; int OrdenP = -999; int ordenD = -999; #region "Titulos" { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Percepción"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Valor"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Deducción"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Valor"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } #endregion #region "Conceptos agrupador" while (gonext) { cindex = cindex + 1; int CveConcepto; string Concepto = ""; string Codigo = ""; string importe = ""; rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); DataRow rowconcept; rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='P'", OrdenP), "Orden"); bool continuarconcepto = rowconcept != null; while (continuarconcepto) { double sumaimporte = dtempleadosConceptos.SUM("Importe", string.Format("CvePersonal > 0 AND CveSubProyecto={0} AND CveConcepto={1} AND Importe <> 0", CveSubProyecto, rowconcept["CveConcepto"])); OrdenP = rowconcept["Orden"].ToString().ToEntero(); if (sumaimporte != 0) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", sumaimporte); Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); continuarconcepto = false; } else { rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='P'", OrdenP), "Orden"); continuarconcepto = rowconcept != null; } } //while (rowconcept == null || importe == "") //{ // double sumaimporte = dtempleadosConceptos.SUM("Importe", string.Format("CveSubProyecto={0} AND CveConcepto={1} AND Importe <> 0", CveSubProyecto, rowconcept["CveConcepto"])); // OrdenP = rowconcept["Orden"].ToString().ToEntero(); // if (sumaimporte > 0) // { // CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); // importe = string.Format("${0:N2}", sumaimporte); // Concepto = rowconcept["Concepto"].ToString(); // Codigo = rowconcept["Codigo"].ToString(); // } //} if (importe == "") { gonext = false; } //percepciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } CveConcepto = 0; Concepto = ""; importe = ""; Codigo = ""; rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='D'", ordenD), "Orden"); continuarconcepto = rowconcept != null; while (continuarconcepto) { double sumaimporte = dtempleadosConceptos.SUM("Importe", string.Format("CvePersonal > 0 AND CveSubProyecto={0} AND CveConcepto={1} AND Importe <> 0", CveSubProyecto, rowconcept["CveConcepto"])); ordenD = rowconcept["Orden"].ToString().ToEntero(); if (sumaimporte != 0) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", sumaimporte); Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); continuarconcepto = false; } else { rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='D'", ordenD), "Orden"); continuarconcepto = rowconcept != null; } } if (importe != "") { gonext = true; } //deducciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } } #endregion { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Percepciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("SumaPercepciones", string.Format(" CvePersonal > 0 AND CveSubProyecto={0}", CveSubProyecto)))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Deducciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("SumaDeducciones", string.Format("CvePersonal > 0 AND CveSubProyecto={0}", CveSubProyecto)))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } //no empleados { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total de empleados"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("{0:N0}", dtempleados.COUNT("CvePersonal", string.Format("CvePersonal > 0 AND CveSubProyecto={0}", CveSubProyecto)))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; } } //Neto depto { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Neto del Centro de costos"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("Total", string.Format("CvePersonal > 0 AND CveSubProyecto={0}", CveSubProyecto)))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } setborderclear(tconeptos); keeptablesamepage(sobrereciboTable); } #endregion } paragraphh = new GemBox.Document.Paragraph(document, "TOTAL "); paragraphh.ParagraphFormat.Style = styilostrong; section.Blocks.Add(paragraphh); #region "total" { sobrereciboTable = new GemBox.Document.Tables.Table(document); sobrereciboTable.TableFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(100, GemBox.Document.Tables.TableWidthUnit.Percentage); section.Blocks.Add(sobrereciboTable); row = new GemBox.Document.Tables.TableRow(document); sobrereciboTable.Rows.Add(row); var cell = new GemBox.Document.Tables.TableCell(document); row.Cells.Add(cell); tconeptos = new GemBox.Document.Tables.Table(document); tconeptos.TableFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(100, GemBox.Document.Tables.TableWidthUnit.Percentage); cell.Blocks.Add(tconeptos); GemBox.Document.Tables.TableRow rowx; GemBox.Document.Tables.TableCell cellx; //Percepción Valor Importe Deducción Valor Importe bool gonext = true; int cindex = 0; int OrdenP = -999; int ordenD = -999; //Titulos { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Percepción"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Valor"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Deducción"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Valor"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } //conceptos percep,deduc while (gonext) { cindex = cindex + 1; int CveConcepto; string Concepto = ""; string Codigo = ""; string importe = ""; rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); DataRow rowconcept; while ((rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='P'", OrdenP), "Orden")) != null && importe == "") { double sumaimporte = dtempleadosConceptos.SUM("Importe", string.Format("CvePersonal > 0 AND CveConcepto={0}", rowconcept["CveConcepto"])); OrdenP = rowconcept["Orden"].ToString().ToEntero(); if (sumaimporte != 0) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", sumaimporte); Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); } } if (importe == "") { gonext = false; } //percepciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } CveConcepto = 0; Concepto = ""; importe = ""; Codigo = ""; while ((rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='D'", ordenD), "Orden")) != null && importe == "") { double sumaimporte = dtempleadosConceptos.SUM("Importe", string.Format("CvePersonal > 0 AND CveConcepto={0}", rowconcept["CveConcepto"])); ordenD = rowconcept["Orden"].ToString().ToEntero(); if (sumaimporte != 0) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", sumaimporte); Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); } } if (importe != "") { gonext = true; } //deducciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); } //Totales perceciones deducciones { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Percepciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("SumaPercepciones", "CvePersonal > 0 "))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Deducciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("SumaDeducciones", "CvePersonal > 0 "))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total de empleados general"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("{0:N0}", dtempleados.COUNT("CvePersonal", "CvePersonal > 0"))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; } } //neto empresa { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Neto general"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("Total","CvePersonal > 0"))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } gonext = true; int OrdenO = -999; //basura para espacio { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, " "); cellx.Blocks.Add(paragraphh); } rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, " "); cellx.Blocks.Add(paragraphh); } } rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Obligación"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Importe"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } while (gonext) { cindex = cindex + 1; int CveConcepto; string Concepto = ""; string Codigo = ""; string importe = ""; rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.ColumnSpan = 2; paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; //cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); //cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); //paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; //paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } } DataRow rowconcept; while ((rowconcept = dtConceptos.FiltroPrimero(string.Format("Orden>{0} AND SoloVisible =0 AND Tipo ='O'", OrdenO), "Orden")) != null && importe == "") { double sumaimporte = dtempleadosConceptos.SUM("Valor", string.Format("CvePersonal > 0 AND CveConcepto={0}", rowconcept["CveConcepto"])); OrdenO = rowconcept["Orden"].ToString().ToEntero(); if (sumaimporte != 0) { CveConcepto = rowconcept["CveConcepto"].ToString().ToEntero(); importe = string.Format("${0:N2}", sumaimporte); Concepto = rowconcept["Concepto"].ToString(); Codigo = rowconcept["Codigo"].ToString(); } } if (importe == "") { gonext = false; } //Obligaciones { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Codigo); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, Concepto); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, importe); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; } } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); } { rowx = new GemBox.Document.Tables.TableRow(document); tconeptos.Rows.Add(rowx); { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, " "); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } { cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(3, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(30, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, "Total Obligaciones"); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(6, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, ""); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilo; cellx = new GemBox.Document.Tables.TableCell(document); rowx.Cells.Add(cellx); cellx.CellFormat.PreferredWidth = new GemBox.Document.Tables.TableWidth(11, GemBox.Document.Tables.TableWidthUnit.Percentage); paragraphh = new GemBox.Document.Paragraph(document, string.Format("${0:N2}", dtempleados.SUM("SumaObligaciones"))); cellx.Blocks.Add(paragraphh); paragraphh.ParagraphFormat.Alignment = GemBox.Document.HorizontalAlignment.Right; paragraphh.ParagraphFormat.Style = styilostrong; } } setborderclear(tconeptos); keeptablesamepage(tconeptos); keeptablesamepage(sobrereciboTable); } #endregion GemDocumen.SustituirTags(listaTags); GemDocumen.GuardarStreamPDF(); System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(GemDocumen.GetBytesDocumento()); GemDocumen.Dispose(); Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", $"attachment;filename=Lista de Raya.pdf"); Response.Buffer = true; memoryStream.WriteTo(Response.OutputStream); Response.End(); } catch (Exception e) { Extensiones.ModExtensiones.GuardaLog(string.Format("Nomina2(errorLayout):{0} ", e.ToString())); Alert("No se pudo generar la lista de raya favor de contactar a soporte tecnico.", Extensiones.ModExtensiones.TipoMensaje.ToastError); RegistraScript(string.Format("console.error('Nomina2(errorLayout):{0}'); ", e.ToString().Replace("'", "\\'"))); } } else { Alert("No se encontro la plantilla.", Extensiones.ModExtensiones.TipoMensaje.ToastAdventencia); } } else { Alert("es necesario calcular el periodo primero.", Extensiones.ModExtensiones.TipoMensaje.ToastAdventencia); } } #region "Gembox" private void keeptablesamepage(GemBox.Document.Tables.Table table) { //Mantener tabla unida { // Get all Paragraph formats in a Table element. IEnumerable formats = table.GetChildElements(true, GemBox.Document.ElementType.TableCell) .Cast() .SelectMany(cell => { if (cell.Blocks.Count == 0) cell.Blocks.Add(new GemBox.Document.Paragraph(cell.Document)); return cell.GetChildElements(true, GemBox.Document.ElementType.Paragraph); }) .Cast() .Select(p => p.ParagraphFormat); // Set KeepLinesTogether and KeepWithNext properties. foreach (GemBox.Document.ParagraphFormat format in formats) { format.KeepLinesTogether = true; format.KeepWithNext = true; } } } private void setborderclear(GemBox.Document.Tables.Table table) { table.TableFormat.Borders.SetBorders(GemBox.Document.MultipleBorderTypes.All, GemBox.Document.BorderStyle.None, GemBox.Document.Color.Empty, 0); foreach (var row in table.Rows) { foreach (var cell in row.Cells) { cell.CellFormat.Borders.ClearBorders(); } } } #endregion protected void LnkListaRaya_Click(object sender, EventArgs e) { ImprimirReporte(); } #region Movtos Permanentes protected void CargaTipoConcepto() { //DdlTipo.Items.Insert(0, new ListItem("Percepciones", "P")); //DdlTipo.Items.Insert(1, new ListItem("Deducciones", "D")); //DdlTipo.Items.Insert(2, new ListItem("Obligaciones", "O")); //DdlTipo.SelectedValueExist("-1"); CargaConcepto(); } protected void CargaConcepto() { DdlConcepto.Items.Clear(); if (DdlTipo.SelectedValue == "-1") { DdlConcepto.DataSource = get_GlobalDTNomConceptos(UsuarioActual.CveEmpresa); } else { DdlConcepto.DataSource = get_GlobalDTNomConceptos(UsuarioActual.CveEmpresa).FiltraParametros(string.Format("Tipo ='{0}'", DdlTipo.SelectedValue)); } DdlConcepto.DataBind(); DdlConcepto.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlConcepto.SelectedValueExist("-1"); } private void CargaMovtoPermanente() { using (ClsNominas ObjMovt = new ClsNominas()) { ObjMovt.GetMovtoPermanente(UsuarioActual.CveEmpresa, SRCvePersonal); GVMovtoPermanente.DataSource = ObjMovt.DtResultados; } GVMovtoPermanente.DataBind(); UpMovtosPermanentes.Update(); } protected void DdlTipo_SelectedIndexChanged(object sender, EventArgs e) { CargaConcepto(); } protected void LnkAddMovtoPermanente_Click(object sender, EventArgs e) { CargaConcepto(); DdlTipoDescto_SelectedIndexChanged(null, null); pnlAddupMovto.Visible = true; LnkAddMovto.Visible = true; LnkUpMovto.Visible = false; LtlMovtoPermanenteaddup.Text = "Agregar Movimiento"; TxtDescripcion.Text = ""; TxtValor.Text = ""; TxtVecesAplicar.Text = ""; TxtMontoLimite.Text = ""; TxtFechaAplicacion.Text = ""; ChkEstatus.Visible = true; } protected void LnkAddMovto_Click(object sender, EventArgs e) { int cveConcepto = DdlConcepto.SelectedValue.ToEntero(); string descripcion = TxtDescripcion.Text; int tipoDescuento = DdlTipoDescto.SelectedValue.ToEntero(); double valor = TxtValor.Text.ToDouble(); int vecesAplicar = TxtVecesAplicar.Text.ToEntero(); decimal montoLimite = TxtMontoLimite.Text.ToDecimal(); string fechaInicioAplicacion = TxtFechaAplicacion.Text.ToDate().ToString("yyyy/MM/dd"); bool estatus = ChkEstatus.Checked; bool Continuar; using (ClsNominas ObjMovt = new ClsNominas()) { Continuar = ObjMovt.AddMovtoPermanente(cveConcepto, SRCvePersonal, descripcion, tipoDescuento, valor, vecesAplicar, montoLimite, fechaInicioAplicacion, estatus); } if (Continuar) { this.RegistraScript("$('#DModalMovtoPermanente').modal('hide');"); CargaMovtoPermanente(); UpMovtosPermanentes.Update(); this.Alert("El Movto_Permanente Se ha agregado"); } } protected void LnkUpMovto_Click(object sender, EventArgs e) { int cveConcepto = DdlConcepto.SelectedValue.ToEntero(); string descripcion = TxtDescripcion.Text; int tipoDescuento = DdlTipoDescto.SelectedValue.ToEntero(); double valor = TxtValor.Text.ToDouble(); int vecesAplicar = TxtVecesAplicar.Text.ToEntero(); decimal montoLimite = TxtMontoLimite.Text.ToDecimal(); string fechaInicioAplicacion = TxtFechaAplicacion.Text.ToDate().ToString("yyyy/MM/dd"); bool estatus = ChkEstatus.Checked; bool Continuar; using (ClsNominas ObjMovt = new ClsNominas()) { Continuar = ObjMovt.UpMovtoPermanente(CcveMovtoPermanente, cveConcepto, SRCvePersonal, descripcion, tipoDescuento, valor, vecesAplicar, montoLimite, fechaInicioAplicacion, estatus); } if (Continuar) { this.RegistraScript("$('#DModalMovtoPermanente').modal('hide');"); CargaMovtoPermanente(); UpMovtosPermanentes.Update(); this.Alert("El Movto_Permanente Se ha agregado"); } } protected void DdlTipoDescto_SelectedIndexChanged(object sender, EventArgs e) { pnlMonto.Visible = DdlTipoDescto.SelectedValue.ToEntero() > 2; pnlVecesAplicar.Visible = DdlTipoDescto.SelectedValue.ToEntero() < 3; } protected void LnkEditarMovtoPermanente_Click(object sender, EventArgs e) { GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); CcveMovtoPermanente = gvRow.DataKey("CveMovtoPermanente").ToEntero(); int cveConcepto = gvRow.DataKey("CveConcepto").ToEntero(); int cvePersonal = gvRow.DataKey("CvePersonal").ToEntero(); string descripcion = gvRow.DataKey("Descripcion"); int tipoDescuento = gvRow.DataKey("TipoDescuento").ToEntero(); double valor = gvRow.DataKey("Valor").ToDouble(); int vecesAplicar = gvRow.DataKey("VecesAplicar").ToEntero(); decimal montoLimite = gvRow.DataKey("MontoLimite").ToDecimal(); DateTime fechaInicioAplicacion = gvRow.DataKey("FechaInicioAplicacion").ToDate(); bool estatus = gvRow.DataKey("Estatus") == "1" || gvRow.DataKey("Estatus").ToUpper() == "TRUE"; DateTime fechaRegistro = gvRow.DataKey("FechaRegistro").ToDateTime(); string tipo = "P"; DataRow drow = get_GlobalDTNomConceptos(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("Tipo ='{0}'", cveConcepto)); if (drow != null) { tipo = drow["Tipo"].ToString(); DdlTipo.SelectedValueExist(tipo); DdlTipo_SelectedIndexChanged(null, null); } DdlConcepto.SelectedValueExist(cveConcepto); TxtDescripcion.Text = descripcion.ToString(); DdlTipoDescto.SelectedValueExist(tipoDescuento.ToString()); DdlTipoDescto_SelectedIndexChanged(null, null); TxtValor.Text = valor.ToString(); TxtVecesAplicar.Text = vecesAplicar.ToString(); TxtMontoLimite.Text = montoLimite.ToString(); TxtFechaAplicacion.Text = $"{fechaInicioAplicacion:dd/MM/yyyy}"; ChkEstatus.Checked = estatus; this.RegistraScript("$('#DModalMovtoPermanente').modal();"); pnlAddupMovto.Visible = true; LnkAddMovto.Visible = false; LnkUpMovto.Visible = true; UpMovtosPermanentes.Update(); } #endregion protected void LnkGuardarFonacot_Click(object sender, EventArgs e) { double importe = TxtFonValor.Text.ToDouble(); int TipoAplicacion = DdlFonTipoAplicacion.SelectedValue.ToEntero(); int NoPagos = 0; double SaldoIni = 0; string descripcion02 = TxtFonDescripcion.Text; string descripcion01 = TxtFonNumCredito.Text; string fecha = TxtFonFechaInicio.Text.Replace("_", ""); int estatus = ChkFonacot.Checked ? 1 : 0; if (fecha.Length > 8) fecha = fecha.ToDateTime().ToString("yyyy/MM/dd"); else fecha = ""; bool continuar = true; using (ClsRH ObjPersonal = new ClsRH()) { if (!ObjPersonal.AddConcepto(SRCvePersonal, -1, importe, TipoAplicacion, NoPagos, SaldoIni, UsuarioActual.CveUsuario, 4, descripcion01, descripcion02, fecha, "", estatus, UsuarioActual.CveEmpresa)) continuar = false; } if (continuar) { LnkConsultar_Click(null, null); mostrarConceptos(); Alert("Se actualizo el calculo de fonacot"); } } protected void LnkAutorizar_Click(object sender, EventArgs e) { autorizarNomina(-1); } private void autorizarNomina(int FiltroCvePersonal) { bool continuar = true; string[] getcolumnas = new string[] { "CvePersonal", "CveMetodoPago", "SumaPercepciones", "Total", "SalarioDiario", "SalarioDiarioIMSS", "SalarioDiarioIntegrado", "DiasLaborados", "DiasFaltados", "DiasVacaciones", "DiasIncapacidad" }; DataTable dtr = dtempleados.FiltraParametros(string.Format("(CvePersonal={0} OR {0}=-1) AND CvePersonal > 0 AND NomAutorizado =0", FiltroCvePersonal), "", getcolumnas); DataTable dtconp = null; int CvePeriodoSeleccionado = DdlPeriodo.SelectedValue.ToEntero();//cambiar reparar #region PropNomina int CvePersonal = 0; int CveNomina = 0; int CveMetodoPago = 0; double SubTotal = 0; double Total = 0; int CveMoneda = 1; #endregion #region PropNominaDetalle int CveConcepto = 0; decimal ImporteConcepto = 0, ImporteGravadoConcepto = 0, ImporteExentoConcepto = 0, ImporteValor = 0; #endregion using (ClsNominas objNomina = new ClsNominas()) { objNomina.IniciaTransacSQL(); foreach (DataRow rtemp in dtr.Rows) { CveNomina = 0; CvePersonal = rtemp["CvePersonal"].ToString().ToEntero(); CveMetodoPago = rtemp["CveMetodoPago"].ToString().ToEntero(); SubTotal = rtemp["SumaPercepciones"].ToString().ToDouble(); Total = rtemp["Total"].ToString().ToDouble(); if (CvePersonal > 0) { if (continuar) { if (objNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa)) { if (objNomina.DtResultados.Rows.Count > 0) { CveNomina = objNomina.CveNomina; } else { if (objNomina.AddNom_Nominas(-1, 1, CvePersonal, CvePeriodoSeleccionado, SubTotal, 0, 0, Total, CveMoneda, 1, CveMetodoPago, DateTime.Now, "Deducciones nómina", "", "", "", "", 0, 0, 0, new DateTime(), new DateTime(), new DateTime(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) { CveNomina = objNomina.CveNomina; } else { continuar = false; } } } } if (CveNomina == 0) { continuar = false; } if (continuar) { dtconp = dtempleadosConceptos.FiltraParametros(string.Format("CvePersonal={0} AND Importe<>0", CvePersonal)); foreach (DataRow rcon in dtconp.Rows) { CveConcepto = rcon["CveConcepto"].ToString().ToEntero(); ImporteConcepto = rcon["Importe"].ToString().ToDecimal(); ImporteGravadoConcepto = rcon["ImporteGravado"].ToString().ToDecimal(); ImporteExentoConcepto = ImporteConcepto - ImporteGravadoConcepto; ImporteValor = rcon["Valor"].ToString().ToDecimal(); if (continuar) { if (!objNomina.AddUPNom_NominasDetalles(CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, ImporteConcepto, ImporteGravadoConcepto, ImporteExentoConcepto, ImporteValor, UsuarioActual.CveUsuario)) { continuar = false; } } } } if (continuar) { decimal SalarioDiario = rtemp["SalarioDiario"].ToString().ToEntero(); decimal SalarioDiarioIMSS = rtemp["SalarioDiarioIMSS"].ToString().ToEntero(); decimal SalarioDiarioIntegrado = rtemp["SalarioDiarioIntegrado"].ToString().ToEntero(); int DiasLaborados = rtemp["DiasLaborados"].ToString().ToEntero(); int DiasFaltados = rtemp["DiasFaltados"].ToString().ToEntero(); int DiasVacaciones = rtemp["DiasVacaciones"].ToString().ToEntero(); int DiasIncapacidad = rtemp["DiasIncapacidad"].ToString().ToEntero(); continuar = objNomina.PA_Nom_NominasAutorizarUP(CvePersonal, CvePeriodoSeleccionado, SalarioDiario, SalarioDiarioIMSS, SalarioDiarioIntegrado, 0, 0, Total, SubTotal, DiasLaborados, DiasFaltados, DiasVacaciones, DiasIncapacidad); } } } if (continuar) { continuar = objNomina.AutorizaNom_Nominas(-1, CvePeriodoSeleccionado, true); } if (continuar) { objNomina.Commit(); Alert("La nomina se autorizó correctamente."); cargaDatos(); } else { objNomina.RollBack(); } } if (dtr != null) { dtr.Dispose(); } if (dtconp != null) { dtconp.Dispose(); } } protected void LnkCargaAsistenciaMasiva_Click(object sender, EventArgs e) { RegistraScript("$('#DModalCargaASistenciaMasiva').modal();"); } protected void LnkCargarAsistenciaMasiva_Click(object sender, EventArgs e) { using (ClsRH ObjPersonal = new ClsRH()) { ObjPersonal.IniciaTransacSQL(); bool OcurrioError = false; if (!ObjPersonal.AddAsistenciaMasiva2(DdlPeriodoCM.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) OcurrioError = true; if (OcurrioError) { ObjPersonal.RollBack(); Alert("Ocurrió un error al guardar las Asistencias.", ModExtensiones.TipoMensaje.MsgError); } else { ObjPersonal.Commit(); Alert("Las Asistencias se guardaron correctamente.", ModExtensiones.TipoMensaje.ToastInformacion); } } } private void cargaPeriodosCM() { int tipoPeriodo = DdlTipoPeriodoCM.SelectedValue.ToEntero(); int ejercicio = DdlEjerciciosCM.SelectedValue.ToEntero(); DataTable dtPeriodos = null; if (tipoPeriodo > 0) { using (ClsNominas objperiodos = new ClsNominas()) { if (objperiodos.GetPeriodos(tipoPeriodo, UsuarioActual.CveEmpresa, ejercicio, -1, -1)) { dtPeriodos = objperiodos.DtResultados; } } } DdlPeriodoCM.DataSource = dtPeriodos; DdlPeriodoCM.DataBind(); DdlPeriodoCM.Items.Insert(0, new ListItem("Seleccione", "-1")); UpModalAsistenciaMasiva.Update(); } protected void DdlEjerciciosCM_SelectedIndexChanged(object sender, EventArgs e) { cargaPeriodosCM(); } protected void DdlTipoPeriodoCM_SelectedIndexChanged(object sender, EventArgs e) { cargaPeriodosCM(); } protected void LnkGuardarASistencia_Click(object sender, EventArgs e) { int CvePersonal = TxtasiscvePersonal.Text.ToEntero(); DateTime fecha = TxtasisFecha.Text.ToDate(); using (ClsRH objpersonal = new ClsRH()) { if (objpersonal.AddAsistencia(CvePersonal, -1, -1, fecha, DdlTipoAsistencias.SelectedValue.ToEntero(), TxtPorPago.Text.Trim().ToDouble(), TxtHorasDobles.Text.Trim().ToDouble(), TxtHorasTriples.Text.Trim().ToDouble(), DdlMotivoHoraExtra.SelectedValue.ToEntero(), TxtObservaciones.Text.Trim(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) { } Alert("se ha guardado la asistencia satisfactoriamente"); } } protected void btnasis_Click(object sender, EventArgs e) { int CvePersonal = TxtasiscvePersonal.Text.ToEntero(); DateTime fecha = TxtasisFecha.Text.ToDate(); DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal={0}", CvePersonal)); TxtPersonal.Text = drow["nombre"].ToString(); if (DdlTipoAsistencias.Items.Count == 1) { DdlTipoAsistencias.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)); DdlTipoAsistencias.DataBind(); } if (DdlMotivoHoraExtra.Items.Count == 1) { DdlMotivoHoraExtra.DataSource = GlobalDTMotivosHorasExtras.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)); DdlMotivoHoraExtra.DataBind(); } using (ClsRH objpersonal = new ClsRH()) { if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, fecha, fecha, UsuarioActual.CveEmpresa)) { if (objpersonal.DtResultados.Rows.Count > 0) { DataRow dr = objpersonal.DtResultados.Rows[0]; DdlTipoAsistencias.SelectedValueExist(dr["CveAsistenciasInasistencias"].ToString()); TxtPorPago.Text = dr["PorcentajePago"].ToString(); TxtHorasDobles.Text = dr["HorasDobles"].ToString(); TxtHorasTriples.Text = dr["HorasTriples"].ToString(); DdlMotivoHoraExtra.SelectedValueExist(dr["CveMotivoHoraExtra"].ToString()); TxtPorPago.Text = dr["Observacion"].ToString(); // CveAsistenciasInasistencias // PorcentajePago // HorasDobles // HorasTriples //CveMotivoHoraExtra //Observacion // } } } RegistraScript("$('#DModalModAsistencia').modal();"); } protected void LnkSimulador_Click(object sender, EventArgs e) { GvConceptossimulador.DataSource = new DataTable(); GvConceptossimulador.DataBind(); RegistraScript("$('#DSimulador').modal()"); UpSimulador.Update(); } protected void LnkSimularXNeto_Click(object sender, EventArgs e) { int CveProyecto = -1; int CveSubProyecto = 1; int CveTurno = -1; int CvePeriodo = 12551; int CveEmpresa = UsuarioActual.CveEmpresa; int Agrupador = -1; decimal Neto = TxtNetoaPagar.Text.ToDecimal(); decimal NetoSimulado = 0; decimal SDI = (Neto * 1.25M) / 15; decimal SDIOLD = 0; decimal sumador = 100; decimal multiplicador = 1; bool ismayor = false; bool isfirst = true; bool continuarV = true; DataTable dtPeriodo = new DataTable(); DataTable dtasistencia = new DataTable(); DataTable dtConceptos = new DataTable(); DataTable dtempleados = new DataTable(); DataTable dtempleadosConceptos = new DataTable(); bool continuar = false; using (ClsNominas objnom = new ClsNominas()) { while (Neto != NetoSimulado && continuarV) { if (objnom.GetNominaEmpleadoSimulador(CveProyecto, CveSubProyecto, CveTurno, CvePeriodo, CveEmpresa, Agrupador, SDI) && objnom.DTSetResultados.Tables.Count > 1) { dtempleados = objnom.DTSetResultados.Tables[3]; dtempleadosConceptos = objnom.DTSetResultados.Tables[4]; dtConceptos = objnom.DTSetResultados.Tables[0]; dtPeriodo = objnom.DTSetResultados.Tables[1]; dtasistencia = objnom.DTSetResultados.Tables[2]; continuar = true; NetoSimulado = dtempleados.SUM("Total", string.Format("CvePersonal = {0}", 1)).ToString().ToDecimal(); } if (continuar) { if (isfirst) { if (Neto > NetoSimulado) { ismayor = true; } else { ismayor = false; } isfirst = false; } else { if (!((Neto > NetoSimulado) == ismayor)) { SDI = SDIOLD; sumador = sumador * 0.1M; if (sumador < .00000001M) { continuarV = false; } } } multiplicador = (Neto > NetoSimulado) ? 1 : -1; SDIOLD = SDI; SDI = SDI + (multiplicador * sumador); } else { continuarV = false; } } } if (continuar) { { DataTable dtper = dtConceptos.FiltraParametros("Tipo IN ('P') AND EsPadre = 1 "); DataTable dtded = dtConceptos.FiltraParametros("Tipo IN ('D') AND EsPadre = 1 "); DataTable dtObl = dtConceptos.FiltraParametros("Tipo IN ('O') AND EsPadre = 1 "); dtper.Columns.Add("BorradoLogico", typeof(int)); dtded.Columns.Add("BorradoLogico", typeof(int)); dtObl.Columns.Add("BorradoLogico", typeof(int)); foreach (DataRow row in dtper.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtper.AcceptChanges(); foreach (DataRow row in dtded.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtded.AcceptChanges(); foreach (DataRow row in dtObl.Rows) { int BorradoLogico = 0; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); if (!(dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0)) { BorradoLogico = 1; } row["BorradoLogico"] = BorradoLogico; } dtObl.AcceptChanges(); dtper = dtper.FiltraParametros("BorradoLogico=0"); dtded = dtded.FiltraParametros("BorradoLogico=0"); dtObl = dtObl.FiltraParametros("BorradoLogico=0"); int maxper = dtper.Rows.Count; int maxded = dtded.Rows.Count; int maxObl = dtObl.Rows.Count; int i = 0; List lconc = new List(); for (i = 0; i < maxper || i < maxded || i < maxObl; i++) { NConcepto nConcepto = new NConcepto(); DataRow row; if (maxper > i) { row = dtper.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", 1)); nConcepto.CveConceptoP = CveConcepto; nConcepto.ConceptoP = Concepto; nConcepto.NoConceptoP = Codigo; nConcepto.ImporteP = Importe; nConcepto.ValorP = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", 1)); } if (maxded > i) { row = dtded.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", 1)); nConcepto.CveConceptoD = CveConcepto; nConcepto.ConceptoD = Concepto; nConcepto.NoConceptoD = Codigo; nConcepto.ImporteD = Importe; nConcepto.ValorD = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", 1)); } if (maxObl > i) { row = dtObl.Rows[i]; int CveConcepto = row["CveConcepto"].ToString().ToEntero(); string Concepto = row["Concepto"].ToString(); string Codigo = row["Codigo"].ToString(); //bool visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) > 0); double Importe = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), string.Format("CvePersonal = {0}", 1)); nConcepto.CveConceptoO = CveConcepto; nConcepto.ConceptoO = Concepto; nConcepto.NoConceptoO = Codigo; nConcepto.ImporteO = Importe; nConcepto.ValorO = dtempleados.SUM(string.Format("[VAL_{0}]", CveConcepto), string.Format("CvePersonal = {0}", 1)); } lconc.Add(nConcepto); } lconc.Add(new NConcepto()); NConcepto SubTotales = new NConcepto(); SubTotales.CveConceptoP = 0; SubTotales.ConceptoP = "Total Percepciones"; SubTotales.EstatusP = -2; SubTotales.ImporteP = dtempleados.SUM("SumaPercepciones", string.Format("CvePersonal = {0}", 1)); ///Alert(SubTotales.ImporteP.ToString()); SubTotales.CveConceptoD = 0; SubTotales.ConceptoD = "Total Deducciones"; SubTotales.EstatusD = -2; SubTotales.ImporteD = dtempleados.SUM("SumaDeducciones", string.Format("CvePersonal = {0}", 1)); SubTotales.CveConceptoD = 0; SubTotales.ConceptoO = "Total Obligaciones"; SubTotales.EstatusO = -2; SubTotales.ImporteO = dtempleados.SUM("SumaObligaciones", string.Format("CvePersonal = {0}", 1)); //NConcepto Totales = new NConcepto(); //Totales.CveConceptoD = 0; //Totales.ConceptoD = "Total"; //Totales.EstatusD = -3; //Totales.ImporteD = dtempleados.SUM("Total", string.Format("CvePersonal = {0}", 1)); lconc.Add(SubTotales); //lconc.Add(Totales); GvConceptossimulador.DataSource = lconc; GvConceptossimulador.DataBind(); } } UpSimulador.Update(); } protected void DdlTipoPeriodoSim_SelectedIndexChanged(object sender, EventArgs e) { } protected void LnkDownArchivosSua_Click(object sender, EventArgs e) { TxtFechaInicio.Text = DateTime.Now.AddDays(DateTime.Now.Day - 1).ToString("dd/MM/yyy"); TXTFechaFin.Text = DateTime.Now.AddDays(DateTime.Now.Day - 1).AddMonths(1).AddDays(-1).ToString("dd/MM/yyy"); RegistraScript("$('#DmodalGetSua').modal();"); UpModalGetSUA.Update(); } protected void LnkGetTxtsSUA_Click(object sender, EventArgs e) { string concater = ""; string MovtosAfil = ""; string MovtosmodSalario = ""; string movtosBajas = ""; using (ClsRH ObjPersonal = new ClsRH()) { if (ObjPersonal.GetMovimientosToSUA(UsuarioActual.CveEmpresa, TxtFechaInicio.Text.ToDate().ToString("yyyy/MM/dd"), TXTFechaFin.Text.ToDate().ToString("yyyy/MM/dd"))) { //01: MovtosAfil concater = ""; foreach (var item in ObjPersonal.DtResultados.Select("Tipo=1")) { MovtosAfil = string.Format("{0}{1}{2}", MovtosAfil, concater, item["Movtotxt"]); concater = "\\r\\n"; } //02: MovtosmodSalario concater = ""; foreach (var item in ObjPersonal.DtResultados.Select("Tipo=2")) { MovtosmodSalario = string.Format("{0}{1}{2}", MovtosmodSalario, concater, item["Movtotxt"]); concater = "\\r\\n"; } //03: movtosBajas concater = ""; foreach (var item in ObjPersonal.DtResultados.Select("Tipo=3")) { movtosBajas = string.Format("{0}{1}{2}", movtosBajas, concater, item["Movtotxt"]); concater = "\\r\\n"; } } RegistraScript(string.Format("SaveCsv(\"MovtosAfil.txt\", '{0}');SaveCsv(\"MovtosmodSalario.txt\", '{1}');SaveCsv(\"movtosBajas.txt\", '{2}');", MovtosAfil.Replace("'", "\\'"), MovtosmodSalario.Replace("'", "\\'"), movtosBajas.Replace("'", "\\'"))); RegistraScript("$('#DmodalGetSua').modal('hide');"); } } protected void LnkUpSuamodal_Click(object sender, EventArgs e) { TxtArchivoSua.Text = ""; GVProcesarSUA.DataSource = null; GVProcesarSUA.DataBind(); RegistraScript("$('#DmodalCompareSua').modal();shownew();"); UpArchivoSua.Update(); } protected void LnkUpSuaFile_Click(object sender, EventArgs e) { string fileurl = ""; GVProcesarSUA.DataSource = null; Files archivos = TxtArchivoSua.getfiles(); if (archivos.Archivos.Count > 0) { fileurl = archivos.Archivos[0].FileUrl; string SuaFiletext = System.IO.File.ReadAllText(fileurl, Encoding.GetEncoding("iso-8859-1")); using (ClsNominas ObjPersonal = new ClsNominas()) { if (ObjPersonal.ProcesarSUA(SuaFiletext, UsuarioActual.CveEmpresa)) { if (ObjPersonal.DTSetResultados.Tables.Count > 4) { DateTime dateperiodo; DateTime.TryParseExact(string.Format("{0}01", ObjPersonal.DTSetResultados.Tables[1].Rows[0]["Periodo"]), "yyyyMMdd", new System.Globalization.CultureInfo("es-MX"), System.Globalization.DateTimeStyles.None, out dateperiodo); LtlPeriodo.Text = dateperiodo.Date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("es-MX")); DtSuaProcesado = ObjPersonal.DTSetResultados.Tables[3]; GVProcesarSUA.DataSource = ObjPersonal.DTSetResultados.Tables[3]; } } } } GVProcesarSUA.DataBind(); TxtArchivoSua.Text = ""; RegistraScript("showResult();"); UpArchivoSua.Update(); } protected void GVProcesarSUA_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string SalarioSUA = string.Format("{0:N2}", e.Row.DataKey("SalarioSUA").ToDecimal()); string SalarioSIG = string.Format("{0:N2}", e.Row.DataKey("SalarioSIG").ToDecimal()); int celda = 1; if (SalarioSUA != SalarioSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string CuotaFijaSUA = string.Format("{0:N2}", e.Row.DataKey("CuotaFijaSUA").ToDecimal()); string CuotaFijaSIG = string.Format("{0:N2}", e.Row.DataKey("CuotaFijaSIG").ToDecimal()); if (CuotaFijaSUA != CuotaFijaSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string CuotaExcedenteSUA = string.Format("{0:N2}", e.Row.DataKey("CuotaExcedenteSUA").ToDecimal()); string CuotaExcedenteSIG = string.Format("{0:N2}", e.Row.DataKey("CuotaExcedenteSIG").ToDecimal()); if (CuotaExcedenteSUA != CuotaExcedenteSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string PrestacionesDineroSUA = string.Format("{0:N2}", e.Row.DataKey("PrestacionesDineroSUA").ToDecimal()); string PrestacionesSIG = string.Format("{0:N2}", e.Row.DataKey("PrestacionesSIG").ToDecimal()); if (PrestacionesDineroSUA != PrestacionesSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string GastosMedPenSUA = string.Format("{0:N2}", e.Row.DataKey("GastosMedPenSUA").ToDecimal()); string GastosMedicosSIG = string.Format("{0:N2}", e.Row.DataKey("GastosMedicosSIG").ToDecimal()); if (GastosMedPenSUA != GastosMedicosSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string RiesgosdeTrabajoSUA = string.Format("{0:N2}", e.Row.DataKey("RiesgosdeTrabajoSUA").ToDecimal()); string RiesgoTrabajoSIG = string.Format("{0:N2}", e.Row.DataKey("RiesgoTrabajoSIG").ToDecimal()); if (RiesgosdeTrabajoSUA != RiesgoTrabajoSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string InvalidezyVidaSUA = string.Format("{0:N2}", e.Row.DataKey("InvalidezyVidaSUA").ToDecimal()); string InvalidezyVidaSIG = string.Format("{0:N2}", e.Row.DataKey("InvalidezyVidaSIG").ToDecimal()); if (InvalidezyVidaSUA != InvalidezyVidaSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string GuarderiaSUA = string.Format("{0:N2}", e.Row.DataKey("GuarderiaSUA").ToDecimal()); string GuarderiaSIG = string.Format("{0:N2}", e.Row.DataKey("GuarderiaSIG").ToDecimal()); if (GuarderiaSUA != GuarderiaSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } celda = celda + 2; string RetiroSUA = string.Format("{0:N2}", e.Row.DataKey("RetiroSUA").ToDecimal()); string RetiroSIG = string.Format("{0:N2}", e.Row.DataKey("RetiroSIG").ToDecimal()); if (RetiroSUA != RetiroSIG) { e.Row.Cells[celda].CssClass = "cellFail"; e.Row.Cells[celda + 1].CssClass = "cellFail"; } } } protected void LnkDownExcelSua_Click(object sender, EventArgs e) { ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); var libro = wb.AddWorksheet("SUA"); int Fila = 1; libro.Column(1).Width = 50; ClosedXML.Excel.IXLRange range = libro.Range(Fila, 2, Fila, 3); range.Merge(); range.Value = "Salario"; range = libro.Range(Fila, 4, Fila, 5); range.Merge(); range.Value = "Días"; range = libro.Range(Fila, 6, Fila, 7); range.Merge(); range.Value = "Cuota Fija"; range = libro.Range(Fila, 8, Fila, 9); range.Merge(); range.Value = "Cuota Excedente"; range = libro.Range(Fila, 10, Fila, 11); range.Merge(); range.Value = "Prestaciones en Dinero"; range = libro.Range(Fila, 12, Fila, 13); range.Merge(); range.Value = "Gastos Medicos"; range = libro.Range(Fila, 14, Fila, 15); range.Merge(); range.Value = "Riesgos de Trabajo"; range = libro.Range(Fila, 16, Fila, 17); range.Merge(); range.Value = "Invalidez y Vida"; range = libro.Range(Fila, 18, Fila, 19); range.Merge(); range.Value = "Guarderia"; range = libro.Range(Fila, 20, Fila, 21); range.Merge(); range.Value = "Retiro"; Fila = Fila + 1; libro.Cell(Fila, 1).Value = "Empleado"; libro.Cell(Fila, 2).Value = "SUA"; //SalarioSUA libro.Cell(Fila, 3).Value = "SIG";//SalarioSIG libro.Cell(Fila, 4).Value = "SUA";//CuotaFijaSUA libro.Cell(Fila, 5).Value = "SIG";//CuotaFijaSIG libro.Cell(Fila, 6).Value = "SUA";//CuotaExcedenteSUA libro.Cell(Fila, 7).Value = "SIG";//CuotaExcedenteSIG libro.Cell(Fila, 8).Value = "SUA";//PrestacionesDineroSUA libro.Cell(Fila, 9).Value = "SIG";//PrestacionesSIG libro.Cell(Fila, 10).Value = "SUA";//GastosMedPenSUA libro.Cell(Fila, 11).Value = "SIG";//GastosMedicosSIG libro.Cell(Fila, 12).Value = "SUA";//RiesgosdeTrabajoSUA libro.Cell(Fila, 13).Value = "SIG";//RiesgoTrabajoSIG libro.Cell(Fila, 14).Value = "SUA";//InvalidezyVidaSUA libro.Cell(Fila, 15).Value = "SIG";//InvalidezyVidaSIG libro.Cell(Fila, 16).Value = "SUA";//GuarderiaSUA libro.Cell(Fila, 17).Value = "SIG";//GuarderiaSIG libro.Cell(Fila, 18).Value = "SUA";//RetiroSUA libro.Cell(Fila, 19).Value = "SIG";//RetiroSIG libro.Cell(Fila, 20).Value = "SUA";//RetiroSUA libro.Cell(Fila, 21).Value = "SIG";//RetiroSIG libro.Cell(1, 1).Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Cell(1, 1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); foreach (DataRow erow in DtSuaProcesado.Rows) { Fila++; libro.Cell(Fila, 1).Value = erow["CodigoNombreCompleto"]; libro.Cell(Fila, 2).Value = string.Format("{0:N2}", erow["SalarioSUA"]); libro.Cell(Fila, 3).Value = string.Format("{0:N2}", erow["SalarioSIG"]); libro.Cell(Fila, 4).Value = string.Format("{0:N2}", erow["DiasMes"]); libro.Cell(Fila, 5).Value = string.Format("{0:N2}", erow["DiasAsistio"]); libro.Cell(Fila, 6).Value = string.Format("{0:N2}", erow["CuotaFijaSUA"]); libro.Cell(Fila, 7).Value = string.Format("{0:N2}", erow["CuotaFijaSIG"]); libro.Cell(Fila, 8).Value = string.Format("{0:N2}", erow["CuotaExcedenteSUA"]); libro.Cell(Fila, 9).Value = string.Format("{0:N2}", erow["CuotaExcedenteSIG"]); libro.Cell(Fila, 10).Value = string.Format("{0:N2}", erow["PrestacionesDineroSUA"]); libro.Cell(Fila, 11).Value = string.Format("{0:N2}", erow["PrestacionesSIG"]); libro.Cell(Fila, 12).Value = string.Format("{0:N2}", erow["GastosMedPenSUA"]); libro.Cell(Fila, 13).Value = string.Format("{0:N2}", erow["GastosMedicosSIG"]); libro.Cell(Fila, 14).Value = string.Format("{0:N2}", erow["RiesgosdeTrabajoSUA"]); libro.Cell(Fila, 15).Value = string.Format("{0:N2}", erow["RiesgoTrabajoSIG"]); libro.Cell(Fila, 16).Value = string.Format("{0:N2}", erow["InvalidezyVidaSUA"]); libro.Cell(Fila, 17).Value = string.Format("{0:N2}", erow["InvalidezyVidaSIG"]); libro.Cell(Fila, 18).Value = string.Format("{0:N2}", erow["GuarderiaSUA"]); libro.Cell(Fila, 19).Value = string.Format("{0:N2}", erow["GuarderiaSIG"]); libro.Cell(Fila, 20).Value = string.Format("{0:N2}", erow["RetiroSUA"]); libro.Cell(Fila, 21).Value = string.Format("{0:N2}", erow["RetiroSIG"]); } //libro.Row(2).SetAutoFilter(); System.IO.Stream fs = new System.IO.MemoryStream(); wb.SaveAs(fs); fs.Position = 0; System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); using (System.IO.Stream input = fs) { input.CopyTo(memoryStream); } memoryStream.Position = 0; Response.Clear(); Response.Buffer = true; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "FormatoCargaNominas")); Response.BinaryWrite(memoryStream.ToArray()); Response.End(); } #region Incapacidad private int CcvePersonalIncapacidad { get { return (ViewState["CcvePersonalIncapacidad"] == null) ? 0 : Convert.ToInt32(ViewState["CcvePersonalIncapacidad"]); } set { ViewState["CcvePersonalIncapacidad"] = value; } } protected void CargaPersonalIncapacidad() { LimpiaPersonalIncapacidad(); LnkAgregarIncapacidad.Visible = false; LnkActualizarIncapacidad.Visible = false; CcvePersonalIncapacidad = 0; using (ClsNominas ObjPers = new ClsNominas()) { ObjPers.PersonalIncapacidadGet(-1, SRCvePersonal, UsuarioActual.CveEmpresa); GVNom_PersonalIncapacidad.DataSource = ObjPers.DtResultados; } GVNom_PersonalIncapacidad.DataBind(); UpsrIncapacidadpersonal.Update(); } protected void LimpiaPersonalIncapacidad() { TxtSRINCfolio.Text = ""; TxtSRINCfechaInicio.Text = ""; TxtSRINCdiasAutorizados.Text = ""; DdlSRINCcveTipodeIncidencia.SelectedValue = "-1"; DdlSRINCcveRamoSeguro.SelectedValue = "-1"; DdlSRINCcveTipoRiesgo.SelectedValue = "-1"; TxtSRINCporcentajedeIncapacidad.Text = "100"; DdlSRINCcveSecuelaConsecuencia.SelectedValue = "-1"; DdlSRINCcveControlIncapacidad.SelectedValue = "-1"; TxtSRINCdescripcion.Text = ""; UpsrIncapacidadpersonal.Update(); } protected void LnkPersonalIncapacidad_Click(object sender, EventArgs e) { LimpiaPersonalIncapacidad(); #region GetDatos GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); CcvePersonalIncapacidad = gvRow.DataKey("CvePersonalIncapacidad").ToEntero(); int cvePersonal = gvRow.DataKey("CvePersonal").ToEntero(); string folio = gvRow.DataKey("Folio"); DateTime fechaInicio = gvRow.DataKey("FechaInicio").ToDateTime(); int diasAutorizados = gvRow.DataKey("DiasAutorizados").ToEntero(); int cveTipodeIncidencia = gvRow.DataKey("CveTipodeIncidencia").ToEntero(); int cveRamoSeguro = gvRow.DataKey("CveRamoSeguro").ToEntero(); int cveTipoRiesgo = gvRow.DataKey("CveTipoRiesgo").ToEntero(); int porcentajedeIncapacidad = gvRow.DataKey("PorcentajedeIncapacidad").ToEntero(); int cveSecuelaConsecuencia = gvRow.DataKey("CveSecuelaConsecuencia").ToEntero(); int cveControlIncapacidad = gvRow.DataKey("CveControlIncapacidad").ToEntero(); string descripcion = gvRow.DataKey("Descripcion"); #endregion TxtSRINCfolio.Text = folio.ToString(); TxtSRINCfechaInicio.Text = $"{fechaInicio:dd/MM/yyyy}"; TxtSRINCdiasAutorizados.Text = diasAutorizados.ToString(); DdlSRINCcveTipodeIncidencia.SelectedValueExist(cveTipodeIncidencia.ToString()); DdlSRINCcveRamoSeguro.SelectedValueExist(cveRamoSeguro.ToString()); DdlSRINCcveTipoRiesgo.SelectedValueExist(cveTipoRiesgo.ToString()); TxtSRINCporcentajedeIncapacidad.Text = porcentajedeIncapacidad.ToString(); DdlSRINCcveSecuelaConsecuencia.SelectedValueExist(cveSecuelaConsecuencia.ToString()); DdlSRINCcveControlIncapacidad.SelectedValueExist(cveControlIncapacidad.ToString()); TxtSRINCdescripcion.Text = descripcion.ToString(); LnkAgregarIncapacidad.Visible = false; LnkActualizarIncapacidad.Visible = true; } protected void LnkshowaaddIncapacidad_Click(object sender, EventArgs e) { LimpiaPersonalIncapacidad(); LnkAgregarIncapacidad.Visible = true; LnkActualizarIncapacidad.Visible = false; CcvePersonalIncapacidad = 0; } protected void LnkAgregarIncapacidad_Click(object sender, EventArgs e) { string folio = TxtSRINCfolio.Text; DateTime fechaInicio = TxtSRINCfechaInicio.Text.ToDateTime(); int diasAutorizados = TxtSRINCdiasAutorizados.Text.ToEntero(); int cveTipodeIncidencia = DdlSRINCcveTipodeIncidencia.Text.ToEntero(); int cveRamoSeguro = DdlSRINCcveRamoSeguro.Text.ToEntero(); int cveTipoRiesgo = DdlSRINCcveTipoRiesgo.Text.ToEntero(); int porcentajedeIncapacidad = TxtSRINCporcentajedeIncapacidad.Text.ToEntero(); int cveSecuelaConsecuencia = DdlSRINCcveSecuelaConsecuencia.Text.ToEntero(); int cveControlIncapacidad = DdlSRINCcveControlIncapacidad.Text.ToEntero(); string descripcion = TxtSRINCdescripcion.Text; bool Continuar; using (ClsNominas ObjPers = new ClsNominas()) { Continuar = ObjPers.PersonalIncapacidadAdd(UsuarioActual.CveUsuario, SRCvePersonal, folio, fechaInicio, diasAutorizados, cveTipodeIncidencia, cveRamoSeguro, cveTipoRiesgo, porcentajedeIncapacidad, cveSecuelaConsecuencia, cveControlIncapacidad, descripcion); } if (Continuar) { CargaPersonalIncapacidad(); UpsrIncapacidadpersonal.Update(); this.Alert("La incapacidad se ha agregado.", TipoMensaje.ToastInformacion); } } protected void LnkActualizarIncapacidad_Click(object sender, EventArgs e) { string folio = TxtSRINCfolio.Text; DateTime fechaInicio = TxtSRINCfechaInicio.Text.ToDateTime(); int diasAutorizados = TxtSRINCdiasAutorizados.Text.ToEntero(); int cveTipodeIncidencia = DdlSRINCcveTipodeIncidencia.Text.ToEntero(); int cveRamoSeguro = DdlSRINCcveRamoSeguro.Text.ToEntero(); int cveTipoRiesgo = DdlSRINCcveTipoRiesgo.Text.ToEntero(); int porcentajedeIncapacidad = TxtSRINCporcentajedeIncapacidad.Text.ToEntero(); int cveSecuelaConsecuencia = DdlSRINCcveSecuelaConsecuencia.Text.ToEntero(); int cveControlIncapacidad = DdlSRINCcveControlIncapacidad.Text.ToEntero(); string descripcion = TxtSRINCdescripcion.Text; bool Continuar; using (ClsNominas ObjPers = new ClsNominas()) { Continuar = ObjPers.PersonalIncapacidadUp(UsuarioActual.CveUsuario, CcvePersonalIncapacidad, folio, fechaInicio, diasAutorizados, cveTipodeIncidencia, cveRamoSeguro, cveTipoRiesgo, porcentajedeIncapacidad, cveSecuelaConsecuencia, cveControlIncapacidad, descripcion); } if (Continuar) { CargaPersonalIncapacidad(); UpsrIncapacidadpersonal.Update(); this.Alert("La incapacidad se ha actualizado.", TipoMensaje.ToastInformacion); } } #endregion protected void LnkSRVacacionesUP_Click(object sender, EventArgs e) { } protected void LnkSRVacacionesADD_Click(object sender, EventArgs e) { } protected void BtnGeneratepdf_Click(object sender, EventArgs e) { byte[] pdf = new byte[1]; string nombre = "recibo"; int CvePersonal = TxtCvePersonal.Text.ToEntero(); int CvePeriodo = TxtCvePeriodo.Text.ToEntero(); if (CvePersonal > 0) { using (ClsNominas ObjNomina = new ClsNominas()) { if (ObjNomina.GetNom_Nominas(-1, TxtCvePersonal.Text.ToEntero(), TxtCvePeriodo.Text.ToEntero(), -1, UsuarioActual.CveEmpresa)) { nombre = ObjNomina.SerieFolio; } } pdf = GeneraPDFNomina(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.Ruta); } else { List pdfs = new List(); //byte[] pdf2 = new byte[1]; bool notfirst = false; foreach (DataRow dr in dtempleados.FiltraParametros("", "CveSubProyecto").Rows) { CvePersonal = dr["CvePersonal"].ToString().ToEntero(); if (CvePersonal > 0) { pdfs.Add(GeneraPDFNomina(CvePersonal, CvePeriodo, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.Ruta)); } //if (notfirst) //{ // pdf2 = GeneraPDFNomina(dr["CvePersonal"].ToString().ToEntero(), CvePeriodo, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.Ruta); // byte[] newByteArray2 = pdf.Concat(pdf2).ToArray(); //} //else //{ // pdf = GeneraPDFNomina(dr["CvePersonal"].ToString().ToEntero(), CvePeriodo, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.Ruta); //} //notfirst = true; } pdf = MergeFiles(pdfs); } ImprimirbytesPDF(pdf, nombre); } public static byte[] MergeFiles(List sourceFiles) { //string destinationFile; try { using (MemoryStream ms = new MemoryStream()) { int f = 0; // we create a reader for a certain document PdfReader reader = new PdfReader(sourceFiles[f]); // we retrieve the total number of pages int n = reader.NumberOfPages; //Console.WriteLine("There are " + n + " pages in the original file."); // step 1: creation of a document-object iTextSharp.text.Document document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1)); // step 2: we create a writer that listens to the document //PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(destinationFile, FileMode.Create)); PdfWriter writer = PdfWriter.GetInstance(document, ms); // step 3: we open the document document.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage page; int rotation; // step 4: we add content while (f < sourceFiles.Count) { int i = 0; while (i < n) { i++; document.SetPageSize(reader.GetPageSizeWithRotation(i)); document.NewPage(); page = writer.GetImportedPage(reader, i); rotation = reader.GetPageRotation(i); if (rotation == 90 || rotation == 270) { cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(i).Height); } else { cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0); } //Console.WriteLine("Processed page " + i); } f++; if (f < sourceFiles.Count) { reader = new PdfReader(sourceFiles[f]); // we retrieve the total number of pages n = reader.NumberOfPages; //Console.WriteLine("There are " + n + " pages in the original file."); } } // step 5: we close the document document.Close(); return ms.ToArray(); } } catch (Exception e) { string strOb = e.Message; } return null; } public static int CountPageNo(string strFileName) { // we create a reader for a certain document PdfReader reader = new PdfReader(strFileName); // we retrieve the total number of pages return reader.NumberOfPages; } protected void BtnGenerateXml_Click(object sender, EventArgs e) { string Ruta = ""; string PathXML = ""; using (ClsNominas ObjNomina = new ClsNominas()) { if (ObjNomina.GetNom_Nominas(-1, TxtCvePersonal.Text.ToEntero(), TxtCvePeriodo.Text.ToEntero(), -1, UsuarioActual.CveEmpresa)) { Ruta = $@"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{UsuarioActual.CveEmpresa}\"; PathXML = $@"{Ruta}XML\Nomina\{ObjNomina.SerieFolio}.xml"; } } try { if (!string.IsNullOrEmpty(PathXML) && System.IO.File.Exists(PathXML)) { System.IO.FileInfo file = new System.IO.FileInfo(PathXML); string mimeType = "text/plain"; try { mimeType = MimeMapping.GetMimeMapping(PathXML); } catch (Exception) { } // Response.Write(path) Response.Clear(); Response.ClearHeaders(); Response.ClearContent(); Response.AddHeader("Content-Disposition", $"attachment; filename= {Uri.EscapeDataString(file.Name)}"); Response.AddHeader("Content-Length", file.Length.ToString()); Response.ContentType = mimeType; Response.Flush(); Response.TransmitFile(file.FullName); Response.End(); } } catch (Exception) { } } protected void LnkRegistrarProvision_Click(object sender, EventArgs e) { } protected void LnkupPrimaRiesgo_Click(object sender, EventArgs e) { using (ClsNominas objnom = new ClsNominas()) { if (objnom.PrimaRiesgoUP(UsuarioActual.CveEmpresa, TxtFechaPRT.Text.ToDateTime(), TxtPrimaRiesgo.Text.ToDecimal())) { } } loadtablas(); } private void CrearLayout(DataTable DTNomina) { StringBuilder sb = new StringBuilder(); StringBuilder SbErrores = new StringBuilder(); bool ErroresValidaciones = false; SbErrores.AppendLine("Se detectaron los siguientes errores en la generación del layout"); foreach (DataRow dRow in DTNomina.Rows) { string RFC = dRow["RFC"].ToString(); string Nombre = dRow["Nombre"].ToString(); string BancoNumCuenta = dRow["BancoNumCuenta"].ToString(); decimal Importe = dRow["Importe"].ToString().ToDecimal(); if (RFC.Trim().Length == 0) SbErrores.AppendLine($"El RFC es requerido del empleado {Nombre}
"); System.Text.RegularExpressions.Match Coincidencia = System.Text.RegularExpressions.Regex.Match(RFC, @"/^([A-Z,Ñ,&]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$/"); if (!Coincidencia.Success) { SbErrores.AppendLine($"El RFC {RFC} del empleado {Nombre} no es valido
"); ErroresValidaciones = true; } if (BancoNumCuenta.Trim().Length != 10) { SbErrores.AppendLine($"Empleado {Nombre} numero de cuenta incorrecto, la cuenta debe de tener 10 caracteres
"); // Bancomer 10 caracteres ErroresValidaciones = true; } if (Importe <= 0) { SbErrores.AppendLine($"Empleado {Nombre} el importe debe de ser mayor a 0 importe {Importe}"); // importe mayot a 0 ErroresValidaciones = true; } } ErroresValidaciones = false; if (!ErroresValidaciones) { int Count = 1; foreach (DataRow dRow in DTNomina.Rows) { StringBuilder SbLinea = new StringBuilder(); string RFC = dRow["RFC"].ToString(); string Nombre = dRow["Nombre"].ToString(); string BancoNumCuenta = dRow["BancoNumCuenta"].ToString(); decimal Importe = dRow["Importe"].ToString().ToDecimal().RoundSQL(2); SbLinea.Append(Count.ToString("000000000")); SbLinea.Append(RFC.Trim().PadRight(16)); SbLinea.Append("03"); SbLinea.Append(BancoNumCuenta.Trim().PadRight(20)); SbLinea.Append(Importe.ToString("0000000000000.00").Replace(".", "")); if (Nombre.Trim().Length > 40) Nombre = Nombre.Substring(0, 40); SbLinea.Append(Nombre.Trim().PadRight(40)); SbLinea.Append("012"); SbLinea.Append("000"); sb.AppendLine(SbLinea.ToString()); Count = Count + 1; } Response.Clear(); Response.ClearHeaders(); Response.AppendHeader("Content-Length", sb.ToString()); Response.ContentType = "text/plain"; //Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina{DateTime.Now.ToString("yyyyMMddhhmmss").ToString()}.txt\""); Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina {DdlPeriodo.SelectedItem.Text }.txt\""); Response.Write(sb.ToString()); Response.End(); } else Alert(SbErrores.ToString(), TipoMensaje.MsgAdvertencia); } protected void LnkLayoutContable_Click(object sender, EventArgs e) { using (ClsClaseBasez objbase = new ClsClaseBasez()) { if (objbase.runQuerystr($"PA_NomDispersiondenomina @CvePeriodo ={CvePeriodoSeleccionado}, @CveEmpresa ={UsuarioActual.CveEmpresa}")) { CrearLayout(objbase.DtResultados); } } } } class ClsClaseBasez : IDisposable { protected SqlConnection SqlConexion; protected SqlDataAdapter SqlAdapter; protected DataTable datos; protected DataSet DTSet; public DataTable DtResultados { get { return datos; } } public DataSet DTSetResultados { get { return DTSet; } } protected bool disposedValue = false; protected bool EsTransaccion = false; public string MyCurrentError; // REGISTRAR CONEXIÓN private int CveConexion = 0; public ClsClaseBasez(ClsClaseBasez adsObj = null) { if (adsObj != null && adsObj.SqlAdapter != null && adsObj.SqlAdapter.SelectCommand != null && adsObj.SqlAdapter.SelectCommand.Transaction != null) { SqlConexion = adsObj.SqlConexion; SqlAdapter = adsObj.SqlAdapter; EsTransaccion = true; } else { SqlConexion = new SqlConnection(); SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings["Conexion"].ConnectionString; try { SqlConexion.Open(); SqlAdapter = new SqlDataAdapter("", SqlConexion); ConexionAdd(); } catch (Exception ex) { this.OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex); } } } public void SqlDataAdapter(string StrSQL, CommandType TipoComando = CommandType.StoredProcedure) { if (SqlConexion.State == ConnectionState.Open) { SqlAdapter.SelectCommand.Parameters.Clear(); SqlAdapter.SelectCommand.CommandText = StrSQL; SqlAdapter.SelectCommand.CommandType = TipoComando; datos = new DataTable(); DTSet = new DataSet(); } } protected void DataAdapter(string StrSQL, CommandType TipoComando = CommandType.Text) { // if (SqlAdapter.SelectCommand == null) // { // if ((sqlCommand != null)) // { // SqlAdapter.SelectCommand = sqlCommand; // } // else // { // SqlAdapter.SelectCommand = new SqlCommand(); // } // SqlAdapter.SelectCommand.Connection = SqlConexion; // } if (SqlConexion.State == ConnectionState.Open) { SqlAdapter.SelectCommand.Parameters.Clear(); SqlAdapter.SelectCommand.CommandText = StrSQL; SqlAdapter.SelectCommand.CommandType = TipoComando; datos = new DataTable(); DTSet = new DataSet(); } } private void ConexionAdd() { if (ConfigurationManager.AppSettings["RegistraConexion"] != null && ConfigurationManager.AppSettings["RegistraConexion"].ToString() == "1") { try { SqlDataAdapter("PA_Sis_RegistrarConexion"); { var withBlock = SqlAdapter.SelectCommand.Parameters; withBlock.Add("@Clase", SqlDbType.VarChar).Value = this.GetType().Name; withBlock.Add("@Modulo", SqlDbType.VarChar).Value = string.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString(), HttpContext.Current.Request.QueryString.ToString()); withBlock.Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output; } SqlAdapter.Fill(datos); CveConexion = SqlAdapter.SelectCommand.Parameters["@IDConexion"].Value.ToString().ToEntero(); } catch (Exception ex) { this.OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()); } } } private void ConexionClose() { if (CveConexion > 0 && ConfigurationManager.AppSettings["RegistraConexion"] != null && ConfigurationManager.AppSettings["RegistraConexion"].ToString() == "1") { SqlDataAdapter(string.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text); try { SqlAdapter.Fill(datos); } catch (Exception ex) { this.OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()); } CveConexion = 0; } } protected void addParameters(string name, SqlDbType tipo, object valor) { if (SqlConexion.State == ConnectionState.Open) SqlAdapter.SelectCommand.Parameters.Add(name, tipo).Value = valor; } public bool runQuerystr(string Query, List Listaparametros = null, string msgError = "", bool mostrarError = true) { bool retorno = false; try { if (SqlConexion.State == ConnectionState.Open) { SqlAdapter.SelectCommand.Parameters.Clear(); SqlAdapter.SelectCommand.CommandText = Query; SqlAdapter.SelectCommand.CommandType = CommandType.Text; datos = new DataTable(); if (Listaparametros != null) { foreach (parametroQuery pr in Listaparametros) { SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection; } } SqlAdapter.Fill(datos); retorno = true; } else { string InfoAdicional = "Se intenta realizar una conexion con una conexion cerrada"; InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}"; ModExtensiones.GuardaLog(InfoAdicional); } } catch (SqlException sqEx) { retorno = false; setOnError(msgError, sqEx); } catch (Exception ex) { retorno = false; setOnError(msgError, ex); } return retorno; } public int ExecQuery(string Query, List Listaparametros = null, string msgError = "", bool mostrarError = true) { int retorno = -1; try { if (SqlConexion.State == ConnectionState.Open) { SqlAdapter.SelectCommand.Parameters.Clear(); SqlAdapter.SelectCommand.CommandText = Query; SqlAdapter.SelectCommand.CommandType = CommandType.Text; if (Listaparametros != null) { foreach (parametroQuery pr in Listaparametros) { SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection; } } retorno = SqlAdapter.SelectCommand.ExecuteNonQuery(); } else { string InfoAdicional = "Se intenta realizar una conexion con una conexion cerrada"; InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}"; this.GuardaLog(InfoAdicional); } } catch (SqlException sqEx) { retorno = -1; setOnError(msgError, sqEx); } catch (Exception ex) { retorno = -1; setOnError(msgError, ex); } return retorno; } protected bool RunQuery(string msgOnError) { bool retorno = false; try { SqlAdapter.Fill(datos); retorno = true; } catch (Exception ex) { retorno = false; setOnError(msgOnError, ex); } return retorno; } protected bool RunQueryDS(string msgOnError) { bool retorno = false; try { SqlAdapter.Fill(DTSet); retorno = true; } catch (Exception ex) { retorno = false; setOnError(msgOnError, ex); } return retorno; } public void setOnError(string Mensaje, Exception Exeption) { string InfoAdicional = ""; if (SqlAdapter != null && SqlAdapter.SelectCommand != null && SqlAdapter.SelectCommand.Parameters != null) InfoAdicional = SqlAdapter.SelectCommand.Parameters.ParametrosInfo(); MyCurrentError = string.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString(), "\r\n", InfoAdicional); this.OnError(Mensaje, Exeption, InfoAdicional); } public void IniciaTransacSQL() { SqlAdapter.SelectCommand.Transaction = SqlConexion.BeginTransaction(); EsTransaccion = true; } public void Commit() { SqlAdapter.SelectCommand.Transaction.Commit(); SqlConexion.Close(); } public void RollBack() { SqlAdapter.SelectCommand.Transaction.Rollback(); SqlConexion.Close(); } public void Dispose() { ConexionClose(); if ((SqlConexion != null)) { if (SqlConexion.State == ConnectionState.Open) { try { if ((SqlAdapter != null)) SqlAdapter.Dispose(); SqlConexion.Close(); } catch (Exception ex) { this.OnError("Ocurrió un error al intentar cerrar la base de datos.", ex); } } SqlConexion.Dispose(); } if (datos != null) datos.Dispose(); if (SqlAdapter != null) SqlAdapter.Dispose(); if (DTSet != null) DTSet.Dispose(); GC.SuppressFinalize(this); } }