using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Modelos_Informes;
using Exferia_EntityFramework;
using Exferia_Informes.Informes.InformesOficiales.LibroMayor;
using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Exferia_Informes._3_Vistas
{
    public partial class PI_InformeOficial_LibroMayor : Form
    {
        #region Variables privadas
        private GEN_Empresas g_mdl_GEN_Empresas = null;
        private GEN_EjerciciosActivos_Empresa g_mdl_GEN_EjerciciosActivos_Empresa = null;
        private DateTime? g_dtt_FechaListado = null;
        private string g_str_Titulo = "";
        private bool g_bol_CuentaPorHoja = false;
        private int? g_int_DatosIniciales_Pagina = null;
        private DateTime? g_dtt_Criterio_FechaDesde = null;
        private DateTime? g_dtt_Criterio_FechaHasta = null;
        private string g_str_Cuenta_Desde = "";
        private string g_str_Cuenta_Hasta = "";
        private List<INTERNO_InformeOficial_LibroMayor_Anterior_Modelo> g_lst_INTERNO_InformeOficial_LibroMayor_Anterior_Modelo = null;
        private List<INTERNO_InformeOficial_LibroMayor_Modelo> g_lst_INTERNO_InformeOficial_LibroMayor_Modelo = null;
        #endregion

        #region Constructor
        public PI_InformeOficial_LibroMayor(GEN_Empresas _mdl_GEN_Empresas,
                                            GEN_EjerciciosActivos_Empresa _mdl_GEN_EjerciciosActivos_Empresa,
                                            DateTime _dtt_FechaListado,
                                            string _str_Titulo,
                                            bool _bol_CuentaPorHoja,
                                            int? _int_DatosIniciales_Pagina,
                                            DateTime _dtt_Criterio_FechaDesde,
                                            DateTime _dtt_Criterio_FechaHasta,
                                            string _str_Cuenta_Desde,
                                            string _str_Cuenta_Hasta,
                                            List<INTERNO_InformeOficial_LibroMayor_Anterior_Modelo> _lst_INTERNO_InformeOficial_LibroMayor_Anterior_Modelo,
                                            List<INTERNO_InformeOficial_LibroMayor_Modelo> _lst_INTERNO_InformeOficial_LibroMayor_Modelo)
        {
            InitializeComponent();

            //Variables recibidas
            g_mdl_GEN_Empresas = _mdl_GEN_Empresas;
            g_mdl_GEN_EjerciciosActivos_Empresa = _mdl_GEN_EjerciciosActivos_Empresa;
            g_dtt_FechaListado = _dtt_FechaListado;
            g_str_Titulo = _str_Titulo;
            g_bol_CuentaPorHoja = _bol_CuentaPorHoja;
            g_int_DatosIniciales_Pagina = _int_DatosIniciales_Pagina;
            g_dtt_Criterio_FechaDesde = _dtt_Criterio_FechaDesde;
            g_dtt_Criterio_FechaHasta = _dtt_Criterio_FechaHasta;
            g_str_Cuenta_Desde = _str_Cuenta_Desde;
            g_str_Cuenta_Hasta = _str_Cuenta_Hasta;
            g_lst_INTERNO_InformeOficial_LibroMayor_Anterior_Modelo = _lst_INTERNO_InformeOficial_LibroMayor_Anterior_Modelo;
            g_lst_INTERNO_InformeOficial_LibroMayor_Modelo = _lst_INTERNO_InformeOficial_LibroMayor_Modelo; 
        }
        #endregion

        private void PI_InformeOficial_LibroMayor_Load(object sender, EventArgs e)
        {
            Imprimir_Informe();
        }

        private void Imprimir_Informe()
        {
            try
            {
                //Asignar el Informe
                rpv_InformeOficialLibroMayor.LocalReport.ReportEmbeddedResource = "Exferia_Informes.Informes.InformesOficiales.LibroMayor.inf_InformeOficial_LibroMayor.rdlc";

                Rellenar_DataSet_InformeOficial_LibroMayor.Rellenar_InformeOficial_LibroMayor(rpv_InformeOficialLibroMayor.LocalReport.DataSources,
                                                                                                g_mdl_GEN_Empresas,
                                                                                                g_mdl_GEN_EjerciciosActivos_Empresa,
                                                                                                g_dtt_FechaListado.Value,
                                                                                                g_str_Titulo,
                                                                                                g_bol_CuentaPorHoja,
                                                                                                g_int_DatosIniciales_Pagina,
                                                                                                g_dtt_Criterio_FechaDesde.Value,
                                                                                                g_dtt_Criterio_FechaHasta.Value,
                                                                                                g_str_Cuenta_Desde,
                                                                                                g_str_Cuenta_Hasta,
                                                                                                g_lst_INTERNO_InformeOficial_LibroMayor_Anterior_Modelo,
                                                                                                g_lst_INTERNO_InformeOficial_LibroMayor_Modelo);

                this.rpv_InformeOficialLibroMayor.SetDisplayMode(DisplayMode.PrintLayout);//para que apareza ya seleccionado la viste de impresion
                rpv_InformeOficialLibroMayor.RefreshReport();
            }
            catch (Control_Errores)
            {
                Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSLISTADO());
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(PI_InformeOficial_LibroMayor) + "/" + nameof(Imprimir_Informe));

                Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSLISTADO());
            }
        }
    }
}
