private static int GetMaximoMovimentacoes() { int maximo = 0; for (int i = 0; i <= 5; i++) { DateTime mes = DateTime.Now.AddMonths(i); int valor = ContasService.GetMovimentacoes(mes).Where(m => m.Tipo == "gasto" && m.Status != "pago").Count(); if (valor > maximo) { maximo = valor; } } return(maximo); }
private static void GerarTabelaMesSheet(int indice) { DateTime mes = DateTime.Now.AddMonths(indice); List <IList <object> > dados = new List <IList <object> >(); var movimentacoes = ContasService.GetMovimentacoes(mes).Where(m => m.Status != "pago").ToList(); string saldo_mes; Double saldo_parcial; if (indice == 0) { saldo_mes = ConsolidadoService.GetValoresConsolidados().ToString("F"); } else { saldo_mes = "=SUM(" + Double.Parse(ConsolidadoService.GetValue("salario")) + "+" + colunaValorAnterior + linha_sobra + ")"; } saldo_parcial = sobra + Double.Parse(ConsolidadoService.GetValue("salario")); var dt = mes.ToString("MMMM", CultureInfo.CreateSpecificCulture("pt-BR")); dados.Add(new List <object>() { dt.First().ToString().ToUpper() + dt.Substring(1), saldo_mes }); for (int i = 0; i < maximoMovimentacoes; i++) { if (movimentacoes.ElementAtOrDefault(i) != null) { dados.Add(new List <object>() { "'" + movimentacoes[i].Nome + ContasService.GetSiglaCartao(movimentacoes[i].IdCartao), movimentacoes[i].Valor.ToString("F") }); } else { dados.Add(new List <object>() { null }); } } var save = (Double)ContasService.GetSaveMes(mes); dados.Add(new List <object>() { "Save", save.ToString("F") }); char coluna = GetColumn(indice); char proxima = (char)(((int)coluna) + 1); colunaValorAnterior = proxima; dados.Add(new List <object>() { "Total", "=SUM(" + proxima + "3:" + proxima + limite + ")" }); var gastos = (Double)movimentacoes.Where(m => m.Tipo == "gasto" && m.Status != "pago").Sum(m => m.Valor); sobra = saldo_parcial - gastos - save; // dados.Add(new List<object>() { "Sobra", "="+proxima+"2-"+proxima+linha_total+"-"+proxima+linha_save }); string range = "!" + coluna + "2:" + proxima + dados.Count + 1; ValueRange valueRange = new ValueRange(); valueRange.Values = dados; SpreadsheetsResource.ValuesResource.UpdateRequest updateRequest = sheetsService.Spreadsheets.Values.Update(valueRange, idPlanilha, range); updateRequest.ValueInputOption = valueInputOption; UpdateValuesResponse resposta = updateRequest.Execute(); }