Exemplo n.º 1
0
 private List <string> InsertRemainingImportedItems(int headerIserial, List <ImportedBankStatement> importedList, string company)
 {
     using (var entities = new ccnewEntities(SharedOperation.GetSqlConnectionString(company)))
     {
         var           header = entities.TblBankStatHeaders.FirstOrDefault(ah => ah.Iserial == headerIserial);
         List <string> errors = new List <string>();
         try
         {
             foreach (var item in importedList)
             {
                 TblBankStatDetail detail = PrepareDetail(entities, header, item, errors);
                 if (detail != null)
                 {
                     // Add detail
                     header.TblBankStatDetails.Add(detail);
                 }
             }
             entities.SaveChanges();
             return(errors);
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
 }
Exemplo n.º 2
0
        public void SaveMainRow()
        {
            if (SelectedMainRow != null)
            {
                var valiationCollection = new List <ValidationResult>();

                var isvalid = Validator.TryValidateObject(SelectedMainRow, new ValidationContext(SelectedMainRow, null, null), valiationCollection, true);

                if (isvalid)
                {
                    var saveRow = new TblBankStatHeader()
                    {
                        DocDate      = DateTime.Now,
                        CreationDate = DateTime.Now,
                    };
                    saveRow.InjectFrom(SelectedMainRow);
                    saveRow.TblBankStatDetails = new ObservableCollection <TblBankStatDetail>();
                    foreach (var item in SelectedMainRow.TblBankStatDetails)
                    {
                        var detailTemp = new TblBankStatDetail();
                        detailTemp.InjectFrom(item);
                        saveRow.TblBankStatDetails.Add(detailTemp);
                    }

                    var mainRowIndex = MainRowList.IndexOf(SelectedMainRow);
                    if (mainRowIndex < 0)
                    {
                        MainRowList.Insert(mainRowIndex + 1, SelectedMainRow); mainRowIndex++;
                    }
                    BankStatClient.UpdateOrInsertBankStatHeaderAsync(saveRow, mainRowIndex, LoggedUserInfo.Iserial, LoggedUserInfo.DatabasEname);
                }
            }
        }
Exemplo n.º 3
0
        private TblBankStatDetail DeleteBankStatDetail(TblBankStatDetail row, string company)
        {
            using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company)))
            {
                var oldRow = (from e in context.TblBankStatDetails
                              where e.Iserial == row.Iserial
                              select e).SingleOrDefault();
                if (oldRow != null)
                {
                    context.DeleteObject(oldRow);
                }

                context.SaveChanges();
            }
            return(row);
        }
Exemplo n.º 4
0
        public void SaveDetailRow()
        {
            if (SelectedDetailRow != null)
            {
                var valiationCollection = new List <ValidationResult>();

                var isvalid = Validator.TryValidateObject(SelectedDetailRow, new ValidationContext(SelectedDetailRow, null, null), valiationCollection, true);

                if (isvalid)
                {
                    var rowToSave = new TblBankStatDetail();
                    rowToSave.InjectFrom(SelectedDetailRow);
                    BankStatClient.UpdateOrInsertBankStatDetailAsync(rowToSave, SelectedMainRow.TblBankStatDetails.IndexOf(SelectedDetailRow), LoggedUserInfo.DatabasEname);
                }
            }
        }
Exemplo n.º 5
0
        private TblBankStatDetail UpdateOrInsertBankStatDetail(TblBankStatDetail newRow, int index, out int outindex, string company)
        {
            outindex = index;
            using (var context = new ccnewEntities(SharedOperation.GetSqlConnectionString(company)))
            {
                var oldRow = (from e in context.TblBankStatDetails
                              where e.Iserial == newRow.Iserial
                              select e).SingleOrDefault();
                if (oldRow != null)
                {
                    //context.Entry(oldRow).CurrentValues.SetValues(newRow);
                    SharedOperation.GenericUpdate(oldRow, newRow, context);
                }
                else
                {
                    context.TblBankStatDetails.AddObject(newRow);
                }

                context.SaveChanges();
                return(newRow);
            }
        }
Exemplo n.º 6
0
        private static TblBankStatDetail PrepareDetail(ccnewEntities entities, TblBankStatHeader header,
                                                       ImportedBankStatement transaction, List <string> errors)
        {
            string recInfo = string.Format(
                "Doc Date:{0}, Transaction Type:{1}, Amount:{2}, ChequeNo:{3}, DepositNo:{4}, DepositNo:{5}"
                , transaction.DocDate, transaction.TransactionType, transaction.Amount, transaction.ChequeNo, transaction.DepositNo, transaction.Description);

            var BankTransactionType = entities.TblBankTransactionTypes.Where(i => i.Code == transaction.TransactionType);

            if (BankTransactionType.Count() != 1)
            {
                if (BankTransactionType.Count() == 0)
                {
                    errors.Add(string.Format("{1} -->> Bank transaction type not Found. More info -->> {0}",
                                             recInfo, DateTime.Now));
                }
                else
                {
                    errors.Add(string.Format("{1} -->> found more than one bank transaction type . More info -->> {0}",
                                             recInfo, DateTime.Now));
                }
                return(null);
            }
            var detail = new TblBankStatDetail()
            {
                TblBankStatHeader      = header.Iserial,
                TblBankTransactionType = BankTransactionType.FirstOrDefault().Iserial,
                DocDate     = transaction.DocDate,
                Description = transaction.Description,
                Amount      = transaction.Amount,
                ChequeNo    = transaction.ChequeNo,
                DepositNo   = transaction.DepositNo,
            };

            return(detail);
        }
