コード例 #1
0
        public Accumulators CalculateSubtractiveValue(Accumulators accumulatorSet, List <int> numbersSet)
        {
            Accumulators retAccum = new Accumulators();
            int          current;
            int          next;
            int          Size = numbersSet.Count;

            retAccum = accumulatorSet;

            for (current = 0; current < Size; current++)
            {
                next = current + 1;

                if (next < Size)
                {
                    if (numbersSet[current] < numbersSet[next])
                    {
                        retAccum.subtractive = retAccum.subtractive + (-numbersSet[current]);
                    }
                    else
                    {
                        retAccum.subtractive = retAccum.subtractive + numbersSet[current];
                    }
                }
                else
                {
                    retAccum.subtractive = retAccum.subtractive + numbersSet[current];
                }
            }

            return(retAccum);
        }
コード例 #2
0
        private void OutputRTRecord(TextWriter writer, Accumulators accum)
        {
            FixedWidthRecord rec   = new FixedWidthRecord(mRecordLength);
            decimal          dummy = 0M;

            rec.SetString(1, 2, "RT", "Record Identifier");
            rec.SetString(3, 7, accum.EmployeeRecordCount.ToString("0000000"), "RW Record Count");
            rec.SetMoney(10, 15, accum.FederalWages, ref dummy, "Total Gross Pay");
            rec.SetMoney(25, 15, accum.FITW, ref dummy, "Total FITW");
            rec.SetMoney(40, 15, accum.SocialSecurityWages, ref dummy, "Total SocSec Wages");
            rec.SetMoney(55, 15, accum.SocialSecurityTaxes, ref dummy, "Total SecSec Withholding");
            rec.SetMoney(70, 15, accum.MedicareWages, ref dummy, "Total Medicare Wages");
            rec.SetMoney(85, 15, accum.MedicareTaxes, ref dummy, "Total Medicare Taxes");
            rec.SetMoney(100, 15, accum.SocialSecurityTips, ref dummy, "Total SocSec Tips");
            rec.SetMoney(130, 15, 0M, ref dummy, "Total Dependent Care");
            rec.SetMoney(145, 15, 0M, ref dummy, "Deferred Contrib 401(k)");
            rec.SetMoney(160, 15, 0M, ref dummy, "Deferred Contrib 403(b)");
            rec.SetMoney(175, 15, 0M, ref dummy, "Deferred Contrib 408(k)");
            rec.SetMoney(190, 15, 0M, ref dummy, "Deferred Contrib 457(b)");
            rec.SetMoney(205, 15, 0M, ref dummy, "Deferred Contrib 501(c)");
            rec.SetMoney(235, 15, 0M, ref dummy, "Non-qual Section 401(k)");
            rec.SetMoney(250, 15, 0M, ref dummy, "Total Employer FSA Contrib");
            rec.SetMoney(265, 15, 0M, ref dummy, "Non-qual Section 457");
            rec.SetMoney(280, 15, 0M, ref dummy, "Non-taxable Combat Pay");
            rec.SetMoney(295, 15, 0M, ref dummy, "Employer Sponsored Health Plan");
            rec.SetMoney(310, 15, 0M, ref dummy, "Group Term Life");
            rec.SetMoney(325, 15, 0M, ref dummy, "Tax on Third Party Sick Pay");
            rec.SetMoney(340, 15, 0M, ref dummy, "Non-statutory Stock Options");
            rec.SetMoney(355, 15, 0M, ref dummy, "409A Deferrals");
            rec.SetMoney(370, 15, 0M, ref dummy, "Roth 401(k) Contributions");
            rec.SetMoney(385, 15, 0M, ref dummy, "Roth 403(b) Salary Reduction");
            rec.SetMoney(400, 15, 0M, ref dummy, "Small Employer Health Reimbursement Arrangement");

            writer.WriteLine(rec.GetContents());
        }
コード例 #3
0
ファイル: BugFixPatches.cs プロジェクト: peterhaneve/ONIMods
 /// <summary>
 /// Applied before Add runs.
 /// </summary>
 internal static bool Prefix(Accumulators __instance, ref HandleVector <int> .
                             Handle __result)
 {
     __result = __instance.accumulated.Allocate(0f);
     __instance.average.Allocate(float.NaN);
     return(false);
 }
コード例 #4
0
        private void OutputRFRecord(TextWriter writer, Accumulators accum)
        {
            FixedWidthRecord rec = new FixedWidthRecord(mRecordLength);

            rec.SetString(1, 2, "RF", "Record Identifier");
            rec.SetString(8, 9, accum.EmployeeRecordCount.ToString("000000000"), "Total RW Recordss");

            writer.WriteLine(rec.GetContents());
        }
