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"; } } } }