diff --git a/src/app/(application)/division/[id]/(fitur-division)/task/create/page.tsx b/src/app/(application)/division/[id]/(fitur-division)/task/create/page.tsx index 543ecc5..3cb4e90 100644 --- a/src/app/(application)/division/[id]/(fitur-division)/task/create/page.tsx +++ b/src/app/(application)/division/[id]/(fitur-division)/task/create/page.tsx @@ -1,10 +1,6 @@ -import { CreateTask, FileSave } from "@/module/task"; +import { CreateTask } from "@/module/task"; function Page({ searchParams }: { searchParams: any }) { - - // if (searchParams.page == "file-save") - // return - return } diff --git a/src/app/api/discussion/route.ts b/src/app/api/discussion/route.ts index 45a538c..afce46f 100644 --- a/src/app/api/discussion/route.ts +++ b/src/app/api/discussion/route.ts @@ -40,12 +40,10 @@ export async function GET(request: Request) { where: { isActive: true, idDivision: idDivision, - User: { - name: { - contains: (name == undefined || name == "null") ? "" : name, - mode: "insensitive" - } - } + desc: { + contains: (name == undefined || name == "null") ? "" : name, + mode: "insensitive" + }, }, orderBy: { createdAt: 'desc' diff --git a/src/app/api/division/[id]/detail/route.ts b/src/app/api/division/[id]/detail/route.ts index af4fd71..d04084a 100644 --- a/src/app/api/division/[id]/detail/route.ts +++ b/src/app/api/division/[id]/detail/route.ts @@ -86,7 +86,12 @@ export async function GET(request: Request, context: { params: { id: string } }) idDivision: String(id), status: 0, isActive: true, - dateStart: new Date() + dateStart: new Date(), + DivisionProject: { + status: { + lt: 3 + } + } }, select: { id: true, diff --git a/src/app/api/division/more/route.ts b/src/app/api/division/more/route.ts index fdf5394..d61e06d 100644 --- a/src/app/api/division/more/route.ts +++ b/src/app/api/division/more/route.ts @@ -38,6 +38,9 @@ export async function GET(request: Request) { select: { id: true, name: true, + }, + orderBy: { + name: "asc" } }); diff --git a/src/app/api/task/[id]/route.ts b/src/app/api/task/[id]/route.ts index 6dc4e93..6f3da5d 100644 --- a/src/app/api/task/[id]/route.ts +++ b/src/app/api/task/[id]/route.ts @@ -44,14 +44,23 @@ export async function GET(request: Request, context: { params: { id: string } }) } }) - const semua = dataProgress.length - const selesai = _.filter(dataProgress, { status: 1 }).length - const progress = Math.ceil((selesai / semua) * 100) + if (dataProgress.length > 0) { + const semua = dataProgress.length + const selesai = _.filter(dataProgress, { status: 1 }).length + const progress = Math.ceil((selesai / semua) * 100) - allData = { - progress: progress, - lastUpdate: moment(dataProgress[0].updatedAt).format("DD MMMM YYYY"), + allData = { + progress: progress, + lastUpdate: moment(dataProgress[0]?.updatedAt).format("DD MMMM YYYY"), + } + } else { + allData = { + progress: 0, + lastUpdate: '1 Januari 1999', + } } + + } else if (kategori == "task") { const dataProgress = await prisma.divisionProjectTask.findMany({ where: { @@ -66,7 +75,7 @@ export async function GET(request: Request, context: { params: { id: string } }) dateEnd: true, }, orderBy: { - status: 'desc' + createdAt: 'asc' } }) @@ -192,6 +201,34 @@ export async function POST(request: Request, context: { params: { id: string } } } }); + // const cek progress + const dataTask = await prisma.divisionProjectTask.findMany({ + where: { + isActive: true, + idProject: id + } + }) + + const semua = dataTask.length + const selesai = _.filter(dataTask, { status: 1 }).length + const progress = Math.ceil((selesai / semua) * 100) + let statusProject = 1 + + if (progress == 100) { + statusProject = 2 + } else if (progress == 0) { + statusProject = 0 + } + + const updProject = await prisma.divisionProject.update({ + where: { + id: id + }, + data: { + status: statusProject + } + }) + // create log user const log = await createLogUser({ act: 'CREATE', desc: 'User menambahkan detail tugas divisi', table: 'divisionProjectTask', data: create.id }) diff --git a/src/app/api/task/route.ts b/src/app/api/task/route.ts index a68b206..8209257 100644 --- a/src/app/api/task/route.ts +++ b/src/app/api/task/route.ts @@ -68,6 +68,9 @@ export async function GET(request: Request) { idUser: true } } + }, + orderBy: { + createdAt: "desc" } }); diff --git a/src/module/_global/layout/layout_modal.tsx b/src/module/_global/layout/layout_modal.tsx index aa3858f..88b9cdb 100644 --- a/src/module/_global/layout/layout_modal.tsx +++ b/src/module/_global/layout/layout_modal.tsx @@ -30,6 +30,7 @@ export default function LayoutModal({ opened, onClose, description, onYes }: { o @@ -39,6 +40,7 @@ export default function LayoutModal({ opened, onClose, description, onYes }: { o diff --git a/src/module/project/ui/tab_project.tsx b/src/module/project/ui/tab_project.tsx index ef72296..503109a 100644 --- a/src/module/project/ui/tab_project.tsx +++ b/src/module/project/ui/tab_project.tsx @@ -26,12 +26,12 @@ export default function TabProject() { { id: "0", title: "Segera", - icon: + icon: }, { id: "1", title: "Dikerjakan", - icon: + icon: }, { id: "2", @@ -73,7 +73,7 @@ export default function TabProject() { color={ status == item.id ? "white" - : tema.get().utama + : (status == null && item.id == "0") ? "white" : tema.get().utama } key={index} onClick={() => { router.push("?status=" + item.id + "&group=" + group) }} @@ -81,8 +81,8 @@ export default function TabProject() { radius={"xl"} bg={ status == item.id - ? tema.get().utama - : "transparent" + ? tema.get().bgFiturDivision + : (status == null && item.id == "0") ? tema.get().bgFiturDivision : "transparent" } leftSection={item.icon} > diff --git a/src/module/task/ui/add_file_detail_task.tsx b/src/module/task/ui/add_file_detail_task.tsx index ed858fe..389baa3 100644 --- a/src/module/task/ui/add_file_detail_task.tsx +++ b/src/module/task/ui/add_file_detail_task.tsx @@ -98,9 +98,9 @@ export default function AddFileDetailTask() { }} activateOnClick={false} maxSize={3 * 1024 ** 2} - accept={['text/csv', 'image/png', 'image/jpeg', 'image/heic', 'application/pdf']} + accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf']} onReject={(files) => { - return toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf dengan ukuran maksimal 3 MB') + return toast.error('File yang diizinkan: .png, .jpg, .heic, .pdf dengan ukuran maksimal 3 MB') }} > diff --git a/src/module/task/ui/create_task.tsx b/src/module/task/ui/create_task.tsx index 2c6b186..2273b67 100644 --- a/src/module/task/ui/create_task.tsx +++ b/src/module/task/ui/create_task.tsx @@ -304,9 +304,9 @@ export default function CreateTask() { }} activateOnClick={false} maxSize={3 * 1024 ** 2} - accept={['text/csv', 'image/png', 'image/jpeg', 'image/heic', 'application/pdf']} + accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf']} onReject={(files) => { - return toast.error('File yang diizinkan: .csv, .png, .jpg, .heic, .pdf dengan ukuran maksimal 3 MB') + return toast.error('File yang diizinkan: .png, .jpg, .heic, .pdf dengan ukuran maksimal 3 MB') }} > diff --git a/src/module/task/ui/detail_list_anggota_task.tsx b/src/module/task/ui/detail_list_anggota_task.tsx index 1841852..71c1357 100644 --- a/src/module/task/ui/detail_list_anggota_task.tsx +++ b/src/module/task/ui/detail_list_anggota_task.tsx @@ -100,9 +100,8 @@ export default function ListAnggotaDetailTask() { style={{ border: `1px solid ${"#C7D6E8"}`, borderRadius: 10, + padding: 20 }} - px={20} - py={10} > { loading ? @@ -114,7 +113,7 @@ export default function ListAnggotaDetailTask() { )) : - isData.length === 0 ? Tidak ada anggota : + isData.length === 0 ? Tidak ada anggota : isData.map((v, i) => { return ( diff --git a/src/module/task/ui/detail_list_file_task.tsx b/src/module/task/ui/detail_list_file_task.tsx index d8d4c9f..a8037d2 100644 --- a/src/module/task/ui/detail_list_file_task.tsx +++ b/src/module/task/ui/detail_list_file_task.tsx @@ -109,7 +109,7 @@ export default function ListFileDetailTask() { )) : - isData.length === 0 ? Tidak ada file : + isData.length === 0 ? Tidak ada file : isData.map((item, index) => { return ( { loading ? @@ -130,7 +129,7 @@ export default function ListTugasDetailTask() { : - isData.length === 0 ? Tidak ada tugas : + isData.length === 0 ? Tidak ada tugas : isData.map((item, index) => { return ( diff --git a/src/module/task/ui/edit_detail_task.tsx b/src/module/task/ui/edit_detail_task.tsx index e2038fa..6851776 100644 --- a/src/module/task/ui/edit_detail_task.tsx +++ b/src/module/task/ui/edit_detail_task.tsx @@ -32,6 +32,7 @@ export default function EditDetailTask() { const param = useParams<{ id: string, detail: string }>() const [openModal, setOpenModal] = useState(false) const [loading, setLoading] = useState(true) + const [idTugas, setIdTugas] = useState("") const tema = useHookstate(TEMA) async function onSubmit() { @@ -50,6 +51,7 @@ export default function EditDetailTask() { if (res.success) { toast.success(res.message); + router.push(`/division/${param.id}/task/${idTugas}`) } else { toast.error(res.message); } @@ -65,6 +67,7 @@ export default function EditDetailTask() { setLoading(true) const res = await funGetDetailTask(param.detail); if (res.success) { + setIdTugas(res.data.idProject) setTitle(res.data.title) setValue([ new Date(moment(res.data.dateStart).format('YYYY-MM-DD')),