コード例 #5
0
        private void OutputRVRecord(TextWriter writer, Accumulators accum)
        {
            FixedWidthRecord rec   = new FixedWidthRecord(mRecordLength);
            decimal          dummy = 0M;

            rec.SetString(1, 2, "RV", "Record Identifier");
            rec.SetString(3, 7, accum.EmployeeRecordCount.ToString("0000000"), "RS Record Count");
            rec.SetMoney(10, 15, accum.StateWages, ref dummy, "Total State Wages");
            rec.SetMoney(25, 15, accum.SITW, ref dummy, "Total SITW");
            rec.SetMoney(40, 15, accum.StatewideTransitWages, ref dummy, "Total Statewide Transit Wages");
            rec.SetMoney(55, 15, accum.StatewideTransitTax, ref dummy, "Total Statewide Transit Tax");

            writer.WriteLine(rec.GetContents());
        }
コード例 #6
0
        private void OutputRSRecord(TextWriter writer, DelimitedRow paySummary, DelimitedRow empRow, DelimitedRow supRow,
                                    decimal statewideTransitTax, Accumulators accum)
        {
            decimal grossPay = paySummary.GetDecimal("Gross Taxable Income");

            FixedWidthRecord rec = new FixedWidthRecord(mRecordLength);

            rec.SetString(1, 2, "RS", "Record Identifier");
            rec.SetString(3, 2, "41", "State Numeric Code");
            rec.SetString(10, 9, paySummary.GetString("SSN").Replace("-", "").PadLeft(9, '0'), "SSN");

            rec.SetString(19, 15, empRow.GetString("FName"), "First Name");
            rec.SetString(34, 15, empRow.GetString("MInit"), "Middle Initial");
            rec.SetString(49, 20, empRow.GetString("LName"), "Last Name");
            string address = empRow.GetString("Address1") + " " + empRow.GetString("Address2");

            rec.SetString(73, 22, address, "Location Address");
            rec.SetString(95, 22, address, "Delivery Address");
            rec.SetString(117, 22, empRow.GetString("City"), "City");
            rec.SetString(139, 2, empRow.GetString("State"), "State");
            string zip = empRow.GetInteger("Zip Code").ToString("00000");

            rec.SetString(141, 5, zip, "Zipcode");

            //rec.SetString(197, 6, "12" + (string)cboTaxYear.SelectedItem, "Reporting Period");

            DateTime hireDate = DateTime.Parse(supRow.GetString("HireDate"));

            rec.SetString(227, 8, hireDate.ToString("MMddyyyy"), "Hire Date");
            string termDate = supRow.GetString("TerminationDate");

            if (string.IsNullOrEmpty(termDate))
            {
                termDate = "00000000";
            }
            else
            {
                termDate = DateTime.Parse(termDate).ToString("MMddyyyy");
            }
            rec.SetString(235, 8, termDate, "Termination Date");
            rec.SetString(248, 20, "013375439", "Oregon BIN");
            rec.SetString(274, 2, "41", "State Numeric Code");

            rec.SetMoney(276, 11, grossPay, ref accum.StateWages, "State Taxable Wages");
            rec.SetMoney(287, 11, paySummary.GetDecimal("State Tax"), ref accum.SITW, "SITW");
            rec.SetMoney(348, 11, grossPay, ref accum.StatewideTransitWages, "Statewide Transit Wages");
            rec.SetMoney(359, 11, statewideTransitTax, ref accum.StatewideTransitTax, "Statewide Transit Tax");

            writer.WriteLine(rec.GetContents());
        }
コード例 #7
0
ファイル: BugFixPatches.cs プロジェクト: peterhaneve/ONIMods
        /// <summary>
        /// Applied before Accumulate runs.
        /// </summary>
        internal static bool Prefix(Accumulators __instance, HandleVector <int> .Handle handle,
                                    float amount)
        {
            var   accumulated = __instance.accumulated;
            var   average     = __instance.average;
            float data        = accumulated.GetData(handle);

            accumulated.SetData(handle, data + amount);
            // Prime the pump
            if (float.IsNaN(average.GetData(handle)))
            {
                average.SetData(handle, amount);
            }
            return(false);
        }
コード例 #8
0
        public Accumulators CalculateIrregularValue(Accumulators accumulatorSet, List <int> numbersSet)
        {
            Accumulators retAccum;
            List <int>   sortedSet = new List <int>();

            retAccum = accumulatorSet;

            foreach (var sourceSetItem in numbersSet)
            {
                sortedSet.Add(sourceSetItem);
            }

            sortedSet.Sort();

            foreach (var sIntItem in sortedSet)
            {
                retAccum.irregular -= sIntItem;
            }

            retAccum.irregular += sortedSet[sortedSet.Count - 1];
            retAccum.irregular += sortedSet[sortedSet.Count - 1];

            return(retAccum);
        }
