Пример #1
0
        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;
        }
Пример #2
0
        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;
        }