Я хочу спросить, как написать linq для суммирования в контроллере и добавить для просмотра дочерней таблицы ""
Моя модель 1
public class ChartAccount
{
[Key]
public int ChartId { get; set; }
public int Kodeakun { get; set; }
public string Namaakun { get; set; }
public int Saldo { get; set; }
public virtual ICollection<Transaction> Transaksilist { get; set; }
}
модель 2
public class Transaction
{ [Key]
public int Id { get; set; }
public string NoBukti { get; set; }
public DateTime Tanggal { get; set; }
public string Deskripsi { get; set; }
[DisplayFormat(DataFormatString = "{0:C}")]
public long Debit { get; set; }
[DisplayFormat(DataFormatString = "{0:C}")]
public long Credit{ get; set; }
public int? ChartId { get; set; }
public ChartAccount Transactions { get; set; }
}
Я также хочу заполнить таблицу saldo значением в дебетах и кредитах
В представлении chartaccount (индекс) (я заполняю начальным значением при миграции)
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Kodeakun)
</td>
<td>
@Html.DisplayFor(modelItem => item.Namaakun)
</td>
<td>
@Html.DisplayFor(modelItem => item.Saldo)
</td>
это сгенерировано так
|Kodeakun|Namaakun |Saldo|
|10000 |Asset |0 |
|20000 |Utang |0 |
|30000 |Modal |0 |
|40000 |Pendapatan|0 |
в представлении транзакции (индекс)
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Transactions.Kodeakun)
</td>
<td>
@Html.DisplayFor(modelItem => item.Deskripsi)
</td>
<td>
@Html.DisplayFor(modelItem => item.Debit)
</td>
<td>
@Html.DisplayFor(modelItem => item.Credit)
</td>
он сгенерирован следующим образом
|Kodeakun|Debit |Credit |Deskripsi|
|10000 |1.000.000 |0 |Kas |
|20000 |0 |1.000.000|Utang |
Я хочу написать linq в контроллере.какой метод я предполагаю написать, в индексе или детализации в контроллере chartaccount?
// GET: ChartAccounts
public async Task<IActionResult> Index()
{
return View(await _context.Accounts.ToListAsync());
}
// GET: ChartAccounts/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var chartAccount = await _context.Accounts
.FirstOrDefaultAsync(m => m.ChartId == id);
if (chartAccount == null)
{
return NotFound();
}
return View(chartAccount);
}
Я пытался, но я немного не понимаю, как перейти к просмотру
Код, который я пытаюсь в деталях контроллера
//public DbSet<Transaction> Transaksi { get; set; }
//public DbSet<ChartAccount> Accounts { get; set; }
var a = from s in _context.Transaksi
group s by s.Transactions.Kodeakun;
Так что в основном я хочу, чтобы я вставил данные в транзакцию и сохранил их.Я также хочу обновить данные chartaccount в примере
|Kodeakun|Debit |Credit |Deskripsi|
|10000 |1.000.000 |0 |Kas |
|20000 |0 |1.000.000|Utang |
|10000 |0 |1.000.000|Kas |
|10000 |1.000.000 |0 |Kas |
у него дебетовый кредит.поэтому мой счет в диаграмме должен выглядеть так:
|Kodeakun|Namaakun |Saldo |
|10000 |Asset |1.000.000|
|20000 |Utang |1.000.000|
|30000 |Modal |0 |
|40000 |Pendapatan|0 |
В основном, дебет равен (+), а кредит - (-), поэтому у меня есть вставка 2 Kas, которая в дебете и кредите, и результат в saldo равен 1.000.000 (2.000.000-1.000.000)
Извините за мой английский