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

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

        #region Métodos

        public void Insert(entidadeGDCompensacao objGDCompensacao)
        {
            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 + "       UNID_ID                   = ?UNID_ID , ";
                    vFILTER = vFILTER + "       CONS_ID                   = ?CONS_ID , ";
                    vFILTER = vFILTER + "       ZONA                      = ?ZONA , ";
                    vFILTER = vFILTER + "       LIVRO                     = ?LIVRO , ";
                    vFILTER = vFILTER + "       CONTA                     = ?CONTA , ";
                    vFILTER = vFILTER + "       ANOMES_FAT                = ?ANOMES_FAT , "; 
                    vFILTER = vFILTER + "       CONSUMO                   = ?CONSUMO , ";
                    vFILTER = vFILTER + "       CONSUMO_PONTA             = ?CONSUMO_PONTA , ";
                    vFILTER = vFILTER + "       CONSUMO_FORAPONTA         = ?CONSUMO_FORAPONTA , ";
                    vFILTER = vFILTER + "       INJETADO                  = ?INJETADO , ";
                    vFILTER = vFILTER + "       INJETADO_PONTA            = ?INJETADO_PONTA , ";
                    vFILTER = vFILTER + "       INJETADO_FORAPONTA        = ?INJETADO_FORAPONTA , ";
                    vFILTER = vFILTER + "       SALDO_ATUAL               = ?SALDO_ATUAL, ";
                    vFILTER = vFILTER + "       SALDO_ANTERIOR            = ?SALDO_ANTERIOR, ";
                    vFILTER = vFILTER + "       TRANSFERENCIA_OUTRO       = ?TRANSFERENCIA_OUTRO, ";
                    vFILTER = vFILTER + "       COMPENSACAO_MES           = ?COMPENSACAO_MES, ";
                    vFILTER = vFILTER + "       COMPENSACAO_MES_PONTA     = ?COMPENSACAO_MES_PONTA, ";
                    vFILTER = vFILTER + "       COMPENSACAO_MES_FORAPONTA = ?COMPENSACAO_MES_FORAPONTA, ";
                    vFILTER = vFILTER + "       RECEBIDO_TRANSFERENCIA    = ?RECEBIDO_TRANSFERENCIA ";


                    cmd = new MySqlCommand(this.QueryInsert);

                    cmd.Parameters.AddWithValue("?CONSUMO", objGDCompensacao.CONSUMO);
                    cmd.Parameters.AddWithValue("?CONSUMO_PONTA", objGDCompensacao.CONSUMO_PONTA);
                    cmd.Parameters.AddWithValue("?CONSUMO_FORAPONTA", objGDCompensacao.CONSUMO_FORAPONTA);
                    cmd.Parameters.AddWithValue("?INJETADO", objGDCompensacao.INJETADO);
                    cmd.Parameters.AddWithValue("?INJETADO_PONTA", objGDCompensacao.INJETADO_PONTA);
                    cmd.Parameters.AddWithValue("?INJETADO_FORAPONTA", objGDCompensacao.INJETADO_FORAPONTA);
                    cmd.Parameters.AddWithValue("?SALDO_ATUAL", objGDCompensacao.SALDO_ATUAL);
                    cmd.Parameters.AddWithValue("?SALDO_ANTERIOR", objGDCompensacao.SALDO_ANTERIOR);
                    cmd.Parameters.AddWithValue("?UNID_ID", objGDCompensacao.UNID_ID);
                    cmd.Parameters.AddWithValue("?CONS_ID", objGDCompensacao.CONS_ID);
                    cmd.Parameters.AddWithValue("?ZONA", objGDCompensacao.ZONA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?LIVRO", objGDCompensacao.LIVRO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONTA", objGDCompensacao.CONTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?ANOMES_FAT", objGDCompensacao.ANOMES_FAT);
                    cmd.Parameters.AddWithValue("?TRANSFERENCIA_OUTRO", objGDCompensacao.TRANSFERENCIA_OUTRO);
                    cmd.Parameters.AddWithValue("?COMPENSACAO_MES", objGDCompensacao.COMPENSACAO_MES);
                    cmd.Parameters.AddWithValue("?COMPENSACAO_MES_PONTA", objGDCompensacao.COMPENSACAO_MES_PONTA);
                    cmd.Parameters.AddWithValue("?COMPENSACAO_MES_FORAPONTA", objGDCompensacao.COMPENSACAO_MES_FORAPONTA);
                    cmd.Parameters.AddWithValue("?RECEBIDO_TRANSFERENCIA", objGDCompensacao.RECEBIDO_TRANSFERENCIA);

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

        public void Update(entidadeGDCompensacao objGDCompensacao)
        {
            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 + "       CONSUMO      = ?CONSUMO , ";
                    vFILTER = vFILTER + "       CONSUMO_PONTA      = ?CONSUMO_PONTA , ";
                    vFILTER = vFILTER + "       CONSUMO_FORAPONTA      = ?CONSUMO_FORAPONTA , ";
                    vFILTER = vFILTER + "       INJETADO     = ?INJETADO , ";
                    vFILTER = vFILTER + "       INJETADO_PONTA     = ?INJETADO_PONTA , ";
                    vFILTER = vFILTER + "       INJETADO_FORAPONTA     = ?INJETADO_FORAPONTA , ";
                    vFILTER = vFILTER + "       SALDO_ATUAL  = ?SALDO_ATUAL, ";
                    vFILTER = vFILTER + "       SALDO_ANTERIOR  = ?SALDO_ANTERIOR, ";
                    vFILTER = vFILTER + "       TRANSFERENCIA_OUTRO = ?TRANSFERENCIA_OUTRO, ";
                    vFILTER = vFILTER + "       COMPENSACAO_MES = ?COMPENSACAO_MES, ";
                    vFILTER = vFILTER + "       COMPENSACAO_MES_PONTA = ?COMPENSACAO_MES_PONTA, ";
                    vFILTER = vFILTER + "       COMPENSACAO_MES_FORAPONTA = ?COMPENSACAO_MES_FORAPONTA, ";
                    vFILTER = vFILTER + "       RECEBIDO_TRANSFERENCIA = ?RECEBIDO_TRANSFERENCIA "; 

                    vAND = vAND + "AND UNID_ID = ?UNID_ID ";
                    vAND = vAND + "AND CONS_ID = ?CONS_ID ";
                    vAND = vAND + "AND ZONA = ?ZONA ";
                    vAND = vAND + "AND LIVRO = ?LIVRO ";
                    vAND = vAND + "AND CONTA = ?CONTA ";
                    vAND = vAND + "AND ANOMES_FAT = ?ANOMES_FAT ";                   


                    cmd = new MySqlCommand(this.QueryUpdate);


                    cmd.Parameters.AddWithValue("?CONSUMO", objGDCompensacao.CONSUMO);
                    cmd.Parameters.AddWithValue("?CONSUMO_PONTA", objGDCompensacao.CONSUMO_PONTA);
                    cmd.Parameters.AddWithValue("?CONSUMO_FORAPONTA", objGDCompensacao.CONSUMO_FORAPONTA);
                    cmd.Parameters.AddWithValue("?INJETADO", objGDCompensacao.INJETADO);
                    cmd.Parameters.AddWithValue("?INJETADO_PONTA", objGDCompensacao.INJETADO_PONTA);
                    cmd.Parameters.AddWithValue("?INJETADO_FORAPONTA", objGDCompensacao.INJETADO_FORAPONTA);
                    cmd.Parameters.AddWithValue("?SALDO_ATUAL", objGDCompensacao.SALDO_ATUAL);
                    cmd.Parameters.AddWithValue("?SALDO_ANTERIOR", objGDCompensacao.SALDO_ANTERIOR);
                    cmd.Parameters.AddWithValue("?UNID_ID", objGDCompensacao.UNID_ID);
                    cmd.Parameters.AddWithValue("?CONS_ID", objGDCompensacao.CONS_ID);
                    cmd.Parameters.AddWithValue("?ZONA", objGDCompensacao.ZONA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?LIVRO", objGDCompensacao.LIVRO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONTA", objGDCompensacao.CONTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?ANOMES_FAT", objGDCompensacao.ANOMES_FAT);
                    cmd.Parameters.AddWithValue("?TRANSFERENCIA_OUTRO", objGDCompensacao.TRANSFERENCIA_OUTRO);
                    cmd.Parameters.AddWithValue("?COMPENSACAO_MES", objGDCompensacao.COMPENSACAO_MES);
                    cmd.Parameters.AddWithValue("?COMPENSACAO_MES_PONTA", objGDCompensacao.COMPENSACAO_MES_PONTA);
                    cmd.Parameters.AddWithValue("?COMPENSACAO_MES_FORAPONTA", objGDCompensacao.COMPENSACAO_MES_FORAPONTA);
                    cmd.Parameters.AddWithValue("?RECEBIDO_TRANSFERENCIA", objGDCompensacao.RECEBIDO_TRANSFERENCIA);

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

        public void Update_1(entidadeGDCompensacao objGDCompensacao)
        {
            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 + "       SALDO_ATUAL  = ?SALDO_ATUAL ";

                    vAND = vAND + "AND UNID_ID = ?UNID_ID ";
                    vAND = vAND + "AND CONS_ID = ?CONS_ID ";
                    vAND = vAND + "AND ZONA = ?ZONA ";
                    vAND = vAND + "AND LIVRO = ?LIVRO ";
                    vAND = vAND + "AND CONTA = ?CONTA ";
                    vAND = vAND + "AND ANOMES_FAT = ?ANOMES_FAT ";


                    cmd = new MySqlCommand(this.QueryUpdate);


                    cmd.Parameters.AddWithValue("?SALDO_ATUAL", objGDCompensacao.SALDO_ATUAL);
                    cmd.Parameters.AddWithValue("?UNID_ID", objGDCompensacao.UNID_ID);
                    cmd.Parameters.AddWithValue("?CONS_ID", objGDCompensacao.CONS_ID);
                    cmd.Parameters.AddWithValue("?ZONA", objGDCompensacao.ZONA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?LIVRO", objGDCompensacao.LIVRO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONTA", objGDCompensacao.CONTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?ANOMES_FAT", objGDCompensacao.ANOMES_FAT);

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

        public DataTable Select(entidadeGDCompensacao objGDCompensacao)
        {
            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 + "ZONA , ";
                    vFILTER = vFILTER + "LIVRO , ";
                    vFILTER = vFILTER + "CONTA , ";
                    vFILTER = vFILTER + "CONS_ID , ";
                    vFILTER = vFILTER + "UNID_ID , ";
                    vFILTER = vFILTER + "SALDO_ANTERIOR , ";
                    vFILTER = vFILTER + "CONSUMO , ";
                    vFILTER = vFILTER + "CONSUMO_MES_POSTERIOR , ";
                    vFILTER = vFILTER + "INJETADO , ";
                    vFILTER = vFILTER + "TRANSFERENCIA_OUTRO , ";
                    vFILTER = vFILTER + "RECEBIDO_TRANSFERENCIA , ";
                    vFILTER = vFILTER + "COMPENSACAO_MES , ";
                    vFILTER = vFILTER + "SALDO_ATUAL , ";
                    vFILTER = vFILTER + "DATA_LEITURA , ";
                    vFILTER = vFILTER + "DATA_FATURAMENTO , ";
                    vFILTER = vFILTER + "ANOMES_FAT  ";

                    vINNERJOIN = " ";

                    vORDERBY = " ";

                    vAND = vAND + "AND ZONA = ?ZONA ";
                    vAND = vAND + "AND LIVRO = ?LIVRO ";
                    vAND = vAND + "AND CONTA = ?CONTA ";
                    vAND = vAND + "AND CONS_ID = ?CONS_ID  ";
                    vAND = vAND + "AND UNID_ID = ?UNID_ID ";
                    vAND = vAND + "AND ANOMES_FAT = ?ANOMES_FAT ";

                    cmd = new MySqlCommand(this.QuerySelect);

                    cmd.Parameters.AddWithValue("?ZONA", objGDCompensacao.ZONA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?LIVRO", objGDCompensacao.LIVRO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONTA", objGDCompensacao.CONTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONS_ID", objGDCompensacao.CONS_ID);
                    cmd.Parameters.AddWithValue("?UNID_ID", objGDCompensacao.UNID_ID);
                    cmd.Parameters.AddWithValue("?ANOMES_FAT", objGDCompensacao.ANOMES_FAT);

                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

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

        public DataTable Select_1(entidadeGDCompensacao objGDCompensacao)
        {
            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 + "ZONA , ";
                    vFILTER = vFILTER + "LIVRO , ";
                    vFILTER = vFILTER + "CONTA , ";
                    vFILTER = vFILTER + "CONS_ID , ";
                    vFILTER = vFILTER + "UNID_ID , ";
                    vFILTER = vFILTER + "SALDO_ANTERIOR , ";
                    vFILTER = vFILTER + "CONSUMO , ";
                    vFILTER = vFILTER + "CONSUMO_MES_POSTERIOR , ";
                    vFILTER = vFILTER + "INJETADO , ";
                    vFILTER = vFILTER + "TRANSFERENCIA_OUTRO , ";
                    vFILTER = vFILTER + "RECEBIDO_TRANSFERENCIA , ";
                    vFILTER = vFILTER + "COMPENSACAO_MES , ";
                    vFILTER = vFILTER + "SALDO_ATUAL , ";
                    vFILTER = vFILTER + "DATA_LEITURA , ";
                    vFILTER = vFILTER + "DATA_FATURAMENTO , ";
                    vFILTER = vFILTER + "ANOMES_FAT  ";

                    vINNERJOIN = " ";

                    vORDERBY = "ORDER BY ANOMES_FAT ";

                    vAND = vAND + "AND ZONA = ?ZONA ";
                    vAND = vAND + "AND LIVRO = ?LIVRO ";
                    vAND = vAND + "AND CONTA = ?CONTA ";
                    vAND = vAND + "AND CONS_ID = ?CONS_ID  ";
                    vAND = vAND + "AND UNID_ID = ?UNID_ID ";
                    vAND = vAND + "AND SALDO_ATUAL <> ?SALDO_ATUAL ";
                    vAND = vAND + "AND ANOMES_FAT < ?ANOMES_FAT ";

                    cmd = new MySqlCommand(this.QuerySelect);

                    cmd.Parameters.AddWithValue("?ZONA", objGDCompensacao.ZONA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?LIVRO", objGDCompensacao.LIVRO.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONTA", objGDCompensacao.CONTA.ToString().ToUpper());
                    cmd.Parameters.AddWithValue("?CONS_ID", objGDCompensacao.CONS_ID);
                    cmd.Parameters.AddWithValue("?UNID_ID", objGDCompensacao.UNID_ID);
                    cmd.Parameters.AddWithValue("?SALDO_ATUAL", objGDCompensacao.SALDO_ATUAL);
                    cmd.Parameters.AddWithValue("?ANOMES_FAT", objGDCompensacao.ANOMES_FAT);

                    dt = objGerenciadorTransacao.GetDataTable(cmd);
                }

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

        public DataTable SelectCount(entidadeGDCompensacao objGDCompensacao)
        {
            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 + "COUNT(*) ";

                    vINNERJOIN = " ";

                    vORDERBY = " ";

                    if (objGDCompensacao.UNID_ID != 0)
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + "AND UNID_ID = ?UNID_ID "; }
                        else
                        { vAND = "AND UNID_ID = ?UNID_ID "; }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + " "; }
                        else
                        { vAND = " "; }
                    }

                    if (objGDCompensacao.CONS_ID != 0)
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + "AND CONS_ID = ?CONS_ID "; }
                        else
                        { vAND = "AND CONS_ID = ?CONS_ID "; }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + " "; }
                        else
                        { vAND = " "; }
                    }

                    if (!string.IsNullOrEmpty(objGDCompensacao.ZONA))
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + "AND ZONA = ?ZONA "; }
                        else
                        { vAND = "AND ZONA = ?ZONA "; }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + " "; }
                        else
                        { vAND = " "; }
                    }

                    if (!string.IsNullOrEmpty(objGDCompensacao.LIVRO))
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + "AND LIVRO = ?LIVRO "; }
                        else
                        { vAND = "AND LIVRO = ?LIVRO "; }

                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + " "; }
                        else
                        { vAND = " "; }
                    }


                    if (!string.IsNullOrEmpty(objGDCompensacao.CONTA))
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + "AND CONTA = ?CONTA "; }
                        else
                        { vAND = "AND CONTA = ?CONTA "; }

                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + " "; }
                        else
                        { vAND = " "; }
                    }


                    if (objGDCompensacao.ANOMES_FAT != 0)
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + "AND ANOMES_FAT = ?ANOMES_FAT "; }
                        else
                        { vAND = "AND ANOMES_FAT = ?ANOMES_FAT "; }

                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(vAND))
                        { vAND = vAND + " "; }
                        else
                        { vAND = " "; }
                    }

                    cmd = new MySqlCommand(this.QuerySelect);

                    if (objGDCompensacao.UNID_ID != 0)
                    {
                        cmd.Parameters.AddWithValue("?UNID_ID", objGDCompensacao.UNID_ID);
                    }

                    if (objGDCompensacao.CONS_ID != 0)
                    {
                        cmd.Parameters.AddWithValue("?CONS_ID", objGDCompensacao.CONS_ID);
                    }

                    if (!string.IsNullOrEmpty(objGDCompensacao.ZONA))
                    {
                        cmd.Parameters.AddWithValue("?ZONA", objGDCompensacao.ZONA.ToString().ToUpper());
                    }

                    if (!string.IsNullOrEmpty(objGDCompensacao.LIVRO))
                    {
                        cmd.Parameters.AddWithValue("?LIVRO", objGDCompensacao.LIVRO.ToString().ToUpper());
                    }

                    if (!string.IsNullOrEmpty(objGDCompensacao.CONTA))
                    {
                        cmd.Parameters.AddWithValue("?CONTA", objGDCompensacao.CONTA.ToString().ToUpper());
                    }

                    if (objGDCompensacao.ANOMES_FAT != 0)
                    {
                        cmd.Parameters.AddWithValue("?ANOMES_FAT", objGDCompensacao.ANOMES_FAT);
                    }

                    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("GD_COMPENSACAO SET  ");
                this.sb.AppendLine(vFILTER);

                return sb.ToString();
            }
        }

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

                this.sb.AppendLine("UPDATE  ");
                this.sb.AppendLine("GD_COMPENSACAO 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 GD_COMPENSACAO ");
                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("GD_COMPENSACAO  ");
                this.sb.AppendLine(vINNERJOIN);
                this.sb.AppendLine("WHERE 1 = 1  ");
                this.sb.AppendLine(vAND);
                this.sb.AppendLine(vORDERBY);

                return sb.ToString();
            }
        }


        #endregion


    }
}