Exemplo n.º 7
0
        private int InsertImportedItems(TblBankStatHeader header,
                                        List <ImportedBankStatement> importedList, string company)
        {
            List <string> errors = new List <string>();

            using (var entities = new ccnewEntities(SharedOperation.GetSqlConnectionString(company)))
            {
                try
                {
                    header.Approved = false;
                    foreach (var item in importedList)
                    {
                        TblBankStatDetail detail = PrepareDetail(entities, header, item, errors);
                        if (detail != null)
                        {
                            header.TblBankStatDetails.Add(detail);
                        }
                    }

                    header.TblBank1     = null;
                    header.TblCurrency1 = null;

                    header.CreationDate   = DateTime.Now;
                    header.LastChangeDate = DateTime.Now;
                    header.LastChangeUser = header.CreatedBy;

                    entities.TblBankStatHeaders.AddObject(header);
                    entities.SaveChanges();
                    return(header.Iserial);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Exemplo n.º 8
0
        private int InsertExcelFileDate(TblBankStatHeader header,
                                        List <Models.Excel.CellModel> detailList, string company)
        {
            List <string> errors = new List <string>();

            using (var entities = new ccnewEntities(SharedOperation.GetSqlConnectionString(company)))
            {
                var template = entities.TblBankStatExcelTemplates.FirstOrDefault(t => t.TblBank == header.TblBank);
                if (template == null)
                {
                    throw new ArgumentNullException("Template", "Cannot find Bank Template");
                }
                string templatePath = string.Format("{0}\\BankStatExcelTemplates\\{1}", "..", template.TemplatePath).Replace("\\\\", "\\");
                string workingPath  = string.Format("{0}\\BankStatExcelTemplates\\{1}\\{2}\\{3}", "..",
                                                    DateTime.Now.ToString("yyyy-MM-dd--HH-mm-ss"), Guid.NewGuid(),
                                                    template.TemplatePath).Replace("\\\\", "\\");
                string workingDirectory = Path.GetDirectoryName(workingPath);
                if (!Directory.Exists(workingDirectory))
                {
                    Directory.CreateDirectory(workingDirectory);
                }
                File.Copy(templatePath, workingPath);
                var fs = new FileInfo(workingPath);//, FileMode.Create);
                using (ExcelPackage package = new ExcelPackage(fs))
                {
                    int baseColIndex = 3;
                    var sheet        = package.Workbook.Worksheets.First();
                    //Excel._Worksheet sheet = xlWorkbook.Sheets[1];
                    //sheet.Column(2).Style.Numberformat.Format = "dd-mm-yyyy";
                    foreach (var item in detailList)
                    {
                        //((Excel.Range)sheet.Cells[item.Row + 1, item.Column + 1]).Value = item.Value;
                        if (item.Column + 1 == 2 && item.Value.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries).Length == 3)
                        {
                            sheet.Cells[item.Row + 1, 1].LoadFromText(item.Day);
                            sheet.Cells[item.Row + 1, 2].LoadFromText(item.Mounth);
                            sheet.Cells[item.Row + 1, 3].LoadFromText(item.Year);
                        }
                        else
                        {
                            //فيه مشكلة فى التاريخ بيبدل اليوم والشهر فى الاصلى مظبوط وبعد النسخ بتحصل المشكلة
                            sheet.Cells[item.Row + 1, item.Column + baseColIndex + 1].LoadFromText(item.Value);//1-base
                        }
                    }
                    package.Save();
                    //xlWorkbook.Save();
                }
                Excel.Application            xlApp        = new Excel.Application();
                Excel.Workbook               xlWorkbook   = xlApp.Workbooks.Open(workingPath);
                List <ImportedBankStatement> importedList = new List <ImportedBankStatement>();
                //using (ExcelPackage package = new ExcelPackage(fs))
                {
                    var sheet = xlWorkbook.Sheets[1]; // package.Workbook.Worksheets.First(); //
                    try
                    {
                        FillList(importedList, sheet, template.StartRow);
                        header.Approved = false;
                        foreach (var item in importedList)
                        {
                            TblBankStatDetail detail = PrepareDetail(entities, header, item, errors);
                            if (detail != null)
                            {
                                header.TblBankStatDetails.Add(detail);
                            }
                        }

                        header.TblBank1     = null;
                        header.TblCurrency1 = null;

                        header.CreationDate   = DateTime.Now;
                        header.LastChangeDate = DateTime.Now;
                        header.LastChangeUser = header.CreatedBy;
                        //header.Approved = true;
                        entities.TblBankStatHeaders.AddObject(header);
                        entities.SaveChanges();
                        return(header.Iserial);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        var process = SharedOperation.GetExcelProcess(xlApp);
                        if (process != null)
                        {
                            process.Kill();
                        }
                    }
                }
            }
        }