Exemplo n.º 1
0
 public static string ObterRowKey(int numeroContrato, int numeroItemDeMovimento)
 {
     return(Contrato.ObterRowKey(numeroContrato) + "-" + numeroItemDeMovimento.ToString().PadLeft(10, '0'));
 }
        private static Contrato NovoContrato(int numero)
        {
            string municipio;
            string uf;
            GeradorDeMunicipios.GerarMunicipioEUf(out municipio, out uf);

            var contrato = new Contrato
                               {
                                   PartitionKey = Contrato.ObterPartitionKey(numero),
                                   RowKey = Contrato.ObterRowKey(numero),
                                   Numero = numero,
                                   RazaoSocialDoCliente = GeradorDeNomesDeEmpresas.GerarNome(),
                                   CnpjDoCliente = GeradorDeCnpjs.GerarCnpj(),
                                   MunicipioDoCliente = municipio,
                                   UfDoCliente = uf
                               };
            return contrato;
        }
Exemplo n.º 3
0
 public static string ObterPartitionKey(int numeroContrato)
 {
     return(Contrato.ObterPartitionKey(numeroContrato));
 }
        private void GerarFaturamento(int ano, int mes, Contrato contrato, IEnumerable<ItemDeContrato> itensDoContrato,
                                      IEnumerable<Movimento> movimentoDoContrato)
        {
            int TODO_SERIE = 1;
            int TODO_NUMERO_FATURA = contrato.Numero;
            int numeroItemDeFatura = 0;
            double valorTotal = 0;
            var repositorioDeFaturas = new RepositorioDeFaturas();
            var repositorioDeItensDeFatura = new RepositorioDeItensDeFatura();

            // incluir itens de contrato
            foreach (ItemDeContrato itemDeContrato in itensDoContrato)
            {
                numeroItemDeFatura++;
                var itemDeFatura = new ItemDeFatura
                                       {
                                           PartitionKey = ItemDeFatura.ObterPartitionKey(ano, mes),
                                           RowKey =
                                               ItemDeFatura.ObterRowKey(TODO_SERIE, TODO_NUMERO_FATURA,
                                                                        numeroItemDeFatura),
                                           Produto = itemDeContrato.Produto,
                                           Quantidade = 1,
                                           ValorUnitario = itemDeContrato.Valor,
                                           ValorTotal = itemDeContrato.Valor
                                       };
                valorTotal += itemDeFatura.ValorTotal;
                repositorioDeItensDeFatura.AdicionarObjeto(itemDeFatura);
            }

            // incluir itens de movimento
            foreach (Movimento movimento in movimentoDoContrato)
            {
                numeroItemDeFatura++;
                var itemDeFatura = new ItemDeFatura
                                       {
                                           PartitionKey = ItemDeFatura.ObterPartitionKey(ano, mes),
                                           RowKey =
                                               ItemDeFatura.ObterRowKey(TODO_SERIE, TODO_NUMERO_FATURA,
                                                                        numeroItemDeFatura),
                                           Produto = movimento.Produto,
                                           Quantidade = movimento.Quantidade,
                                           ValorUnitario = movimento.ValorUnitario,
                                           ValorTotal = movimento.ValorTotal
                                       };
                valorTotal += itemDeFatura.ValorTotal;
                repositorioDeItensDeFatura.AdicionarObjeto(itemDeFatura);
            }

            // incluir registro mestre da fatura
            var fatura = new Fatura
                             {
                                 PartitionKey = Fatura.ObterPartitionKey(ano, mes),
                                 RowKey = Fatura.ObterRowKey(TODO_SERIE, TODO_NUMERO_FATURA),
                                 DataDeEmissao = DateTime.UtcNow,
                                 NumeroDoContrato = contrato.Numero,
                                 CnpjDoCliente = contrato.CnpjDoCliente,
                                 RazaoSocialDoCliente = contrato.RazaoSocialDoCliente,
                                 MunicipioDoCliente = contrato.MunicipioDoCliente,
                                 UfDoCliente = contrato.UfDoCliente,
                                 ValorTotal = valorTotal
                             };
            repositorioDeFaturas.AdicionarObjeto(fatura);

            // salvar
            repositorioDeItensDeFatura.SalvarLote();
            repositorioDeFaturas.SalvarLote();
        }