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 repositorioFatura
    {

        public IList<entidadeFatura> Select(entidadeFatura objFatura)
        {
            dalFatura dalFatura = null;

            var lstNf = new List<entidadeFatura>();
            DataTable dt = null;
             
            try
            {
                dalFatura = new dalFatura();
                dt = dalFatura.Select(objFatura);

                foreach (DataRow dr in dt.Rows)
                {
                    objFatura = new entidadeFatura();

                    if (!Convert.IsDBNull(dr["CLASSE"]))
                        objFatura.CLASSE = dr["CLASSE"].ToString();

                    if (!Convert.IsDBNull(dr["QKWH_CONS"]))
                        objFatura.QKWH_CONS = Convert.ToDouble(dr["QKWH_CONS"]);

                    if (!Convert.IsDBNull(dr["QKWH_FAT"]))
                        objFatura.QKWH_FAT = Convert.ToDouble(dr["QKWH_FAT"]);

                    if (!Convert.IsDBNull(dr["QKW_CONTR"]))
                        objFatura.QKW_CONTR = Convert.ToDouble(dr["QKW_CONTR"]);

                    if (!Convert.IsDBNull(dr["QKW_FAT"]))
                        objFatura.QKW_FAT = Convert.ToDouble(dr["QKW_FAT"]);

                    if (!Convert.IsDBNull(dr["VKWH_CONS"]))
                        objFatura.VKWH_CONS = Convert.ToDouble(dr["VKWH_CONS"]);

                    if (!Convert.IsDBNull(dr["VKWH_FAT"]))
                        objFatura.VKWH_FAT = Convert.ToDouble(dr["VKWH_FAT"]);

                    if (!Convert.IsDBNull(dr["VKW_FAT"]))
                        objFatura.VKW_FAT = Convert.ToDouble(dr["VKW_FAT"]);

                    if (!Convert.IsDBNull(dr["VCONREAT"]))
                        objFatura.VCONREAT = Convert.ToDouble(dr["VCONREAT"]);

                    if (!Convert.IsDBNull(dr["VDEMREAT"]))
                        objFatura.VDEMREAT = Convert.ToDouble(dr["VDEMREAT"]);

                    if (!Convert.IsDBNull(dr["QKWH_FAT_P"]))
                        objFatura.QKWH_FAT_P = Convert.ToDouble(dr["QKWH_FAT_P"]);

                    if (!Convert.IsDBNull(dr["QKWH_FAT_FP"]))
                        objFatura.QKWH_FAT_FP = Convert.ToDouble(dr["QKWH_FAT_FP"]);

                    if (!Convert.IsDBNull(dr["QKWH_DEV_P"]))
                        objFatura.QKWH_DEV_P = Convert.ToDouble(dr["QKWH_DEV_P"]);

                    if (!Convert.IsDBNull(dr["QKWH_DEV_FP"]))
                        objFatura.QKWH_DEV_FP = Convert.ToDouble(dr["QKWH_DEV_FP"]);

                    if (!Convert.IsDBNull(dr["QKWH_UTR_P"]))
                        objFatura.QKWH_UTR_P = Convert.ToDouble(dr["QKWH_UTR_P"]);

                    if (!Convert.IsDBNull(dr["QKWH_UTR_FP"]))
                        objFatura.QKWH_UTR_FP = Convert.ToDouble(dr["QKWH_UTR_FP"]);

                    if (!Convert.IsDBNull(dr["QKW_CONTR_P"]))
                        objFatura.QKW_CONTR_P = Convert.ToDouble(dr["QKW_CONTR_P"]);

                    if (!Convert.IsDBNull(dr["QKW_CONTR_FP"]))
                        objFatura.QKW_CONTR_FP = Convert.ToDouble(dr["QKW_CONTR_FP"]);

                    if (!Convert.IsDBNull(dr["QKW_FAT_P"]))
                        objFatura.QKW_FAT_P = Convert.ToDouble(dr["QKW_FAT_P"]);

                    if (!Convert.IsDBNull(dr["QKW_FAT_FP"]))
                        objFatura.QKW_FAT_FP = Convert.ToDouble(dr["QKW_FAT_FP"]);

                    if (!Convert.IsDBNull(dr["QKW_FATU_P"]))
                        objFatura.QKW_FATU_P = Convert.ToDouble(dr["QKW_FATU_P"]);

                    if (!Convert.IsDBNull(dr["QKW_FATU_FP"]))
                        objFatura.QKW_FATU_FP = Convert.ToDouble(dr["QKW_FATU_FP"]);

                    if (!Convert.IsDBNull(dr["VKWH_FAT_P"]))
                        objFatura.VKWH_FAT_P = Convert.ToDouble(dr["VKWH_FAT_P"]);

                    if (!Convert.IsDBNull(dr["VKWH_FAT_FP"]))
                        objFatura.VKWH_FAT_FP = Convert.ToDouble(dr["VKWH_FAT_FP"]);

                    if (!Convert.IsDBNull(dr["VKWH_DEV_P"]))
                        objFatura.VKWH_DEV_P = Convert.ToDouble(dr["VKWH_DEV_P"]);

                    if (!Convert.IsDBNull(dr["VKWH_DEV_FP"]))
                        objFatura.VKWH_DEV_FP = Convert.ToDouble(dr["VKWH_DEV_FP"]);

                    if (!Convert.IsDBNull(dr["VKWH_UTR_P"]))
                        objFatura.VKWH_UTR_P = Convert.ToDouble(dr["VKWH_UTR_P"]);

                    if (!Convert.IsDBNull(dr["VKWH_UTR_FP"]))
                        objFatura.VKWH_UTR_FP = Convert.ToDouble(dr["VKWH_UTR_FP"]);

                    if (!Convert.IsDBNull(dr["VKW_FAT_P"]))
                        objFatura.VKW_FAT_P = Convert.ToDouble(dr["VKW_FAT_P"]);

                    if (!Convert.IsDBNull(dr["VKW_FAT_FP"]))
                        objFatura.VKW_FAT_FP = Convert.ToDouble(dr["VKW_FAT_FP"]);

                    if (!Convert.IsDBNull(dr["VKW_FATU_P"]))
                        objFatura.VKW_FATU_P = Convert.ToDouble(dr["VKW_FATU_P"]);

                    if (!Convert.IsDBNull(dr["VKW_FATU_FP"]))
                        objFatura.VKW_FATU_FP = Convert.ToDouble(dr["VKW_FATU_FP"]);

                    if (!Convert.IsDBNull(dr["VKW_DSC_PROV"]))
                        objFatura.VKW_DSC_PROV = Convert.ToDouble(dr["VKW_DSC_PROV"]);

                    if (!Convert.IsDBNull(dr["VKW_DSC_REAL"]))
                        objFatura.VKW_DSC_REAL = Convert.ToDouble(dr["VKW_DSC_REAL"]);

                    if (!Convert.IsDBNull(dr["VKW_DEV_CCEE"]))
                        objFatura.VKW_DEV_CCEE = Convert.ToDouble(dr["VKW_DEV_CCEE"]);

                    if (!Convert.IsDBNull(dr["VKW_COB_CCEE"]))
                        objFatura.VKW_COB_CCEE = Convert.ToDouble(dr["VKW_COB_CCEE"]);

                    if (!Convert.IsDBNull(dr["VCONREAT_P"]))
                        objFatura.VCONREAT_P = Convert.ToDouble(dr["VCONREAT_P"]);

                    if (!Convert.IsDBNull(dr["VCONREAT_FP"]))
                        objFatura.VCONREAT_FP = Convert.ToDouble(dr["VCONREAT_FP"]);

                    if (!Convert.IsDBNull(dr["VDEMREAT_P"]))
                        objFatura.VDEMREAT_P = Convert.ToDouble(dr["VDEMREAT_P"]);

                    if (!Convert.IsDBNull(dr["VDEMREAT_FP"]))
                        objFatura.VDEMREAT_FP = Convert.ToDouble(dr["VDEMREAT_FP"]);

                    if (!Convert.IsDBNull(dr["TIP"]))
                        objFatura.TIP = Convert.ToDouble(dr["TIP"]);

                    if (!Convert.IsDBNull(dr["SLD_ARRED"]))
                        objFatura.SLD_ARRED = Convert.ToDouble(dr["SLD_ARRED"]);

                    if (!Convert.IsDBNull(dr["ENC_FINAN"]))
                        objFatura.ENC_FINAN = Convert.ToDouble(dr["ENC_FINAN"]);

                    if (!Convert.IsDBNull(dr["ICMS"]))
                        objFatura.ICMS = Convert.ToDouble(dr["ICMS"]);

                    if (!Convert.IsDBNull(dr["PIS"]))
                        objFatura.PIS = Convert.ToDouble(dr["PIS"]);

                    if (!Convert.IsDBNull(dr["COFINS"]))
                        objFatura.COFINS = Convert.ToDouble(dr["COFINS"]);

                    if (!Convert.IsDBNull(dr["BASEICMS"]))
                        objFatura.BASEICMS = Convert.ToDouble(dr["BASEICMS"]);

                    if (!Convert.IsDBNull(dr["BASEPIS"]))
                        objFatura.BASEPIS = Convert.ToDouble(dr["BASEPIS"]);

                    if (!Convert.IsDBNull(dr["BASECOFINS"]))
                        objFatura.BASECOFINS = Convert.ToDouble(dr["BASECOFINS"]);

                    if (!Convert.IsDBNull(dr["ICMSPISCOF"]))
                        objFatura.ICMSPISCOF = Convert.ToDouble(dr["ICMSPISCOF"]);

                    if (!Convert.IsDBNull(dr["DIF_ELTRBR"]))
                        objFatura.DIF_ELTRBR = Convert.ToDouble(dr["DIF_ELTRBR"]);

                    if (!Convert.IsDBNull(dr["JUROS"]))
                        objFatura.JUROS = Convert.ToDouble(dr["JUROS"]);

                    if (!Convert.IsDBNull(dr["MULTA"]))
                        objFatura.MULTA = Convert.ToDouble(dr["MULTA"]);

                    if (!Convert.IsDBNull(dr["ENCARGO"]))
                        objFatura.ENCARGO = Convert.ToDouble(dr["ENCARGO"]);

                    if (!Convert.IsDBNull(dr["MUST"]))
                        objFatura.MUST = Convert.ToDouble(dr["MUST"]);

                    if (!Convert.IsDBNull(dr["TOTAL"]))
                        objFatura.TOTAL = Convert.ToDouble(dr["TOTAL"]);

                    if (!Convert.IsDBNull(dr["TAXADOS"]))
                        objFatura.TAXADOS = Convert.ToDouble(dr["TAXADOS"]);

                    if (!Convert.IsDBNull(dr["DIVERSOS"]))
                        objFatura.DIVERSOS = Convert.ToDouble(dr["DIVERSOS"]);

                    if (!Convert.IsDBNull(dr["CONVENIOS"]))
                        objFatura.CONVENIOS = Convert.ToDouble(dr["CONVENIOS"]);

                    if (!Convert.IsDBNull(dr["DESCONTOS"]))
                        objFatura.DESCONTOS = Convert.ToDouble(dr["DESCONTOS"]);

                    if (!Convert.IsDBNull(dr["RETENCAO"]))
                        objFatura.RETENCAO = Convert.ToDouble(dr["RETENCAO"]);

                    if (!Convert.IsDBNull(dr["FASE"]))
                        objFatura.FASE = dr["FASE"].ToString();

                    if (!Convert.IsDBNull(dr["GRUPO"]))
                        objFatura.GRUPO = dr["GRUPO"].ToString();

                    if (!Convert.IsDBNull(dr["ZONA"]))
                        objFatura.ZONA = dr["ZONA"].ToString();

                    if (!Convert.IsDBNull(dr["LIVRO"]))
                        objFatura.LIVRO = dr["LIVRO"].ToString();

                    if (!Convert.IsDBNull(dr["CONTA"]))
                        objFatura.CONTA = dr["CONTA"].ToString();

                    if (!Convert.IsDBNull(dr["NOME"]))
                        objFatura.NOME = dr["NOME"].ToString();

                    if (!Convert.IsDBNull(dr["GRUPOT"]))
                        objFatura.GRUPOT = dr["GRUPOT"].ToString();

                    if (!Convert.IsDBNull(dr["IDUSUARIO"]))
                        objFatura.IDUSUARIO = Convert.ToInt32(dr["IDUSUARIO"]);

                    if (!Convert.IsDBNull(dr["DATAINCLUSAO"]))
                        objFatura.DATAINCLUSAO = Convert.ToDateTime(dr["DATAINCLUSAO"]);


                    lstNf.Add(objFatura);
                }
                return lstNf;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public DataTable Select_1(entidadeFatura objFatura)
        {
            dalFatura dalFatura = null;
            DataTable dt = null;

            try
            {
                dalFatura = new dalFatura();
                dt = dalFatura.Select_1(objFatura);

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Insert(entidadeFatura objFatura)
        {
            dalFatura dalFatura = null;

            try
            {
                dalFatura = new dalFatura();

                dalFatura.Insert(objFatura);
            }
            catch (Exception)
            {
                throw;
            }
        }


        /// <summary>
        /// Retorno a ser usado no Relatório RPT
        /// </summary>
        /// <param name="objFatura"></param>
        /// <returns></returns>
        //public IList<entidadeFatura> SelectOthersTables(entidadeFatura objFatura)
        //{
        //    dalFatura dalFatura = null;

        //    var lstNf = new List<entidadeFatura>();
        //    DataTable dt = null;

        //    try
        //    {
        //        dalFatura = new dalFatura();
        //        dt = dalFatura.SelectOthersTables(objFatura);

        //        foreach (DataRow dr in dt.Rows)
        //        {
        //            objFatura = new entidadeFatura();

        //            objFatura.NOME = Convert.IsDBNull(dr["NOMEUC"]) ? "" : dr["NOMEUC"].ToString();

        //            objFatura.NUMNF = Convert.IsDBNull(dr["NUMNF"]) ? 0 : Convert.ToDouble(dr["NUMNF"]);

        //            objFatura.MESANO = Convert.IsDBNull(dr["MESANO"]) ? "" : dr["MESANO"].ToString();

        //            objFatura.CODCLAS = Convert.IsDBNull(dr["CODCLAS"]) ? "" : dr["CODCLAS"].ToString();

        //            if (!Convert.IsDBNull(dr["DATAST"]))
        //                objFatura.DATAST = Convert.ToDateTime(dr["DATAST"]);

        //            objFatura.MOTIVOCANC = Convert.IsDBNull(dr["MOTIVOCANC"]) ? "" : dr["MOTIVOCANC"].ToString();

        //            objFatura.TA = (Convert.IsDBNull(dr["TA"]) ? "01B1" : dr["TA"].ToString()).Trim().Substring(3, 2);

        //            objFatura.ITENSSERV = Convert.IsDBNull(dr["ITENSSERV"]) ? "" : dr["ITENSSERV"].ToString().Trim();

        //            objFatura.VALORTOT = Convert.IsDBNull(dr["VALORTOT"]) ? 0 : Convert.ToInt32(dr["VALORTOT"]);

        //            lstNf.Add(objFatura);
        //        }
        //        return lstNf;
        //    }
        //    catch (Exception)
        //    {
        //        throw;
        //    }
        //}


    }
}
