using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using fatd_faturamento.DAL.Persistencia;
using fatd_faturamento.ENTIDADE;

namespace fatd_faturamento.BLL.Repositorio
{
    public class repositorioTarifaComposicao
    {

        public void Insert(entidadeTarifaComposicao objTarifaComposicao)
        {
            dalTarifaComposicao dalTarifaComposicao = null;

            try
            {
                dalTarifaComposicao = new dalTarifaComposicao();

                dalTarifaComposicao.Insert(objTarifaComposicao);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeTarifaComposicao objTarifaComposicao)
        {
            dalTarifaComposicao dalTarifaComposicao = null;

            try
            {
                dalTarifaComposicao = new dalTarifaComposicao();

                dalTarifaComposicao.Delete(objTarifaComposicao);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeTarifaComposicao> Select(entidadeTarifaComposicao objTarifaComposicao)
        {
            dalTarifaComposicao dalTarifaComposicao = null;

            var lstTarifaComposicao = new List<entidadeTarifaComposicao>();
            DataTable dt = null;

            try
            {
                dalTarifaComposicao = new dalTarifaComposicao();
                dt = dalTarifaComposicao.Select(objTarifaComposicao);

                foreach (DataRow dr in dt.Rows)
                {
                    objTarifaComposicao = new entidadeTarifaComposicao();

                    if (!Convert.IsDBNull(dr["REFERENCIA"]))
                        objTarifaComposicao.REFERENCIA = Convert.ToDateTime(dr["REFERENCIA"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO"]))
                        objTarifaComposicao.DESCRICAO = dr["DESCRICAO"].ToString();

                    if (!Convert.IsDBNull(dr["ENERGIA_REAL"]))
                        objTarifaComposicao.ENERGIA_REAL = Convert.ToDecimal(dr["ENERGIA_REAL"]);

                    if (!Convert.IsDBNull(dr["ENERGIA"]))
                        objTarifaComposicao.ENERGIA = Convert.ToDecimal(dr["ENERGIA"]);

                    if (!Convert.IsDBNull(dr["TRANSMISSAO"]))
                        objTarifaComposicao.TRANSMISSAO = Convert.ToDecimal(dr["TRANSMISSAO"]);

                    if (!Convert.IsDBNull(dr["DISTRIBUICAO"]))
                        objTarifaComposicao.DISTRIBUICAO = Convert.ToDecimal(dr["DISTRIBUICAO"]);

                    if (!Convert.IsDBNull(dr["ENC_SETORIAIS"]))
                        objTarifaComposicao.ENC_SETORIAIS = Convert.ToDecimal(dr["ENC_SETORIAIS"]);

                    if (!Convert.IsDBNull(dr["PERDAS"]))
                        objTarifaComposicao.PERDAS = Convert.ToDecimal(dr["PERDAS"]);

                    if (!Convert.IsDBNull(dr["TRIBUTOS_ICMS"]))
                        objTarifaComposicao.TRIBUTOS_ICMS = Convert.ToDecimal(dr["TRIBUTOS_ICMS"]);

                    if (!Convert.IsDBNull(dr["TRIBUTOS_PIS_COFINS"]))
                        objTarifaComposicao.TRIBUTOS_PIS_COFINS = Convert.ToDecimal(dr["TRIBUTOS_PIS_COFINS"]);


                    lstTarifaComposicao.Add(objTarifaComposicao);
                }
                return lstTarifaComposicao;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeTarifaComposicao> SelectOthersTables(entidadeTarifaComposicao objTarifaComposicao)
        {
            dalTarifaComposicao dalTarifaComposicao = null;

            var lstTarifaComposicao = new List<entidadeTarifaComposicao>();
            DataTable dt = null;

            try
            {
                dalTarifaComposicao = new dalTarifaComposicao();
                dt = dalTarifaComposicao.SelectOthersTables(objTarifaComposicao);

                foreach (DataRow dr in dt.Rows)
                {
                    objTarifaComposicao = new entidadeTarifaComposicao();

                    if (!Convert.IsDBNull(dr["REFERENCIA"]))
                        objTarifaComposicao.REFERENCIA = Convert.ToDateTime(dr["REFERENCIA"]);


                    lstTarifaComposicao.Add(objTarifaComposicao);
                }
                return lstTarifaComposicao;
            }
            catch (Exception)
            {
                throw;
            }
        }


    }
}
