using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Exferia_Ventas._0_Modelos;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Aplicacion.General;

namespace Exferia_Ventas._3_Vistas.ControlesPersonalizados_DentroPaneles
{
    public partial class CTU_Lineas_Comentarios : UserControl
    {
        #region Propiedades Privadas
        private INTERNO_LineasComentarios_Modelo g_mdl_INTERNO_LineasComentarios_Modelo = null;
        private int g_int_NumerObjeto;
        #endregion

        #region Eventos publicos
        public event EventHandler<INTERNO_EventArgs> Boton_CTU_Lineas_Comentarios_Delete_Click;
        #endregion

        #region Constructor
        public CTU_Lineas_Comentarios(INTERNO_LineasComentarios_Modelo _mdl_INTERNO_LineasComentarios_Modelo,
                                      int _int_NumerObjeto)
        {
            InitializeComponent();

            //Valores Recibidos
            g_mdl_INTERNO_LineasComentarios_Modelo = _mdl_INTERNO_LineasComentarios_Modelo;
            g_int_NumerObjeto = _int_NumerObjeto;

            Cargar_Datos();

            Repintar.Empezar(this);
        }
        #endregion

        private void Cargar_Datos()
        {
            try
            {
                if (g_mdl_INTERNO_LineasComentarios_Modelo != null)
                {
                    //Comentario
                    if (g_mdl_INTERNO_LineasComentarios_Modelo.comentario.Trim().Substring(0, 1) == "{")
                    {
                        ex_rtch_CTU_P_Lineas_Comentarios_Texto.Exferia_RichTextBox_RTF = g_mdl_INTERNO_LineasComentarios_Modelo.comentario;
                    }
                    else
                    {
                        ex_rtch_CTU_P_Lineas_Comentarios_Texto.Text = g_mdl_INTERNO_LineasComentarios_Modelo.comentario;
                    }

                    //mostrar para imprimir
                    ex_chk_P_Lineas_Comentarios_Imprimir.Checked = g_mdl_INTERNO_LineasComentarios_Modelo.mostrarImpresion;
                }
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(CTU_Lineas_Comentarios) + "/" + nameof(Cargar_Datos));
            }
        }

        public INTERNO_LineasComentarios_Modelo Obtener(long _lng_idLinea)
        {
            INTERNO_LineasComentarios_Modelo mdl_INTERNO_LineasComentarios_Modelo = null;

            //Tiene algo escrito en el comentario
            if (ex_rtch_CTU_P_Lineas_Comentarios_Texto.Text.Trim().Length>0)
            {
                mdl_INTERNO_LineasComentarios_Modelo = new INTERNO_LineasComentarios_Modelo();

                //id
                mdl_INTERNO_LineasComentarios_Modelo.id = g_mdl_INTERNO_LineasComentarios_Modelo != null ? g_mdl_INTERNO_LineasComentarios_Modelo.id : -1;

                mdl_INTERNO_LineasComentarios_Modelo.id_Linea = _lng_idLinea;

                mdl_INTERNO_LineasComentarios_Modelo.comentario = ex_rtch_CTU_P_Lineas_Comentarios_Texto.Exferia_RichTextBox_RTF;

                mdl_INTERNO_LineasComentarios_Modelo.mostrarImpresion = ex_chk_P_Lineas_Comentarios_Imprimir.Checked;
            }

            return mdl_INTERNO_LineasComentarios_Modelo;
        }

        public void Poner_Foco()
        {
            Funciones.Poner_Foco_Objeto(null,ex_rtch_CTU_P_Lineas_Comentarios_Texto);
        }

        private void ex_btn_CTU_P_Lineas_Comentarios_Borrar_Click(object sender, EventArgs e)
        {
            //Para que salte el evento en el otro lado
            EventHandler<INTERNO_EventArgs> temp = Boton_CTU_Lineas_Comentarios_Delete_Click;
            if (temp != null)
                temp(sender, new INTERNO_EventArgs(g_int_NumerObjeto));
        }
    }
}
