private bool SaveBudget(KpiBudget kpiBudget) { try { if (kpiBudget == null || kpiBudget.element == null || kpiBudget.element.Count == 0) { Log.n("Budsjett data er ubrukelig og kan ikke lagres", Color.Red); return false; } DataTable table = main.database.tableDailyBudget.GetDataTable(); TimeSpan elapsed = kpiBudget.Date.Subtract(FormMain.rangeMin); int budgetId = (int)elapsed.TotalDays; foreach (KpiBudgetElement element in kpiBudget.element) { DataRow dtRow = table.NewRow(); dtRow[TableDailyBudget.KEY_DATE] = kpiBudget.Date; dtRow[TableDailyBudget.KEY_AVDELING] = main.appConfig.Avdeling; dtRow[TableDailyBudget.KEY_BUDGET_ID] = budgetId; dtRow[TableDailyBudget.KEY_BUDGET_TYPE] = element.type; dtRow[TableDailyBudget.KEY_BUDGET_SALES] = element.Sales; dtRow[TableDailyBudget.KEY_BUDGET_GM] = element.GM; dtRow[TableDailyBudget.KEY_BUDGET_GM_PERCENT] = element.Percent; table.Rows.Add(dtRow); } if (table != null && table.Rows.Count > 0) { main.database.tableDailyBudget.RemoveDate(main.appConfig.Avdeling, kpiBudget.Date); Log.d("Lagrer budsjett (id " + budgetId + ") med dato " + kpiBudget.Date.ToShortDateString() + " til databasen.."); main.database.DoBulkCopy(table, TableDailyBudget.TABLE_NAME); return true; } Log.d("Budsjett ble ikke lagret til databasen. Mangler viktig data"); } catch (Exception ex) { Log.Unhandled(ex); } return false; }
private KpiBudget ParseC810(byte[] bytestream) { try { PdfReader reader = new PdfReader(bytestream); string content = System.Text.Encoding.UTF8.GetString(reader.GetPageContent(1)); int indexTotal = FindIndex(content, 0, "[(Total)]TJ"); if (!VerifyIndex(indexTotal, "Fant ikke først element 'Total'")) return null; int indexCategory = FindIndex(content, indexTotal + 1, "[(Category)]TJ"); if (!VerifyIndex(indexCategory, "Fant ikke andre element 'Category'")) return null; int indexSale = FindIndex(content, indexCategory + 1, "[(Sale/ Budget incl. VAT - Month to Date )]TJ"); if (!VerifyIndex(indexSale, "Fant ikke tredje element 'Sale/ Budget incl. VAT - Month to Date'")) return null; //int indexTotal = content.IndexOf("[(Total)]TJ"); //int indexCategory = content.IndexOf("[(Category)]TJ", indexTotal + 1); //int indexSale = content.IndexOf("[(Sale/ Budget incl. VAT - Month to Date )]TJ", indexCategory + 1); string strBudget = content.Substring(indexCategory, indexSale - indexCategory); List<string> lines = strBudget.Split('\n').ToList(); lines.RemoveAll(item => !item.ToString().StartsWith("[(")); for (int i = lines.Count - 1; i >= 0; i--) lines[i] = lines[i].Trim().Replace("[(", string.Empty).Replace(")]TJ", string.Empty).Replace(" ", string.Empty).Replace("/", string.Empty); var budget = new KpiBudget(); budget.Date = selectedDate; for (int i = 0; i < lines.Count; i++) { if (lines[i].Contains("MDA") || lines[i].Contains("AudioVideo") || lines[i].Contains("SDA") || lines[i].Contains("Telecom") || lines[i].Contains("Computing") || lines[i].Contains("Kitchen") || lines[i].Contains("Other") || lines[i].Contains("Total")) { string type = lines[i]; i++; decimal decSales = 0; decimal.TryParse(lines[i], out decSales); i++; decimal decGM = 0; decimal.TryParse(lines[i], out decGM); var element = new KpiBudgetElement(); element.Insert(type, decSales, decGM); budget.element.Add(element); } } return budget; } catch (Exception ex) { Log.Unhandled(ex); } return null; }