5682 lines
292 KiB
C#
5682 lines
292 KiB
C#
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)
|
|
{
|
|
|
|
int Estatus = 0;
|
|
using (ClsNominas objnom = new ClsNominas())
|
|
{
|
|
if (objnom.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, FiltCvePeriodo))
|
|
{
|
|
DataRow drow = objnom.DtResultados.Rows[0];
|
|
Estatus = drow["Estatus"].ToString().ToEntero();
|
|
int CvePrePolizaProvision = drow["CvePrePolizaProvision"].ToString().ToEntero();
|
|
int CvePrePolizaProvisionAsimilados = drow["CvePrePolizaAsimilables"].ToString().ToEntero();
|
|
LnkConceptoEmpleado.Visible = (Estatus == 1);
|
|
LnkAutorizar.Visible = (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}";
|
|
LnkProvisionNominaAsimilados.Visible = CvePrePolizaProvision > 0;
|
|
LnkProvisionNominaAsimilados.NavigateUrl = $"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaProvisionAsimilados}";
|
|
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("<div><table class=\"table table-striped table-hover mysmallbtn Widthall ScrollAD gvasistencia \" data-rows=\"1\" data-heighterror=\"360\"><tbody>");
|
|
if (true)
|
|
{
|
|
DateTime fecha = FechaInicio;
|
|
|
|
gvasistencia.Append("<tr class=\"Titulos ADtr\">");
|
|
gvasistencia.Append("<th>Nombre</th>");
|
|
while (fecha <= FechaFin)
|
|
{
|
|
gvasistencia.AppendFormat("<th>{0:dd/MM/yyyy}</th>", fecha);
|
|
fecha = fecha.AddDays(1);
|
|
}
|
|
gvasistencia.Append("</tr>");
|
|
}
|
|
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("<tr>");
|
|
gvasistencia.AppendFormat("<td><a class=\"Texto sline\" href=\"/RH/Personal.aspx?CvePersonal={0}\"><span style=\"display:inline-block;min-width:31px;\">{2}</span> <span style=\"display:inline-block;\">{1}</span></a></td>", 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}<br/>{1} horas dobles", tipo, HorasDobles);
|
|
}
|
|
if (HorasTriples > 0)
|
|
{
|
|
|
|
tipo = string.Format("{0}<br/>{1} horas triple", tipo, HorasTriples);
|
|
}
|
|
drow.Delete();
|
|
}
|
|
gvasistencia.AppendFormat("<td> <a onclick=\"openasis({1},'{2}')\"> {0} </a></td>", tipo, CvePersonal, fecha);
|
|
fecha = fecha.AddDays(1);
|
|
}
|
|
gvasistencia.Append("</tr>");
|
|
}
|
|
gvasistencia.Append("</tbody></table></div>");
|
|
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("<a class=\"Texto sline\" href=\"/RH/Personal.aspx?CvePersonal={0}\"><span style=\"display:inline-block;min-width:31px;\">{2}</span> <span style=\"display:inline-block;\">{1}</span></a>", 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("<b>Centro de costos: {0}<b>", SubProyecto);
|
|
}
|
|
else if (Turno.Length > 0)
|
|
{
|
|
LtlNombre.Text = String.Format("<b>Turno: {0}<b>", SubProyecto);
|
|
}
|
|
else if (Departamento.Length > 0)
|
|
{
|
|
LtlNombre.Text = String.Format("<b>Departamento: {0}<b>", 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}<tr><td>{3}</td><td>{2}</td><td><pre>{1}</pre></td></tr>", 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 <table class=\"table table-striped table-hover mysmallbtn\" ><tbody><tr><th>Código</th><th>Nombre</th><th>Error</th></tr>{0}</tbody></table>", 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<br>{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<Archivo> 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<int> lConceptos = new List<int>();
|
|
//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}<br>", 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.<br/>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();
|
|
CargaVacaciones();
|
|
pnlAddupMovto.Visible = false;
|
|
CargaMovtoPermanente();
|
|
CargaPersonalIncapacidad();
|
|
RegistraScript("$('#ModalConceptos').modal();");
|
|
}
|
|
|
|
private void CargaVacaciones()
|
|
{
|
|
ClsRH objRH = new ClsRH();
|
|
|
|
if (objRH.VacacionesGet(SRCvePersonal, UsuarioActual.Empresa.CveEmpresa))
|
|
{
|
|
GvVacaciones.DataSource = objRH.DtResultados;
|
|
|
|
}
|
|
else { GvVacaciones.DataSource = null; }
|
|
|
|
objRH.Dispose();
|
|
GvVacaciones.DataBind();
|
|
UpGvVacaciones.Update();
|
|
}
|
|
|
|
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<NConcepto> lconc = new List<NConcepto>();
|
|
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<NConcepto> lconc = new List<NConcepto>();
|
|
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<Microsoft.Reporting.WebForms.ReportDataSource> lrds = new List<Microsoft.Reporting.WebForms.ReportDataSource>();
|
|
Microsoft.Reporting.WebForms.ReportDataSource rds = new Microsoft.Reporting.WebForms.ReportDataSource();
|
|
rds.Name = "DataSet1";
|
|
rds.Value = dtCon;// lconc;
|
|
lrds.Add(rds);
|
|
List<Microsoft.Reporting.WebForms.ReportParameter> parametros = new List<Microsoft.Reporting.WebForms.ReportParameter>();
|
|
|
|
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 ? "<i class=\"fa fa-plus\"></i>" : ""));
|
|
LnkImporteD.Text = (CveConceptoD > 0 ? string.Format("${0:N2}", e.Row.DataKey("ImporteD").ToDecimal()) : (CveConceptoDolgvc > 0 ? "<i class=\"fa fa-plus\"></i>" : ""));
|
|
|
|
|
|
|
|
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<TagsDocumentos> listaTags = new List<TagsDocumentos>();
|
|
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},Incapacidad:{4}, Centro de costos: {3}", drow2["DiasLaborados"], drow2["DiasRetardos"], drow2["DiasFaltados"], drow2["SubProyecto"], drow2["DiasIncapacidad"])); 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
|
|
section.Blocks.Add(new GemBox.Document.Paragraph(document, new GemBox.Document.SpecialCharacter(document, GemBox.Document.SpecialCharacterType.PageBreak)));
|
|
|
|
}
|
|
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<GemBox.Document.ParagraphFormat> formats = table.GetChildElements(true, GemBox.Document.ElementType.TableCell)
|
|
.Cast<GemBox.Document.Tables.TableCell>()
|
|
.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<GemBox.Document.Paragraph>()
|
|
.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
|
|
if (FiltCveSubProyecto == -1 && DdlRegimenContratacion.SelectedValue == "-1")
|
|
{
|
|
#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();
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Alert("para poder autorizar debe seleccionar a todos en el centro de costo y en Régimen de contratación.", TipoMensaje.MsgAdvertencia);
|
|
}
|
|
}
|
|
|
|
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<NConcepto> lconc = new List<NConcepto>();
|
|
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 + 4;
|
|
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)
|
|
{
|
|
|
|
DateTime fInicio = TxtvacFechaInicio.Text.ToDate();
|
|
DateTime fFin = TxtvacFechaFin.Text.ToDate();
|
|
string fechapago = TxtvacFechaPago.Text.ToDate().ToString("yyyy/MM/dd");
|
|
int diasinhabil = TxtvacDiasFeriados.Text.ToEntero();
|
|
// Dim motivoVacaciones As String = TxtMotivoVacaciones.Text
|
|
int VacCveSupervisor = 0;
|
|
int VacFolioActual = 0;
|
|
if (fInicio <= fFin)
|
|
{
|
|
using (ClsRH objRHx = new ClsRH())
|
|
{
|
|
|
|
if (objRHx.VacacionesResumenGet(SRCvePersonal, UsuarioActual.Empresa.CveEmpresa))
|
|
{
|
|
if (objRHx.DtResultados.Rows.Count > 0)
|
|
{
|
|
VacCveSupervisor = objRHx.DtResultados.Rows[0]["SupervisorCorreo"].ToString().ToEntero();
|
|
}
|
|
}
|
|
|
|
if (objRHx.VacacionesGet(SRCvePersonal, UsuarioActual.Empresa.CveEmpresa))
|
|
{
|
|
if (objRHx.DtResultados.Rows.Count > 0)
|
|
{
|
|
VacFolioActual = objRHx.DtResultados.Compute("Max(Folio)", string.Empty).ToString().ToEntero();
|
|
}
|
|
}
|
|
}
|
|
|
|
VacFolioActual = VacFolioActual + 1;
|
|
ClsRH objRH = new ClsRH();
|
|
// Dim continuar As Boolean = objRH.SolicitudVacacionesAdd(CvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual, motivoVacaciones)
|
|
bool continuar = objRH.SolicitudVacacionesAdd(SRCvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual, FechaPago: fechapago, diasinabiles: diasinhabil);
|
|
if (objRH.DtResultados.Rows.Count > 0)
|
|
{
|
|
string ShowError = objRH.DtResultados.Rows[0]["ShowError"].ToString();
|
|
if (ShowError.Length > 0)
|
|
{
|
|
Alert(ShowError, TipoMensaje.MsgAdvertencia);
|
|
continuar = false;
|
|
}
|
|
}
|
|
objRH.Dispose();
|
|
if (continuar)
|
|
{
|
|
|
|
|
|
TxtvacFechaInicio.Text = "";
|
|
TxtvacFechaFin.Text = "";
|
|
TxtvacFechaPago.Text = "";
|
|
TxtvacDiasFeriados.Text = "";
|
|
CargaVacaciones();
|
|
//CargaVacacionesResumenPeriodoActual();
|
|
//VacacionesMandaCorreoSupervisor("Solicitud Vacaciones " + NombreCompleto, VacSupervisorCorreo, VacSupervisorNombre, NombreCompleto, fInicio, fFin);
|
|
Alert("Las vacaciones se han actualizodo");
|
|
}
|
|
}
|
|
else { Alert("La fecha Inicial debe ser inferior a la fecha final.", TipoMensaje.MsgAdvertencia); }
|
|
}
|
|
protected void GvVacaciones_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
bool _Estatus = bool.Parse(e.Row.DBCampo("Estatus").ToString());
|
|
string _Documento = e.Row.DataKey("Documento");
|
|
int _CveAutoriza = e.Row.DataKey("CveAutoriza").ToEntero();
|
|
string RutaDocuemntoAutorizacion = string.Format(@"{0}Personal\{1}\Vacaciones\{2}", UsuarioActual.Empresa.Ruta, SRCvePersonal, _Documento);
|
|
LinkButton lnkDescargaFormato = e.Row.FCLinkButton("ImgDescargaFormato");
|
|
LinkButton lnkDescargaAutorizacion = e.Row.FCLinkButton("ImgDescargaAutorizacion");
|
|
LinkButton lnkEditar = e.Row.FCLinkButton("ImgEditar");
|
|
if (_CveAutoriza > 0 | !_Estatus)
|
|
lnkEditar.Visible = false;
|
|
lnkDescargaFormato.Visible = true;
|
|
// ScriptManager.GetCurrent(Me).RegisterAsyncPostBackControl(lnkDescargaFormato)
|
|
if (File.Exists(RutaDocuemntoAutorizacion) & _Estatus)
|
|
lnkDescargaAutorizacion.Visible = true;
|
|
else
|
|
lnkDescargaAutorizacion.Visible = false;
|
|
}
|
|
}
|
|
protected void LnkEliminarSolicitud_Click(object sender, EventArgs e)
|
|
{
|
|
GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer;
|
|
int CvePersonalVacaciones = GvRow.DataKey("CvePersonalVacaciones").ToEntero();
|
|
|
|
ClsRH objRH = new ClsRH();
|
|
if (objRH.RemoverSolicitudVacaciones(CvePersonalVacaciones))
|
|
{
|
|
CargaVacaciones();
|
|
Alert("Las vacaciones se ha eliminado");
|
|
}
|
|
objRH.Dispose();
|
|
}
|
|
public void Edit_ClickVacacionDia(object sender, EventArgs e)
|
|
{
|
|
GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer;
|
|
|
|
//CvePersonalVacaciones = GvRow.DataKey("CvePersonalVacaciones").ToEntero;
|
|
//VacFolio = GvRow.DataKey("Folio").ToString().ToEntero;
|
|
|
|
|
|
TxtvacFechaInicio.Text = GvRow.DataKey("FechaInicio").ToString().ToDate().ToString("dd/MM/yyyy");
|
|
TxtvacFechaFin.Text = GvRow.DataKey("FechaFin").ToString().ToDate().ToString("dd/MM/yyyy");
|
|
|
|
RegistraScript("$('#divEditarDiaVacacion').modal({ backdrop: 'static', keyboard: false});");
|
|
}
|
|
|
|
public void DownLoad_ClickSolicitudVacaciones(object sender, EventArgs e)
|
|
{
|
|
/*
|
|
GridViewRow GvRow = (GridViewRow)(LinkButton)sender.NamingContainer;
|
|
|
|
// Dim Folio As Integer = GvRow.DataKey("Folio").ToEntero
|
|
|
|
// DescarSolicitudVacaciones(Folio)
|
|
string RutaFormato = string.Format(@"{0}Formatos\SolicitudVacaciones.docx", UsuarioActual.Empresa.Ruta);
|
|
|
|
string NombreEmpleado = string.Format("{0} {1} {2}", TxtAPaterno.Text, TxtAMaterno.Text, TxtNombres.Text);
|
|
string Codigo = TxtCodigo.Text;
|
|
string Departamento = DdlDepartamento.SelectedItem.Text;
|
|
string JefeInmediato = DdlSupervisorOrganigrama.SelectedItem.Text;
|
|
DateTime fechaIngreso = TxtFechaIngreso.Text.ToDate();
|
|
int Periodoingreso = fechaIngreso.ToString("MMdd").ToEntero();
|
|
int PeriodoInicio = GvRow.DataKey("FechaInicio").ToDate().ToString("MMdd").ToEntero();
|
|
string FechaInicio = GvRow.DataKey("FechaInicio").ToDateTime().ToString("dd/MM/yyyy");
|
|
string FechaFin = GvRow.DataKey("FechaFin").ToDateTime().ToString("dd/MM/yyyy");
|
|
string diasPermiso = GvRow.DataKey("Dias");
|
|
string MotivoPermiso = GvRow.DataKey("Motivo");
|
|
string Puesto = DdlPuesto.SelectedItem.Value;
|
|
string Fecha = DateTime.Now.ToString("dd/MM/yyyy");
|
|
string Solicitante = UsuarioActual.Nombre;
|
|
int anio = GvRow.DataKey("FechaInicio").ToDate().Year;
|
|
string FechaPeriodo = GvRow.DataKey("Periodo");
|
|
|
|
|
|
|
|
|
|
if (Periodoingreso > PeriodoInicio)
|
|
anio = anio - 1;
|
|
|
|
|
|
|
|
if (File.Exists(RutaFormato))
|
|
{
|
|
clsGemBoxDocument objGemDocument = new clsGemBoxDocument(RutaFormato);
|
|
List<TagsDocumentos> ListaTags = new List<TagsDocumentos>();
|
|
|
|
ListaTags = GetDatosTagsDocumentos();
|
|
|
|
ListaTags.Add(new TagsDocumentos("{Solicitante}", Solicitante));
|
|
ListaTags.Add(new TagsDocumentos("{Fecha}", Fecha));
|
|
ListaTags.Add(new TagsDocumentos("{NombreEmpleado}", NombreEmpleado));
|
|
ListaTags.Add(new TagsDocumentos("{Codigo}", Codigo));
|
|
ListaTags.Add(new TagsDocumentos("{Departamento}", Departamento));
|
|
ListaTags.Add(new TagsDocumentos("{JefeInmediato}", JefeInmediato));
|
|
ListaTags.Add(new TagsDocumentos("{FechaInicio}", FechaInicio));
|
|
ListaTags.Add(new TagsDocumentos("{FechaFin}", FechaFin));
|
|
ListaTags.Add(new TagsDocumentos("{diasPermiso}", diasPermiso));
|
|
ListaTags.Add(new TagsDocumentos("{MotivoPermiso}", MotivoPermiso));
|
|
ListaTags.Add(new TagsDocumentos("{Puesto}", Puesto));
|
|
ListaTags.Add(new TagsDocumentos("{anio}", anio.ToString()));
|
|
ListaTags.Add(new TagsDocumentos("{FechaPeriodo}", FechaPeriodo));
|
|
|
|
objGemDocument.SustituirTags(ListaTags);
|
|
|
|
// objGemDocument.GuardarStream()
|
|
objGemDocument.GuardarStreamPDF();
|
|
|
|
byte[] bytesInStream = objGemDocument.GetBytesDocumento();
|
|
// Dim bytesInStream As Byte() = objGemDocument.memoryStream.ToArray
|
|
|
|
objGemDocument.Dispose();
|
|
|
|
Response.Clear();
|
|
Response.ContentType = "application/force-download";
|
|
Response.AddHeader("content-disposition", "attachment; filename=" + CvePersonal + "_Solicitud_Vacaciones_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf");
|
|
Response.BinaryWrite(bytesInStream);
|
|
Response.End();
|
|
}
|
|
else
|
|
Alert("No se encontro el Formato, favor de revisarlo con soporte tecnico.", TipoMensaje.MsgAdvertencia);*/
|
|
}
|
|
|
|
public void DownLoad_ClickSolicitudPermiso(object sender, EventArgs e)
|
|
{
|
|
/* GridViewRow GvRow = (GridViewRow)(LinkButton)sender.NamingContainer;
|
|
// Dim Folio As Integer = GvRow.DataKey("Folio").ToEntero
|
|
// DescarSolicitudVacaciones(Folio)
|
|
string RutaFormato = string.Format(@"{0}Formatos\PermisoSolicitud.docx", UsuarioActual.Empresa.Ruta);
|
|
|
|
string NombreEmpleado = string.Format("{0} {1} {2}", TxtAPaterno.Text, TxtAMaterno.Text, TxtNombres.Text);
|
|
string Codigo = TxtCodigo.Text;
|
|
string Departamento = DdlDepartamento.SelectedItem.Text;
|
|
string JefeInmediato = DdlSupervisorOrganigrama.SelectedItem.Text;
|
|
string FechaInicio = GvRow.DataKey("FechaInicio").ToDateTime().ToString("dd/MM/yyyy");
|
|
string FechaFin = GvRow.DataKey("FechaFin").ToDateTime().ToString("dd/MM/yyyy");
|
|
string diasPermiso = $"{(GvRow.DataKey("FechaFin").ToDate() - GvRow.DataKey("FechaInicio").ToDate()).Days}";
|
|
string HorasPermiso = ""; // String.Format("{0}", ((GvRow.DataKey("FechaInicio").ToDateTime() - GvRow.DataKey("FechaFin").ToDateTime()).Hours))
|
|
string MotivoPermiso = string.Format("{0},{1}", GvRow.DataKey("Descripcion"), GvRow.DataKey("Motivo"));
|
|
if (File.Exists(RutaFormato))
|
|
{
|
|
clsGemBoxDocument objGemDocument = new clsGemBoxDocument(RutaFormato);
|
|
List<TagsDocumentos> ListaTags = new List<TagsDocumentos>();
|
|
|
|
ListaTags = GetDatosTagsDocumentos();
|
|
|
|
ListaTags.Add(new TagsDocumentos("{NombreEmpleado}", NombreEmpleado));
|
|
ListaTags.Add(new TagsDocumentos("{Codigo}", Codigo));
|
|
ListaTags.Add(new TagsDocumentos("{Departamento}", Departamento));
|
|
ListaTags.Add(new TagsDocumentos("{JefeInmediato}", JefeInmediato));
|
|
ListaTags.Add(new TagsDocumentos("{FechaInicio}", FechaInicio));
|
|
ListaTags.Add(new TagsDocumentos("{FechaFin}", FechaFin));
|
|
ListaTags.Add(new TagsDocumentos("{diasPermiso}", diasPermiso));
|
|
ListaTags.Add(new TagsDocumentos("{HorasPermiso}", HorasPermiso));
|
|
ListaTags.Add(new TagsDocumentos("{MotivoPermiso}", MotivoPermiso));
|
|
|
|
objGemDocument.SustituirTags(ListaTags);
|
|
|
|
// objGemDocument.GuardarStream()
|
|
objGemDocument.GuardarStreamPDF();
|
|
byte[] bytesInStream = objGemDocument.GetBytesDocumento();
|
|
// Dim bytesInStream As Byte() = objGemDocument.memoryStream.ToArray
|
|
objGemDocument.Dispose();
|
|
|
|
Response.Clear();
|
|
Response.ContentType = "application/force-download";
|
|
Response.AddHeader("content-disposition", "attachment; filename=" + CvePersonal + "_Solicituddepermiso_" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf");
|
|
Response.BinaryWrite(bytesInStream);
|
|
Response.End();
|
|
}
|
|
else
|
|
Alert("No se encontro el formato de Permisos", TipoMensaje.ToastAdventencia);
|
|
*/
|
|
}
|
|
|
|
public void DownLoad_ClickSolicitudAutorizacion(object sender, EventArgs e)
|
|
{
|
|
/*
|
|
GridViewRow GvRow = (GridViewRow)(LinkButton)sender.NamingContainer;
|
|
string _Documento = GvRow.DataKey("Documento");
|
|
string RutaDocuemntoAutorizacion = string.Format(@"{0}Personal\{1}\Vacaciones\{2}", UsuarioActual.Empresa.Ruta, CvePersonal, _Documento);
|
|
|
|
if (File.Exists(RutaDocuemntoAutorizacion))
|
|
{
|
|
byte[] bytesInStream = File.ReadAllBytes(RutaDocuemntoAutorizacion);
|
|
Response.Clear();
|
|
Response.ContentType = "application/force-download";
|
|
Response.AddHeader("content-disposition", "attachment; filename=" + _Documento);
|
|
Response.AddHeader("content-disposition", "attachment; filename=" + _Documento);
|
|
Response.BinaryWrite(bytesInStream);
|
|
Response.End();
|
|
}
|
|
else
|
|
Alert("No se encontro el documento que intenta descargar.");
|
|
}
|
|
*/
|
|
}
|
|
|
|
|
|
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<byte[]> pdfs = new List<byte[]>();
|
|
//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<byte[]> 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)
|
|
{
|
|
using(ClsNominas objnom = new ClsNominas() )
|
|
{
|
|
int CvePrePolizaProvision = 0; int CvePrePolizaasmilidos=0;
|
|
if(objnom.DtResultados.Rows.Count > 0)
|
|
{
|
|
CvePrePolizaProvision= objnom.DtResultados.Rows[0]["CvePrePoliza"].ToString().ToEntero();
|
|
CvePrePolizaasmilidos = objnom.DtResultados.Rows[0]["CvePrePolizaAsimilables"].ToString().ToEntero();
|
|
}
|
|
if (objnom.Autorizaperiodoconta(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa)){
|
|
string mensaje = string.Format("La provision a sido autorizada.<br/><a href=\"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}&Tipo=NOMPROV\">Provision </a><br/><a href=\"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}&Tipo=NOMPROV\"> Asimilados</a>", CvePrePolizaProvision, CvePrePolizaasmilidos);
|
|
Alert(mensaje);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
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}<br/>");
|
|
|
|
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 <br/>");
|
|
ErroresValidaciones = true;
|
|
}
|
|
|
|
if (BancoNumCuenta.Trim().Length != 10)
|
|
{
|
|
SbErrores.AppendLine($"Empleado {Nombre} numero de cuenta incorrecto, la cuenta debe de tener 10 caracteres<br/>"); // 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 (ClsNominas objnom = new ClsNominas())
|
|
{
|
|
if (objnom.GetDispersiondenomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa))
|
|
{
|
|
CrearLayout(objnom.DtResultados);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|