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; }
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(); }