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); }
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()); }
/// <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); }
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()); }
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()); }
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()); }
/// <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); }
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); }
/// <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)); }
/// <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()); }
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()); }