28
coba.sh
@@ -1,28 +0,0 @@
|
||||
curl -X POST
|
||||
http://localhost:3000/api/investasi/midtrans/ \
|
||||
-H 'User-Agent: Veritrans' \
|
||||
-H 'Accept: application/json'\
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"transaction_time": "2020-01-09 18:27:19",
|
||||
"transaction_status": "capture",
|
||||
"transaction_id":
|
||||
"57d5293c-e65f-4a29-95e4-5959c3fa335b",
|
||||
"status_message": "midtrans payment notification",
|
||||
"status_code": "200",
|
||||
"signature_key":
|
||||
"16d6f84b2fb0468e2a9cf99a8ac4e5d803d42180347aaa70cb2a7abb13b5c6130458ca9c71956a962c0827637cd3bc7d40b21a8ae9fab12c7c3efe351b18d00a",
|
||||
"payment_type": "credit_card",
|
||||
"order_id": "Postman-1578568851",
|
||||
"merchant_id": "G141532850",
|
||||
"masked_card": "48111111-1114",
|
||||
"gross_amount": "10000.00",
|
||||
"fraud_status": "accept",
|
||||
"eci": "05",
|
||||
"currency": "IDR",
|
||||
"channel_response_message": "Approved",
|
||||
"channel_response_code": "00",
|
||||
"card_type": "credit",
|
||||
"bank": "bni",
|
||||
"approval_code": "1578569243927"
|
||||
}'
|
||||
@@ -16,6 +16,7 @@
|
||||
"@mantine/dropzone": "^7.1.3",
|
||||
"@mantine/hooks": "^6.0.17",
|
||||
"@mantine/next": "^6.0.17",
|
||||
"@mantine/notifications": "^6.0.17",
|
||||
"@prisma/client": "^5.0.0",
|
||||
"@tabler/icons-react": "^2.38.0",
|
||||
"@types/lodash": "^4.14.199",
|
||||
@@ -24,6 +25,8 @@
|
||||
"@types/react-dom": "18.2.7",
|
||||
"@types/uuid": "^9.0.4",
|
||||
"autoprefixer": "10.4.14",
|
||||
"echarts": "^5.4.3",
|
||||
"echarts-for-react": "^3.0.2",
|
||||
"embla-carousel-react": "^8.0.0-rc14",
|
||||
"eslint": "8.45.0",
|
||||
"eslint-config-next": "13.4.12",
|
||||
|
||||
@@ -23,6 +23,9 @@ model User {
|
||||
Profile Profile?
|
||||
Investasi Investasi[]
|
||||
TransaksiInvestasi TransaksiInvestasi[]
|
||||
Donasi Donasi[]
|
||||
Donasi_Invoice Donasi_Invoice[]
|
||||
Donasi_Notif Donasi_Notif[]
|
||||
}
|
||||
|
||||
model MasterUserRole {
|
||||
@@ -46,54 +49,91 @@ model UserSession {
|
||||
}
|
||||
|
||||
model Profile {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
email String @unique
|
||||
alamat String
|
||||
jenisKelamin String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
User User? @relation(fields: [userId], references: [id])
|
||||
userId String? @unique
|
||||
ImageProfile Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
Katalog Katalog[]
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
email String @unique
|
||||
alamat String
|
||||
jenisKelamin String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
User User? @relation(fields: [userId], references: [id])
|
||||
userId String? @unique
|
||||
ImageProfile Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
Portofolio Portofolio[]
|
||||
ImagesBackground ImagesBackground? @relation(fields: [imagesBackgroundId], references: [id])
|
||||
imagesBackgroundId String? @unique
|
||||
}
|
||||
|
||||
model Images {
|
||||
id String @id @default(cuid())
|
||||
url String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
Profile Profile?
|
||||
Investasi Investasi?
|
||||
BeritaInvestasi BeritaInvestasi[]
|
||||
id String @id @default(cuid())
|
||||
url String
|
||||
label String @default("null")
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
Profile Profile?
|
||||
Investasi Investasi?
|
||||
BeritaInvestasi BeritaInvestasi[]
|
||||
Donasi Donasi?
|
||||
CeritaDonasi Donasi_Cerita[]
|
||||
Donasi_TemporaryCreate Donasi_TemporaryCreate[]
|
||||
Donasi_Kabar Donasi_Kabar[]
|
||||
Donasi_PencairanDana Donasi_PencairanDana[]
|
||||
Donasi_Invoice Donasi_Invoice[]
|
||||
Portofolio Portofolio[]
|
||||
}
|
||||
|
||||
model Katalog {
|
||||
id String @id @default(cuid())
|
||||
namaBisnis String
|
||||
alamatKantor String
|
||||
tlpn String
|
||||
deskripsi String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
Profile Profile? @relation(fields: [profileId], references: [id])
|
||||
profileId String?
|
||||
MasterBidangBisnis MasterBidangBisnis @relation(fields: [masterBidangBisnisId], references: [id])
|
||||
masterBidangBisnisId String
|
||||
model ImagesBackground {
|
||||
id String @id @default(cuid())
|
||||
url String
|
||||
label String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Profile Profile?
|
||||
}
|
||||
|
||||
model Portofolio {
|
||||
id String @id @default(cuid())
|
||||
namaBisnis String
|
||||
alamatKantor String
|
||||
tlpn String
|
||||
deskripsi String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
Profile Profile? @relation(fields: [profileId], references: [id])
|
||||
profileId String?
|
||||
MasterBidangBisnis MasterBidangBisnis @relation(fields: [masterBidangBisnisId], references: [id])
|
||||
masterBidangBisnisId String
|
||||
Logo Images? @relation(fields: [logoId], references: [id])
|
||||
logoId String?
|
||||
Portofolio_MediaSosial Portofolio_MediaSosial?
|
||||
}
|
||||
|
||||
model Portofolio_MediaSosial {
|
||||
id String @id @default(cuid())
|
||||
facebook String?
|
||||
twitter String?
|
||||
instagram String?
|
||||
tiktok String?
|
||||
youtube String?
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Portofolio Portofolio? @relation(fields: [portofolioId], references: [id])
|
||||
portofolioId String? @unique
|
||||
}
|
||||
|
||||
model MasterBidangBisnis {
|
||||
id String @id
|
||||
name String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
Katalog Katalog[]
|
||||
id String @id
|
||||
name String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @default(now()) @updatedAt
|
||||
Portofolio Portofolio[]
|
||||
}
|
||||
|
||||
// -------------------- INVESTASI --------------------- //
|
||||
@@ -123,17 +163,17 @@ model Investasi {
|
||||
masterPembagianDevidenId String?
|
||||
MasterPencarianInvestor MasterPencarianInvestor? @relation(fields: [masterPencarianInvestorId], references: [id])
|
||||
masterPencarianInvestorId String?
|
||||
ImageInvestasi Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
ImageInvestasi Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
|
||||
MasterStatusInvestasi MasterStatusInvestasi? @relation(fields: [masterStatusInvestasiId], references: [id])
|
||||
masterStatusInvestasiId String? @default("2")
|
||||
ProspektusInvestasi ProspektusInvestasi?
|
||||
BeritaInvestasi BeritaInvestasi[]
|
||||
DokumenInvestasi DokumenInvestasi[]
|
||||
MasterStatusInvestasi MasterStatusInvestasi? @relation(fields: [masterStatusInvestasiId], references: [id])
|
||||
masterStatusInvestasiId String? @default("2")
|
||||
ProspektusInvestasi ProspektusInvestasi?
|
||||
BeritaInvestasi BeritaInvestasi[]
|
||||
DokumenInvestasi DokumenInvestasi[]
|
||||
TransaksiInvestasi TransaksiInvestasi[]
|
||||
MasterProgresInvestasi MasterProgresInvestasi? @relation(fields: [masterProgresInvestasiId], references: [id])
|
||||
masterProgresInvestasiId String?
|
||||
masterProgresInvestasiId String?
|
||||
}
|
||||
|
||||
model MasterPencarianInvestor {
|
||||
@@ -268,3 +308,173 @@ model MasterStatusTransaksiInvestasi {
|
||||
TransaksiInvestasi TransaksiInvestasi[]
|
||||
}
|
||||
|
||||
/// ---------------------------------------- DONASI ----------------------------------------- //
|
||||
model Donasi {
|
||||
id String @id @default(cuid())
|
||||
title String
|
||||
target String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
publishTime DateTime?
|
||||
catatan String?
|
||||
progres String? @default("0")
|
||||
terkumpul String? @default("0")
|
||||
namaBank String?
|
||||
rekening String?
|
||||
akumulasiPencairan Int? @default(0)
|
||||
totalPencairan Int? @default(0)
|
||||
|
||||
Author User? @relation(fields: [authorId], references: [id])
|
||||
authorId String?
|
||||
imageDonasi Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
CeritaDonasi Donasi_Cerita?
|
||||
DonasiMaster_Ketegori DonasiMaster_Kategori? @relation(fields: [donasiMaster_KategoriId], references: [id])
|
||||
donasiMaster_KategoriId String?
|
||||
DonasiMaster_Durasi DonasiMaster_Durasi? @relation(fields: [donasiMaster_DurasiId], references: [id])
|
||||
donasiMaster_DurasiId String?
|
||||
DonasiMaster_Status DonasiMaster_StatusDonasi? @relation(fields: [donasiMaster_StatusDonasiId], references: [id])
|
||||
donasiMaster_StatusDonasiId String? @default("2")
|
||||
Donasi_Invoice Donasi_Invoice[]
|
||||
Donasi_Kabar Donasi_Kabar[]
|
||||
Donasi_PencairanDana Donasi_PencairanDana[]
|
||||
}
|
||||
|
||||
model Donasi_TemporaryCreate {
|
||||
id String @id @default(cuid())
|
||||
title String
|
||||
target String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
imageDonasiTemporary Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
kategori DonasiMaster_Kategori? @relation(fields: [donasiMaster_KategoriId], references: [id])
|
||||
donasiMaster_KategoriId String?
|
||||
durasi DonasiMaster_Durasi? @relation(fields: [donasiMaster_DurasiId], references: [id])
|
||||
donasiMaster_DurasiId String?
|
||||
}
|
||||
|
||||
model DonasiMaster_Kategori {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Donasi Donasi[]
|
||||
Donasi_TemporaryCreate Donasi_TemporaryCreate[]
|
||||
}
|
||||
|
||||
model DonasiMaster_Durasi {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Donasi Donasi[]
|
||||
Donasi_TemporaryCreate Donasi_TemporaryCreate[]
|
||||
}
|
||||
|
||||
model Donasi_Cerita {
|
||||
id String @id @default(cuid())
|
||||
pembukaan String
|
||||
cerita String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
imageCeritaDonasi Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String? @unique
|
||||
Donasi Donasi? @relation(fields: [donasiId], references: [id])
|
||||
donasiId String? @unique
|
||||
}
|
||||
|
||||
model DonasiMaster_StatusDonasi {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Donasi Donasi[]
|
||||
}
|
||||
|
||||
model DonasiMaster_Bank {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
norek String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Donasi_Invoice Donasi_Invoice[]
|
||||
}
|
||||
|
||||
model DonasiMaster_StatusInvoice {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Donasi_Invoice Donasi_Invoice[]
|
||||
}
|
||||
|
||||
model Donasi_Invoice {
|
||||
id String @id @default(cuid())
|
||||
nominal String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
Donasi Donasi? @relation(fields: [donasiId], references: [id])
|
||||
donasiId String?
|
||||
DonasiMaster_Bank DonasiMaster_Bank? @relation(fields: [donasiMaster_BankId], references: [id])
|
||||
donasiMaster_BankId String?
|
||||
DonasiMaster_StatusInvoice DonasiMaster_StatusInvoice? @relation(fields: [donasiMaster_StatusInvoiceId], references: [id])
|
||||
donasiMaster_StatusInvoiceId String? @default("3")
|
||||
Author User? @relation(fields: [authorId], references: [id])
|
||||
authorId String?
|
||||
Images Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String?
|
||||
}
|
||||
|
||||
model Donasi_Kabar {
|
||||
id String @id @default(cuid())
|
||||
title String
|
||||
deskripsi String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
Donasi Donasi? @relation(fields: [donasiId], references: [id])
|
||||
donasiId String?
|
||||
ImagesKabar Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String?
|
||||
Donasi_Notif Donasi_Notif[]
|
||||
}
|
||||
|
||||
model Donasi_Notif {
|
||||
id String @id @default(cuid())
|
||||
isRead Boolean @default(false)
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
User User? @relation(fields: [userId], references: [id])
|
||||
userId String?
|
||||
Donasi_Kabar Donasi_Kabar? @relation(fields: [donasi_KabarId], references: [id])
|
||||
donasi_KabarId String?
|
||||
}
|
||||
|
||||
model Donasi_PencairanDana {
|
||||
id String @id @default(cuid())
|
||||
nominalCair Int
|
||||
title String
|
||||
deskripsi String
|
||||
active Boolean @default(true)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
Donasi Donasi? @relation(fields: [donasiId], references: [id])
|
||||
donasiId String?
|
||||
Images Images? @relation(fields: [imagesId], references: [id])
|
||||
imagesId String?
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
BIN
public/aset/global/no_img.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
public/donasi/image/25388f4f-8503-46ec-977d-3f92d7e9df4e.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/donasi/image/26f9f9ae-d099-4136-bb43-7d0a96770b55.jpeg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
public/donasi/image/4e1a2302-5471-4a95-a79c-0fbe3c3f0677.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/donasi/image/84a72cf5-1b0e-47f8-bca9-763edef28c0b.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/donasi/image/b9b270aa-f0db-42a6-822e-a35b6b28c883.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/donasi/image/bf8c9bae-e3c9-4d33-89ec-9a88c3740da8.jpeg
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
public/donasi/image/c6b8d269-7e15-4711-81e0-35d1d2f757dc.jpeg
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
public/donasi/image/c77f246e-d572-4acb-9b41-0b9e5d973e69.jpg
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
public/donasi/image/ddd5a80a-f5d9-4483-8fe0-5216c372a536.jpg
Normal file
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
BIN
public/donasi/invoice/144ba2ba-67df-4014-92fd-f51f1a14d290.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
public/donasi/invoice/589732ad-0e8a-4273-bc27-707f01b1e4d0.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
public/donasi/invoice/8afa3968-fec7-49f9-8bba-d81d5f7ceb01.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
public/donasi/invoice/cd319bc0-09e5-4322-b924-43b1f0e619ff.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
public/donasi/kabar/2cfa3076-f9dd-43d2-b9fb-3ecd37b852a8.jpeg
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
public/donasi/kabar/510ead2a-1976-452b-abc3-dcc1db83d9f3.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/donasi/kabar/6fdb94e0-34b8-4731-a710-acaacbbec933.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/donasi/kabar/cb3a09a2-b357-47c0-be0a-d8a54e4b077f.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/donasi/pencairan/1c43100c-05bc-4234-b308-db06171cd188.jpg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
public/donasi/pencairan/92bb3b55-19e9-4676-9b2e-633d7fe9fa70.jpg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
public/donasi/pencairan/9ed489e4-056e-41d8-be75-faf7107f9a60.jpg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
@@ -1 +0,0 @@
|
||||
// Image for profile
|
||||
BIN
public/portofolio/logo/bdf4000d-626a-4c87-a6dc-6c63dad52a26.jpg
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/portofolio/logo/eac70e5a-cdfd-4323-a23b-f097a593e0fe.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
1
public/portofolio/logo/test.md
Normal file
@@ -0,0 +1 @@
|
||||
# Test
|
||||
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 263 KiB |
BIN
public/profile/foto/4985d154-8120-4f8a-89d9-36d4cb9a62c0.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
public/profile/foto/85fd67b1-28a5-40e2-ab19-463c8fad7386.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
public/profile/foto/8cf7990e-b101-466b-bad2-9b0d06a5213f.jpeg
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
public/profile/foto/f1bf74e9-7282-4266-becf-2461f30c68f7.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
32
src/app/api/donasi/gambar/[id]/route.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!fs.existsSync(`./public/donasi/image/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/donasi/image/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
32
src/app/api/donasi/gambar_bukti_transfer/[id]/route.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!fs.existsSync(`./public/donasi/invoice/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/donasi/invoice/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
34
src/app/api/donasi/gambar_cerita/[id]/route.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
if (!fs.existsSync(`./public/donasi/image_cerita/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/donasi/image_cerita/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
34
src/app/api/donasi/gambar_kabar/[id]/route.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
if (!fs.existsSync(`./public/donasi/kabar/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/donasi/kabar/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
34
src/app/api/donasi/gambar_pencairan/[id]/route.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
if (!fs.existsSync(`./public/donasi/pencairan/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/donasi/pencairan/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
23
src/app/api/donasi/image/[url]/route.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { url: string } }
|
||||
) {
|
||||
if (!fs.existsSync(`./public/donasi/image/${params.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const file = fs.readFileSync(`./public/donasi/image/${params.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
25
src/app/api/donasi/image_cerita/[url]/route.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import fs from "fs"
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { url: string } }
|
||||
) {
|
||||
|
||||
if (!fs.existsSync(`./public/donasi/image_cerita/${params.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const file = fs.readFileSync(`./public/donasi/image_cerita/${params.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
1
src/app/api/donasi/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# Test
|
||||
32
src/app/api/portofolio/logo/[id]/route.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!fs.existsSync(`./public/portofolio/logo/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/portofolio/logo/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
32
src/app/api/profile/background/[id]/route.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
const get = await prisma.imagesBackground.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!fs.existsSync(`./public/profile/background/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/profile/background/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
32
src/app/api/profile/foto/[id]/route.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { id: string } }
|
||||
) {
|
||||
const get = await prisma.images.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
},
|
||||
select: {
|
||||
url: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!fs.existsSync(`./public/profile/foto/${get?.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/avatar.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const file = fs.readFileSync(`./public/profile/foto/${get?.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import fs from "fs";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { name: string } }
|
||||
) {
|
||||
if (!fs.existsSync(`./public/img/${params.name}`)) {
|
||||
const fl = fs.readFileSync(`./public/aset/avatar.png`);
|
||||
return new NextResponse(fl, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
const fl = fs.readFileSync(`./public/img/${params.name}`);
|
||||
return new NextResponse(fl, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
23
src/app/api/profile/url_background/[url]/route.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { url: string } }
|
||||
) {
|
||||
if (!fs.existsSync(`./public/profile/background/${params.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/no_img.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const file = fs.readFileSync(`./public/profile/background/${params.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
23
src/app/api/profile/url_foto/[url]/route.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import fs from "fs";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
|
||||
export async function GET(
|
||||
req: NextRequest,
|
||||
{ params }: { params: { url: string } }
|
||||
) {
|
||||
if (!fs.existsSync(`./public/profile/foto/${params.url}`)) {
|
||||
const notFile = fs.readFileSync("./public/aset/global/avatar.png");
|
||||
return new NextResponse(notFile, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const file = fs.readFileSync(`./public/profile/foto/${params.url}`);
|
||||
return new NextResponse(file, {
|
||||
headers: {
|
||||
"Content-Type": "image/png",
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -10,6 +10,11 @@ import namaBank from "./../../../bin/seeder/investasi/nama_bank.json";
|
||||
import statusTransaksiInvestasi from "./../../../bin/seeder/investasi/status_transaksi_investasi.json";
|
||||
import jenisProgres from "../../../bin/seeder/investasi/master_progres.json";
|
||||
import userSeeder from "../../../bin/seeder/user_seeder.json";
|
||||
import donasi_status from "../../../bin/seeder/donasi/master_status.json";
|
||||
import donasi_kategori from "../../../bin/seeder/donasi/master_kategori.json";
|
||||
import donasi_durasi from "../../../bin/seeder/donasi/master_durasi.json";
|
||||
import donasi_namaBank from "../../../bin/seeder/donasi/master_bank.json"
|
||||
import donasi_status_invoice from "../../../bin/seeder/donasi/master_status_invoice.json"
|
||||
|
||||
export async function GET(req: Request) {
|
||||
const dev = new URL(req.url).searchParams.get("dev");
|
||||
@@ -181,6 +186,84 @@ export async function GET(req: Request) {
|
||||
});
|
||||
}
|
||||
|
||||
for (let d of donasi_status) {
|
||||
await prisma.donasiMaster_StatusDonasi.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
for (let d of donasi_kategori) {
|
||||
await prisma.donasiMaster_Kategori.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
for (let d of donasi_durasi) {
|
||||
await prisma.donasiMaster_Durasi.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
for (let i of donasi_namaBank) {
|
||||
await prisma.donasiMaster_Bank.upsert({
|
||||
where: {
|
||||
id: i.id,
|
||||
},
|
||||
create: {
|
||||
id: i.id,
|
||||
name: i.name,
|
||||
norek: i.norek,
|
||||
},
|
||||
update: {
|
||||
id: i.id,
|
||||
name: i.name,
|
||||
norek: i.norek,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
for (let d of donasi_status_invoice) {
|
||||
await prisma.donasiMaster_StatusInvoice.upsert({
|
||||
where: {
|
||||
id: d.id,
|
||||
},
|
||||
create: {
|
||||
id: d.id,
|
||||
name: d.name,
|
||||
},
|
||||
update: {
|
||||
name: d.name,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
return NextResponse.json({ success: true });
|
||||
}
|
||||
|
||||
|
||||
24
src/app/dev/admin/donasi/detail/publish/[id]/page.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import { AdminDonasi_DetailPublish } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_funCountDonatur } from "@/app_modules/admin/donasi/fun/count/fun_count_donatur";
|
||||
import { AdminDonasi_getListDonatur } from "@/app_modules/admin/donasi/fun/get/get_list_donatur_by_id";
|
||||
import { AdminDonasi_getListPencairanDana } from "@/app_modules/admin/donasi/fun/get/get_list_pencairan_dana_by_id";
|
||||
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
const dataPublish = await AdminDonasi_getOneById(params.id);
|
||||
const listDonatur = await AdminDonasi_getListDonatur(params.id);
|
||||
const countDonatur = await AdminDonasi_funCountDonatur(params.id);
|
||||
const listPencairan = await AdminDonasi_getListPencairanDana(params.id);
|
||||
// console.log(listDonatur)
|
||||
|
||||
return (
|
||||
<>
|
||||
<AdminDonasi_DetailPublish
|
||||
dataPublish={dataPublish as any}
|
||||
listDonatur={listDonatur}
|
||||
countDonatur={countDonatur}
|
||||
listPencairan={listPencairan as any}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
12
src/app/dev/admin/donasi/detail/reject/[id]/page.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { AdminDonasi_DetailReject } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
const dataReject = await AdminDonasi_getOneById(params.id);
|
||||
|
||||
return (
|
||||
<>
|
||||
<AdminDonasi_DetailReject dataReject={dataReject as any} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
9
src/app/dev/admin/donasi/detail/review/[id]/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import { AdminDonasi_DetailReview } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
|
||||
|
||||
export default async function Page({params}: {params: {id: string}}) {
|
||||
// console.log(params.id)
|
||||
const dataReview = await AdminDonasi_getOneById(params.id)
|
||||
// console.log(dataReview)
|
||||
return <AdminDonasi_DetailReview dataReview={dataReview as any}/>
|
||||
}
|
||||
@@ -1,10 +1,20 @@
|
||||
import { AdminDonasi_Main } from "@/app_modules/admin/donasi";
|
||||
|
||||
import AdminDonasi_funCountByStatus from "@/app_modules/admin/donasi/fun/count/fun_count_donasi_by_status";
|
||||
|
||||
export default async function Page() {
|
||||
const countPublish = await AdminDonasi_funCountByStatus("1");
|
||||
const countReview = await AdminDonasi_funCountByStatus("2");
|
||||
const countDraft = await AdminDonasi_funCountByStatus("3");
|
||||
const countReject = await AdminDonasi_funCountByStatus("4");
|
||||
|
||||
return (
|
||||
<>
|
||||
<AdminDonasi_Main />
|
||||
<AdminDonasi_Main
|
||||
countPublish={countPublish as number}
|
||||
countReview={countReview as number}
|
||||
countDraft={countDraft as number}
|
||||
countReject={countReject as number}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
6
src/app/dev/admin/donasi/pencairan_dana/[id]/page.tsx
Normal file
@@ -0,0 +1,6 @@
|
||||
import { AdminDonasi_PencairanDana } from "@/app_modules/admin/donasi";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
let donasiId = params.id;
|
||||
return <AdminDonasi_PencairanDana donasiId={donasiId} />;
|
||||
}
|
||||
12
src/app/dev/admin/donasi/proses_transaksi/[id]/page.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
import { AdminDonasi_ProsesTransaksi } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_getListStatusInvoiceProses } from "@/app_modules/admin/donasi/fun/get/get_list_status_invoice_proses";
|
||||
|
||||
export default async function Page({params}: {params: {id: string}}) {
|
||||
let donasiId = params.id
|
||||
|
||||
const listProses = await AdminDonasi_getListStatusInvoiceProses(donasiId)
|
||||
|
||||
|
||||
return <AdminDonasi_ProsesTransaksi listProses={listProses as any}/>
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
import { AdminDonasi_TablePublish } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_list_donasi_by_status";
|
||||
|
||||
export default async function Page() {
|
||||
const listPublish = await AdminDonasi_getByStatus("1")
|
||||
// console.log(listPublish)
|
||||
return<>
|
||||
<AdminDonasi_TablePublish/>
|
||||
<AdminDonasi_TablePublish listPublish={listPublish as any}/>
|
||||
</>
|
||||
}
|
||||
10
src/app/dev/admin/donasi/table/reject/page.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { AdminDonasi_TableReject } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_list_donasi_by_status";
|
||||
|
||||
export default async function Page() {
|
||||
const dataReject = await AdminDonasi_getByStatus("4")
|
||||
// console.log(dataReject)
|
||||
return<>
|
||||
<AdminDonasi_TableReject dataReject={dataReject as any}/>
|
||||
</>
|
||||
}
|
||||
9
src/app/dev/admin/donasi/table/review/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import { AdminDonasi_TableReview } from "@/app_modules/admin/donasi";
|
||||
import { AdminDonasi_getByStatus } from "@/app_modules/admin/donasi/fun/get/get_list_donasi_by_status";
|
||||
import { User_getUserId } from "@/app_modules/fun_global/get_user_token";
|
||||
|
||||
export default async function Page() {
|
||||
const listReview = await AdminDonasi_getByStatus("2");
|
||||
// console.log(listReview);
|
||||
return <AdminDonasi_TableReview listReview={listReview as any} />;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Admin_KonfirmasiInvestasi } from "@/app_modules/admin/investasi";
|
||||
import { funGetUserProfile } from "@/app_modules/fun/get_user_profile";
|
||||
import { funGetUserProfile } from "@/app_modules/fun_global/get_user_profile";
|
||||
import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id";
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AdminLayout } from "@/app_modules/admin/main";
|
||||
import { AdminLayout } from "@/app_modules/admin/main_dashboard";
|
||||
import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
import { AdminMain } from "@/app_modules/admin/main";
|
||||
import { AdminMain } from "@/app_modules/admin/main_dashboard";
|
||||
import { AdminMainDashboard_CountPOrtofolio } from "@/app_modules/admin/main_dashboard/fun/count/fun_count_portofolio";
|
||||
import { AdminMainDashboard_CountUser } from "@/app_modules/admin/main_dashboard/fun/count/fun_count_user";
|
||||
|
||||
export default async function Page() {
|
||||
return <AdminMain />;
|
||||
const countUser = await AdminMainDashboard_CountUser();
|
||||
const countPorto = await AdminMainDashboard_CountPOrtofolio();
|
||||
|
||||
return <AdminMain countUser={countUser} countPorto={countPorto} />;
|
||||
}
|
||||
|
||||
21
src/app/dev/donasi/cerita_penggalang/[id]/layout.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
import { LayoutCeritaPenggalangDonasi } from "@/app_modules/donasi";
|
||||
import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
|
||||
import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
params,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
params: { id: string };
|
||||
}) {
|
||||
const dataDonasi = await Donasi_getOneById(params.id);
|
||||
const statusDonasiId = dataDonasi?.donasiMaster_StatusDonasiId;
|
||||
return (
|
||||
<>
|
||||
<LayoutCeritaPenggalangDonasi statusDonasiId={statusDonasiId as string} donasiId={dataDonasi?.id as string}>
|
||||
{children}
|
||||
</LayoutCeritaPenggalangDonasi>
|
||||
</>
|
||||
);
|
||||
}
|
||||
12
src/app/dev/donasi/cerita_penggalang/[id]/page.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { CeritaPenggalangDonasi } from "@/app_modules/donasi";
|
||||
import Donasi_getCeritaByDonasiId from "@/app_modules/donasi/fun/get/get_cerita_penggalang";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
const dataCerita = await Donasi_getCeritaByDonasiId(params.id);
|
||||
// console.log(dataCerita)
|
||||
return (
|
||||
<>
|
||||
<CeritaPenggalangDonasi dataCerita={dataCerita as any}/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
import { LayoutCeritaPenggalangDonasi } from "@/app_modules/donasi";
|
||||
import React from "react";
|
||||
|
||||
export default async function Layout({children}: {children: React.ReactNode}) {
|
||||
return<>
|
||||
<LayoutCeritaPenggalangDonasi>{children}</LayoutCeritaPenggalangDonasi>
|
||||
</>
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import { CeritaPenggalangDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return (
|
||||
<>
|
||||
<CeritaPenggalangDonasi />
|
||||
</>
|
||||
);
|
||||
}
|
||||
16
src/app/dev/donasi/create/cerita_penggalang/[id]/page.tsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import { CreateCeritaPenggalangDonasi } from "@/app_modules/donasi";
|
||||
import { Donasi_getTemporaryCreate } from "@/app_modules/donasi/fun/get/get_temporary_create";
|
||||
import { User_getUserId } from "@/app_modules/fun_global/get_user_token";
|
||||
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
|
||||
const getTemporaryCreate = await Donasi_getTemporaryCreate(params.id);
|
||||
const userId = await User_getUserId()
|
||||
|
||||
return (
|
||||
<>
|
||||
<CreateCeritaPenggalangDonasi dataTemporary={getTemporaryCreate as any} userId={userId} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
import { CreateCeritaPenggalangDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return<>
|
||||
<CreateCeritaPenggalangDonasi/>
|
||||
</>
|
||||
}
|
||||
14
src/app/dev/donasi/create/create_donasi/layout.tsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import { LayoutCreateDonasi } from "@/app_modules/donasi";
|
||||
import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<LayoutCreateDonasi>{children}</LayoutCreateDonasi>
|
||||
</>
|
||||
);
|
||||
}
|
||||
15
src/app/dev/donasi/create/create_donasi/page.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import { CreateDonasi } from "@/app_modules/donasi";
|
||||
import {
|
||||
Donasi_getMasterDurasi,
|
||||
Donasi_getMasterKategori,
|
||||
} from "@/app_modules/donasi/fun";
|
||||
import { User_getUserId } from "@/app_modules/fun_global/get_user_token";
|
||||
|
||||
export default async function Page() {
|
||||
const masterKategori = await Donasi_getMasterKategori();
|
||||
const masterDurasi = await Donasi_getMasterDurasi();
|
||||
|
||||
return (
|
||||
<CreateDonasi masterKategori={masterKategori} masterDurasi={masterDurasi} />
|
||||
);
|
||||
}
|
||||
14
src/app/dev/donasi/create/create_kabar/[id]/layout.tsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import { LayoutDonasi_CreateKabar } from "@/app_modules/donasi";
|
||||
import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<LayoutDonasi_CreateKabar>{children}</LayoutDonasi_CreateKabar>
|
||||
</>
|
||||
);
|
||||
}
|
||||
8
src/app/dev/donasi/create/create_kabar/[id]/page.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
import { Donasi_CreateKabar } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page({params}: {params: {id: string}}) {
|
||||
const donasiId = params.id
|
||||
return<>
|
||||
<Donasi_CreateKabar donasiId={donasiId}/>
|
||||
</>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import { CreateDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return <CreateDonasi/>
|
||||
}
|
||||
18
src/app/dev/donasi/detail/detail_donasi_saya/[id]/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { DetailDonasiSaya } from "@/app_modules/donasi";
|
||||
import { Donasi_getCountDonatur } from "@/app_modules/donasi/fun/count/get_count_donatur";
|
||||
import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
|
||||
import { Donasi_getOneInvoiceById } from "@/app_modules/donasi/fun/get/get_one_invoice_by_id";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
let invoiceId = params.id;
|
||||
const dataDonasi = await Donasi_getOneInvoiceById(invoiceId);
|
||||
const countDonatur= await Donasi_getCountDonatur(dataDonasi?.donasiId as any)
|
||||
console.log(dataDonasi?.Donasi?.progres)
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
<DetailDonasiSaya dataDonasi={dataDonasi as any} countDonatur={countDonatur} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
import { DetailDonasiSaya } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return<>
|
||||
<DetailDonasiSaya/>
|
||||
</>
|
||||
}
|
||||
@@ -3,12 +3,14 @@ import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
params
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
params: {id: string}
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<LayoutDetailDraftDonasi>{children}</LayoutDetailDraftDonasi>
|
||||
<LayoutDetailDraftDonasi donasiId={params.id} >{children}</LayoutDetailDraftDonasi>
|
||||
</>
|
||||
);
|
||||
}
|
||||
12
src/app/dev/donasi/detail/detail_draft/[id]/page.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { DetailDraftDonasi } from "@/app_modules/donasi";
|
||||
import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
const dataDonasi = await Donasi_getOneById(params.id);
|
||||
|
||||
return (
|
||||
<>
|
||||
<DetailDraftDonasi dataDonasi={dataDonasi as any} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
import { DetailDraftDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Paeg() {
|
||||
return<>
|
||||
<DetailDraftDonasi/>
|
||||
</>
|
||||
}
|
||||
10
src/app/dev/donasi/detail/detail_kabar/[id]/page.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { DetailKabarDonasi } from "@/app_modules/donasi";
|
||||
import { Donasi_getOneKabar } from "@/app_modules/donasi/fun/get/get_one_kabar";
|
||||
|
||||
export default async function Page({params}: {params: {id: string}}) {
|
||||
|
||||
let kabarId = params.id
|
||||
const dataDonasi = await Donasi_getOneKabar(kabarId)
|
||||
|
||||
return <DetailKabarDonasi dataDonasi={dataDonasi as any}/>
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import { DetailKabarDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return <DetailKabarDonasi/>
|
||||
}
|
||||
@@ -3,12 +3,14 @@ import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
params
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
params: {id: string}
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<LayoutDetailMainDonasi>{children}</LayoutDetailMainDonasi>
|
||||
<LayoutDetailMainDonasi donasiId={params.id}>{children}</LayoutDetailMainDonasi>
|
||||
</>
|
||||
);
|
||||
}
|
||||
17
src/app/dev/donasi/detail/detail_main/[id]/page.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import { DetailMainDonasi } from "@/app_modules/donasi";
|
||||
import { Donasi_getCountDonatur } from "@/app_modules/donasi/fun/count/get_count_donatur";
|
||||
import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
|
||||
import { User_getUserId } from "@/app_modules/fun_global/get_user_token";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
let donasiId = params.id;
|
||||
const dataDonasi = await Donasi_getOneById(donasiId);
|
||||
const countDonatur = await Donasi_getCountDonatur(donasiId)
|
||||
const userLoginId = await User_getUserId();
|
||||
|
||||
return (
|
||||
<>
|
||||
<DetailMainDonasi dataDonasi={dataDonasi as any} countDonatur={countDonatur} userLoginId={userLoginId}/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import { DetailMainDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return (
|
||||
<>
|
||||
<DetailMainDonasi />
|
||||
</>
|
||||
);
|
||||
}
|
||||
22
src/app/dev/donasi/detail/detail_notif/[id]/layout.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import { LayoutDonasi_DetailNotif } from "@/app_modules/donasi";
|
||||
import { Donasi_getOneKabar } from "@/app_modules/donasi/fun/get/get_one_kabar";
|
||||
import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
params,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
params: { id: string };
|
||||
}) {
|
||||
let kabarId = params.id;
|
||||
const dataKabar = await Donasi_getOneKabar(kabarId);
|
||||
const donasiId = dataKabar?.donasiId
|
||||
|
||||
return (
|
||||
<>
|
||||
<LayoutDonasi_DetailNotif donasiId={donasiId as any}>{children}</LayoutDonasi_DetailNotif>
|
||||
</>
|
||||
);
|
||||
}
|
||||
9
src/app/dev/donasi/detail/detail_notif/[id]/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import { Donasi_DetailNotif } from "@/app_modules/donasi";
|
||||
import { Donasi_getOneKabar } from "@/app_modules/donasi/fun/get/get_one_kabar";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
let kabarId = params.id;
|
||||
const dataKabar = await Donasi_getOneKabar(kabarId);
|
||||
|
||||
return <Donasi_DetailNotif dataKabar={dataKabar as any} />;
|
||||
}
|
||||
@@ -3,12 +3,16 @@ import React from "react";
|
||||
|
||||
export default async function Layout({
|
||||
children,
|
||||
params,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
params: { id: string };
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<LayoutDetailPublishDonasi>{children}</LayoutDetailPublishDonasi>
|
||||
<LayoutDetailPublishDonasi donasiId={params.id}>
|
||||
{children}
|
||||
</LayoutDetailPublishDonasi>
|
||||
</>
|
||||
);
|
||||
}
|
||||
18
src/app/dev/donasi/detail/detail_publish/[id]/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { DetailPublishDonasi } from "@/app_modules/donasi";
|
||||
import { Donasi_getCountDonatur } from "@/app_modules/donasi/fun/count/get_count_donatur";
|
||||
import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id";
|
||||
import { User_getUserId } from "@/app_modules/fun_global/get_user_token";
|
||||
|
||||
export default async function Page({ params }: { params: { id: string } }) {
|
||||
const dataPublish = await Donasi_getOneById(params.id);
|
||||
const countDonatur= await Donasi_getCountDonatur(params.id)
|
||||
const userLoginId = await User_getUserId();
|
||||
|
||||
console.log(userLoginId)
|
||||
|
||||
return (
|
||||
<>
|
||||
<DetailPublishDonasi dataPublish={dataPublish as any} countDonatur={countDonatur} userLoginId={userLoginId}/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
import { DetailPublishDonasi } from "@/app_modules/donasi";
|
||||
|
||||
export default async function Page() {
|
||||
return<>
|
||||
<DetailPublishDonasi/>
|
||||
</>
|
||||
}
|
||||