private void SelectRecords(int year, bool includeDebts) { using (var db = new FeeStatusesDBContext()) { IQueryable <string> idList; if (includeDebts) { var opominiOdYear = ConfigHelper.GetConfigValue <int>(ConfigFields.OPOMINI_OD); var opominiDoYear = ConfigHelper.GetConfigValue <int>(ConfigFields.OPOMINI_DO); idList = db.Member. Where(m => m.MustPay && m.Active && m.FeeLogs. Where(fl => (opominiOdYear == 0 || fl.Year >= opominiOdYear) && (opominiDoYear == 0 || fl.Year <= opominiDoYear) ). Any(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL ) ). Select(m => m.VulkanID); } else { idList = db.Member. Where(m => m.MustPay && m.Active && m.FeeLogs. Where(fl => fl.Year == year ). Any(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL ) ). Select(m => m.VulkanID); } for (var i = 0; i < documentListDataGridView.Rows.Count; i++) { var row = documentListDataGridView.Rows[i].DataBoundItem as UPNDocument; if (row == null) { continue; } if (idList.Contains(row.DobroSklic.Substring(5, 6))) { row.Selected = true; } } } documentListDataGridView.Refresh(); }
private void PrepareDataForSelectedYearRangeToolStripMenuItem_Click(object sender, EventArgs e) { var allYears = new List <int>(); using (var db = new FeeStatusesDBContext()) { var feeLogsQuery = db.Member. Where( m => m.Active && m.MustPay && m.FeeLogs. Any( fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL ) ). SelectMany(m => m.FeeLogs); allYears = feeLogsQuery.OrderBy(fl => fl.Year).Select(fl => fl.Year).Distinct().ToList(); } var selectYears = new SelectYearRange(allYears); if (selectYears.ShowDialog() == DialogResult.OK) { InitializeDataGridView(selectYears.Years); } }
private void FinishImportButton_Click(object sender, EventArgs e) { try { using (var db = new FeeStatusesDBContext()) { foreach (DataGridViewRow row in dataGridView1.Rows) { var dataRow = row.DataBoundItem as BankExportDocumentSelectionViewModel; if (dataRow == null || !dataRow.Selected) { continue; } List <int> years = dataRow.Years.Split(',').Select(int.Parse).ToList(); Member member = db.Member.Find(dataRow.Member); years.ForEach(member.AddDefaultFeeLogForYear); member.FeeLogs.Where(fl => years.Contains(fl.Year)).ToList().ForEach( fl => fl.PaymentStatusID = PaymentStatus.PLACAL); } db.SaveChanges(); } owner.BindData(true); } catch (Exception) { } finally { Exit(); } }
public static List <RegularNonPayersReportModel> RegularNonPayersDataSet(Dictionary <string, object> parameters) { using (var db = new FeeStatusesDBContext()) { var dateTimeFrom = parameters["FromYear"] as DateTime?; var yearFrom = dateTimeFrom.HasValue ? dateTimeFrom.Value.Year : 0; var dateTimeTo = parameters["ToYear"] as DateTime?; var yearTo = dateTimeTo.HasValue ? dateTimeTo.Value.Year : 0; var logsList = db.FeeLogs .Where(l => l.Year >= yearFrom && l.Year <= yearTo && l.PaymentStatusID == PaymentStatus.NI_PLACAL && l.Member.MustPay && l.Member.Active ) .ToList(); return(logsList .GroupBy(l => l.Member) .Select(group => new RegularNonPayersReportModel { VulkanID = group.Key.VulkanID, Name = group.Key.Name, Surname = group.Key.Surname, Count = group.Count(), Years = group.Select(l => l.Year.ToString()).Aggregate((y1, y2) => String.Join(", ", y1, y2)) } ) .ToList()); } }
private void AddSpecificYearToolStripMenuItem_Click(object sender, EventArgs e) { var selectYearDialog = new SelectYearForm(); if (selectYearDialog.ShowDialog() == DialogResult.OK) { int selectedYear = selectYearDialog.Year; using (var db = new FeeStatusesDBContext()) { if (db.Member.Any(m => m.MustPay && m.FeeLogs.Any(fl => fl.Year == selectedYear))) { MessageBox.Show( string.Format(WindowMessages.RECORDS_FOR_YEAR_EXIST_MSG, selectedYear), WindowMessages.RECORDS_FOR_YEAR_EXIST_TITLE, MessageBoxButtons.OK ); return; } } SaveChanges(true); using (var db = new FeeStatusesDBContext()) { if (!db.Member.Where(m => m.MustPay).All(m => m.FeeLogs.Any(fl => fl.Year == selectedYear))) { db.Member.ToList().ForEach(m => m.AddDefaultFeeLogForYear(selectedYear)); db.SaveChanges(); } } BindPaymentsDataGridView(onlyMustPayers, includeDeleted); ScrollHorizontallyToEnd(); } }
public static List <SelectedYearStatisticsReportModel> SelectedYearStatisticsDataSet(Dictionary <string, object> parameters) { using (var db = new FeeStatusesDBContext()) { var dateTime = parameters["SelectedYear"] as DateTime?; var year = dateTime.HasValue ? dateTime.Value.Year : 0; var list = db.FeeLogs .Where(l => l.Year == year && l.Member.MustPay ) .Select(l => new SelectedYearStatisticsReportModel { PaymentStatusID = l.PaymentStatusID } ) .ToList(); foreach (var obj in list) { obj.PaymentStatusDesc = PaymentStatus.GetPaymentStatusText(obj.PaymentStatusID); } return(list); } }
private void UpdateMustPayStatus() { var menMustPay = ConfigHelper.GetConfigValue <bool>(ConfigFields.DOLZNI_CLANI); var womenMustPay = ConfigHelper.GetConfigValue <bool>(ConfigFields.DOLZNI_CLANI); var menFrom = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANI_OD); var menTo = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANI_DO); var womenFrom = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANICE_OD); var womenTo = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANICE_DO); using (var db = new FeeStatusesDBContext()) { var members = db.Member.ToList(); foreach (var member in members) { member.MustPay = false; var age = DateTime.Now.Year - member.DateOfBirth.Year; if (member.Gender && menMustPay && age >= menFrom && age < menTo) // moški { member.MustPay = true; } else if (!member.Gender && womenMustPay && age >= womenFrom && age < womenTo) // ženske { member.MustPay = true; } } db.SaveChanges(); } }
private void BindMembersDataGridView(bool onlyMustPayers, bool includeDeleted) { UpdateMustPayStatus(); using (var db = new FeeStatusesDBContext()) { membersBindingSource.DataSource = new SortableBindingList <MemberViewModel> ( db.Member. Where(m => !onlyMustPayers || m.MustPay). Where(m => m.Active || includeDeleted). OrderBy(m => m.Surname). ThenBy(m => m.Name). Select(m => new MemberViewModel { VulkanID = m.VulkanID, Surname = m.Surname, Name = m.Name, Address = m.Address, DateOfBirth = m.DateOfBirth, Gender = m.Gender ? "M" : "Ž", MustPay = m.MustPay ? "DA" : "NE", Active = m.Active }).ToList() ); } membersDataGridView.DataSource = membersBindingSource; membersDataGridView.Columns["Active"].Visible = false; ClearSelection(membersDataGridView); }
public static List <SelectedYearNonPayersReportModel> SelectedYearNonPayersDataSet(Dictionary <string, object> parameters) { using (var db = new FeeStatusesDBContext()) { var dateTime = parameters["SelectedYear"] as DateTime?; var year = dateTime.HasValue ? dateTime.Value.Year : 0; return (db.FeeLogs .Where(l => l.Year == year && l.PaymentStatusID == PaymentStatus.NI_PLACAL && l.Member.MustPay && l.Member.Active ) .Select(x => new SelectedYearNonPayersReportModel { VulkanID = x.Member.VulkanID, Name = x.Member.Name, Surname = x.Member.Surname } ) .ToList()); } }
private void BindMembersDiffDataGridView(StreamReader memberData) { var membersDiff = new List <MemberDiffViewModel>(); newMembers = new List <Member>(); using (var db = new FeeStatusesDBContext()) { string line; while ((line = memberData.ReadLine()) != null) { var lineData = line.Split(';'); try { var vulkanId = lineData[0]; var name = lineData[2]; var surname = lineData[1]; var dateOfBirth = DateTime.ParseExact(lineData[4], "d.M.yyyy", CultureInfo.InvariantCulture); var address = lineData[6] + ", " + lineData[8] + " " + lineData[9]; var gender = lineData[3].Equals("Moški"); // true == moski, false == zenska newMembers.Add( new Member { VulkanID = vulkanId, Name = name, Surname = surname, DateOfBirth = dateOfBirth, Address = address, Gender = gender } ); } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); } } var members = db.Member; foreach (var member in members) { membersDiff.Add( new MemberDiffViewModel( member, newMembers.FirstOrDefault(m => m.VulkanID == member.VulkanID) ) ); } var temp = newMembers.Where(m => !members.Select(x => x.VulkanID).Contains(m.VulkanID)); membersDiff.AddRange( temp.Select(t => new MemberDiffViewModel(null, t)) ); } membersDiffDataGridView.DataSource = new SortableBindingList <MemberDiffViewModel>(membersDiff); }
public override void SaveChanges(bool notifyUser) { paymentsDataGridView.EndEdit(); if (_dataChanged && paymentsDataGridView.Columns.Count > 4) { if (notifyUser && DialogResult.No == MessageBox.Show(WindowMessages.SAVE_OR_DISCARD_CHANGES_MSG, WindowMessages.SAVE_OR_DISCARD_CHANGES_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { ClearChanges(); return; } using (var db = new FeeStatusesDBContext()) { foreach (int rowIndex in _changedCells.Keys) { var changedRow = paymentsDataGridView.Rows[rowIndex].DataBoundItem as DataRowView; string rowId = changedRow.Row.ItemArray[1].ToString(); foreach (int colIndex in _changedCells[rowIndex]) { short changedColName = short.Parse(paymentsDataGridView.Columns[colIndex].HeaderText); //YearXXXX FeeLogs log = db.Member.Find(rowId).FeeLogs.SingleOrDefault(l => l.Year == changedColName); if (log != null) { log.PaymentStatusID = (int)changedRow.Row.ItemArray[colIndex]; } else { db.FeeLogs.Add(new FeeLogs { VulkanID = rowId, Year = changedColName, PaymentStatusID = (int)changedRow.Row.ItemArray[colIndex] } ); } } } int result = db.SaveChanges(); } ClearChanges(); NotifyDependantControlsOfChanges(); } }
private ReportDataSource GetReportDataSet() { var debtors = new List <DebtorReportModel>(); using (var db = new FeeStatusesDBContext()) { foreach (DataGridViewRow row in paymentDebtsDataGridView.Rows) { object[] data = (row.DataBoundItem as DataRowView).Row.ItemArray; var cols = new List <int>(); for (int i = 0; i < data.Length; i++) { if (data[i].Equals(true)) { cols.Add(i); } } if (cols.Count > 0) { Member member = db.Member.Find(data[0].ToString()); var debtor = new DebtorReportModel { RepDefinition = ConfigHelper.GetConfigValue <string>(ConfigFields.DEBTS_TEMPLATE), FirstName = member.Name, LastName = member.Surname, DebtSum = ( member.Gender ? ConfigHelper.GetConfigValue <decimal>(ConfigFields.ZNESEK_CLANI) : ConfigHelper.GetConfigValue <decimal>(ConfigFields.ZNESEK_CLANICE) ) * cols.Count }; var yearsList = new List <short>(); foreach (int c in cols) { yearsList.Add(short.Parse(paymentDebtsDataGridView.Columns[c].HeaderText)); } debtor.YearsList = yearsList; debtors.Add(debtor); } } } return(new ReportDataSource("DataSet1", debtors)); }
private void RestoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) { IEnumerable <DataGridViewRow> rows = membersDataGridView.Rows.Cast <DataGridViewRow>(); using (var db = new FeeStatusesDBContext()) { rows.ToList().ForEach(r => { var row = r.DataBoundItem as MemberViewModel; if (row != null && row.Selected) { db.Member.Find(row.VulkanID).Active = true; } } ); db.SaveChanges(); } BindMembersDataGridView(onlyMustPayers, includeDeleted); }
private void FillYearsList() { using (var db = new FeeStatusesDBContext()) { IOrderedQueryable <Member> members = db.Member.Where( m => m.MustPay && m.Active && m.FeeLogs.Any(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL)) .OrderBy(m => m.Surname).ThenBy(m => m.Name); List <FeeLogs> feeLogs = members.SelectMany(m => m.FeeLogs.Where(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL)).ToList (); if (feeLogs.Count > 0) { maxYear = feeLogs.Max(l => l.Year); minYear = feeLogs.Min(l => l.Year); yearsGlobal = Enumerable.Range(minYear, maxYear - minYear + 1); } } }
public override void SaveChanges(bool notifyUser) { membersBindingSource.EndEdit(); if (_dataChanged) { using (var db = new FeeStatusesDBContext()) { if (notifyUser && DialogResult.No == MessageBox.Show(WindowMessages.SAVE_OR_DISCARD_CHANGES_MSG, WindowMessages.SAVE_OR_DISCARD_CHANGES_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { ClearChanges(); return; } foreach (DataGridViewRow row in membersDataGridView.Rows) { var updatedMemberRow = row.DataBoundItem as MemberViewModel; Member updatedMemberDBRow = updatedMemberRow.ToDBMember(); Member originalMemberDBRow = db.Member.Find(updatedMemberDBRow.VulkanID); if (originalMemberDBRow != default(Member)) { db.Entry(originalMemberDBRow).CurrentValues.SetValues(updatedMemberDBRow); } } db.SaveChanges(); } ClearChanges(); NotifyDependantControlsOfChanges(); } }
public void InitializeDataGridView(List <BankExportDocumentSelectionViewModel> docs) { var memberCol = dataGridView1.Columns["Member"] as DataGridViewComboBoxColumn; if (memberCol != null) { using (var db = new FeeStatusesDBContext()) { memberCol.DataSource = db.Member .Where(m => m.MustPay && m.Active) .OrderBy(m => m.Surname) .ThenBy(m => m.Name) .ToList(); memberCol.ValueMember = "OldVulkanID"; memberCol.DisplayMember = "SurnameAndNameWithVulkanID"; memberCol.AutoComplete = true; } } dataGridView1.DataSource = docs; ClearSelection(); }
public void InitializeDataGridView(int year, bool includeDebts) { var docs = new List <UPNDocument>(); using (var db = new FeeStatusesDBContext()) { var memberQuery = db.Member. Where(m => m.MustPay && m.Active). OrderBy(m => m.Surname). ThenBy(m => m.Name); foreach (var member in memberQuery) // obvezniki za plačevanje članarine { var dobroSklic = String.Format(BREME_SKLIC_12, DateTime.Now.Year, member.VulkanID); dobroSklic = GenerateControlNumber(dobroSklic); docs.Add( new UPNDocument { BremeIme = String.Format(BREME_IME, member.Surname, member.Name, member.Address), // član/plačnik DobroIBAN = ConfigHelper.GetConfigValue <string>(ConfigFields.IBAN_PREJEMNIKA), // IBAN prejemnika DobroModel = DOBRO_MODEL_12, // model sklica DobroSklic = dobroSklic, // sklic == 'tekoče leto'0'ID člana'0'kontrolna številka' DobroIme = ConfigHelper.GetConfigValue <string>(ConfigFields.NAZIV_DRUSTVA), // prejemnik DobroBIC = ConfigHelper.GetConfigValue <string>(ConfigFields.BIC_BANKE), // bic banke Znesek = ( includeDebts ? ( member.FeeLogs .Count( fl => (ConfigHelper.GetConfigValue <int>(ConfigFields.OPOMINI_OD) == 0 || fl.Year >= ConfigHelper.GetConfigValue <int>(ConfigFields.OPOMINI_OD)) && (ConfigHelper.GetConfigValue <int>(ConfigFields.OPOMINI_DO) == 0 || fl.Year <= ConfigHelper.GetConfigValue <int>(ConfigFields.OPOMINI_DO)) && fl.PaymentStatusID == PaymentStatus.NI_PLACAL ) ) : ( member.FeeLogs .Count( fl => fl.Year == year && fl.PaymentStatusID == PaymentStatus.NI_PLACAL ) ) ) * ( member.Gender ? ConfigHelper.GetConfigValue <decimal>(ConfigFields.ZNESEK_CLANI) : ConfigHelper.GetConfigValue <decimal>(ConfigFields.ZNESEK_CLANICE) ), //DatumPlacila = DateTime.Now.ToString("dd.MM.yyyy"), // rok plačila Namen = String.Format(NAMEN, year), // namen KodaNamena = KODA_NAMENA, // koda namena Member = member, // celotni Member objekt, VrsticaOCR = GenerateControlNumber(dobroSklic) } ); } } documentListDataGridView.DataSource = new SortableBindingList <UPNDocument>(docs); CreateHeaderCheckBox(); UnCheckAllRows(false); ClearSelection(documentListDataGridView); SelectRecords(year, true); }
public void BindPaymentDebtsDataGridView(int?min, int?max, bool allYears) { using (var db = new FeeStatusesDBContext()) { var members = allYears ? db.Member.Where( m => m.MustPay && m.Active && m.FeeLogs.Any(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL)) .OrderBy(m => m.Surname).ThenBy(m => m.Name) : db.Member.Where( m => m.MustPay && m.Active && m.FeeLogs.Any( fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL && fl.Year >= min && fl.Year <= max)) .OrderBy(m => m.Surname).ThenBy(m => m.Name); var feeLogs = allYears ? members.SelectMany(m => m.FeeLogs.Where(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL)). ToList() // tudi NI_PODATKA ?? : members.SelectMany( m => m.FeeLogs.Where( fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL && fl.Year >= min && fl.Year <= max)) .ToList(); // tudi NI_PODATKA ?? IEnumerable <int> yearsLocal = null; if (feeLogs.Count > 0) { maxYear = max.HasValue ? max.Value : feeLogs.Max(l => l.Year); minYear = min.HasValue ? min.Value : feeLogs.Min(l => l.Year); yearsLocal = Enumerable.Range(minYear, maxYear - minYear + 1); if (yearsGlobal == null) { yearsGlobal = yearsLocal; } DataGridViewCheckBoxColumn col; for (int i = 0; i < yearsLocal.Count(); i++) { int year = yearsLocal.ElementAt(i); if (!paymentDebtsDataGridView.Columns.Contains("Year" + year)) { col = new DataGridViewCheckBoxColumn { Name = "Year" + year, HeaderText = year.ToString(CultureInfo.InvariantCulture), DataPropertyName = "Year" + year }; paymentDebtsDataGridView.Columns.Insert(2 + i, col); } } } // create a DataTable to hold our data ... DataTable dt = CreateDataTable(yearsLocal); object[] values; foreach (Member member in members) { values = new object[yearsLocal.Count() + 2]; // +2 = member.OldVulkanID in member.OldSurname + " " + member.OldName values[0] = member.VulkanID; values[1] = member.Surname + " " + member.Name; IEnumerable <int> logs = member.FeeLogs.Where(fl => fl.PaymentStatusID == PaymentStatus.NI_PLACAL).Select(fl => fl.Year); for (int i = 2; i < values.Length; i++) { if (logs.Contains(yearsLocal.ElementAt(i - 2))) { values[i] = true; } else { values[i] = DBNull.Value; } } dt.Rows.Add(values); } paymentDebtsDataGridView.DataSource = dt; ClearSelection(paymentDebtsDataGridView); } }
private void ImportMemberData(string fullFilePath, Encoding encoding) { bool dataExists; var idList = new List <string>(); using (var db = new FeeStatusesDBContext()) { if ( (dataExists = db.Member.Any()) && MessageBox.Show( string.Format(WindowMessages.STORED_DATA_EXISTS_MSG, "članih"), WindowMessages.STORED_DATA_EXISTS_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Question ) == DialogResult.No ) { return; } } string line; using (var db = new FeeStatusesDBContext()) { var memberData = new StreamReader(fullFilePath, encoding); if (db.Member.Any()) { var diffForm = new ImportMembersDiffForm(memberData); if (diffForm.ShowDialog() == DialogResult.Cancel) { diffForm.Dispose(); return; } } memberData = new StreamReader(fullFilePath, encoding); while ((line = memberData.ReadLine()) != null) { string[] lineData = line.Split(';'); try { string vulkanId = lineData[0]; string name = lineData[2]; string surname = lineData[1]; DateTime dateOfBirth = DateTime.ParseExact(lineData[4], "d.M.yyyy", CultureInfo.InvariantCulture); string address = lineData[6] + ", " + lineData[8] + " " + lineData[9]; string genderString = lineData[3].ToUpperInvariant(); bool gender = genderString.StartsWith("M"); // true == moski, false == zenska bool mustPay = SetMustPayStatus(gender, dateOfBirth); // TODO updating Member existing; if ((existing = db.Member.Find(vulkanId)) != null) // if exists member with VulkanID { existing.Name = name; existing.Surname = surname; existing.DateOfBirth = dateOfBirth; existing.Address = address; existing.Gender = gender; existing.MustPay = mustPay; //existing.Active = true; } else { db.Member.Add( new Member { VulkanID = vulkanId, Name = name, Surname = surname, DateOfBirth = dateOfBirth, Address = address, Gender = gender, MustPay = mustPay, Active = true } ); } idList.Add(vulkanId); } catch (FormatException ex) { Debug.WriteLine( "Datum rojstva ni v pravilni obliki. Trenutna vrstica je verjetno glava podatkov."); Debug.WriteLine(ex.StackTrace); } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); } } if (dataExists) { // mark those members that were not in the import file as inactive db.Member.Where(m => !idList.Contains(m.VulkanID)).ToList().ForEach(m => m.Active = false); } db.SaveChanges(); } }
private void ImportPaymentHistory(string fullFilePath) { string line; var file = new StreamReader(fullFilePath, Encoding.UTF8); try { using (var db = new FeeStatusesDBContext()) { while ((line = file.ReadLine()) != null) { string[] lineData = line.Split(';'); short year = 2001; Member member = db.Member.Find(lineData[0]); if (member != null && member.Gender) // moski { for (int i = 8; i < 20; i++) { string stat = lineData[i]; var log = new FeeLogs { Member = member, Year = year }; switch (stat) { case "DA": log.PaymentStatusID = PaymentStatus.PLACAL; break; case "NE": log.PaymentStatusID = PaymentStatus.NI_PLACAL; break; case "VETERAN": log.PaymentStatusID = PaymentStatus.VETERAN; break; case "XXX": log.PaymentStatusID = PaymentStatus.MLADOLETNIK; break; default: if (member.GetMemberAgeForYear(year) < 18) { log.PaymentStatusID = PaymentStatus.MLADOLETNIK; } else if (member.GetMemberAgeForYear(year) >= 60) { log.PaymentStatusID = PaymentStatus.VETERAN; } else { log.PaymentStatusID = PaymentStatus.NI_PODATKA; } break; } member.FeeLogs.Add(log); year++; } } } db.SaveChanges(); } } catch (DbEntityValidationException e) { foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); } BindPaymentsDataGridView(onlyMustPayers, includeDeleted); }
public static List <BankExportDocumentSelectionViewModel> TryParseTKDISDocument(string filePath) { using (var db = new FeeStatusesDBContext()) { var file = new StreamReader(filePath, Encoding.UTF8); var tempList = new List <BankExportDocument>(); try { string line; while ((line = file.ReadLine()) != null) { tempList.Add(new BankExportDocument(line)); } } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); } IQueryable <string> vulkanIds = db.Member.Where(m => m.MustPay && m.Active).Select(m => m.VulkanID); IEnumerable <Member> members = db.Member.AsEnumerable(); var retList = new List <BankExportDocumentSelectionViewModel>(); tempList. Where(l => l.OznakaKnjizenja == "20"). ToList(). ForEach(l => { int?year = null; string vulkanId = null; string[] split = l.SklicOdobritve.Split('-'); // || nazivPartnerja == permutations(name, surname) if ( (split.Length == 2 && vulkanIds.Contains(split[1])) || (members.Any(m => l.NazivPartnerja.Equals ( m.NameUpperWOSumniki + " " + m.SurnameUpperWOSumniki ) || l.NazivPartnerja.Equals ( m.SurnameUpperWOSumniki + " " + m.NameUpperWOSumniki )) ) ) { if (l.SklicOdobritve.Contains('-')) { year = int.Parse(l.SklicOdobritve.Split('-')[0]); vulkanId = l.SklicOdobritve.Split('-')[1]; } retList.Add( new BankExportDocumentSelectionViewModel { Member = vulkanId, Years = year.HasValue ? year.Value.ToString(CultureInfo.InvariantCulture) : "", BankDocData = l.NazivPartnerja + "; " + l.Namen + "; " + l.Znesek + "€", Warning = l.Znesek > 10 || vulkanId == null || !year.HasValue, Selected = vulkanId != null && year.HasValue && l.Znesek == 10 } ); } }); return(retList); } }
public static List <BankExportDocumentSelectionViewModel> TryParseSepaXMLDocument(string filePath) { using (var db = new FeeStatusesDBContext()) { XmlReader reader = XmlReader.Create( File.OpenRead(filePath)); var serializer = new XmlSerializer( typeof(Document)); var obj = (Document)serializer.Deserialize(reader); var retList = new List <BankExportDocumentSelectionViewModel>(); IQueryable <string> vulkanIds = db.Member.Where(m => m.MustPay && m.Active).Select(m => m.VulkanID); IEnumerable <Member> members = db.Member.AsEnumerable(); obj.BkToCstmrStmt.Stmt. SelectMany(s => s.Ntry). ToList(). Where(n => n.CdtDbtInd == CreditDebitCode.CRDT). ToList(). ForEach(n => { int?year = null; string vulkanId = null; EntryTransaction2 txDtls = n.NtryDtls.First().TxDtls.First(); string @ref = txDtls.RmtInf.Strd.First().CdtrRefInf.Ref; string refInfo = txDtls.RmtInf.Strd.First().AddtlRmtInf.First(); PartyIdentification32 dbtr = txDtls.RltdPties.Dbtr; // info o placniku string[] split = @ref.Split('-'); if ( (split.Length == 2 && vulkanIds.Contains(split[1])) || (members.Any(m => dbtr.Nm.Equals ( m.NameUpperWOSumniki + " " + m.SurnameUpperWOSumniki ) || dbtr.Nm.Equals ( m.SurnameUpperWOSumniki + " " + m.NameUpperWOSumniki )) ) ) { string subRef = @ref.Substring(4); // remove SIXX if (subRef.Contains('-')) { year = int.Parse(subRef.Split('-')[0]); vulkanId = subRef.Split('-')[1]; } retList.Add(new BankExportDocumentSelectionViewModel { Member = vulkanId, Years = year.HasValue ? year.Value.ToString(CultureInfo.InvariantCulture) : "", BankDocData = dbtr.Nm + "; " + refInfo + "; " + n.Amt.Value + "€", Warning = n.Amt.Value > 10 || vulkanId == null || !year.HasValue, Selected = vulkanId != null && year.HasValue && n.Amt.Value == 10 }); } } ); return(retList); } }
public void BindPaymentsDataGridView(bool onlyMustPayers, bool includeDeleted) { paymentsDataGridView.CellValueChanged -= PaymentsDataGridView_CellValueChanged; using (var db = new FeeStatusesDBContext()) { var members = db.Member. Where(m => !onlyMustPayers || m.MustPay). Where(m => m.Active || includeDeleted). OrderBy(m => m.Surname). ThenBy(m => m.Name); var feeLogs = members.SelectMany(m => m.FeeLogs).ToList(); var paymentStatuses = db.PaymentStatus.ToList(); IEnumerable <int> years = null; if (feeLogs.Count > 0) { int maxYear = feeLogs.Max(l => l.Year); int minYear = feeLogs.Min(l => l.Year); years = Enumerable.Range(minYear, maxYear - minYear + 1); DataGridViewComboBoxColumn col; foreach (int year in years) { if (!paymentsDataGridView.Columns.Contains("Year" + year)) { col = new DataGridViewComboBoxColumn { DataSource = paymentStatuses, Name = "Year" + year, HeaderText = year.ToString(), DisplayMember = "Text", ValueMember = "PaymentStatusID", DataPropertyName = "Year" + year, FlatStyle = FlatStyle.Flat }; paymentsDataGridView.Columns.Add(col); } } } // create a DataTable to hold our data ... DataTable dt = CreateDataTable(years); object[] values; foreach (Member member in members) { values = years != null ? new object[5 + years.Count()] : new object[5]; values[0] = member.Active; values[1] = member.VulkanID; values[2] = member.Surname; values[3] = member.Name; values[4] = string.Format("{0} ({1} let)", member.DateOfBirth.ToString("dd.MM.yyyy"), member.GetMemberAgeForCurrentYear()); if (years != null) { int i = 0; foreach (int year in years) { FeeLogs log = member.FeeLogs.FirstOrDefault(l => l.Year == year); values[5 + i] = log != null ? log.PaymentStatusID : PaymentStatus.NI_PODATKA; i++; } } dt.Rows.Add(values); } paymentsDataGridView.DataSource = dt; ClearSelection(paymentsDataGridView); } paymentsDataGridView.CellValueChanged += PaymentsDataGridView_CellValueChanged; }