using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using fatd_faturamento.ENTIDADE;
using fatd_faturamento.DAL.Conexao;

namespace fatd_faturamento.DAL.Persistencia
{
    public class dalTempOcorrencias
    {

        string vFILTER = null;
        string vINNERJOIN = null;
        string vAND = null;
        string vORDERBY = null;


        #region Métodos


        public void Insert(entidadeTempOcorrencias objTempOcorrencias)
        {
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;

            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {
                    vFILTER = vFILTER + "NM_USUARIO = ?NM_USUARIO , ";
                    vFILTER = vFILTER + "MESANO_REF = ?MESANO_REF , ";
                    vFILTER = vFILTER + "ZONA = ?ZONA , ";
                    vFILTER = vFILTER + "LIVRO = ?LIVRO    , ";
                    vFILTER = vFILTER + "CONTA =  ?CONTA , ";
                    vFILTER = vFILTER + "ROTA   =  ?ROTA , ";
                    vFILTER = vFILTER + "NOME    = ?NOME , ";
                    vFILTER = vFILTER + "CODOCOR  =  ?CODOCOR , ";
                    vFILTER = vFILTER + "DESOCOR   = ?DESOCOR  ";

                    cmd = new MySqlCommand(this.QueryInsert);

                    cmd.Parameters.AddWithValue("?NM_USUARIO", objTempOcorrencias.NM_USUARIO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?MESANO_REF", objTempOcorrencias.MESANO_REF);
                    cmd.Parameters.AddWithValue("?ZONA", objTempOcorrencias.ZONA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?LIVRO", objTempOcorrencias.LIVRO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONTA", objTempOcorrencias.CONTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?ROTA", objTempOcorrencias.ROTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?NOME", objTempOcorrencias.NOME.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CODOCOR", objTempOcorrencias.CODOCOR.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?DESOCOR", objTempOcorrencias.DESOCOR.ToString().ToUpper());

                    objGerenciadorTransacao.Execute(cmd);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }

        public DataTable Select(entidadeTempOcorrencias objTempOcorrencias)
        {
            DataTable dt = null;
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;

            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {
                    vFILTER = vFILTER + "NM_USUARIO , ";
                    vFILTER = vFILTER + "MESANO_REF , ";
                    vFILTER = vFILTER + "ZONA , ";
                    vFILTER = vFILTER + "LIVRO     , ";
                    vFILTER = vFILTER + "CONTA    , ";
                    vFILTER = vFILTER + "ROTA     , ";
                    vFILTER = vFILTER + "NOME      , ";
                    vFILTER = vFILTER + "CODOCOR    , ";
                    vFILTER = vFILTER + "DESOCOR     ";

                    vINNERJOIN = " ";

                    vORDERBY = " ";

                    vAND = vAND + " 	AND NM_USUARIO  = ?NM_USUARIO ";

                    cmd = new MySqlCommand(this.QuerySelect);


                    cmd.Parameters.AddWithValue("?NM_USUARIO", objTempOcorrencias.NM_USUARIO.ToString().ToUpper());


                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }

        public DataTable Select_1(entidadeTempOcorrencias objTempOcorrencias)
        {
            DataTable dt = null;
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;


            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {

                    vORDERBY = " ORDER BY 6 ASC, 4 ASC ";

                    vAND = vAND + "   SELECT ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".ZONA AS ZONA ,  ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".LIVRO AS LIVRO, ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".CONTA AS CONTA, ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".ROTA  AS ROTA,  ";

                    //if (objTempOcorrencias.NOME.Substring(0, 10) == "LEITMENSAL")
                    if (objTempOcorrencias.NOME.Trim() == "LEITMENSAL")
                    {
                        vAND = vAND + "          DATE_FORMAT(" + objTempOcorrencias.NOME + ".DT_LEIT, '%Y%m')  AS MESANO_REF , ";
                        vAND = vAND + "          " + objTempOcorrencias.NOME + ".NOME  AS NOME , ";
                        vAND = vAND + "     LPAD(" + objTempOcorrencias.NOME + ".OCORRENC, 2, '0') AS CODOCOR, ";
                        vAND = vAND + "          OCORRENCIAS.DESCRICAO AS DESOCOR ";
                    }
                    else
                    {
                        vAND = vAND + "          " + objTempOcorrencias.NOME + ".MESANO_REF AS MESANO_REF ,  ";
                       // vAND = vAND + "   IFNULL(IFNULL(UNIDB.NOME, UNIDA.NOME), CONSUM.NOME) AS NOME, ";
                        vAND = vAND + "     CONSUM.NOME AS NOME, ";
                        vAND = vAND + "      MID(" + objTempOcorrencias.NOME + ".ITENSSERV, INSTR(" + objTempOcorrencias.NOME + ".ITENSSERV, '90410000') + 8, 2) AS CODOCOR, ";
                        vAND = vAND + "      BUSCAREFITEM(" + objTempOcorrencias.NOME + ".ITENSSERV, MID(" + objTempOcorrencias.NOME + ".ITENSSERV, INSTR(" + objTempOcorrencias.NOME + ".ITENSSERV, '90410000'), 10)) AS DESOCOR ";
                    }

                    vAND = vAND + "     FROM " + objTempOcorrencias.NOME + " ";

                    //if (objTempOcorrencias.NOME.Substring(0, 10) == "LEITMENSAL")
                    if (objTempOcorrencias.NOME.Trim() == "LEITMENSAL")
                    {
                        vAND = vAND + " LEFT JOIN OCORRENCIAS ON(OCORRENCIAS.COD = LPAD(" + objTempOcorrencias.NOME + ".OCORRENC, 2, '0')) ";
                        vAND = vAND + "    WHERE 1 = 1   ";
                        vAND = vAND + " AND  DATE_FORMAT(" + objTempOcorrencias.NOME + ".DT_LEIT, '%d/%m/%Y' ) BETWEEN  '" + objTempOcorrencias.CODOCOR + "' AND '" + objTempOcorrencias.DESOCOR + "' ";

                    }
                    else
                    {

                        vAND = vAND + "LEFT JOIN UC_FATURAMENTO  ON(UC_FATURAMENTO.ZONA = " + objTempOcorrencias.NOME + ".ZONA AND UC_FATURAMENTO.LIVRO = " + objTempOcorrencias.NOME + ".LIVRO AND UC_FATURAMENTO.CONTA = " + objTempOcorrencias.NOME + ".CONTA AND UC_FATURAMENTO.CONS_ID = " + objTempOcorrencias.NOME + ".CONS_ID AND UC_FATURAMENTO.ID = " + objTempOcorrencias.NOME + ".UNID_ID) ";
                        //vAND = vAND + "LEFT JOIN UC_FATURAMENTO  ON(UC_FATURAMENTO.ZONA = " + objTempOcorrencias.NOME + ".ZONA AND UC_FATURAMENTO.LIVRO = " + objTempOcorrencias.NOME + ".LIVRO AND UC_FATURAMENTO.CONTA = " + objTempOcorrencias.NOME + ".CONTA AND UC_FATURAMENTO.CONS_ID = " + objTempOcorrencias.NOME + ".CONS_ID AND UC_FATURAMENTO.ID = " + objTempOcorrencias.NOME + ".UNID_ID AND " + objTempOcorrencias.NOME + ".GRUPO = 'A') ";
                        //vAND = vAND + "LEFT JOIN UC_FATURAMENTO  ON(UC_FATURAMENTO.ZONA = " + objTempOcorrencias.NOME + ".ZONA AND UC_FATURAMENTO.LIVRO = " + objTempOcorrencias.NOME + ".LIVRO AND UC_FATURAMENTO.CONTA = " + objTempOcorrencias.NOME + ".CONTA AND UC_FATURAMENTO.CONS_ID = " + objTempOcorrencias.NOME + ".CONS_ID AND UC_FATURAMENTO.ID = " + objTempOcorrencias.NOME + ".UNID_ID AND " + objTempOcorrencias.NOME + ".GRUPO = 'B') ";
                        vAND = vAND + "LEFT JOIN CONSUM ON(CONSUM.CONSREG = " + objTempOcorrencias.NOME + ".CONS_ID) ";

                        vAND = vAND + "  WHERE 1 = 1   ";

                        //if (objTempOcorrencias.NOME.Substring(0, 11) == "NFTRANSICAO")
                        if (objTempOcorrencias.NOME.Trim() == "NFTRANSICAO")
                        {

                            vAND = vAND + " AND  " + objTempOcorrencias.NOME + ".MESANO = '" + Convert.ToString(Convert.ToDateTime(objTempOcorrencias.CODOCOR).Month + "/" + Convert.ToDateTime(objTempOcorrencias.CODOCOR).Year) + "' ";
                        }

                        else
                        {
                            vAND = vAND + " AND " + objTempOcorrencias.NOME + ".MESANO_REF BETWEEN '" + Convert.ToString(Convert.ToDateTime(objTempOcorrencias.CODOCOR).Year + "" + Convert.ToDateTime(objTempOcorrencias.CODOCOR).Month) + "' AND '" + Convert.ToString(Convert.ToDateTime(objTempOcorrencias.DESOCOR).Year + "" + Convert.ToDateTime(objTempOcorrencias.DESOCOR).Month) + "' ";
                        }

                        vAND = vAND + " " + objTempOcorrencias.NM_USUARIO + " ";

                    }

                    cmd = new MySqlCommand(this.QueryExecute);

                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }

        public DataTable Select_2(entidadeTempOcorrencias objTempOcorrencias)
        {
            DataTable dt = null;
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;

            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {
                    vFILTER = vFILTER + "NM_USUARIO , ";
                    vFILTER = vFILTER + "CONCAT( SUBSTRING(CONVERT(MESANO_REF, CHAR(50)),5,2) , '/' , SUBSTRING(CONVERT(MESANO_REF, CHAR(50)),1,4))AS MESANO_REF , ";
                    vFILTER = vFILTER + "ZONA , ";
                    vFILTER = vFILTER + "LIVRO     , ";
                    vFILTER = vFILTER + "CONTA    , ";
                    vFILTER = vFILTER + "ROTA     , ";
                    vFILTER = vFILTER + "NOME      , ";
                    vFILTER = vFILTER + "CODOCOR    , ";
                    vFILTER = vFILTER + "DESOCOR     ";

                    vINNERJOIN = " ";

                    vORDERBY = " ";

                    vAND = vAND + " 	AND NM_USUARIO  = ?NM_USUARIO ";

                    cmd = new MySqlCommand(this.QuerySelect);


                    cmd.Parameters.AddWithValue("?NM_USUARIO", objTempOcorrencias.NM_USUARIO.ToString().ToUpper());


                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }

        public DataTable Select_3(entidadeTempOcorrencias objTempOcorrencias)
        {
            DataTable dt = null;
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;


            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {

                    vORDERBY = " ORDER BY 6 ASC, 4 ASC ";

                    vAND = vAND + "   SELECT ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".ZONA AS ZONA ,  ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".LIVRO AS LIVRO, ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".CONTA AS CONTA, ";
                    vAND = vAND + "          " + objTempOcorrencias.NOME + ".ROTA  AS ROTA,  ";

                    if (objTempOcorrencias.NOME.Substring(0, 10) == "LEITMENSAL")
                    {
                        vAND = vAND + "          DATE_FORMAT(" + objTempOcorrencias.NOME + ".DT_LEIT, '%Y%m')  AS MESANO_REF , ";
                        vAND = vAND + "          " + objTempOcorrencias.NOME + ".NOME  AS NOME , ";
                        vAND = vAND + "     LPAD(" + objTempOcorrencias.NOME + ".OCORRENC, 2, '0') AS CODOCOR, ";
                        vAND = vAND + "          OCORRENCIAS.DESCRICAO AS DESOCOR ";
                    }
                    else
                    {
                        vAND = vAND + "          " + objTempOcorrencias.NOME + ".MESANO_REF AS MESANO_REF ,  ";
                        vAND = vAND + "   IFNULL(IFNULL(UNIDB.NOME, UNIDA.NOME), CONSUM.NOME) AS NOME, ";
                        vAND = vAND + "      MID(" + objTempOcorrencias.NOME + ".ITENSSERV, INSTR(" + objTempOcorrencias.NOME + ".ITENSSERV, '90410000') + 8, 2) AS CODOCOR, ";
                        vAND = vAND + "      BUSCAREFITEM(" + objTempOcorrencias.NOME + ".ITENSSERV, MID(" + objTempOcorrencias.NOME + ".ITENSSERV, INSTR(" + objTempOcorrencias.NOME + ".ITENSSERV, '90410000'), 10)) AS DESOCOR ";
                    }

                    vAND = vAND + "     FROM " + objTempOcorrencias.NOME + " ";

                    if (objTempOcorrencias.NOME.Substring(0, 10) == "LEITMENSAL")
                    {
                        vAND = vAND + " LEFT JOIN OCORRENCIAS ON(OCORRENCIAS.COD = LPAD(" + objTempOcorrencias.NOME + ".OCORRENC, 2, '0')) ";
                        vAND = vAND + "    WHERE 1 = 1   ";
                        vAND = vAND + " AND  DATE_FORMAT(" + objTempOcorrencias.NOME + ".DT_LEIT, '%d/%m/%Y' ) BETWEEN  " + objTempOcorrencias.CODOCOR + " AND " + objTempOcorrencias.DESOCOR + " ";

                    }
                    else
                    {

                        //vAND = vAND + "LEFT JOIN UC_FATURAMENTO  ON(UC_FATURAMENTO.ZONA = " + objTempOcorrencias.NOME + ".ZONA AND UC_FATURAMENTO.LIVRO = " + objTempOcorrencias.NOME + ".LIVRO AND UC_FATURAMENTO.CONTA = " + objTempOcorrencias.NOME + ".CONTA AND UC_FATURAMENTO.CONS_ID = " + objTempOcorrencias.NOME + ".CONS_ID AND UC_FATURAMENTO.ID = " + objTempOcorrencias.NOME + ".UNID_ID AND " + objTempOcorrencias.NOME + ".GRUPO = 'A') ";
                        //vAND = vAND + "LEFT JOIN UC_FATURAMENTO  ON(UC_FATURAMENTO.ZONA = " + objTempOcorrencias.NOME + ".ZONA AND UC_FATURAMENTO.LIVRO = " + objTempOcorrencias.NOME + ".LIVRO AND UC_FATURAMENTO.CONTA = " + objTempOcorrencias.NOME + ".CONTA AND UC_FATURAMENTO.CONS_ID = " + objTempOcorrencias.NOME + ".CONS_ID AND UC_FATURAMENTO.ID = " + objTempOcorrencias.NOME + ".UNID_ID AND " + objTempOcorrencias.NOME + ".GRUPO = 'B') ";
                        vAND = vAND + "LEFT JOIN UC_FATURAMENTO  ON(UC_FATURAMENTO.ZONA = " + objTempOcorrencias.NOME + ".ZONA AND UC_FATURAMENTO.LIVRO = " + objTempOcorrencias.NOME + ".LIVRO AND UC_FATURAMENTO.CONTA = " + objTempOcorrencias.NOME + ".CONTA AND UC_FATURAMENTO.CONS_ID = " + objTempOcorrencias.NOME + ".CONS_ID AND UC_FATURAMENTO.ID = " + objTempOcorrencias.NOME + ".UNID_ID ) ";
                        vAND = vAND + "LEFT JOIN CONSUM ON(CONSUM.CONSREG = " + objTempOcorrencias.NOME + ".CONS_ID) ";

                        vAND = vAND + "  WHERE 1 = 1   ";

                        if (objTempOcorrencias.NOME.Substring(0, 11) == "NFTRANSICAO")
                        {

                            vAND = vAND + " AND  " + objTempOcorrencias.NOME + ".MESANO = " + Convert.ToString(Convert.ToDateTime(objTempOcorrencias.CODOCOR).Month + "/" + Convert.ToDateTime(objTempOcorrencias.CODOCOR).Year) + " ";
                        }

                        else
                        {
                            vAND = vAND + " AND " + objTempOcorrencias.NOME + ".MESANO_REF BETWEEN " + Convert.ToString(Convert.ToDateTime(objTempOcorrencias.CODOCOR).Year + "" + Convert.ToDateTime(objTempOcorrencias.CODOCOR).Month) + " AND " + Convert.ToString(Convert.ToDateTime(objTempOcorrencias.CODOCOR).Year + "" + Convert.ToDateTime(objTempOcorrencias.CODOCOR).Month) + " ";
                        }

                        vAND = vAND + " " + objTempOcorrencias.NM_USUARIO + " ";

                    }

                    cmd = new MySqlCommand(this.QueryExecute);

                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }

        public void Delete(entidadeTempOcorrencias objTempOcorrencias)
        {
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;

            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {

                    vORDERBY = " ";

                    vAND = vAND + " 	AND NM_USUARIO  = ?NM_USUARIO ";

                    cmd = new MySqlCommand(this.QueryDelete);

                    cmd.Parameters.AddWithValue("?NM_USUARIO", objTempOcorrencias.NM_USUARIO.ToString().ToUpper());

                    objGerenciadorTransacao.Execute(cmd);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }

        public DataTable Execute(entidadeTempOcorrencias objTempOcorrencias)
        {
            DataTable dt = null;
            MySqlCommand cmd = null;
            IGerenciadorTransacao objGerenciadorTransacao = null;
            ConexaoBD objconexaoBD = null;


            try
            {
                objconexaoBD = new ConexaoBD();

                objconexaoBD.SetarConexaoBanco(TipoBDConexao.fat_BD);

                using (objGerenciadorTransacao = FabricaGerenciadorTransacao.GetGerenciador(TipoBDGerenciador.MySql))
                {

                    vORDERBY = " ";

                    vAND = vAND + "CREATE TABLE IF NOT EXISTS `temp_ocorrencias` (                           ";
                    vAND = vAND + "                           `nm_usuario`    VARCHAR(100) DEFAULT NULL,     ";
                    vAND = vAND + "                           `mesano_ref`    INT(11) default NULL,          ";
                    vAND = vAND + "                           `zona`          VARCHAR(3) default NULL,       ";
                    vAND = vAND + "                           `livro`         VARCHAR(2) default NULL,       ";
                    vAND = vAND + "                           `conta`         VARCHAR(8) default NULL,       ";
                    vAND = vAND + "                           `rota`          VARCHAR(9) default NULL,       ";
                    vAND = vAND + "                           `nome`          VARCHAR(85) default NULL,      ";
                    vAND = vAND + "                           `codocor`       VARCHAR(2) NOT NULL default '',";
                    vAND = vAND + "                           `desocor`       VARCHAR(25) default NULL,      ";
                    vAND = vAND + "             PRIMARY KEY (`nm_usuario`, `mesano_ref`, `zona`,`livro`,`conta`,`codocor`),              ";
                    vAND = vAND + "                     KEY  `keyrota` (`rota`)                       ";
                    vAND = vAND + ") ENGINE=InnoDB DEFAULT CHARSET=latin1 ";

                    cmd = new MySqlCommand(this.QueryExecute);

                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd != null)
                    cmd.Dispose();
            }
        }



        #endregion

        #region " Comandos SQL "

        StringBuilder sb = new StringBuilder();

        protected string QueryInsert
        {
            get
            {
                this.sb.Clear();

                this.sb.AppendLine("INSERT INTO  ");
                this.sb.AppendLine("TEMP_OCORRENCIAS SET  ");
                this.sb.AppendLine(vFILTER);

                return sb.ToString();
            }
        }

        protected string QueryUpdate
        {
            get
            {
                this.sb.Clear();

                this.sb.AppendLine("UPDATE  ");
                this.sb.AppendLine("TEMP_OCORRENCIAS SET  ");
                this.sb.AppendLine(vFILTER);
                this.sb.AppendLine("WHERE 1 = 1 ");
                this.sb.AppendLine(vAND);

                return sb.ToString();
            }
        }

        protected string QueryDelete
        {
            get
            {
                this.sb.Clear();

                this.sb.AppendLine("DELETE FROM TEMP_OCORRENCIAS ");
                this.sb.AppendLine("WHERE 1 = 1 ");
                this.sb.AppendLine(vAND);
                this.sb.AppendLine(vORDERBY);

                return sb.ToString();
            }
        }

        protected string QuerySelect
        {
            get
            {
                this.sb.Clear();

                this.sb.AppendLine("SELECT ");
                this.sb.AppendLine(vFILTER);
                this.sb.AppendLine("FROM ");
                this.sb.AppendLine("TEMP_OCORRENCIAS  ");
                this.sb.AppendLine(vINNERJOIN);
                this.sb.AppendLine("WHERE 1 = 1  ");
                this.sb.AppendLine(vAND);
                this.sb.AppendLine(vORDERBY);

                return sb.ToString();
            }
        }

        protected string QueryExecute
        {
            get
            {
                this.sb.Clear();

                this.sb.AppendLine(vAND);
                this.sb.AppendLine(vORDERBY);

                return sb.ToString();
            }
        }

        #endregion

    }
}
