private void cmbBuilding_SelectedIndexChanged(object sender, EventArgs e) { try { cmbCustomer.SelectedIndexChanged -= cmbCustomer_SelectedIndexChanged; building = buildings[cmbBuilding.SelectedIndex]; customers = Controller.pastel.AddCustomers(building.Abbr, building.DataPath, true); cmbCustomer.DataSource = null; cmbCustomer.Items.Clear(); cmbCustomer.DataSource = customers; cmbCustomer.DisplayMember = "accNumber"; cmbCustomer.ValueMember = "accNumber"; cmbCustomer.SelectedIndex = -1; cmbCustomer.SelectedIndexChanged += cmbCustomer_SelectedIndexChanged; stmtBuilding = new StatementBuilding(building.ID, building.Name, building.DataPath, building.Period, DateTime.Now, Controller.UserIsSheldon()); stmt = new Statement { BuildingId = building.ID, pm = building.PM, bankName = building.Bank_Name, accName = building.Acc_Name, BankAccountNumber = building.Bank_Acc_Number, branch = building.Branch_Code, DebtorEmail = building.Debtor }; } catch { } if (String.IsNullOrWhiteSpace(stmt.DebtorEmail)) { Controller.HandleError("Debtor not configured on this building. Please check building configuration."); } }
private void LoadBuildings() { String point = "0"; String build = String.Empty; String query = "SELECT DISTINCT b.id, b.Building, b.DataPath, b.Period, '' as [Last Processed], b.pm, b.bankName, b.accName, b.bankAccNumber, b.branch, b.bank FROM tblBuildings AS b "; query += " INNER JOIN tblUserBuildings AS u ON b.id = u.buildingid WHERE u.userid = {0} ORDER BY b.Building"; try { query = String.Format(query, userid.ToString()); } catch { MessageBox.Show("query generator" + userid.ToString()); } dsBuildings = dh.GetData(query, null, out status); if (dsBuildings != null && dsBuildings.Tables.Count > 0 && dsBuildings.Tables[0].Rows.Count > 0) { List <StatementBuilding> dataList = new List <StatementBuilding>(); foreach (DataRow dr in dsBuildings.Tables[0].Rows) { try { int buildingId = (int)dr["id"]; String building = dr["Building"].ToString(); String lpQuery = String.Format("SELECT top(1) lastProcessed FROM tblStatements WHERE building = '{0}' ORDER BY lastProcessed DESC", building); DataSet dsLP = dh.GetData(lpQuery, null, out status); DateTime lastProcessed; if (dsLP != null && dsLP.Tables.Count > 0 && dsLP.Tables[0].Rows.Count > 0) { lastProcessed = DateTime.Parse(dsLP.Tables[0].Rows[0]["lastProcessed"].ToString()); } else { lastProcessed = DateTime.Now.AddYears(-1); } build = dr["Building"].ToString(); String dp = dr["DataPath"].ToString(); int p = int.Parse(dr["Period"].ToString()); StatementBuilding stmtBuilding = new StatementBuilding(buildingId, build, dp, p, lastProcessed, Controller.UserIsSheldon()); var existing = dataList.Where(a => a.DataPath == stmtBuilding.DataPath).FirstOrDefault(); if (existing == null) { dataList.Add(stmtBuilding); } } catch (Exception ex) { Controller.HandleError(ex); } } bs.DataSource = dataList; } }
private void chkSelectAll_CheckedChanged(object sender, EventArgs e) { foreach (DataGridViewRow dvr in dgBuildings.Rows) { if (chkSelectAll.Checked) { StatementBuilding statementBuilding = dvr.DataBoundItem as StatementBuilding; if (statementBuilding != null && statementBuilding.Allowed) { dvr.Cells[0].Value = true; } } else { dvr.Cells[0].Value = chkSelectAll.Checked; } } }
private void dgBuildings_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { foreach (DataGridViewRow dvr in dgBuildings.Rows) { StatementBuilding statementBuilding = dvr.DataBoundItem as StatementBuilding; if (statementBuilding != null) { for (int i = 0; i < dgBuildings.ColumnCount; i++) { if (statementBuilding.StatementAlreadyProcessed()) { dvr.Cells[i].Style.BackColor = System.Drawing.Color.Red; } else { dvr.Cells[i].Style.BackColor = System.Drawing.Color.White; } } } } dgBuildings.Refresh(); }
private void btnProcess_Click(object sender, EventArgs e) { _ProgressForm = frmProgress.ShowForm(); List <string> statementFileList = new List <string>(); this.Cursor = Cursors.WaitCursor; statements = new Statements { statements = new List <Statement>() }; Dictionary <String, bool> hasStatements = new Dictionary <string, bool>(); foreach (DataGridViewRow dvr in dgBuildings.Rows) { if ((bool)dvr.Cells[0].Value) { String buildingName = dvr.Cells[1].Value.ToString(); AddProgressString("Loading Building " + buildingName); SetBuildingStatement(buildingName); String datapath = dvr.Cells[5].Value.ToString(); int period = (int)dvr.Cells[6].Value; if (dvr.Cells[2].Value == null) { MessageBox.Show("ishoa"); } StatementBuilding strm = dvr.DataBoundItem as StatementBuilding; List <Statement> bStatements = SetBuildings(strm.GetBuildingId(), buildingName, datapath, period, (bool)dvr.Cells[2].Value); int idx = dvr.Index; DataRow dr = dsBuildings.Tables[0].Rows[idx]; String pm = dr["pm"].ToString(); String bankName = dr["bankName"].ToString(); String accName = dr["accName"].ToString(); String bankAccNumber = dr["bankAccNumber"].ToString(); String branch = dr["branch"].ToString(); bool isStd = bankName.ToLower().Contains("standard"); foreach (Statement s in bStatements) { s.pm = pm; s.bankName = bankName; s.accName = accName; s.BankAccountNumber = bankAccNumber; s.branch = branch; s.isStd = isStd; statements.statements.Add(s); } } } PDF generator = new PDF(true); foreach (Statement stmt in statements.statements) { String fileName = String.Empty; bool canProcess = false; if (stmt.IsInTransfer && stmt.InTransferLetter != null) { string folderPath = generator.StatementFolderPath; fileName = Path.Combine(folderPath, String.Format("{0} - InTransfer - {1}{2}.pdf", stmt.AccNo.Replace(@"/", "-").Replace(@"\", "-"), DateTime.Now.ToString("dd-MMMM-yyyy"), "")); if (!Directory.Exists(Path.GetDirectoryName(fileName))) { Directory.CreateDirectory(Path.GetDirectoryName(fileName)); } if (File.Exists(fileName)) { File.Delete(fileName); } File.WriteAllBytes(fileName, stmt.InTransferLetter); canProcess = true; } else { canProcess = generator.CreateStatement(stmt, stmt.BuildingName != "ASTRODON RENTALS" ? true : false, out fileName, stmt.isStd); } if (canProcess) { #region Upload Letter String actFileTitle = Path.GetFileNameWithoutExtension(fileName); String actFile = Path.GetFileName(fileName); #endregion Upload Letter string statementURL = string.Empty; #region Upload Me try { AddProgressString(stmt.BuildingName + ": " + stmt.accName + " - Upload statement to website"); string emailAddress = ""; if (stmt.email1 != null && stmt.email1.Length > 0) { emailAddress = stmt.email1[0]; } statementURL = _ClientPortal.InsertStatement(stmt.BuildingId, stmt.AccNo, stmt.StmtDate, fileName, File.ReadAllBytes(fileName), emailAddress); } catch (Exception ex) { statementURL = ""; AddProgressString(stmt.BuildingName + ": " + stmt.accName + " - Error Upload statement to website " + ex.Message); } #endregion #region Email Me if (stmt.EmailMe) { if (!String.IsNullOrEmpty(fileName)) { if (!hasStatements.ContainsKey(stmt.BuildingName)) { hasStatements.Add(stmt.BuildingName, true); } if (Controller.user.id != 1 && !String.IsNullOrWhiteSpace(statementURL)) { SetupEmail(stmt, fileName, statementURL); } } } #endregion #region Print Me if (stmt.PrintMe && Controller.user.id != 1) { if (!String.IsNullOrWhiteSpace(fileName)) { AddProgressString(stmt.BuildingName + ": " + stmt.AccNo + " - Add Statement to List - " + Path.GetFileName(fileName)); statementFileList.Add(fileName); // SendToPrinter(fileName, stmt.BuildingName , stmt.AccNo); } else { AddProgressString(stmt.BuildingName + ": " + stmt.AccNo + " - Error Printing Statement - file name blank"); } } #endregion Application.DoEvents(); } else { AddProgressString(stmt.BuildingName + ": " + stmt.AccNo + " - ERROR Processing Statement"); Application.DoEvents(); } } foreach (DataGridViewRow dvr in dgBuildings.Rows) { dvr.Cells[0].Value = false; } foreach (KeyValuePair <String, bool> hasStatement in hasStatements) { String query = "INSERT INTO tblStatements(building, lastProcessed) VALUES(@building, @lastProcessed)"; Dictionary <String, Object> sqlParms = new Dictionary <string, object>(); sqlParms.Add("@building", hasStatement.Key); sqlParms.Add("@lastProcessed", DateTime.Now); dh.SetData(query, sqlParms, out status); } CombinePDFsAndPrint(statementFileList); this.Cursor = Cursors.Arrow; _ProgressForm.Focus(); _ProgressForm.ProcessComplete(); _ProgressForm = null; }