using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using BE;
using BL;
using Utilitaria;


public partial class frmProcesos : System.Web.UI.Page
{
    Int32 EstablecimientoID;
    String PeriodoID;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }

        if (!Page.IsPostBack)
        {
            RGD_Inconsistencia.Width = Convert.ToInt32(Session["hidWidth"]) - 50;
            RGD_Inconsistencia.Visible = false;
        }
        
    }


    private void Inconsistencias()
    {
        EstablecimientoID = Convert.ToInt32(Session["EmpresaID"].ToString().Trim());
        PeriodoID = Session["txtPeriodo"].ToString().Trim();


        BEAsientosContablesDetalle objet_AsientosContablesDetalle = new BEAsientosContablesDetalle();
        BLAsientosContablesDetalle objlg_AsientosContablesDetalle = new BLAsientosContablesDetalle();
        //List<BEAsientosContablesDetalle> fnBuscaInconsistencias;

        objet_AsientosContablesDetalle.BEAsientosContables.BEPlanDeCuentas.EstablecimientoID = EstablecimientoID;
        objet_AsientosContablesDetalle.PeriodoID = PeriodoID;


        //fnBuscaInconsistencias = objlg_AsientosContablesDetalle.fnBuscaInconsistencias(objet_AsientosContablesDetalle);

        RGD_Inconsistencia.DataSource = objlg_AsientosContablesDetalle.fnBuscaInconsistencias(objet_AsientosContablesDetalle);
        //RGD_Inconsistencia.Rebind();


        objet_AsientosContablesDetalle = null;
        objlg_AsientosContablesDetalle = null;


    }


    protected void btnMayorizacion_Click(object sender, EventArgs e)
    {
        //System.Threading.Thread.Sleep(500);

        EstablecimientoID = Convert.ToInt32(Session["EmpresaID"].ToString().Trim());
        PeriodoID = Session["txtPeriodo"].ToString().Trim();

        //usp_BuscaAmarresconArea '14','2010'
        RGD_Inconsistencia.Rebind();
        RGD_Inconsistencia.Visible = true;


        //if (fnBuscaAmarresconArea.Count > 0)
        //{
        //    this.proceso.Visible = true;
        //    String tabla;
        //    Int32 i=0;
        //    tabla = "<table width='380' border='0' cellspacing='0' cellpadding='0'  align='center'>";
        //    tabla += "<tr>";
        //    tabla += "  <td colspan='3' align='center'><span style='color: Red; font-weight:bold'>Error en la Mayorizacion, los siguientes Asientos requeren Área. </span></td>";
        //    tabla += "</tr>";
        //    tabla += "  <td width='143'>&nbsp;</td>";
        //    tabla += "  <td width='137'>&nbsp;</td>";
        //    tabla += "  <td width='111'>&nbsp;</td>";
        //    tabla += "</tr>";
        //    tabla += "<tr>";
        //    tabla += "  <td align='left'><b>Asiento</td>";
        //    tabla += "  <td align='left'><b>Plan de Cuenta </td>";
        //    tabla += "  <td align='left'><b>Area</td>";
        //    tabla += "</tr>";
        //    for (i = 0; i < fnBuscaAmarresconArea.Count; i++)
        //    {
        //        tabla += "<tr>";
        //        tabla += "  <td align='left'>" + fnBuscaAmarresconArea[i].BEAsientosContables.Glosa + "</td>";
        //        tabla += "  <td align='left'>" + fnBuscaAmarresconArea[i].BEAsientosContables.BEPlanDeCuentas.CodigoPlanCuenta + "</td>";
        //        tabla += "  <td align='left'>" + fnBuscaAmarresconArea[i].BEAsientosContables.BEPlanDeCuentas.BEAreas.NombreArea + "</td>";
        //        tabla += "</tr>";
        //    }
        //    tabla += "</table>";

        //    this.lblMensaje.Text = tabla;
        //}
        //else
        //{


        try
        {
            MayorizacionMesAll(EstablecimientoID.ToString(), Convert.ToInt32(this.cbxMeses.SelectedValue.Trim()), PeriodoID);

            //this.proceso.Visible = true;

            //string nMes = "";
            //if (this.cbxMeses.SelectedValue.Trim() == "0") { nMes = " para <b> Todos los Meses</b>"; } else { nMes = " al <b> Mes de " + Cls_Utilitaria.f_MostraNombre_Meses(this.cbxMeses.SelectedValue.Trim()) + "</b>"; }

            //this.lblMensaje.Text = "Mayorizacion Generada " + nMes + " a las  <b>" + DateTime.Now + "</b>";


            showMessage("Mayorizacion Generado con Exito");
        }
        catch (Exception ex)
        {
            showMessage(ex.ToString());
        }

        // }


    }

    protected void showMessage(string strMessage)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "alert('" + strMessage + "');", true);
    }

    protected void btnAsientosNaturaleza_Click(object sender, EventArgs e)
    {
        //System.Threading.Thread.Sleep(500);

        try
        {
            AsientosNaturaleza(Session["EmpresaID"].ToString().Trim(), Session["txtPeriodo"].ToString().Trim(), Convert.ToInt32(this.cbxMeses.SelectedValue.Trim()),Convert.ToInt32(Session["UsuarioID"]), 0,Cls_Enums.f_DatosPC.IPPC, Cls_Enums.f_DatosPC.UsuarioPC,Cls_Enums.f_DatosPC.NombrePC,Cls_Enums.TablaMovimientos.Asientosdetalle);

            this.proceso.Visible = true;

            string nMes = "";
            if (this.cbxMeses.SelectedValue.Trim() == "0") { nMes = " para <b> Todos los Meses</b>"; } else { nMes = " al <b> Mes de " + Cls_Utilitaria.f_MostraNombre_Meses(this.cbxMeses.SelectedValue.Trim()) + "</b>"; }

            this.lblMensaje.Text = "Asientos por Natuleza Generada " + nMes + " a las  <b>" + DateTime.Now + "</b>";
            showMessage("Mayorizacion por Naturaleza Generado con Exito");

        }
        catch (Exception ex)
        {
            showMessage(ex.ToString());
        }

    }



    private void AsientosNaturaleza(String EstablecimientoID, String Periodo, Int32 Mes, Int32 UsuarioID, Int32 UsuarioIdAutorizado, String IPEquipo, String UsuarioActualEquipo, String NombreEquipo, String TablaMovimientoID)
    {
        BEAsientosContablesDetalle objet_AsientosContablesDetalle = new BEAsientosContablesDetalle();
        BLAsientosContablesDetalle objlg_AsientosContablesDetalle = new BLAsientosContablesDetalle();

        objlg_AsientosContablesDetalle.fnProcesoNaturaleza(EstablecimientoID, Periodo, Mes, UsuarioID, UsuarioIdAutorizado, IPEquipo, UsuarioActualEquipo, NombreEquipo, TablaMovimientoID);
      
        objet_AsientosContablesDetalle = null;
        objlg_AsientosContablesDetalle = null;

    }

    private void MayorizacionMesAll(string EstablecimientoID, int PeriodoIdfFiltro, String Ejercicio)
    {
        BEMayorizados objet_Mayorizados = new BEMayorizados();
        BLMayorizados objlg_Mayorizados = new BLMayorizados();

        
            objlg_Mayorizados.fnMayorizadosMesAll(EstablecimientoID, PeriodoIdfFiltro, Ejercicio);
        

        objet_Mayorizados = null;
        objlg_Mayorizados = null;
        

    }



    protected void RGD_Inconsistencia_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        Inconsistencias();
    }
}
