public async Task <IActionResult> Delete(int id) { try { await _detailPenggajian.Delete(id); return(Ok("Data berhasil didelete")); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task UpdateAsync(Penggajian obj) { //must make sure that the idkatbarang is not null var data = await GetById(obj.IdGaji); if (data != null) { try { var a = Convert.ToDateTime(obj.TanggalAwal); var b = Convert.ToDateTime(obj.TanggalAkhir); var total = (b - a).TotalDays; var testUser = await _pengguna.getpenggunausername(data.Username); if (testUser.rolename != "Dokter") { throw new Exception("Pengguna ini bukanlah Seorang Dokter"); } //tenant id var datapegawai = _context.DetailPegawai.Where(x => x.Username == obj.Username).SingleOrDefault(); if (datapegawai == null) { throw new Exception("Pengguna ini bukanlah Seorang Dokter"); } obj.DetailPegawaiID = datapegawai.DetailPegawaiID; //search transaksi per tenant dulu + dokter var dataTransaksi = _context.Transaksi.Include(e => e.Tindakan).Where(t => t.TenantID == obj.TenantID && t.Username == obj.Username).ToList(); if (dataTransaksi == null) { throw new Exception("Pengguna ini belum memiliki transaksi apapuun !"); } //sort sesuai dengan Tanggal yang di pilih var Datatgl_transaksi = dataTransaksi.Where(x => x.Tanggal >= obj.TanggalAwal && x.Tanggal <= obj.TanggalAkhir).ToList(); // Pada saat DetailPenggajian detailgaji = new DetailPenggajian(); foreach (var item in Datatgl_transaksi) { foreach (var biayaTrans in item.Tindakan) { obj.TotalGaji = obj.TotalGaji + (biayaTrans.Biaya * biayaTrans.Persenan / 100); } } datapegawai.Gaji = obj.TotalGaji; await _detailPegawai.UpdateAsync(datapegawai); data.MasaWaktu = (data.TanggalAkhir - data.TanggalAwal).ToString(); data.TanggalAkhir = obj.TanggalAkhir; data.TanggalAwal = obj.TanggalAwal; data.TanggalGaji = obj.TanggalGaji; data.TotalGaji = obj.TotalGaji; await _context.SaveChangesAsync(); var Det_gaji = await _context.DetailPenggajian.Where(r => r.IdGaji == data.IdGaji).ToListAsync(); foreach (var deletedetail in Det_gaji) { await _detailPenggajian.Delete(deletedetail.IdDetailGaji); } detailgaji.IdGaji = obj.IdGaji; foreach (var test in Datatgl_transaksi) { detailgaji.IdTransaksi = test.IdTransaksi; _context.DetailPenggajian.Add(detailgaji); detailgaji.IdDetailGaji = 0; await _detailPenggajian.CreateAsync(detailgaji); } await _context.SaveChangesAsync(); } catch (Exception ex) { throw new Exception($"{ex.Message} {ex.InnerException.Message}"); } } else { throw new Exception("Data tidak ditemukan"); } }