using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Telerik.Web.UI;
using System.Globalization;

using BE;
using BL;
using Utilitaria;

public partial class frmDistribucionporUnidadNegocio : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["Empresa"] = Session["EmpresaID"].ToString();
            ViewState["HotelID"] = Request.QueryString["SCR"].ToString();
            ViewState["AreaID"] = Request.QueryString["ARA"].ToString();
        }
    }

    private void Listar()
    {
        BEUnidadesDeNegocio_Areas objBEUnidadesDeNegocio_Areas = new BEUnidadesDeNegocio_Areas();
        BLUnidadesDeNegocio_Areas objBLUnidadesDeNegocio_Areas = new BLUnidadesDeNegocio_Areas();


        Int32 Establecimiento = Convert.ToInt32(ViewState["Empresa"]);
        Int32 HotelID = Convert.ToInt32(ViewState["HotelID"]);
        Int32 AreaID = Convert.ToInt32(ViewState["AreaID"]);

        GridDistribucionAreas.DataSource = objBLUnidadesDeNegocio_Areas.fnSelUnidadesDeNegocio_Areas(Establecimiento, HotelID, AreaID);
        //GridDistribucionAreas.DataBind();

        objBEUnidadesDeNegocio_Areas = null;
    }

  
    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        if (Total() <= 100)
        {
            BEUnidadesDeNegocio_Areas objBEUnidadesDeNegocio_Areas = new BEUnidadesDeNegocio_Areas();
            BLUnidadesDeNegocio_Areas objBLUnidadesDeNegocio_Areas = new BLUnidadesDeNegocio_Areas();
            foreach (GridDataItem item in GridDistribucionAreas.Items)
            {
                Decimal Participacion = 0;
                String ValorAct = ((RadNumericTextBox)item.FindControl("txtParticipacion")).Text;

                if (ValorAct != "")
                {
                    Participacion = Convert.ToDecimal(ValorAct);
                }
                else {
                    Participacion = 0;
                }

                if (item["ID"].Text.Trim() == "0")
                {
                    if (Participacion != 0)
                    {
                        //Nuevo
                        objBEUnidadesDeNegocio_Areas.ID = Convert.ToInt32(item["ID"].Text);
                        objBEUnidadesDeNegocio_Areas.UnidadNegocioID = Convert.ToInt32(item["UnidadNegocioID"].Text);
                        objBEUnidadesDeNegocio_Areas.AreaID = Convert.ToInt32(ViewState["AreaID"].ToString());
                        objBEUnidadesDeNegocio_Areas.Participacion = Participacion;
                        objBEUnidadesDeNegocio_Areas.EstablecimientoID = Convert.ToInt32(Session["EmpresaID"]);
                        objBEUnidadesDeNegocio_Areas.Hotel = Convert.ToInt32(Session["HotelID"]);

                        objBEUnidadesDeNegocio_Areas.BEAuditores.UsuarioID = Convert.ToInt32(Session["UsuarioID"]);
                        objBEUnidadesDeNegocio_Areas.BEAuditores.UsuarioIdAutorizado = 0;
                        objBEUnidadesDeNegocio_Areas.BEAuditores.IPEquipo = Cls_Enums.f_DatosPC.IPPC;
                        objBEUnidadesDeNegocio_Areas.BEAuditores.UsuarioActualEquipo = Cls_Enums.f_DatosPC.UsuarioPC;
                        objBEUnidadesDeNegocio_Areas.BEAuditores.NombreEquipo = Cls_Enums.f_DatosPC.NombrePC;
                        objBEUnidadesDeNegocio_Areas.BEAuditores.TablaMovimientoID = Cls_Enums.TablaMovimientos.UnidadesDeNegocio_Areas;

                        objBLUnidadesDeNegocio_Areas.fnInsUpdUnidadesDeNegocio(objBEUnidadesDeNegocio_Areas);
                    }
                }
                else
                {
                    //Actualiza
                    objBEUnidadesDeNegocio_Areas.ID = Convert.ToInt32(item["ID"].Text);
                    objBEUnidadesDeNegocio_Areas.UnidadNegocioID = Convert.ToInt32(item["UnidadNegocioID"].Text);
                    objBEUnidadesDeNegocio_Areas.AreaID = Convert.ToInt32(item["AreaID"].Text);
                    objBEUnidadesDeNegocio_Areas.Participacion = Participacion;
                    objBEUnidadesDeNegocio_Areas.EstablecimientoID = Convert.ToInt32(Session["EmpresaID"]);
                    objBEUnidadesDeNegocio_Areas.Hotel = Convert.ToInt32(Session["HotelID"]);

                    objBEUnidadesDeNegocio_Areas.BEAuditores.UsuarioID = Convert.ToInt32(Session["UsuarioID"]);
                    objBEUnidadesDeNegocio_Areas.BEAuditores.UsuarioIdAutorizado = 0;
                    objBEUnidadesDeNegocio_Areas.BEAuditores.IPEquipo = Cls_Enums.f_DatosPC.IPPC;
                    objBEUnidadesDeNegocio_Areas.BEAuditores.UsuarioActualEquipo = Cls_Enums.f_DatosPC.UsuarioPC;
                    objBEUnidadesDeNegocio_Areas.BEAuditores.NombreEquipo = Cls_Enums.f_DatosPC.NombrePC;
                    objBEUnidadesDeNegocio_Areas.BEAuditores.TablaMovimientoID = Cls_Enums.TablaMovimientos.UnidadesDeNegocio_Areas;

                    objBLUnidadesDeNegocio_Areas.fnInsUpdUnidadesDeNegocio(objBEUnidadesDeNegocio_Areas);
                }
            }
            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
        }
        else
        {
            showMessage("El total de la Participacion debe ser menor que 100");
        }
    }
    protected void btnVolver_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CancelEdit();", true);
    }
    protected void GridDistribucionAreas_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        Listar();
    }
    protected void GridDistribucionAreas_ItemCommand(object source, GridCommandEventArgs e)
    {

    }

    protected void txtParticipacion_Textchanged(object sender, EventArgs e)
    {
        if (Total() > 100)
            Label1.Text = "El total de la Participacion debe ser menor que 100";
        else
            Label1.Text = "";
        UpdatePanel1.Update();
    }

    private Decimal Total()
    {
        Decimal Total = 0;
        String ValorAct = "";
        foreach (GridDataItem gr in GridDistribucionAreas.Items)
        {
            ValorAct = ((RadNumericTextBox)gr.FindControl("txtParticipacion")).Text;
            if (ValorAct != "")
            {
                Total += Convert.ToDecimal(ValorAct);
            }
            else
            {
                Total += 0;
            }
        }
        return Total;
    }


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