コード例 #9
0
 /// <summary>
 /// Wraps calls to Accumulator.GetAverageRate to return a safe value while the game
 /// has not yet run long enough for PressureVulnerable to integrate the correct
 /// atmosphere density and element.
 /// </summary>
 /// <param name="accum">The (singleton) accumulators instance to wrap.</param>
 /// <param name="index">The accumulator index requested.</param>
 /// <returns>PRESSURE_SAFE_VALUE if the accumulators are being initialized, or the
 /// value of accum.GetAverageRate(index) otherwise.</returns>
 private static float GracefulAccumulate(Accumulators accum, IntHandle index)
 {
     return(accumulatorGracePeriod ? PRESSURE_SAFE_VALUE : accum.GetAverageRate(index));
 }
コード例 #10
0
        /// <summary>
        /// Employee wage record
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="paySummary"></param>
        /// <param name="empRow"></param>
        private void OutputRWRecord(TextWriter writer, DelimitedRow paySummary, DelimitedRow empRow, Accumulators accum)
        {
            decimal grossPay = paySummary.GetDecimal("Gross Taxable Income");

            accum.EmployeeRecordCount++;

            FixedWidthRecord rec   = new FixedWidthRecord(mRecordLength);
            decimal          dummy = 0M;

            //MessageBox.Show("Name=" + empSummary.GetString("Name") + " GrossPay=" + grossPay.ToString() +
            //    " Address=" + empRow.GetString("Address1"));

            rec.SetString(1, 2, "RW", "Record Identifier");
            rec.SetString(3, 9, paySummary.GetString("SSN").Replace("-", "").PadLeft(9, '0'), "SSN");
            rec.SetString(12, 15, empRow.GetString("FName"), "First Name");
            rec.SetString(27, 15, empRow.GetString("MInit"), "Middle Initial");
            rec.SetString(42, 20, empRow.GetString("LName"), "Last Name");
            string address = empRow.GetString("Address1") + " " + empRow.GetString("Address2");

            rec.SetString(66, 22, address, "Location Address");
            rec.SetString(88, 22, address, "Delivery Address");
            rec.SetString(110, 22, empRow.GetString("City"), "City");
            rec.SetString(132, 2, empRow.GetString("State"), "State");
            string zip = empRow.GetInteger("Zip Code").ToString("00000");

            rec.SetString(134, 5, zip, "Zipcode");

            rec.SetMoney(188, 11, grossPay, ref accum.FederalWages, "Federal Taxable Wages");
            rec.SetMoney(199, 11, paySummary.GetDecimal("Federal Tax"), ref accum.FITW, "FITW");
            rec.SetMoney(210, 11, paySummary.GetDecimal("Gross SS Taxable Income"), ref accum.SocialSecurityWages, "Social Security Wages");
            rec.SetMoney(221, 11, paySummary.GetDecimal("Social Security Tax"), ref accum.SocialSecurityTaxes, "Social Security Tax");
            rec.SetMoney(232, 11, paySummary.GetDecimal("Gross FICA Taxable Income"), ref accum.MedicareWages, "Medicare Wages");
            rec.SetMoney(243, 11, paySummary.GetDecimal("Medicare Tax"), ref accum.MedicareTaxes, "Medicare Tax");
            rec.SetMoney(254, 11, paySummary.GetDecimal("Tips"), ref accum.SocialSecurityTips, "Social Security Tips");
            rec.SetMoney(276, 11, 0M, ref dummy, "Dependent Care Benefits");
            rec.SetMoney(287, 11, 0M, ref dummy, "Deferred Comp 401(K)");
            rec.SetMoney(298, 11, 0M, ref dummy, "Deferred Comp 403(B)");
            rec.SetMoney(309, 11, 0M, ref dummy, "Deferred Comp 408(K)");
            rec.SetMoney(320, 11, 0M, ref dummy, "Deferred Comp 457(b)");
            rec.SetMoney(331, 11, 0M, ref dummy, "Deferred Comp 501(c)");
            rec.SetMoney(353, 11, 0M, ref dummy, "Non-Qualified 457 Dist/Cont");
            rec.SetMoney(364, 11, 0M, ref dummy, "Employer FSA");
            rec.SetMoney(375, 11, 0M, ref dummy, "Non-qualified NOT 457");
            rec.SetMoney(386, 11, 0M, ref dummy, "Non-taxable Combat Pay");
            rec.SetMoney(408, 11, 0M, ref dummy, "Employer Group Term Premiums");
            rec.SetMoney(419, 11, 0M, ref dummy, "Income from Nonstatutory Stock Options");
            rec.SetMoney(430, 11, 0M, ref dummy, "Section 409A Deferrals");
            rec.SetMoney(441, 11, 0M, ref dummy, "ROTH Contributions 401(k)");
            rec.SetMoney(452, 11, 0M, ref dummy, "ROTH Contributions 403(b)");
            rec.SetMoney(463, 11, 0M, ref dummy, "Cost of Employer Health Coverage");
            rec.SetMoney(474, 11, 0M, ref dummy, "Small Employer Health Reimbursement Arrangement");
            rec.SetString(486, 1, "1", "Statutory Employee");
            rec.SetString(488, 1, "0", "Retirement Plan");
            rec.SetString(489, 1, "0", "Third Party Sick Pay");

            writer.WriteLine(rec.GetContents());
        }
