261 lines
10 KiB
C#
261 lines
10 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using Extensiones;
|
|
|
|
public partial class Nomina_Aguinaldo : ClsPaginas
|
|
{
|
|
#region Propiedades
|
|
private DataTable DTAguinaldos
|
|
{
|
|
get
|
|
{
|
|
return (DataTable)ViewState["DTAguinaldos"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["DTAguinaldos"] = value;
|
|
}
|
|
}
|
|
#endregion
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
using (ClsNominas objnom = new ClsNominas())
|
|
{
|
|
|
|
objnom.GetEjercicios(UsuarioActual.CveEmpresa);
|
|
DdlEjercicios.DataSource = objnom.DtResultados;
|
|
}
|
|
DdlEjercicios.DataBind();
|
|
|
|
DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo.FiltraParametros("Estatus = 'Activo' AND CveTipoPeriodo <>-1");
|
|
DdlTipoPeriodo.DataBind();
|
|
DdlTipoPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
|
if (DdlTipoPeriodo.Items.Count > 0)
|
|
{
|
|
DdlTipoPeriodo.SelectedIndex = 0;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
protected void BtnCalcular_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
int ejercicio = DdlEjercicios.SelectedValue.ToEntero();
|
|
int CveTipoPeriodo = DdlTipoPeriodo.SelectedValue.ToEntero();
|
|
int CvePeriodo = -1;
|
|
|
|
using (ClsNominas objnom = new ClsNominas())
|
|
{
|
|
objnom.GetCalculoAguinaldo(ejercicio, UsuarioActual.CveEmpresa, 0, CveTipoPeriodo, CvePeriodo);
|
|
DTAguinaldos = objnom.DtResultados;
|
|
GVCalcularAguinaldo.DataSource = DTAguinaldos;
|
|
LtlTotal.Text = string.Format("{0:N2}", DTAguinaldos.SUM("Aguinaldo"));
|
|
LtlAutorizado.Text = string.Format("{0:N2}", DTAguinaldos.SUM("Aguinaldo","CveNomina>0"));
|
|
|
|
LtldiasEjercicio.Text = string.Format("{0}/12/31", ejercicio).ToDate().DayOfYear.ToString();
|
|
}
|
|
|
|
GVCalcularAguinaldo.DataBind();
|
|
LnkAutorizarModal.Visible = true;
|
|
upDatosPA_N.Update();
|
|
}
|
|
private void CargaPeriodos()
|
|
{
|
|
DataTable dtPeriodos = null;
|
|
using (ClsNominas ObjPeriodos = new ClsNominas())
|
|
{
|
|
if (ObjPeriodos.GetPeriodos(-1, UsuarioActual.CveEmpresa, DdlEjercicios.SelectedValue.ToEntero(), -1, -1))
|
|
{
|
|
dtPeriodos = ObjPeriodos.DtResultados.FiltraParametros("Estatus IN (0,1)");
|
|
}
|
|
ObjPeriodos.Dispose();
|
|
}
|
|
|
|
if (dtPeriodos != null && dtPeriodos.Rows.Count > 0)
|
|
{
|
|
DdlPeriodo.DataSource = dtPeriodos.FiltraParametros(string.Format(" CveTipoPeriodo={0}", DdlTipoPeriodoB.SelectedValue));
|
|
}
|
|
DdlPeriodo.DataBind();
|
|
DdlPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
|
UpModalAutorizar.Update();
|
|
}
|
|
protected void LnkAutorizarModal_Click(object sender, EventArgs e)
|
|
{
|
|
DdlTipoPeriodoB.ClearSelection();
|
|
DdlTipoPeriodoB.Items.Clear();
|
|
DdlTipoPeriodoB.DataSource = GlobalDTTipoPeriodo.FiltraParametros(string.Format("CveTipoPeriodo=6 OR CveTipoPeriodo={0}", DdlTipoPeriodo.SelectedValue));
|
|
DdlTipoPeriodoB.DataBind();
|
|
|
|
CargaPeriodos();
|
|
RegistraScript("$('#ModalAutorizar').modal();");
|
|
}
|
|
|
|
protected void LnkAutorizar_Click(object sender, EventArgs e)
|
|
{
|
|
bool continuar = true;
|
|
string mensaje = "";
|
|
//int DiasLaborados;
|
|
decimal Importe;
|
|
int CveMoneda = 1;
|
|
var CvePeriodoSeleccionado = DdlPeriodo.SelectedValue.ToEntero();
|
|
int ejercicio = DdlEjercicios.SelectedValue.ToEntero();
|
|
int CvePersonal;
|
|
int CvePeriodo;
|
|
decimal ImporteGravado = 0;
|
|
decimal ImporteExento = 0;
|
|
//string NombrePersonal = "";
|
|
int CveMetodoPago = 0;
|
|
int CveNomina = 0;
|
|
int CveConcepto = 0;
|
|
if (continuar)
|
|
{
|
|
using (ClsNominas objNomina = new ClsNominas())
|
|
{
|
|
objNomina.IniciaTransacSQL();
|
|
if (continuar)
|
|
{
|
|
//continuar = objNomina.UpADDdUtilidadesEjercicio(UsuarioActual.CveEmpresa, ejercicio, utilimporte, utilimporteAnt, false);
|
|
//if (continuar)
|
|
//{
|
|
// if (objNomina.DtResultados.Rows.Count < 0 || objNomina.DtResultados.Rows[0]["CONTimbrado"].ToString() == "1")
|
|
// continuar = false;
|
|
//}
|
|
}
|
|
if (continuar)
|
|
{
|
|
continuar = objNomina.GetConceptos(UsuarioActual.CveEmpresa);
|
|
}
|
|
if (continuar)
|
|
{
|
|
DataRow rowc = objNomina.DtResultados.FiltroPrimero("CveSistema=5");
|
|
if ((rowc != null))
|
|
{
|
|
CveConcepto = rowc["CveConcepto"].ToString().ToEntero();
|
|
}
|
|
//else
|
|
//{
|
|
// CveConcepto = objNomina.AddConcepto("PTU", "Utilidades", "P", "", true, true, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, false, -1, -1, -1, 0, -1, 0, 0, 0, 0, 0);
|
|
//}
|
|
if (CveConcepto < 1)
|
|
{
|
|
continuar = false;
|
|
Alert("debe agregar un concepto para el calculo del aguinaldo", ModExtensiones.TipoMensaje.ToastAdventencia);
|
|
}
|
|
}
|
|
if (continuar)
|
|
{
|
|
foreach (DataRow row in DTAguinaldos.Rows)
|
|
{
|
|
//DiasLaborados = row["DiasLaborados"].ToString().ToEntero();
|
|
CvePeriodo = CvePeriodoSeleccionado;
|
|
/*
|
|
if (continuar)
|
|
{CveNomina
|
|
continuar = objNomina.AddUtilidad(CvePersonal, Importe, CvePeriodo, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, ejercicio, DiasLaborados, SueldoTotal);
|
|
}*/
|
|
CveNomina = 0;
|
|
CvePersonal = row["CvePersonal"].ToString().ToEntero();
|
|
CveMetodoPago = row["CveMetodoPago"].ToString().ToEntero();
|
|
Importe = row["Aguinaldo"].ToString().ToDecimal();
|
|
ImporteGravado = row["AguinaldoGravado"].ToString().ToDecimal();
|
|
ImporteExento = Importe - ImporteGravado;
|
|
|
|
if (CvePersonal > 0 && Importe>0 && row["CveNomina"].ToString().ToEntero()==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, Importe.ToString().ToDouble(), 0, 0, Importe.ToString().ToDouble(), 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;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
continuar = false;
|
|
}
|
|
if (CveNomina > 0)
|
|
{
|
|
|
|
if (!objNomina.AddUPNom_NominasDetalles(objNomina.CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, Importe, ImporteGravado, ImporteExento, UsuarioActual.CveUsuario))
|
|
{
|
|
continuar = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
continuar = false;
|
|
}
|
|
}
|
|
|
|
if (!continuar)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
//if (continuar & CvePeriodoSeleccionado > 0)
|
|
//{
|
|
// continuar = objNomina.CambiaEstatusPeriodo(CvePeriodoSeleccionado, (int)enumNominasEstatus.Activa, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa);
|
|
//}
|
|
if (continuar)
|
|
{
|
|
objNomina.Commit();
|
|
}
|
|
else
|
|
{
|
|
objNomina.RollBack();
|
|
}
|
|
objNomina.Dispose();
|
|
}
|
|
}
|
|
if (mensaje.Length > 0)
|
|
{
|
|
Alert(mensaje, ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
continuar = false;
|
|
}
|
|
if (continuar)
|
|
{
|
|
RegistraScript("$('#ModalAutorizar').modal('hide');");
|
|
Alert("Se ha generado el aguinaldo");
|
|
BtnCalcular_Click(null, null);
|
|
}
|
|
}
|
|
|
|
protected void DdlTipoPeriodoB_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
CargaPeriodos();
|
|
}
|
|
|
|
protected void GVCalcularAguinaldo_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
int CveNomina = e.Row.DBCampo("CveNomina").ToString().ToEntero();
|
|
if (CveNomina > 0)
|
|
{
|
|
e.Row.CssClass = "success";
|
|
}
|
|
}
|
|
}
|
|
} |