/// <summary>
        /// Cria um novo objeto IBaixaForma de acordo com seu tipo e popula o o objeto
        /// </summary>
        /// <param name="tipo">Tipo que deverá ser criado</param>
        /// <param name="g">identificador que deverá ser carregado</param>
        /// <returns></returns>
        public static IBaixaForma Create(TipoBaixaForma tipo, GUID g)
        {
            IBaixaForma result = Create(tipo);

            if(result != null)
                result.Populate(g);

            return result;
        }
        /// <summary>
        /// Cria um novo objeto IBaixaForma de acordo com seu tipo
        /// </summary>
        /// <param name="tipo">Tipo que deverá ser criado</param>
        /// <returns></returns>
        public static IBaixaForma Create(TipoBaixaForma tipo)
        {
            IBaixaForma result = null;

            switch(tipo)
            {
                case TipoBaixaForma.ChequeComConsulta:
                    result = new Data.Faturamento.Lancamento.Movimento.Baixa.FormaBaixa.TEF.BaixaTEFCheque();
                    break;
                case TipoBaixaForma.TEF:
                    result = new Data.Faturamento.Lancamento.Movimento.Baixa.FormaBaixa.TEF.BaixaTEF();
                    break;
                case TipoBaixaForma.ChequeSemConsulta:
                case TipoBaixaForma.Dinheiro:
                    result = new Data.Faturamento.Lancamento.Movimento.Baixa.FormaBaixa.BaixaForma();
                    break;
                default:
                    break;
            }

            return result;
        }