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_Aplicacion.Visualizacion;
using Exferia_EntityFramework;
using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Calculos.VentasCompras;

namespace Exferia_Inventarios._3_Vistas.ControlesPersonalizados_DentroPaneles
{
    public partial class CTU_P_InventarioLinea_PreciosImportes : UserControl
    {
        private MAE_NomenclaturasPrecios g_mdl_MAE_NomenclaturasPrecios = null;
        private InventariosVariacionExistencias_Calculos g_obj_InventariosVariacionExistencias_Calculos = null;
        private bool g_bol_Cambio_Precio = false;

        #region Variables Publicas
        
        public decimal? CTU_P_InventarioLinea_PreciosImportes_Precio_Final
        {
            set
            {
                ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio.Text = value.ToString();
                Calcular_Importe();
            }
            get
            {
                decimal? dcm_Precio = null;
                if (ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio.Text.Trim().Length > 0)
                {
                    dcm_Precio = decimal.Parse(ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio.Text);
                }

                return dcm_Precio;
            }
        }

        public decimal CTU_P_InventarioLinea_PreciosImportes_Importe
        {
            get
            {
                decimal dcm_Importe = 0;
                if (ex_lbl_CTU_P_InventarioLinea_PreciosImportes_Importe_Valor.Text.Trim().Length > 0)
                {
                    dcm_Importe = decimal.Parse(ex_lbl_CTU_P_InventarioLinea_PreciosImportes_Importe_Valor.Text);
                }

                return dcm_Importe;
            }
        }
        #endregion

        #region Constructor
        public CTU_P_InventarioLinea_PreciosImportes(MAE_NomenclaturasPrecios _mdl_MAE_NomenclaturasPrecios, 
                                                    InventariosVariacionExistencias_Calculos _obj_InventariosVariacionExistencias_Calculos)
        {
            InitializeComponent();

            g_mdl_MAE_NomenclaturasPrecios = _mdl_MAE_NomenclaturasPrecios;
            g_obj_InventariosVariacionExistencias_Calculos = _obj_InventariosVariacionExistencias_Calculos;

            ex_lbl_CTU_P_InventarioLinea_PreciosImportes_Precio.Text = g_mdl_MAE_NomenclaturasPrecios.descripcion;

            Repintar.Empezar(this);
        }
        #endregion

        public void Actualizar_Precio(decimal? _dcm_Precio)
        {
            if (_dcm_Precio != null)
            {
                ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio.Text = _dcm_Precio.Value.ToString();
            }
            else
            {
                ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio.Text = "0,000";
            }

            //Calcular Importe
            Calcular_Importe();
        }
        private void ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio_Exferia_TextBox_Evento_KeyDown(object sender, KeyEventArgs e)
        {
            g_bol_Cambio_Precio = true;
        }
        private void ex_txt_CTU_P_InventarioLinea_PreciosImportes_Precio_Exferia_TextBox_Evento_LostFocus(object sender, EventArgs e)
        {
            if (g_bol_Cambio_Precio)
            {
                g_bol_Cambio_Precio = false;

                //Actualizar precio
                g_obj_InventariosVariacionExistencias_Calculos.Cambio_Precio(CTU_P_InventarioLinea_PreciosImportes_Precio_Final, g_mdl_MAE_NomenclaturasPrecios.id);

                //Calcular Importe
                Calcular_Importe();
            }
        }

        public void Calcular_Importe()
        {
            ex_lbl_CTU_P_InventarioLinea_PreciosImportes_Importe_Valor.Text= g_obj_InventariosVariacionExistencias_Calculos.Importe_PorNomenclaturaPrecio(g_mdl_MAE_NomenclaturasPrecios.id).ToString();
        }

       
    }
}
