using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
List<JDEObject> JDEObjects = InitializeData();
var grpJDEObjects = JDEObjects.GroupBy(g => new {g.CompanyId, g.CompanyName, g.ChargeCode, g.ChargeCodeCompany, g.CurrencyCode, g.AccrualCreditAndVATCreditAccount, g.SalaryAndOtherAccount, g.VATDebitAccount})
.Select(s=>new{CompanyName= s.Key.CompanyName, CompanyId = s.Key.CompanyId, ChargeCode = s.Key.ChargeCode, ChargeCodeCompany = s.Key.ChargeCodeCompany, CurrencyCode = s.Key.CurrencyCode, AccrualCreditAndVATCreditAccount = s.Key.AccrualCreditAndVATCreditAccount,
SalaryAndOtherAccount = s.Key.SalaryAndOtherAccount, VATDebitAccount = s.Key.VATDebitAccount, SalaryAmount = s.Sum(m => m.SalaryAmount), VatAmount = s.Sum(m => m.VatAmount)});
foreach (var grp in grpJDEObjects)
Console.WriteLine(grp.ToString());
public static List<JDEObject> InitializeData()
List<JDEObject> objs = new List<JDEObject>()
new JDEObject() { VATDebitAccount = "XSE20.875910.290N04", SalaryAndOtherAccount = "XSE20.700010", CompanyName = "Tag", CompanyId = 100, ChargeCode = "XSE20", ChargeCodeCompany = "371", AccrualCreditAndVATCreditAccount="2900000371.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "EIT10.875910.290N04", SalaryAndOtherAccount = "EIT10.700010", CompanyName = "Tag", CompanyId = 100, ChargeCode = "EIT10", ChargeCodeCompany = "371", AccrualCreditAndVATCreditAccount="2900000371.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "EIT10.875910.290N04", SalaryAndOtherAccount = "EIT10.700010", CompanyName = "Tag", CompanyId = 100, ChargeCode = "EIT10", ChargeCodeCompany = "371", AccrualCreditAndVATCreditAccount="2900000371.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "EIT20.875910.290N04", SalaryAndOtherAccount = "EIT20.700010", CompanyName = "Tag", CompanyId = 100, ChargeCode = "EIT20", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "EIT20.875910.290N04", SalaryAndOtherAccount = "EIT20.700010", CompanyName = "Tag", CompanyId = 100, ChargeCode = "EIT20", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "EIT20.875910.290N04", SalaryAndOtherAccount = "EIT20.700010", CompanyName = "Tag", CompanyId = 100, ChargeCode = "EIT20", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "GMD10.875910.290N04", SalaryAndOtherAccount = "GMD10.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "GMD10", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "XSE20.875910.290N04", SalaryAndOtherAccount = "XSE20.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "XSE20", ChargeCodeCompany = "371", AccrualCreditAndVATCreditAccount="2900000371.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "XSE20.875910.290N04", SalaryAndOtherAccount = "XSE20.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "XSE20", ChargeCodeCompany = "371", AccrualCreditAndVATCreditAccount="2900000371.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "FIN10.875910.290N04", SalaryAndOtherAccount = "FIN10.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "FIN10", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "FIN10.875910.290N04", SalaryAndOtherAccount = "FIN10.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "FIN10", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "FIN10.875910.290N04", SalaryAndOtherAccount = "FIN10.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "FIN10", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
new JDEObject() { VATDebitAccount = "FIN10.875910.290N04", SalaryAndOtherAccount = "FIN10.700010", CompanyName = "Nuga", CompanyId = 200, ChargeCode = "FIN10", ChargeCodeCompany = "251", AccrualCreditAndVATCreditAccount="2900000251.301012.NGN", CurrencyCode="NGN",SalaryAmount=10,VatAmount=0.5,},
public int LineNumber { get; set; }
public string VATDebitAccount { get; set; }
public string SalaryAndOtherAccount { get; set; }
public string AccrualCreditAndVATCreditAccount { get; set; }
public string CompanyName { get; set; }
public string JDECompanyId { get; set; }
public int CompanyId { get; set; }
public long PeriodId { get; set; }
public string PeriodName { get; set; }
public int EmployeeId { get; set; }
public string ChargeCodeCompany { get; set; }
public string ChargeCode { get; set; }
public int ChargeCodeType { get; set; }
public string CurrencyCode { get; set; }
public double SalaryAmount { get; set; }
public double VatAmount { get; set; }