private static void GerarLoteDeContratos(int inicio, int fim, int grupo)
        {
            Trace.TraceInformation(String.Format("Gerando contratos de {0} a {1} no grupo {2}.", inicio, fim, grupo));

            var repositorioDeContratos = new RepositorioDeContratos();

            int quantidadeNoLote = 0;
            for (int atual = inicio; atual <= fim; atual++)
            {
                // incluir contratos
                Contrato contrato = NovoContrato(atual);
                repositorioDeContratos.AdicionarObjeto(contrato);
                quantidadeNoLote += 1;
                if (quantidadeNoLote == 100 || atual == fim)
                {
                    repositorioDeContratos.SalvarLote();
                    repositorioDeContratos.CriarNovoContexto();
                    quantidadeNoLote = 0;
                }

                // incluir itens de contrato
                var repositorioDeItensDeContrato = new RepositorioDeItensDeContrato();
                foreach (ItemDeContrato item in NovosItensDeContrato(atual))
                {
                    repositorioDeItensDeContrato.AdicionarObjeto(item);
                }
                repositorioDeItensDeContrato.SalvarLote();
            }
        }
Exemplo n.º 2
0
        private static void GerarLoteDeContratos(int inicio, int fim, int grupo)
        {
            Trace.TraceInformation(String.Format("Gerando contratos de {0} a {1} no grupo {2}.", inicio, fim, grupo));

            var repositorioDeContratos = new RepositorioDeContratos();

            int quantidadeNoLote = 0;

            for (int atual = inicio; atual <= fim; atual++)
            {
                // incluir contratos
                Contrato contrato = NovoContrato(atual);
                repositorioDeContratos.AdicionarObjeto(contrato);
                quantidadeNoLote += 1;
                if (quantidadeNoLote == 100 || atual == fim)
                {
                    repositorioDeContratos.SalvarLote();
                    repositorioDeContratos.CriarNovoContexto();
                    quantidadeNoLote = 0;
                }

                // incluir itens de contrato
                var repositorioDeItensDeContrato = new RepositorioDeItensDeContrato();
                foreach (ItemDeContrato item in NovosItensDeContrato(atual))
                {
                    repositorioDeItensDeContrato.AdicionarObjeto(item);
                }
                repositorioDeItensDeContrato.SalvarLote();
            }
        }
        public void SolicitarFaturamento(int ano, int mes)
        {
            var repositorioDeContratos = new RepositorioDeContratos();
            int ultimoContrato = repositorioDeContratos.ObterNumeroDoUltimoContrato();
            if (ultimoContrato == 0)
            {
                Trace.TraceWarning("Não foi encontrado nenhum contrato.");
                return;
            }

            Guid processamentoId = Guid.NewGuid();
            RegistrarProcessamento(processamentoId, ano, mes);
            SolicitarFaturamento(processamentoId, ano, mes, 1, ultimoContrato);
        }
        public void SolicitarFaturamento(int ano, int mes)
        {
            var repositorioDeContratos = new RepositorioDeContratos();
            int ultimoContrato         = repositorioDeContratos.ObterNumeroDoUltimoContrato();

            if (ultimoContrato == 0)
            {
                Trace.TraceWarning("Não foi encontrado nenhum contrato.");
                return;
            }

            Guid processamentoId = Guid.NewGuid();

            RegistrarProcessamento(processamentoId, ano, mes);
            SolicitarFaturamento(processamentoId, ano, mes, 1, ultimoContrato);
        }