Alur pembayaran donasi

# feat
- Tampilan invoce
- Proses acc admin
- Transaksi berhasil
# Issue: Hitungan progres masih salah
This commit is contained in:
2024-01-08 13:56:14 +08:00
parent 4fc158bdc5
commit b4fe35e7d8
113 changed files with 2840 additions and 1274 deletions

View File

@@ -0,0 +1,16 @@
"use server"
import prisma from "@/app/lib/prisma"
export async function Donasi_getCountDonatur(donasiId: string) {
const donatur = await prisma.donasi_Invoice.count({
where: {
donasiId: donasiId,
donasiMaster_StatusInvoiceId: {
equals: "1"
}
}
});
return donatur
}

View File

@@ -0,0 +1,23 @@
"use server";
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
export async function Donasi_funCreateInvoice(data: any) {
const res = await prisma.donasi_Invoice.create({
data: {
donasiId: data.donasiId,
nominal: data.nominal,
donasiMaster_BankId: data.donasiMaster_BankId,
authorId: data.authorId
},
});
if (!res) return { status: 400, message: "Gagal membuat invoice" };
revalidatePath("/dev/donasi/main/donasi_saya")
return {
status: 200,
message: "Berhasil membuat invoice",
invoiceId: res.id
};
}

View File

@@ -0,0 +1,47 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getAuthorById(authorId: string) {
// console.log(authorId);
const data = await prisma.user.findFirst({
where: {
id: authorId,
},
select: {
id: true,
username: true,
nomor: true,
Donasi: {
where: {
donasiMaster_StatusDonasiId: "1",
},
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
authorId: true,
progres: true,
terkumpul: true,
imagesId: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
},
},
},
});
return data;
}

View File

@@ -12,6 +12,7 @@ export default async function Donasi_getCeritaByDonasiId(donasiId: string) {
pembukaan: true,
cerita: true,
imageCeritaDonasi: true,
createdAt: true,
},
});
return data;

View File

@@ -18,6 +18,16 @@ export default async function Donasi_getByStatus(
authorId: authorId,
donasiMaster_StatusDonasiId: "1",
},
select: {
id: true,
title: true,
imagesId: true,
target: true,
publishTime: true,
DonasiMaster_Durasi: true,
terkumpul: true,
}
});
return getReview;
}
@@ -48,7 +58,19 @@ export default async function Donasi_getByStatus(
authorId: authorId,
donasiMaster_StatusDonasiId: "4",
},
select: {
id: true,
title: true,
imagesId: true,
target: true,
publishTime: true,
DonasiMaster_Durasi: true,
catatan: true,
}
});
return getReview;
}

View File

@@ -0,0 +1,40 @@
"use server";
import prisma from "@/app/lib/prisma";
import { tree } from "next/dist/build/templates/app-page";
export async function Donasi_getListBeranda() {
const data = await prisma.donasi.findMany({
orderBy: {
publishTime: "desc",
},
where: {
donasiMaster_StatusDonasiId: "1",
},
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
progres: true,
terkumpul: true,
authorId: true,
imagesId: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
},
});
return data;
}

View File

@@ -0,0 +1,41 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getInvoiceByAuthorId(authorId: string) {
// console.log(authorId)
const data = await prisma.donasi_Invoice.findMany({
orderBy: {
createdAt: "desc"
},
where: {
authorId: authorId,
},
select: {
id: true,
nominal: true,
DonasiMaster_StatusInvoice: true,
donasiMaster_StatusInvoiceId: true,
Donasi: {
select: {
id: true,
title: true,
target: true,
progres: true,
authorId: true,
imagesId: true,
publishTime: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
imageDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
},
},
},
});
return data;
}

View File

@@ -0,0 +1,17 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getNamaBank(bankId: string) {
const data = await prisma.donasiMaster_Bank.findFirst({
where: {
id: bankId,
},
select: {
name: true,
norek: true,
},
});
return data;
}

View File

@@ -15,7 +15,10 @@ export async function Donasi_getOneById(donasiId: string) {
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
authorId: true,
progres: true,
terkumpul: true,
imagesId: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,

View File

@@ -0,0 +1,47 @@
"use server";
import prisma from "@/app/lib/prisma";
export async function Donasi_getOneInvoiceById(invoiceId: string) {
const res = await prisma.donasi_Invoice.findFirst({
where: {
id: invoiceId,
},
select: {
id: true,
nominal: true,
donasiId: true,
donasiMaster_BankId: true,
donasiMaster_StatusInvoiceId: true,
Donasi: {
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
progres: true,
terkumpul: true,
authorId: true,
imagesId: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
}
},
DonasiMaster_Bank: true,
DonasiMaster_StatusInvoice: true,
},
});
return res
}

View File

@@ -0,0 +1,8 @@
"use server"
import prisma from "@/app/lib/prisma"
export async function Donasi_getMasterBank() {
const data = await prisma.donasiMaster_Bank.findMany({})
return data
}

View File

@@ -4,6 +4,13 @@ import prisma from "@/app/lib/prisma";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
/**
*
* @param donasiId | string
* @param statusId | string | 1 - 4
* @tutorial id_and_statusName | Publish "1", Review "2, Draft "3", Reject "4"
* @returns ganti status donasi
*/
export async function Donasi_funGantiStatus(
donasiId: string,
statusId: string

View File

@@ -0,0 +1,28 @@
"use server";
import prisma from "@/app/lib/prisma";
import { revalidatePath } from "next/cache";
export async function Donasi_funUpdateStatusInvoice(
invoiceId: string,
statusId: string
) {
// console.log(invoiceId, "invoice Id");
// console.log(status, "status");
const data = await prisma.donasi_Invoice.update({
where: {
id: invoiceId
},
data: {
donasiMaster_StatusInvoiceId: statusId
}
})
if(!data) return {status: 400, message: "Gagal memperbarui status transaksi"}
revalidatePath("dev/admin/donasi/detail/publish")
return {
status: 200,
message: "Berhasil memperbarui status transaksi",
}
}