private void butMissing_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; Font font = new Font("Tahoma", 9); Font fontTitle = new Font("Tahoma", 17, FontStyle.Bold); Font fontSubTitle = new Font("Tahoma", 10, FontStyle.Bold); ReportComplex report = new ReportComplex(true, false); report.ReportName = "Missing"; report.AddTitle("Title", "XCharge Transactions From " + date1.SelectionStart.ToShortDateString() + " To " + date2.SelectionStart.ToShortDateString(), fontTitle); report.GetTitle("Title").IsUnderlined = true; report.AddSubTitle("SubTitle", "No Matching Transaction Found in Open Dental", fontSubTitle); QueryObject query; DataTable dt = XChargeTransactions.GetMissingPaymentsTable(date1.SelectionStart, date2.SelectionStart); query = report.AddQuery(dt, "Missing Payments", "", SplitByKind.None, 1, true); //Valid entries to count have result code 0 query.AddColumn("Transaction Date/Time", 170, FieldValueType.String, font); query.AddColumn("Transaction Type", 120, FieldValueType.String, font); query.AddColumn("Clerk ID", 80, FieldValueType.String, font); query.AddColumn("Item#", 50, FieldValueType.String, font); query.AddColumn("Pat", 50, FieldValueType.String, font); query.AddColumn("Credit Card Num", 140, FieldValueType.String, font); query.AddColumn("Exp", 50, FieldValueType.String, font); query.AddColumn("Result", 50, FieldValueType.String, font); query.AddColumn("Amount", 60, FieldValueType.Number, font); query.GetColumnHeader("Amount").ContentAlignment = ContentAlignment.MiddleRight; Cursor = Cursors.Default; if (!report.SubmitQueries(true)) { return; } // display report FormReportComplex FormR = new FormReportComplex(report); //FormR.MyReport=report; FormR.ShowDialog(); }
private void butExtra_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; Font font = new Font("Tahoma", 9); Font fontTitle = new Font("Tahoma", 17, FontStyle.Bold); Font fontSubTitle = new Font("Tahoma", 10, FontStyle.Bold); ReportComplex report = new ReportComplex(true, false); report.ReportName = "Extra Payments"; report.AddTitle("Title", "Payments From " + date1.SelectionStart.ToShortDateString() + " To " + date2.SelectionStart.ToShortDateString(), fontTitle); report.GetTitle("Title").IsUnderlined = true; report.AddSubTitle("SubTitle", "No Matching X-Charge Transactions for these Payments", fontSubTitle); QueryObject query; DataTable dt = XChargeTransactions.GetMissingXTransTable(date1.SelectionStart, date2.SelectionStart); query = report.AddQuery(dt, "Extra Payments", "", SplitByKind.None, 1, true); query.AddColumn("Pat", 50, FieldValueType.String, font); query.AddColumn("LName", 100, FieldValueType.String, font); query.AddColumn("FName", 100, FieldValueType.String, font); query.AddColumn("DateEntry", 90, FieldValueType.Date, font); query.AddColumn("PayDate", 90, FieldValueType.Date, font); query.AddColumn("PayNote", 210, FieldValueType.String, font); query.AddColumn("PayAmt", 70, FieldValueType.Number, font); query.GetColumnHeader("PayAmt").ContentAlignment = ContentAlignment.MiddleRight; query.GetColumnDetail("PayAmt").ContentAlignment = ContentAlignment.MiddleRight; Cursor = Cursors.Default; if (!report.SubmitQueries(true)) { return; } // display report FormReportComplex FormR = new FormReportComplex(report); //FormR.MyReport=report; FormR.ShowDialog(); }
private void butImport_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; OpenFileDialog Dlg = new OpenFileDialog(); if (Directory.Exists(@"C:\X-Charge\")) { Dlg.InitialDirectory = @"C:\X-Charge\"; } else if (Directory.Exists(@"C:\")) { Dlg.InitialDirectory = @"C:\"; } if (Dlg.ShowDialog() != DialogResult.OK) { Cursor = Cursors.Default; return; } if (!File.Exists(Dlg.FileName)) { Cursor = Cursors.Default; MsgBox.Show(this, "File not found"); return; } XChargeTransaction trans = new XChargeTransaction(); string[] fields; XChargeTransaction transCheck; using (StreamReader sr = new StreamReader(Dlg.FileName)) { Cursor = Cursors.WaitCursor; string line = sr.ReadLine(); while (line != null) { fields = line.Split(new string[1] { "," }, StringSplitOptions.None); if (fields.Length < 16) { continue; } trans.TransType = fields[0]; fields[1] = fields[1].Replace("$", ""); if (fields[1].Contains("(")) { fields[1] = fields[1].TrimStart('('); fields[1] = fields[1].TrimEnd(')'); fields[1] = fields[1].Insert(0, "-"); } trans.Amount = PIn.Double(fields[1]); trans.CCEntry = fields[2]; trans.PatNum = PIn.Long(fields[3].Substring(3)); //remove "PAT" from the beginning of the string trans.Result = fields[4]; trans.ClerkID = fields[5]; trans.ResultCode = fields[7]; trans.Expiration = fields[8]; trans.CCType = fields[9]; trans.CreditCardNum = fields[10]; trans.BatchNum = fields[11]; trans.ItemNum = fields[12]; trans.ApprCode = fields[13]; trans.TransactionDateTime = PIn.Date(fields[14]).AddHours(PIn.Double(fields[15].Substring(0, 2))).AddMinutes(PIn.Double(fields[15].Substring(3, 2))); if (trans.BatchNum == "" || trans.ItemNum == "") { line = sr.ReadLine(); continue; } transCheck = XChargeTransactions.CheckByBatchItem(trans.BatchNum, trans.ItemNum); if (transCheck == trans) { XChargeTransactions.Delete(transCheck.XChargeTransactionNum); XChargeTransactions.Insert(trans); } else { XChargeTransactions.Insert(trans); } line = sr.ReadLine(); } } Cursor = Cursors.Default; MsgBox.Show(this, "Done."); }
private void butImport_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; OpenFileDialog Dlg = new OpenFileDialog(); if (Directory.Exists(@"C:\X-Charge\")) { Dlg.InitialDirectory = @"C:\X-Charge\"; } else if (Directory.Exists(@"C:\")) { Dlg.InitialDirectory = @"C:\"; } if (Dlg.ShowDialog() != DialogResult.OK) { Cursor = Cursors.Default; return; } if (!File.Exists(Dlg.FileName)) { Cursor = Cursors.Default; MsgBox.Show(this, "File not found"); return; } XChargeTransaction trans = new XChargeTransaction(); string[] fields; XChargeTransaction transCheck; using (StreamReader sr = new StreamReader(Dlg.FileName)) { Cursor = Cursors.WaitCursor; string line = sr.ReadLine(); while (line != null) { fields = line.Split(new string[1] { "," }, StringSplitOptions.None); if (fields.Length < 16 || fields.All(x => x == "")) { //This occurs when the XCharge transaction is blank. For example, ,,,,,,,,,,,,,,,, which is what is outputted by XCharge //when no transactions occurred for a day. line = sr.ReadLine(); continue; } trans.TransType = fields[0]; fields[1] = fields[1].Replace("$", ""); if (fields[1].Contains("(")) { fields[1] = fields[1].TrimStart('('); fields[1] = fields[1].TrimEnd(')'); fields[1] = fields[1].Insert(0, "-"); } trans.Amount = PIn.Double(fields[1]); trans.CCEntry = fields[2]; trans.PatNum = 0; if (!string.IsNullOrWhiteSpace(fields[3])) { trans.PatNum = PIn.Long(fields[3].Substring(3)); //remove "PAT" from the beginning of the string } trans.Result = fields[4]; trans.ClerkID = fields[5]; trans.ResultCode = fields[7]; trans.Expiration = fields[8]; trans.CCType = fields[9]; trans.CreditCardNum = fields[10]; trans.BatchNum = fields[11]; trans.ItemNum = fields[12]; trans.ApprCode = fields[13]; trans.TransactionDateTime = PIn.Date(fields[14]) .AddHours(PIn.Double(fields[15].Substring(0, 2))) .AddMinutes(PIn.Double(fields[15].Substring(3, 2))) .AddSeconds(PIn.Double(fields[15].Substring(6, 2))); transCheck = XChargeTransactions.GetOneMatch(trans.BatchNum, trans.ItemNum, trans.PatNum, trans.TransactionDateTime, trans.TransType); if (transCheck != null && trans.Result != "AP DUPE" && transCheck.Amount.IsEqual(trans.Amount) //Before 17.1.19, we did not store the seconds value of the TransactionDateTime, so we consider it a match if Second==0. && (transCheck.TransactionDateTime == trans.TransactionDateTime || transCheck.TransactionDateTime.Second == 0)) { XChargeTransactions.Delete(transCheck.XChargeTransactionNum); XChargeTransactions.Insert(trans); } else { XChargeTransactions.Insert(trans); } line = sr.ReadLine(); } } Cursor = Cursors.Default; MsgBox.Show(this, "Done."); }