nominas y personal

This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2020-06-26 16:40:01 -07:00
parent b02820d1b2
commit 06d856bcff
12 changed files with 1427 additions and 417 deletions

View File

@@ -189,6 +189,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
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"));
@@ -337,7 +339,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
field = (BoundField)GvNominas.Columns[CurrentColumn];
field.HeaderText = "Total";
field.DataField = "Total";
field.ItemStyle.BackColor = System.Drawing.Color.LightGray;
field.ItemStyle.BackColor = System.Drawing.Color.DarkGray;
field.ItemStyle.ForeColor = System.Drawing.Color.White;
GvNominas.Columns[CurrentColumn].Visible = true;
CurrentColumn++;
}
@@ -585,24 +588,37 @@ public partial class Nomina_Nomina2 : ClsPaginas
gvasistencia.Append("</tr>");
}
string tipo = "";
foreach (DataRow rempl in dtempleados.Rows)
foreach (DataRow rempl in dtempleados.FiltraParametros("CvePersonal>0").Rows)
{
int CvePersonal = rempl["CvePersonal"].ToString().ToEntero();
string nombre = rempl["Nombre"].ToString();
DateTime fecha = FechaInicio;
string Codigo = rempl["Codigo"].ToString();
DateTime fecha = FechaInicio; int HorasDobles, HorasTriples;
gvasistencia.Append("<tr>");
gvasistencia.AppendFormat("<td>{0}</td>", nombre);
gvasistencia.AppendFormat("<td>{1}<br/>{0}</td>", nombre, Codigo);
while (fecha <= FechaFin)
{
DataRow drow = dtasistencia.FiltroPrimero(string.Format("Fecha='{0:yyyy/MM/dd}' AND CvePersonal={1}", fecha, CvePersonal));
fecha = fecha.AddDays(1);
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>{0}</td>", tipo);
gvasistencia.AppendFormat("<td> <a onclick=\"openasis({1},'{2}')\"> {0} </a></td>", tipo, CvePersonal, fecha);
fecha = fecha.AddDays(1);
}
gvasistencia.Append("</tr>");
}
@@ -627,12 +643,13 @@ public partial class Nomina_Nomina2 : ClsPaginas
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 SubProyecto = e.Row.DataKey("SubProyecto").ToString();
LnkTimbrar.Visible = false;
if (cvePersonal > 0)
{
LtlNombre.Text = String.Format("<a class=\"Texto\" href=\"/RH/Personal.aspx?CvePersonal={0}\">{1}</a>", cvePersonal, Nombre);
LtlNombre.Text = String.Format("<a class=\"Texto\" href=\"/RH/Personal.aspx?CvePersonal={0}\">{2}<br/>{1}</a>", cvePersonal, Nombre, Codigo);
if (CveNomina > 0)
{
if (NomAutorizado == "False")
@@ -660,6 +677,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
else
{
LtlNombre.Text = "Total General";
e.Row.FindControl("LnkTimbrar").Visible = false;
if (Turno.Length == 0 && SubProyecto.Length > 0)
{
LtlNombre.Text = String.Format("<b>Sub Proyecto: {0}<b>", SubProyecto);
@@ -963,6 +981,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
string FechaFin = "";
string DiasRetardos = "";
string DiasIncapacidad = "";
string Puesto = "";
string Departamento = "";
DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal));
if (drow != null)
{
@@ -986,6 +1006,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
CURP = erow["CURP"].ToString();
TipoPeriodo = erow["TipoPeriodo"].ToString();
NSS = erow["NSS"].ToString();
Puesto = erow["Puesto"].ToString();
Departamento = erow["Departamento"].ToString();
}
}
LblCodigoEmpleado.Text = CodigoEmpleado;
@@ -1000,6 +1022,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
LblFecha.Text = string.Format("{0} al {1}", FechaInicio, FechaFin);
LblDiasRetardos.Text = DiasRetardos;
LblDiasIncapacidad.Text = DiasIncapacidad;
LblSRPuesto.Text = Puesto;
LblSRDepartamento.Text = Departamento;
#endregion
#region "Sobre Recibo"
{
@@ -1339,6 +1363,120 @@ public partial class Nomina_Nomina2 : ClsPaginas
Alert("Se actualizo el calculo de infonavit");
}
}
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;
//libro.Row(1).Hide();
//libro.Column(1).Hide();
//libro.Cell(1, column).Value = "CvePersonal";
//libro.Cell(2, column).Value = "CvePersonal";
//column++;
libro.Cell(1, column).Value = "Codigo";
//libro.Cell(2, column).Value = "Codigo";
column++;
libro.Cell(1, column).Value = "Empleado";
//libro.Cell(2, column).Value = "Empleado";
libro.Column(column).Width = 35;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows)
{
column++;
string CveConcepto = row["CveConcepto"].ToString();
string Concepto = row["Concepto"].ToString();
//libro.Cell(1, column).Value = CveConcepto;
libro.Cell(1, column).Value = Concepto;
libro.Column(column).Width = 15;
//column++;
//CveConcepto = string.Format("E{0}", row["CveConcepto"]);
//Concepto = string.Format("Exento {0}", row["Concepto"]);
//libro.Cell(1, column).Value = CveConcepto;
//libro.Cell(2, column).Value = Concepto;
//libro.Column(column).Width = 15;
}
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(1).Cell(13).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(247, 150, 70));
//libro.Row(1).Cell(14).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 240));
//libro.Row(1).Cell(15).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199));
//libro.Cell(3, 1).Value = 0;
//libro.Range(3, 2, 3, 3).Merge().Value = "¿Modificar SI(S)/NO(N)?";
//column = 3;
//foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows)
//{
// column++;
// string Concepto = string.Format("V_{0}", row["CveConcepto"]);
// libro.Cell(3, column).Value = "N";
// //column++;
// //string ConceptoG = string.Format("VG_{0}", row["CveConcepto"]);
// //libro.Cell(3, column).Value = "N";
//}
//libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199));
int Fila = 1;
foreach (DataRow erow in dtempleados.Rows)
{
Fila++;
column = 1;
//libro.Cell(Fila, column).Value = erow["CvePersonal"];
//column++;
libro.Cell(Fila, column).Value = erow["Codigo"];
column++;
libro.Cell(Fila, column).Value = erow["Nombre"];
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P','D','O') AND EsPadre = 1 ").Rows)
{
column++;
string Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
//libro.Cell(Fila, column).Style.NumberFormat
//column++;
//string ConceptoG = string.Format("VG_{0}", row["CveConcepto"]);
//libro.Cell(Fila, column).Value = erow[Concepto].ToString().ToDecimal() - erow[ConceptoG].ToString().ToDecimal();
}
}
//libro.Row(2).SetAutoFilter();
libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(2).Cell(1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
libro.Row(2).CellsUsed().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}.xlsx", "FormatoCargaNominas"));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString());
}
}
protected void LnkFormato_Click(object sender, EventArgs e)
{
try
@@ -3328,4 +3466,264 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
}
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 / 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 ");
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)) > 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();
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}", 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));
}
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));
//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)
{
Alert("Ocurrio un error al generar archivos sua", ModExtensiones.TipoMensaje.MsgAdvertencia);
}
}