Example #1
0
        public async Task CreateAsync(Penggajian obj)
        {   //gaji tidak bisa waktu tanggal join / sebelum join
            var a     = Convert.ToDateTime(obj.TanggalAwal);
            var b     = Convert.ToDateTime(obj.TanggalAkhir);
            var total = (b - a).TotalDays.ToString();

            obj.MasaWaktu = total;
            // cek nama "" itu dokter atau bukan
            var testUser = await _pengguna.getpenggunausername(obj.Username);

            if (testUser.rolename != "Dokter")
            {
                throw new Exception("Pengguna ini bukanlah Seorang Dokter");
            }
            //detailpegawai + 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);
                }
            }
            _context.Add(obj);
            await _context.SaveChangesAsync();

            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);

                //var dt_pegawai1 = await _detailPegawai.getusername(obj.Username);
                //var dt_pegawai = await _context.DetailPegawai.Where(r => r.Username == obj.Username).SingleOrDefaultAsync();
                datapegawai.Gaji = obj.TotalGaji;
                await _detailPegawai.UpdateAsync(datapegawai);

                //update by id ?
            }
        }
 public async Task CreateAsync(DetailPenggajian obj)
 {
     try
     {
         _context.Add(obj);
         await _context.SaveChangesAsync();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.InnerException.Message);
     }
 }
        public async Task <IActionResult> Post([FromBody] DetailPenggajian detailPenggajian)
        {
            try
            {
                await _detailPenggajian.CreateAsync(detailPenggajian);

                return(Ok("Tambah Data Berhasil"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #4
0
        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");
            }
        }
 public Task UpdateAsync(DetailPenggajian obj)
 {
     throw new NotImplementedException();
 }