private void btnUpdateJobCost_Click(object sender, EventArgs e) { SysconCommon.Common.Environment.Connections.SetOLEDBFreeTableDirectory(txtDataDir.Text); var validjobtypes_delim = Env.GetConfigVar<string>("tmtypes", "", true); var validjobtypes_strs = validjobtypes_delim.Split(','); var validjobtypes = validjobtypes_delim.Trim() == "" ? new long[] { } : validjobtypes_strs.Select(i => Convert.ToInt64(i)); using (var con = SysconCommon.Common.Environment.Connections.GetOLEDBConnection()) { long[] jobs = null; if (this.radioShowTMJobs.Checked) { using (var jobtyps = con.GetTempDBF()) { con.ExecuteNonQuery("create table {0} (jobtyp n(3, 0))", jobtyps); foreach (var jt in validjobtypes) { con.ExecuteNonQuery("insert into {0} (jobtyp) values ({1})", jobtyps, jt); } jobs = (from x in con.GetDataTable("Jobnums", "select actrec.recnum from actrec join {0} jobtypes on actrec.jobtyp = jobtypes.jobtyp", jobtyps).Rows select Convert.ToInt64(x["recnum"])).ToArray(); } } var job_selector = new MultiJobSelector(jobs); if (!(job_selector.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)) { var jobnums = job_selector.SelectedJobNumbers.ToArray(); JobCostDbHelper jobCostDB = new JobCostDbHelper(); if (jobnums.Length > 0) { long phaseNum = 0; int taxPartClassId = 0; int costCode = 0; try { //Based on the other parameters selected, run the Option 1 or Option 2. // OPTION 1 if (this.radScanJobForTax.Checked) { int acctPeriod = Convert.ToInt32(cboAcctPeriod.SelectedItem); int costCodeTax = 0; FillCostCodeForTaxInfo(out costCodeTax); FillTaxPartInfo(out taxPartClassId); using (var progress = new ProgressDialog((4 * jobnums.Length) + 2)) { progress.Tick(); progress.Text = "Starting scanning job costs for tax liabilities"; progress.Show(); foreach (long jobNum in jobnums) { // This routine scans job costs for tax liabilities jobCostDB.ScanForTaxLiability(dteStartDate.Value, dteEndDate.Value, jobNum, phaseNum, taxPartClassId, acctPeriod, costCodeTax, progress); } progress.Tick(); progress.Text = "Finished scanning job costs for tax liabilities"; } //MessageBox.Show("Finished scanning jobs for tax liabilities"); } // OPTION 2 if (this.radCombineForBilling.Checked) { FillCostCodeInfo(out costCode); using (var progress = new ProgressDialog((10 * jobnums.Length) + 2)) { progress.Tick(); progress.Text = "Starting job cost consolidation"; progress.Show(); foreach (long jobNum in jobnums) { // The next two procedures are run together to create billable cost records that // are combined from distinct job cost records by cost type. jobCostDB.ConsolidateJobCost(dteStartDate.Value, dteEndDate.Value, jobNum, phaseNum, costCode, progress); jobCostDB.UpdateTMTJobCost(dteStartDate.Value, dteEndDate.Value, jobNum, phaseNum, progress); } progress.Tick(); progress.Text = "Finished job cost consolidation"; } //MessageBox.Show("Finished consolidating job costs"); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { MessageBox.Show("No jobs selected.", "Error", MessageBoxButtons.OK); } } } }
public int[] SelectTMJobsByGUI() { smartGetSMBDir(); if (_mbdir == null) return null; EnsureJobTypesExist(); using (var con = Connections.GetOLEDBConnection()) { var jobs_dt = con.GetDataTable("jobs", "select a.recnum from actrec a join syscon_jobtyp s on a.jobtyp = s.recnum and s.istimmat > 0"); var dlg = new MultiJobSelector(jobs_dt.Rows.Select(r => Convert.ToInt64(r[0])).ToArray()); dlg.ShowDialog(); return dlg.SelectedJobNumbers.Select(i => Convert.ToInt32(i)).ToArray(); } }
private void btnRunReport_Click(object sender, EventArgs e) { if (!File.Exists(Template)) { selectTemplateToolStripMenuItem_Click(null, null); } SysconCommon.Common.Environment.Connections.SetOLEDBFreeTableDirectory(txtDataDir.Text); var nonbillable = Env.GetConfigVar("nonbillablecostcodes", "0", true) .Split(',') .Where(i => i != "") .Select(i => decimal.Parse(i)) .ToArray(); var validjobtypes_delim = Env.GetConfigVar<string>("tmtypes", "", true); var validjobtypes_strs = validjobtypes_delim.Split(','); var validjobtypes = validjobtypes_delim.Trim() == "" ? new long[] { } : validjobtypes_strs.Select(i => Convert.ToInt64(i)); using (var con = SysconCommon.Common.Environment.Connections.GetOLEDBConnection()) { long[] jobs = null; if (this.radioShowTMJobs.Checked) { using (var jobtyps = con.GetTempDBF()) { con.ExecuteNonQuery("create table {0} (jobtyp n(3, 0))", jobtyps); foreach (var jt in validjobtypes) { con.ExecuteNonQuery("insert into {0} (jobtyp) values ({1})", jobtyps, jt); } jobs = (from x in con.GetDataTable("Jobnums", "select actrec.recnum from actrec join {0} jobtypes on actrec.jobtyp = jobtypes.jobtyp", jobtyps).Rows select Convert.ToInt64(x["recnum"])).ToArray(); } } var job_selector = new MultiJobSelector(jobs); job_selector.ShowDialog(); var jobnums = job_selector.SelectedJobNumbers.ToArray(); if (jobnums.Length > 0) { PopulateTemplate(Template, jobnums, Convert.ToInt32(cmbStartingPeriod.SelectedItem), Convert.ToInt32(cmbEndPeriod.SelectedItem), dteTransactionDate.Value, nonbillable); } else { MessageBox.Show("No jobs selected.", "Error", MessageBoxButtons.OK); } } }
public int[] SelectJobsByGUI() { smartGetSMBDir(); // if it's still null, cancel if (_mbdir == null) return null; var dlg = new MultiJobSelector(); dlg.ShowDialog(); return dlg.SelectedJobNumbers.Select(i => Convert.ToInt32(i)).ToArray(); }