コード例 #11
0
        private void btnCreateW2_Click(object sender, EventArgs e)
        {
            if (cboTaxYear.SelectedItem == null)
            {
                MessageBox.Show("Please select a tax year");
                return;
            }
            Accumulators accum = new Accumulators();
            Dictionary <string, DelimitedRow> employees = LoadEmployeeDictionary(txtEmployeeFile.Text,
                                                                                 empRow => empRow.GetString("SSN"));
            Dictionary <string, DelimitedRow> supplemental = LoadEmployeeDictionary(txtEmployeeSupplemental.Text,
                                                                                    empRow => empRow.GetString("SSN"));
            Dictionary <string, DelimitedRow> statewideQ1 = LoadEmployeeDictionary(txtStatewideTransitQ1.Text,
                                                                                   empRow => empRow.GetInteger("SSN").ToString("000-00-0000"));
            Dictionary <string, DelimitedRow> statewideQ2 = LoadEmployeeDictionary(txtStatewideTransitQ2.Text,
                                                                                   empRow => empRow.GetInteger("SSN").ToString("000-00-0000"));
            Dictionary <string, DelimitedRow> statewideQ3 = LoadEmployeeDictionary(txtStatewideTransitQ3.Text,
                                                                                   empRow => empRow.GetInteger("SSN").ToString("000-00-0000"));
            Dictionary <string, DelimitedRow> statewideQ4 = LoadEmployeeDictionary(txtStatewideTransitQ4.Text,
                                                                                   empRow => empRow.GetInteger("SSN").ToString("000-00-0000"));
            int paycheckCount = 0;

            using (TextWriter writer = new StreamWriter("W2Output.txt"))
            {
                OutputRARecord(writer);
                OutputRERecord(writer);
                using (TextReader payText = new StreamReader(txtPayrollFile.Text))
                {
                    DelimitedReader payParser = new DelimitedReader(payText, ',', true);
                    for (;;)
                    {
                        if (!payParser.HasCurrent)
                        {
                            break;
                        }
                        DelimitedRow paySummary = payParser.ReadUntilChange("SSN");
                        string       ssn        = paySummary.GetString("SSN");
                        if (!employees.TryGetValue(ssn, out DelimitedRow empRow))
                        {
                            MessageBox.Show("Could not find SSN in employee file: " + ssn);
                            return;
                        }
                        if (!supplemental.TryGetValue(ssn, out DelimitedRow supRow))
                        {
                            MessageBox.Show("Could not find SSN in supplemental file: " + ssn);
                            return;
                        }
                        OutputRWRecord(writer, paySummary, empRow, accum);
                        decimal statewideTransitTax =
                            GetStatewideTaxAmount(ssn, statewideQ1) +
                            GetStatewideTaxAmount(ssn, statewideQ2) +
                            GetStatewideTaxAmount(ssn, statewideQ3) +
                            GetStatewideTaxAmount(ssn, statewideQ4);
                        OutputRSRecord(writer, paySummary, empRow, supRow, statewideTransitTax, accum);
                        paycheckCount++;
                    }
                }
                OutputRTRecord(writer, accum);
                // No "RU" record, because no "RO" records.
                OutputRVRecord(writer, accum);
                OutputRFRecord(writer, accum);
            }
            MessageBox.Show("Wrote W2Output.txt to working directory with " + paycheckCount +
                            " employees (if number is too large, maybe input file was not sorted by SSN).");
            MessageBox.Show(
                "Federal wages: " + accum.FederalWages.ToString("F2") + Environment.NewLine +
                "FITW: " + accum.FITW.ToString("F2") + Environment.NewLine +
                "State wages: " + accum.StateWages.ToString("F2") + Environment.NewLine +
                "SITW: " + accum.SITW.ToString("F2") + Environment.NewLine +
                "Transit wages: " + accum.StatewideTransitWages.ToString("F2") + Environment.NewLine +
                "Transit taxes: " + accum.StatewideTransitTax.ToString("F2") + Environment.NewLine +
                "W-2 count: " + accum.EmployeeRecordCount.ToString());
        }