示例#1
0
        /// <summary>
        /// Gera transações de débito e crédito para um Journal do tipo Transferência, 
        /// bem como os objetos de transferência relacionados à essas transações.
        /// </summary>
        /// <param name="journal">Objeto Journal onde as parcelas serão geradas.</param>
        public void GerarParceladoTransferencia(JOURNAL journal)
        {
            DateTime data = journal.Data;

            for (int parcela = 1; parcela <= journal.ParcelaTotal; parcela++)
            {
                // Transação de débito
                TRANSACAO transacao_debito = new TRANSACAO()
                {
                    JOURNAL = journal,
                    CONTA = journal.CONTADEBITO,
                    CATEGORIA = journal.CATEGORIA,
                    Nome = journal.Nome,
                    Data = data,
                    Valor = journal.Valor * -1,
                    NumParcela = parcela
                };

                // Transação de crédito
                TRANSACAO transacao_credito = new TRANSACAO()
                {
                    JOURNAL = journal,
                    CONTA = journal.CONTACREDITO,
                    CATEGORIA = journal.CATEGORIA,
                    Nome = journal.Nome,
                    Data = data,
                    Valor = journal.Valor,
                    NumParcela = parcela
                };

                // Objeto de transferência
                TRANSFERENCIA transferencia = new TRANSFERENCIA()
                {
                    JOURNAL = journal,
                    DEBITO = transacao_debito,
                    CREDITO = transacao_credito
                };

                // Incrementa a data
                data += GetTimeSpan(journal);
            }
        }
示例#2
0
        /// <summary>
        /// Gera transações de débito ou crédito para um Journal do tipo com um destes tipos de transação, 
        /// bem como os objetos de transferência relacionados à essas transações.
        /// </summary>
        /// <param name="journal">Objeto Journal onde as parcelas serão geradas.</param>
        public void GerarParceladoCreditoDebito(JOURNAL journal)
        {
            CONTA conta = GetConta(journal);
            DateTime data = journal.Data;

            for (int parcela = 1; parcela <= journal.ParcelaTotal; parcela++)
            {
                TRANSACAO transacao = new TRANSACAO()
                {
                    JOURNAL = journal,
                    CONTA = conta,
                    CATEGORIA = journal.CATEGORIA,
                    Nome = journal.Nome,
                    Data = data,
                    Valor = journal.Valor,
                    NumParcela = parcela,
                    Owner = journal.Owner
                };

                // Incrementa a data
                data += GetTimeSpan(journal);
            }
        }
示例#3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="journal"></param>
 /// <param name="dataUltimaAtualizacao"></param>
 /// <param name="dataLimite"></param>
 private void GerarTransacoesTransferencia(JOURNAL journal, DateTime dataUltimaAtualizacao, DateTime dataLimite)
 {
 }
示例#4
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="journal"></param>
        /// <param name="dataUltimaAtualizacao"></param>
        /// <param name="dataLimite"></param>
        private void GerarTransacoesCreditoDebito(JOURNAL journal, DateTime dataUltimaAtualizacao, DateTime dataLimite)
        {
            while (dataUltimaAtualizacao <= dataLimite)
            {
                dataUltimaAtualizacao += GetTimeSpan(journal);

                CONTA conta = GetConta(journal);

                TRANSACAO transacao = new TRANSACAO()
                {
                    JOURNAL = (JOURNAL)journal,
                    CONTA = conta,
                    CATEGORIA = journal.CATEGORIA,
                    Nome = journal.Nome,
                    Data = dataUltimaAtualizacao,
                    Valor = journal.Valor
                };

                journal.UltimaAtualizacao = dataUltimaAtualizacao;
            }
        }
示例#5
0
 /// <summary>
 /// Retorna a conta de acordo com o tipo de transação do journal.
 /// </summary>
 /// <param name="journal">O journal onde a conta será obtida.</param>
 /// <returns>A conta referente ao tipo da transação.</returns>
 public CONTA GetConta(JOURNAL journal)
 {
     if (journal.TipoTransacao == (int)PLANTAEUTILS.TipoTransacao.Debito)
         return journal.CONTADEBITO;
     else if (journal.TipoTransacao == (int)PLANTAEUTILS.TipoTransacao.Credito)
         return journal.CONTACREDITO;
     else
         throw new InvalidOperationException("O journal não é do tipo crédito ou débito.");
 }
示例#6
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="journal"></param>
        /// <param name="dataLimite"></param>
        public void GerarTransacoes(JOURNAL journal, DateTime dataLimite)
        {
            DateTime dataUltimaAtualizacao = journal.UltimaAtualizacao;

            if (journal.TempoIndeterminado)
            {
                if (journal.TipoTransacao == (int)PLANTAEUTILS.TipoTransacao.Transferencia)
                    GerarTransacoesTransferencia(journal, dataUltimaAtualizacao, dataLimite);
                else
                    GerarTransacoesCreditoDebito(journal, dataUltimaAtualizacao, dataLimite);
            }
            else
            {
                if (journal.TipoTransacao == (int)PLANTAEUTILS.TipoTransacao.Transferencia)
                    GerarParceladoTransferencia(journal);
                else
                    GerarParceladoCreditoDebito(journal);
            }
        }