using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BE;
using BL;
using Utilitaria;
using DL;
using System.Data;
using System.Data.SqlClient;
using Telerik.Web.UI;
using System.Configuration;

using System.Data.OleDb;
using System.IO;

public partial class Proc_ProvisionVentas : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null)
        {
            Response.Redirect(Utilitaria.Cls_Enums.CerrarSesion.Salir);
        }
        if (!Page.IsPostBack)
        {
            tk_Grid.Width = Convert.ToInt32(Session["hidWidth"]) - 50;
        }
    }

    private void Listar()
    {
        BLDocumentos oBLDocumentos = new BLDocumentos();
        //List<BEDocumentos> loDocumentos;

        String FDesde;
        String FHasta;


        if ((ViewState["Desde"] == null || ViewState["Desde"].ToString() == "") && (ViewState["Hasta"] == null || ViewState["Hasta"].ToString() == ""))
        {
            FDesde = null;
            FHasta = null;
            //tk_Grid.AllowPaging = true;
            //tk_Grid.PageSize = 150;

        }
        else
        {
            FDesde = ViewState["Desde"].ToString();
            FHasta = ViewState["Hasta"].ToString();
            //tk_Grid.AllowPaging = true;
            //tk_Grid.PageSize = 500;
            tk_Grid.DataSource = oBLDocumentos.fnSelDocumentos(FDesde, FHasta);
        }


        oBLDocumentos = null;
        //loDocumentos = null;
    }

    protected void tk_Grid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        Listar();
    }

    protected void tk_Grid_ItemCommand(object source, GridCommandEventArgs e)
    {
        tk_Grid.ExportSettings.ExportOnlyData = true;
        tk_Grid.ExportSettings.IgnorePaging = true;
        tk_Grid.ExportSettings.OpenInNewWindow = false;

        switch (e.CommandName)
        {
            case "ExportExcel":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToExcel();
                    Listar();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportPDF":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToPdf();
                    Listar();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportWord":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToWord();
                    Listar();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "ExportCSV":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Exporta == 1)
                {
                    tk_Grid.MasterTableView.ExportToCSV();
                    Listar();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
            case "Print":
                if (Cls_Propiedades.PrivilegiosUsuario[0].Imprime == 1)
                {
                    Response.Write(Cls_Utilitaria.f_Imprime());
                    Listar();
                }
                else
                {
                    showMessage("No posee los privilegios necesario para completar la operación");
                }
                break;
        }
            
      
       

    }

    protected void ToggleRowSelection(object sender, EventArgs e)
    {
        ((sender as CheckBox).Parent.Parent as GridItem).Selected = (sender as CheckBox).Checked;
    }
    
    protected void ToggleSelectedState(object sender, EventArgs e)
    {
        if ((sender as CheckBox).Checked)
        {
            foreach (GridDataItem dataItem in tk_Grid.MasterTableView.Items)
            {
                (dataItem.FindControl("CheckBox1") as CheckBox).Checked = true;
                dataItem.Selected = true;
            }
        }
        else
        {
            foreach (GridDataItem dataItem in tk_Grid.MasterTableView.Items)
            {
                (dataItem.FindControl("CheckBox1") as CheckBox).Checked = false;
                dataItem.Selected = false;
            }
        }
    }

    protected void showMessage(string strMessage)
    {
        String Mensaje = strMessage.Replace("'", "").Replace(",", "-").Replace("\r\n", " ");
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "alert('" + Mensaje + "');", true);

    }

    protected void btn_Aceptar_Click(object sender, EventArgs e)
    {

        if (tk_Grid.SelectedItems.Count > 0)
        {

            SqlConnection conn = new SqlConnection(ClassCadena.fnConexion());
            SqlParameter myParm1;
            try
            {
                conn.Open();
                for (int i = 0; i < tk_Grid.SelectedItems.Count; i++)
                {
                    SqlCommand StoredProcedureCommand = new SqlCommand("UCO_CONTABILIDADGENERAASIENTOCONTABLEPROVISIONVENTAS", conn);
                    StoredProcedureCommand.CommandTimeout = 500;
                    StoredProcedureCommand.CommandType = CommandType.StoredProcedure;

                    myParm1 = StoredProcedureCommand.Parameters.Add("@TransaccionDocumentoID", System.Data.SqlDbType.VarChar, 20);
                    myParm1.Value = tk_Grid.SelectedItems[i].OwnerTableView.DataKeyValues[tk_Grid.SelectedItems[i].ItemIndex]["TransaccionDocumentoID"].ToString().Trim();

                    StoredProcedureCommand.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                showMessage(ex.Message);
            }
            finally
            {
                conn.Close();
            }


            //List<BEDocumentos> List_CreaVentas = new List<BEDocumentos>();
            //BLDocumentos oBLDocumentos = new BLDocumentos();

            //for (int i = 0; i < tk_Grid.SelectedItems.Count; i++)
            //{
            //    String TransDocId = "";

            //    BLDocumentos oBLDocumentos = new BLDocumentos();
            //    BEDocumentos oBEDocumentos = new BEDocumentos();

            //    TransDocId = tk_Grid.SelectedItems[i].OwnerTableView.DataKeyValues[tk_Grid.SelectedItems[i].ItemIndex]["TransaccionDocumentoID"].ToString();
            //    oBEDocumentos.TransaccionDocumentoId = TransDocId.ToString().Trim();
            //    List_CreaVentas.Add(oBEDocumentos);

            //}
            //try
            //{
            //    oBLDocumentos.fnCreaAsientosTransferencia(List_CreaVentas);
            //    showMessage("Transferencia con Exito");
            //}
            //catch (Exception ex)
            //{
            //    showMessage(ex.Message);
            //}

        }
        tk_Grid.Rebind();


    }
    protected void btnActualizar_Click(object sender, EventArgs e)
    {


        ViewState["Desde"] = txtDesde.SelectedDate.ToString();
        ViewState["Hasta"] = txtHasta.SelectedDate.ToString();

        this.tk_Grid.Rebind();
    }
    protected void btnTransferirTodo_Click(object sender, EventArgs e)
    {

        if (!String.IsNullOrEmpty(txtDesde.SelectedDate.ToString()) && !String.IsNullOrEmpty(txtHasta.SelectedDate.ToString()))
        {
            try
            {
                BLDocumentos oBLDocumentos = new BLDocumentos();
                oBLDocumentos.fnTransferirTodo(Convert.ToDateTime(txtDesde.SelectedDate), Convert.ToDateTime(txtHasta.SelectedDate), "UCO_CONTABILIDADGENERAASIENTOCONTABLEPROVISIONVENTAS_TODO");

                //ViewState["Desde"] = txtDesde.SelectedDate.ToString();
                //ViewState["Hasta"] = txtHasta.SelectedDate.ToString();

                this.tk_Grid.Rebind();

            }
            catch (Exception ex)
            {
                showMessage(ex.Message);
            }
        }
        else
        {
            showMessage("Ingrese el Rango de Fechas.");
        }
        
    }
}
