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 frmProvisionesCompras : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //ViewState["Empresa"] = 15; //Session["EmpresaID"].ToString();
            //ViewState["HotelID"] = 8; Request.QueryString["SCR"].ToString();
            ViewState["ID"] = Request.QueryString["id"].ToString();
            ViewState["Parametros"] = Request.QueryString["pc"].ToString();
            ViewState["Check"] = Request.QueryString["ck"].ToString();
            Combo_PlanDeCuenta();
            Listar();

            //DIEGO 30/05/2014
            if (ViewState["ID"].ToString() == "1")
            {
                tr1.Visible = true;
                tr2.Visible = true;
                tr3.Visible = true;
            }
            else
            {
                tr1.Visible = false;
                tr2.Visible = false;
                tr3.Visible = false;
            }
            //DIEGO 30/05/2014
        }
    }

    private void Combo_PlanDeCuenta()
    {
        BLPlanDeCuentas oBLPlanDeCuentas = new BLPlanDeCuentas();
        List<BEPlanDeCuentas> loPlanDeCuentas;

        loPlanDeCuentas = oBLPlanDeCuentas.fnSelPlanDeCuentasDin("Estado=0" + " and pdc.EstablecimientoID=" + Session["EmpresaID"].ToString().Trim() + " and pdc.NivelSaldoId <> (select Valor From ParametrosGenerales Where ParametroGeneralID = 5001) ", "codigoplancuenta asc, NombrePlanCuenta asc", 0);

        for (int i = 0; i < loPlanDeCuentas.Count; i++)
        {
            cbxPlanCta.Items.Insert(i,new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCta.Items[i].Value= loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            //Diego 30/05/2014
            cbxPlanCtaConsumo.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaConsumo.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            cbxPlanCtaCostoProduccionDebe.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaCostoProduccionDebe.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            cbxPlanCtaCostoProduccionHaber.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaCostoProduccionHaber.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            cbxPlanCtaCostoVentasTerceros.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaCostoVentasTerceros.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            cbxPlanCtaCostoVentasVinculadas.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaCostoVentasVinculadas.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            cbxPlanCtaNoAceptado.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaNoAceptado.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();

            cbxPlanCtaMesesPosterioresSoles.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaMesesPosterioresSoles.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();
            
            cbxPlanCtaMesesPosterioresDolares.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].CodigoPlanCuenta + " -> " + loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            //cbxPlanCta.Items.Insert(i, new RadComboBoxItem(loPlanDeCuentas[i].NombrePlanCuenta.Trim()));
            cbxPlanCtaMesesPosterioresDolares.Items[i].Value = loPlanDeCuentas[i].PlanCuentaID.ToString().Trim();
            //Diego 30/05/2014
        }

        cbxPlanCta.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCta.Items[0].Value = "0";
        cbxPlanCta.DataBind();

        //Diego 30/05/2014
        cbxPlanCtaConsumo.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaConsumo.Items[0].Value = "0";
        cbxPlanCtaConsumo.DataBind();

        cbxPlanCtaCostoProduccionDebe.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaCostoProduccionDebe.Items[0].Value = "0";
        cbxPlanCtaCostoProduccionDebe.DataBind();

        cbxPlanCtaCostoProduccionHaber.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaCostoProduccionHaber.Items[0].Value = "0";
        cbxPlanCtaCostoProduccionHaber.DataBind();

        cbxPlanCtaCostoVentasTerceros.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaCostoVentasTerceros.Items[0].Value = "0";
        cbxPlanCtaCostoVentasTerceros.DataBind();

        cbxPlanCtaCostoVentasVinculadas.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaCostoVentasVinculadas.Items[0].Value = "0";
        cbxPlanCtaCostoVentasVinculadas.DataBind();

        cbxPlanCtaNoAceptado.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaNoAceptado.Items[0].Value = "0";
        cbxPlanCtaNoAceptado.DataBind();

        cbxPlanCtaMesesPosterioresSoles.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaMesesPosterioresSoles.Items[0].Value = "0";
        cbxPlanCtaMesesPosterioresSoles.DataBind();

        cbxPlanCtaMesesPosterioresDolares.Items.Insert(0, new RadComboBoxItem("Seleccione..."));
        cbxPlanCtaMesesPosterioresDolares.Items[0].Value = "0";
        cbxPlanCtaMesesPosterioresDolares.DataBind();
        //Diego 30/05/2014

        oBLPlanDeCuentas = null;
        loPlanDeCuentas = null;
    }

    private void Listar()
    {

        BEConfigTransferencias objBEConfigTransferencias = new BEConfigTransferencias();
        BLConfigTransferencias objBLConfigTransferencias = new BLConfigTransferencias();
        List<BEConfigTransferencias> loConfigTransferencias;

        loConfigTransferencias = null;

        if (ViewState["ID"].ToString() == "1")
        {
            if (ViewState["Check"].ToString().Trim() == "1")
            {
                loConfigTransferencias = objBLConfigTransferencias.fnSelArticulosAll(Convert.ToInt32(ViewState["Parametros"].ToString()), 0, 1);
            }
            else
            {
                loConfigTransferencias = objBLConfigTransferencias.fnSelArticulosAll(Convert.ToInt32(ViewState["Parametros"].ToString()), 0, 0);
            }

            cbxPlanCtaConsumo.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDConsumo.ToString().Trim();
            cbxPlanCtaCostoProduccionDebe.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCPDebe.ToString().Trim();
            cbxPlanCtaCostoProduccionHaber.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCPHaber.ToString().Trim();
            cbxPlanCtaCostoVentasTerceros.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCVTerceros.ToString().Trim();
            cbxPlanCtaCostoVentasVinculadas.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCVVinculada.ToString().Trim();
            cbxPlanCtaNoAceptado.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDNoAceptado.ToString().Trim();
            cbxPlanCtaMesesPosterioresSoles.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDMPSoles.ToString().Trim();
            cbxPlanCtaMesesPosterioresDolares.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDMPDolares.ToString().Trim();

        }
        else if (ViewState["ID"].ToString() == "2")
        {
            loConfigTransferencias = objBLConfigTransferencias.fnSelSubFamiliasAll(Convert.ToInt32(ViewState["Parametros"].ToString()));

            cbxPlanCtaConsumo.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDConsumo.ToString().Trim();
            cbxPlanCtaCostoProduccionDebe.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCPDebe.ToString().Trim();
            cbxPlanCtaCostoProduccionHaber.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCPHaber.ToString().Trim();
            cbxPlanCtaCostoVentasTerceros.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCVTerceros.ToString().Trim();
            cbxPlanCtaCostoVentasVinculadas.SelectedValue = loConfigTransferencias[0].PC_PlanCuentaIDCVVinculada.ToString().Trim();
        }

        if (loConfigTransferencias.Count > 0)
        {
            txtNombre.Text = loConfigTransferencias[0].nombre.Trim();
            cbxPlanCta.SelectedValue = loConfigTransferencias[0].PlanCuentaID.ToString().Trim();
            
        }

        objBEConfigTransferencias = null;
        objBLConfigTransferencias = null;
        loConfigTransferencias = null;
    }

  
    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        BEConfigTransferencias objBEConfigTransferencias = new BEConfigTransferencias();
        BLConfigTransferencias objBLConfigTransferencias = new BLConfigTransferencias();

        

        if (ViewState["ID"].ToString() == "1")
        {
            objBEConfigTransferencias.ArticuloID = Convert.ToInt32(ViewState["Parametros"].ToString());
            //DIEGO 30/05/2014
            objBEConfigTransferencias.PlanCuentaID = this.cbxPlanCta.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDConsumo = this.cbxPlanCtaConsumo.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCPDebe = this.cbxPlanCtaCostoProduccionDebe.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCPHaber = this.cbxPlanCtaCostoProduccionHaber.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCVTerceros = this.cbxPlanCtaCostoVentasTerceros.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCVVinculada = this.cbxPlanCtaCostoVentasVinculadas.SelectedValue.Trim();
            objBEConfigTransferencias.PC_CodigoPlanCuentaIDNoAceptado = this.cbxPlanCtaNoAceptado.SelectedValue.Trim();
            objBEConfigTransferencias.PC_CodigoPlanCuentaIDMPSoles = this.cbxPlanCtaMesesPosterioresSoles.SelectedValue.Trim();
            objBEConfigTransferencias.PC_CodigoPlanCuentaIDMPDolares = this.cbxPlanCtaMesesPosterioresDolares.SelectedValue.Trim();
            //DIEGO 30/05/2014
            objBLConfigTransferencias.fnInsUpdArticulos(objBEConfigTransferencias);
        }
        else if (ViewState["ID"].ToString() == "2")
        {
            objBEConfigTransferencias.SubFamiliaId = Convert.ToInt32(ViewState["Parametros"].ToString());
            //DIEGO 30/05/2014
            objBEConfigTransferencias.PlanCuentaID = this.cbxPlanCta.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDConsumo = this.cbxPlanCtaConsumo.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCPDebe = this.cbxPlanCtaCostoProduccionDebe.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCPHaber = this.cbxPlanCtaCostoProduccionHaber.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCVTerceros = this.cbxPlanCtaCostoVentasTerceros.SelectedValue.Trim();
            objBEConfigTransferencias.PC_PlanCuentaIDCVVinculada = this.cbxPlanCtaCostoVentasVinculadas.SelectedValue.Trim();
            //Diego 30/05/2014
            objBLConfigTransferencias.fnInsUpdSubFamilias(objBEConfigTransferencias);
        }


        ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
        
    }

    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 0; //Total;
    }


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