fix: File view

Deksripsi:
- Tampilan file view pdf
- Optimalisasi admin
## No Isuue
This commit is contained in:
2024-09-06 11:36:53 +08:00
parent 74108c3096
commit 84b7b381f6
112 changed files with 2230 additions and 807 deletions

View File

@@ -1,7 +1,10 @@
"use client";
import { Button } from "@mantine/core";
import { adminInvestasi_funAcceptTransaksiById, adminInvestasi_funGetAllTransaksiById } from "../../fun";
import {
adminInvestasi_funAcceptTransaksiById,
adminInvestasi_funGetAllTransaksiById,
} from "../../fun";
import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_berhasil";
import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_gagal";
import { useState } from "react";
@@ -9,15 +12,21 @@ import { useState } from "react";
export function AdminInvestasi_ComponentButtonBandingTransaksi({
invoiceId,
investasiId,
lembarTerbeli,
onLoadData,
}: {
invoiceId: string;
investasiId: string
investasiId: string;
lembarTerbeli: string;
onLoadData: (val: any) => void;
}) {
const [isLoading, setLoading] = useState(false)
const [isLoading, setLoading] = useState(false);
async function onAccept() {
const res = await adminInvestasi_funAcceptTransaksiById({ invoiceId });
const res = await adminInvestasi_funAcceptTransaksiById({
invoiceId,
investasiId,
lembarTerbeli,
});
if (res.status == 200) {
try {

View File

@@ -9,14 +9,17 @@ import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/_admin
import { useState } from "react";
import { IconCircleCheck } from "@tabler/icons-react";
import { IconBan } from "@tabler/icons-react";
import { MODEL_INVOICE_INVESTASI } from "@/app_modules/investasi/_lib/interface";
export function AdminInvestasi_ComponentButtonKonfirmasiTransaksi({
invoiceId,
investasiId,
lembarTerbeli,
onLoadData,
}: {
invoiceId: string;
investasiId: string;
lembarTerbeli: string;
onLoadData: (val: any) => void;
}) {
const [isLoadingAccpet, setLoadingAccept] = useState(false);
@@ -43,7 +46,11 @@ export function AdminInvestasi_ComponentButtonKonfirmasiTransaksi({
}
async function onAccept() {
const res = await adminInvestasi_funAcceptTransaksiById({ invoiceId });
const res = await adminInvestasi_funAcceptTransaksiById({
invoiceId,
investasiId,
lembarTerbeli,
});
if (res.status == 200) {
try {

View File

@@ -1,5 +1,4 @@
import { RouterAdminInvestasi } from "@/app/lib/router_admin/router_admin_investasi";
import { ComponentAdminGlobal_TampilanRupiah } from "@/app_modules/admin/_admin_global";
import { ComponentAdminGlobal_TampilanRupiah } from "@/app_modules/admin/_admin_global/_component";
import {
MODEL_INVOICE_INVESTASI,
MODEL_STATUS_INVOICE_INVESTASI,
@@ -7,7 +6,6 @@ import {
import {
ActionIcon,
Badge,
Button,
Center,
Group,
Pagination,
@@ -140,6 +138,7 @@ export function AdminInvestasi_ViewDaftarTransaksi({
<AdminInvestasi_ComponentButtonKonfirmasiTransaksi
invoiceId={e.id}
investasiId={investasiId}
lembarTerbeli={e.lembarTerbeli}
onLoadData={(val) => {
setData(val.data);
setNPage(val.nPage);
@@ -151,6 +150,7 @@ export function AdminInvestasi_ViewDaftarTransaksi({
<AdminInvestasi_ComponentButtonBandingTransaksi
invoiceId={e.id}
investasiId={investasiId}
lembarTerbeli={e.lembarTerbeli}
onLoadData={(val) => {
setData(val.data);
setNPage(val.nPage);

View File

@@ -3,7 +3,7 @@
import { Stack } from "@mantine/core";
import ComponentAdminGlobal_BackButton from "../../_admin_global/back_button";
import { AdminInvestasi_ViewBuktiTransfer } from "../_view";
import { ComponentAdminGlobal_TitlePage } from "../../_admin_global";
import { ComponentAdminGlobal_TitlePage } from "../../_admin_global/_component";
export function AdminInvestasi_DetailBuktiTransfer({ imageId }: { imageId: string }) {
return (

View File

@@ -2,13 +2,43 @@
import prisma from "@/app/lib/prisma";
import { RouterAdminInvestasi } from "@/app/lib/router_admin/router_admin_investasi";
import { toNumber } from "lodash";
import { revalidatePath } from "next/cache";
export async function adminInvestasi_funAcceptTransaksiById({
invoiceId,
investasiId,
lembarTerbeli,
}: {
invoiceId: string;
investasiId: string;
lembarTerbeli: string;
}) {
const dataInvestasi: any = await prisma.investasi.findFirst({
where: {
id: investasiId,
},
select: {
totalLembar: true,
sisaLembar: true,
lembarTerbeli: true,
},
});
// Hitung TOTAL SISA LEMBAR
const investasi_sisaLembar = toNumber(dataInvestasi?.sisaLembar);
const invoice_lembarTerbeli = toNumber(lembarTerbeli);
const resultSisaLembar = investasi_sisaLembar - invoice_lembarTerbeli;
// TAMBAH LEMBAR TERBELI
const investasi_lembarTerbeli = toNumber(dataInvestasi?.lembarTerbeli);
const resultLembarTerbeli = investasi_lembarTerbeli + invoice_lembarTerbeli;
// Progress
const investasi_totalLembar = toNumber(dataInvestasi?.totalLembar);
const progress = (resultLembarTerbeli / investasi_totalLembar) * 100;
const resultProgres = toNumber(progress).toFixed(2);
const updt = await prisma.investasi_Invoice.update({
where: {
id: invoiceId,
@@ -18,10 +48,27 @@ export async function adminInvestasi_funAcceptTransaksiById({
},
});
if (!updt) return { status: 400, message: "Gagal Update" };
revalidatePath(RouterAdminInvestasi.detail_publish);
return {
status: 200,
message: "Update Berhasil",
};
if (!updt) {
return { status: 400, message: "Gagal Update Status" };
} else {
const updateInvestasi = await prisma.investasi.update({
where: {
id: investasiId,
},
data: {
sisaLembar: resultSisaLembar.toString(),
lembarTerbeli: resultLembarTerbeli.toString(),
progress: resultProgres,
},
});
if (!updateInvestasi)
return { status: 400, message: "Gagal Update Data Investasi" };
revalidatePath(RouterAdminInvestasi.detail_publish);
return {
status: 200,
message: "Update Berhasil",
};
}
}

View File

@@ -16,9 +16,11 @@ export async function adminInvestasi_funGetAllPublish({
const data = await prisma.investasi.findMany({
take: takeData,
skip: skipData,
orderBy: {
countDown: "desc",
},
orderBy: [
{
countDown: "desc",
},
],
where: {
active: true,
masterStatusInvestasiId: "1",
@@ -27,17 +29,7 @@ export async function adminInvestasi_funGetAllPublish({
mode: "insensitive",
},
},
select: {
id: true,
title: true,
authorId: true,
hargaLembar: true,
targetDana: true,
totalLembar: true,
roi: true,
active: true,
imagesId: true,
catatan: true,
include: {
MasterStatusInvestasi: true,
BeritaInvestasi: true,
DokumenInvestasi: true,
@@ -46,8 +38,11 @@ export async function adminInvestasi_funGetAllPublish({
MasterPencarianInvestor: true,
MasterPeriodeDeviden: true,
author: true,
progress: true,
sisaLembar: true,
Investasi_Invoice: {
where: {
statusInvoiceId: "2",
},
},
},
});

View File

@@ -98,6 +98,11 @@ function TableView({ listData }: { listData: any }) {
}).format(+e.totalLembar)}
</Center>
</td>
<td>
<Center w={200}>
<Text lineClamp={1}>{e.Investasi_Invoice.length}</Text>
</Center>
</td>
<td>
<Center w={200}>
<Button
@@ -172,6 +177,9 @@ function TableView({ listData }: { listData: any }) {
<th>
<Center w={200}>Total Saham</Center>
</th>
<th>
<Center w={200}>Validasi</Center>
</th>
<th>
<Center w={200}>Aksi</Center>
</th>