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);
                    }
                }
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #4
0
        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();
        }