示例#1
0
        private bool CompileEATable()
        {
            bool result = false;

            if (stopImport)
            {
                return(result);
            }

            StatusChanged("Importing Expense Account files...");

            try
            {
                IEnumerable <DataRow> expenses = dtExpenseReview.Rows.Cast <DataRow>();

                foreach (FileInfo file in new DirectoryInfo(_sourceEAPath).GetFiles("*.pdf", SearchOption.AllDirectories))
                {
                    if (stopImport)
                    {
                        break;
                    }

                    ExpenseAccountEVM ea = null;

                    try
                    {
                        ea = FDLManager.ImportEAFromFile(file.FullName, false, false, true);

                        if (ea != null)
                        {
                            File.Copy(file.FullName, Path.Combine(ApplicationSettings.Directories.ExpenseAccount, file.Name), true);

                            using (DBArchive db = new DBArchive())
                            {
                                // we must override recived EA with the same of current dbcontext istance
                                ExpenseAccount currentEA = db.ExpenseAccounts.SingleOrDefault(e => e.Id == ea.Id);

                                if (currentEA != null)
                                {
                                    FDL fdl = db.FDLs.SingleOrDefault(f => f.Id == currentEA.FDL);

                                    if (fdl != null)
                                    {
                                        currentEA.Status = fdl.Status;
                                    }
                                    else
                                    {
                                        currentEA.Status = (long)EFDLStatus.Accepted;
                                    }

                                    var expense = expenses.SingleOrDefault(e => !string.IsNullOrEmpty(e.Field <string>("Dbf_Foglio")) && FormatFDL(e.Field <string>("Dbf_Foglio")) == fdl.Id);
                                    currentEA.IsRefunded = expense != null && expense.Field <bool>("Dbf_Restituito");

                                    if (currentEA.Status != (long)EFDLStatus.New)
                                    {
                                        currentEA.IsReadOnly = true;
                                    }

                                    db.ExpenseAccounts.AddOrUpdate(currentEA);
                                    db.SaveChanges();
                                    Message($"Expense Account {currentEA.FDL} OK");
                                }
                                else
                                {
                                    Error("Missing EA on database. Should never happen.");
                                }
                            }
                        }
                        else
                        {
                            Error($"Failed to import EA from file: {file.FullName}");
                        }
                    }
                    catch (Exception ex)
                    {
                        Error($"Failed importing EA {ea?.FDL}. {ex}", ex);
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                Error($"Failed importing expense accounts. {ex}", ex);
            }

            return(result);
        }
示例#2
0
        private bool ImportEAFiles()
        {
            bool result = false;

            if (stopImport)
            {
                return(result);
            }

            StatusChanged("Importing Expense Account files...");

            try
            {
                foreach (FileInfo file in new DirectoryInfo(FDLFolder).GetFiles("*.pdf", SearchOption.AllDirectories))
                {
                    if (stopImport)
                    {
                        break;
                    }

                    if (FDLManager.GetFileType(file.Name) != EFileType.ExpenseAccount)
                    {
                        continue;
                    }

                    ExpenseAccountEVM ea = null;

                    try
                    {
                        ea = FDLManager.ImportEAFromFile(file.FullName, false, false, true);

                        if (ea != null)
                        {
                            File.Copy(file.FullName, Path.Combine(ApplicationSettings.Directories.ExpenseAccount, file.Name), true);

                            using (DBArchive db = new DBArchive())
                            {
                                // we must override recived EA with the same of current dbcontext istance
                                ExpenseAccount currentEA = db.ExpenseAccounts.SingleOrDefault(e => e.Id == ea.Id);

                                if (currentEA != null)
                                {
                                    currentEA.Status = currentEA.FDL1.Status;

                                    if (currentEA.Status == (long)EFDLStatus.Accepted)
                                    {
                                        currentEA.IsRefunded = true;
                                    }

                                    db.ExpenseAccounts.AddOrUpdate(currentEA);
                                    db.SaveChanges();
                                }
                                else
                                {
                                    Error("Missing EA on database. Should never happen.");
                                }
                            }

                            Message($"Expense Account {ea.FDL} OK");
                        }
                        else
                        {
                            Error($"Failed to import EA from file: {file.FullName}");
                        }
                    }
                    catch (Exception ex)
                    {
                        Error($"Failed importing EA {ea?.FDL}. {ex}", ex);
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                Error($"Failed importing expense accounts. {ex}", ex);
            }

            return(result);
        }