示例#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 ?
            }
        }
示例#2
0
        public async Task <Pengguna> Get(string Username)
        {
            var model = await _Pengguna.getpenggunausername(Username);

            var usertenantlist = await _tenantPengguna.getusertenantlist(Username);

            model.TenantPengguna = usertenantlist;
            return(model);
        }
        public async Task <IActionResult> Delete(string Username)
        {
            try
            {
                Pengguna pengguna = new Pengguna();
                pengguna = await _Pengguna.getpenggunausername(Username);

                if (pengguna != null)
                {
                    if (pengguna.rolename == "Pasien")
                    {
                        var cekpasien = await _detailPasien.getusername(Username);

                        if (cekpasien != null)
                        {
                            await _detailPasien.DeleteByuser(Username);
                        }
                    }
                    else
                    {
                        await _prosentase.Deletebyusername(Username);

                        var TenantUser = await _tenantPengguna.getusertenantlist(Username);

                        foreach (var item in TenantUser)
                        {
                            await _tenantPengguna.Delete(item.TenantPenggunaID);
                        }
                        //detail gaji to
                        //pengajian
                        var cekpegawai = await _detailPegawai.getusername(Username, pengguna.TenantID);

                        if (cekpegawai != null)
                        {
                            await _detailPegawai.DeleteByuser(Username);
                        }
                    }
                }
                var tenant = await _tenantPengguna.getusertenantlist(Username);

                foreach (var data in tenant)
                {
                    await _tenantPengguna.Delete(data.TenantPenggunaID);
                }
                await _Pengguna.DeletebyUser(pengguna.Username);

                //await _userService.Delete(Username);
                //delete data pengguna sekalian
                return(Ok("Data berhasil didelete"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public async Task <IActionResult> Post([FromBody] TenantPengguna tenantPengguna)
        {
            try
            {
                await _TenantPengguna.CreateAsync(tenantPengguna);

                var idPegawai = _context.DetailPegawai.Where(r => r.Username == tenantPengguna.Username).SingleOrDefault();
                var datauser  = await _pengguna.getpenggunausername(tenantPengguna.Username);

                var jenistindakan = _context.JenisTindakan.Where(r => r.TenantID == tenantPengguna.TenantID).ToList();
                if (datauser.rolename == "Dokter")
                {
                    //mengecek jika dokter ia akan ditambahkan dengan prosentase nya
                    foreach (var item in jenistindakan)
                    {
                        Prosentase dt_pros = new Prosentase();
                        dt_pros.Username        = datauser.Username;
                        dt_pros.IdJenisTindakan = item.IdJenisTindakan;
                        dt_pros.TenantID        = tenantPengguna.TenantID;
                        dt_pros.Prosen          = datauser.Prosentase;
                        dt_pros.DetailPegawaiID = idPegawai.DetailPegawaiID;
                        await _prosentase.CreateAsync(dt_pros);
                    }
                }
                if (datauser.rolename == "Pasien")
                {
                }
                else
                {
                    throw new Exception("Bukan data dokter");
                }
                return(Ok("Tambah Data Berhasil"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#5
0
        public async Task CreateAsync(Tindakan obj)
        {
            var dt_transaksi = 0;
            var datapasien   = await DataTransaksi(obj.IdTransaksi);

            foreach (var data in datapasien)
            {
                if (data.Status == "Selesai")
                {
                    dt_transaksi = +1;
                }
            }
            if (dt_transaksi == 0)
            {
                //ambil tenant iD transaksi = tenant ID yang di gunakan oleh tindakan.
                //1.cek data transaksi yang di masukan, setelah di cari di lihat dan di bandingkan dengan tenant obj
                //tenant ID yang di ambil harus sesuai dengan tenantID pengguna(dokter) login.
                var tnt_transaksi = await _Transaksi.GetById(obj.IdTransaksi);// dan ID

                var tnt_pengguna = await _pengguna.getpenggunausername(tnt_transaksi.Username);

                var dt_JenisTindakanid = await _jenisTindakan.GetById(obj.IdJenisTindakan);

                if (tnt_pengguna.TenantID == obj.TenantID && tnt_transaksi.Tanggal == DateTime.Today)//&& dan tanggal dari transaksi = hari ini tidak boleh ngisi kemaren, datetimme (now) )
                {
                    if (tnt_transaksi.TenantID == tnt_pengguna.TenantID && dt_JenisTindakanid.TenantID == tnt_pengguna.TenantID)
                    {
                        var dt_prosentase = await _context.Prosentase.Where(r => r.Username == tnt_pengguna.Username).Include(r => r.JenisTindakan).ToListAsync();

                        var result = dt_prosentase.Where(e => e.IdJenisTindakan == obj.IdJenisTindakan).FirstOrDefault();

                        obj.Persenan = Convert.ToInt16(result.Prosen);

                        _context.Add(obj);
                        await _context.SaveChangesAsync();

                        List <pilihGIgi> stc = new List <pilihGIgi>();

                        foreach (var item in obj.GigiRawatK1)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatK2)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatK3)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatK4)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatKI)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatKII)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatKIII)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        foreach (var item in obj.GigiRawatKIV)
                        {
                            if (item.IsChecked == true)
                            {
                                stc.Add(new pilihGIgi()
                                {
                                    IdTindakan = obj.IdTindakan, idposisiGigi = item.id
                                });
                            }
                        }
                        //foreach (var item in stc)
                        var totalgigi = stc.Count();
                        obj.Biaya      = obj.BiayaDasar * totalgigi;
                        obj.Posisi     = stc;
                        obj.IdTindakan = obj.IdTindakan;
                        await UpdateAsync(obj);
                    }
                }
                else
                {
                }
            }
            else
            {
                throw new Exception("Data Transaksi User Tidak Bisa di isi karena Transaksi telah Selesai");
            }
        }
示例#6
0
        public async Task <IActionResult> EditUserToRole([FromBody] User user)
        {
            try
            {
                if (user.rolename == "Pasien")
                {
                    return(BadRequest("ROLE PASIEN TIDAK DATA DI UBAH"));
                }
                await _userRoleService.RemoveuserRole(user.Username, user.currentrole);

                await _userRoleService.AddUserToRoleAsync(user.Username, user.rolename);

                var datapengguna = await _Pengguna.getpenggunausername(user.Username);

                datapengguna.rolename = user.rolename;

                if (user.rolename == "Dokter")
                {
                    datapengguna.Prosentase = 10;

                    var dataexist = await _detailPegawai.getusername(user.Username, datapengguna.TenantID);

                    if (dataexist.Jabatan == "Dokter")
                    {
                        dataexist.Username    = user.Username;
                        dataexist.Jabatan     = user.rolename;
                        dataexist.Gaji        = 10;
                        dataexist.TanggalJoin = DateTime.Today;
                        await _detailPegawai.UpdateAsync(dataexist);
                    }
                    await _Pengguna.UpdateAsync(datapengguna);

                    var dt_prosen = await _prosentase.getbytenantid(datapengguna.TenantID);

                    var dt_jenisTindakan = await _JenisTindakan.getbytenantid(datapengguna.TenantID);

                    //foreach (var dt_jenis in dt_jenisTindakan)
                    //{

                    //    Prosentase prosen = new Prosentase();
                    //    prosen.Username = datapengguna.Username;
                    //    prosen.IdJenisTindakan = dt_jenis.IdJenisTindakan;
                    //    prosen.Prosen = datapengguna.Prosentase;
                    //    prosen.TenantID = datapengguna.TenantID;
                    //    prosen.DetailPegawaiID = dataexist.DetailPegawaiID;
                    //    await _prosentase.CreateAsync(prosen);
                    //}
                }
                else
                {
                    var dataexist = await _detailPegawai.getusername(user.Username, datapengguna.TenantID);

                    if (dataexist.Jabatan == "Dokter")
                    {
                        dataexist.Username    = user.Username;
                        dataexist.Jabatan     = user.rolename;
                        dataexist.TanggalJoin = DateTime.Today;
                        dataexist.Gaji        = 2000000;
                        await _detailPegawai.UpdateAsync(dataexist);

                        await _prosentase.Deletebyusername(user.Username);
                    }
                }
                return(Ok("User yang telah berhasil edit dan di pindah ke role ini Berhasil"));
                //POKOE ASSING ROLE BARU = UPDATE KE DALEM PENGGUNA
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }