Fitur transaksi
# feat: - Load data sesuai dengan status - Countdown setelah pembelian ### issue: menyambungkan ke xendit
This commit is contained in:
33
src/app_modules/investasi/fun/fun_cek_sisa_waktu.ts
Normal file
33
src/app_modules/investasi/fun/fun_cek_sisa_waktu.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
"use server";
|
||||
|
||||
import moment from "moment";
|
||||
import { MODEL_Transaksi_Investasi } from "../model/model_investasi";
|
||||
import funGantiStatusTransaksi_Investasi from "./fun_ganti_status_transaksi";
|
||||
|
||||
export default async function funCekSisaWaktuTransaksiInvestasi(
|
||||
data: MODEL_Transaksi_Investasi[]
|
||||
) {
|
||||
const listData = data;
|
||||
|
||||
|
||||
for (let e of listData) {
|
||||
cekWaktu(e)
|
||||
}
|
||||
|
||||
async function cekWaktu(data: MODEL_Transaksi_Investasi) {
|
||||
// console.log(data)
|
||||
const selesai = moment(data.createdAt).add(1, "days").format();
|
||||
// let durasi = moment.duration(moment(selesai).diff(new Date()));
|
||||
const skrng = moment(new Date());
|
||||
const sisaWaktu = moment(selesai).diff(skrng);
|
||||
|
||||
|
||||
if (sisaWaktu <= 0) {
|
||||
await funGantiStatusTransaksi_Investasi(data.id, "4")
|
||||
.then((res) => {
|
||||
// console.log(res.data)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
30
src/app_modules/investasi/fun/fun_countdown_investasi.ts
Normal file
30
src/app_modules/investasi/fun/fun_countdown_investasi.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import moment from "moment";
|
||||
import funGantiStatusTransaksi_Investasi from "./fun_ganti_status_transaksi";
|
||||
import { MODEL_Transaksi_Investasi } from "../model/model_investasi";
|
||||
|
||||
export default async function funCountDown(data: MODEL_Transaksi_Investasi) {
|
||||
// const res = await prisma.transaksiInvestasi.findMany({
|
||||
// where: {
|
||||
// id: data.id,
|
||||
// },
|
||||
// });
|
||||
|
||||
// if (!res) return { status: 400 };
|
||||
|
||||
// const selesai = moment(data.createdAt).add(1, "days").format();
|
||||
// let durasi = moment.duration(moment(selesai).diff(new Date()));
|
||||
// const timer = setInterval(() => {
|
||||
// durasi = moment.duration(+durasi - 1000, "milliseconds");
|
||||
// // console.log(d.days(), "=", d.hours(), d.minutes(), d.seconds());
|
||||
// if (durasi.hours() <= 0 && durasi.minutes() <= 0 && durasi.seconds() <= 0) {
|
||||
// funGantiStatusTransaksi_Investasi(data.id, "4");
|
||||
// clearInterval(timer);
|
||||
// return {
|
||||
// status: 200,
|
||||
// };
|
||||
// }
|
||||
// }, 1000);
|
||||
}
|
||||
38
src/app_modules/investasi/fun/fun_ganti_status_transaksi.ts
Normal file
38
src/app_modules/investasi/fun/fun_ganti_status_transaksi.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
|
||||
import { revalidatePath } from "next/cache";
|
||||
|
||||
export default async function funGantiStatusTransaksi_Investasi(
|
||||
transaksiId: string,
|
||||
status: string
|
||||
) {
|
||||
// console.log(transaksiId, "hehe", status)
|
||||
const data = await prisma.transaksiInvestasi.update({
|
||||
where: {
|
||||
id: transaksiId,
|
||||
},
|
||||
data: {
|
||||
masterStatusTransaksiInvestasiId: status,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
namaBank: true,
|
||||
totalTransfer: true,
|
||||
Investasi: true,
|
||||
MasterStatusTransaksiInvestasi: true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
if (!data) return { status: 400, message: "Status Gagal Diubah" };
|
||||
|
||||
revalidatePath(RouterInvestasi.main_transaksi)
|
||||
return {
|
||||
data: data,
|
||||
status: 200,
|
||||
message: "Status Diubah",
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
"use server";
|
||||
|
||||
import prisma from "@/app/lib/prisma";
|
||||
import moment from "moment";
|
||||
import { MODEL_Transaksi_Investasi } from "../model/model_investasi";
|
||||
import funGantiStatusTransaksi_Investasi from "./fun_ganti_status_transaksi";
|
||||
|
||||
export default async function getListAllTransaksiById_Investasi(
|
||||
userId: string
|
||||
) {
|
||||
const data = await prisma.transaksiInvestasi.findMany({
|
||||
orderBy: {
|
||||
updatedAt: "desc",
|
||||
},
|
||||
where: {
|
||||
authorId: userId,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
namaBank: true,
|
||||
nomorRekening: true,
|
||||
totalTransfer: true,
|
||||
lembarTerbeli: true,
|
||||
active: true,
|
||||
createdAt: true,
|
||||
updatedAt: true,
|
||||
authorId: true,
|
||||
masterStatusTransaksiInvestasiId: true,
|
||||
MasterStatusTransaksiInvestasi: true,
|
||||
investasiId: true,
|
||||
Investasi: true,
|
||||
// Author:true,
|
||||
},
|
||||
});
|
||||
|
||||
for (let e of data) {
|
||||
cekWaktu(e as any)
|
||||
}
|
||||
|
||||
async function cekWaktu(data: MODEL_Transaksi_Investasi) {
|
||||
// console.log(data)
|
||||
const selesai = moment(data.createdAt).add(1, "days").format();
|
||||
const skrng = moment(new Date());
|
||||
const sisaWaktu = moment(selesai).diff(skrng);
|
||||
|
||||
if (sisaWaktu <= 0) {
|
||||
await funGantiStatusTransaksi_Investasi(data.id, "4")
|
||||
}
|
||||
}
|
||||
|
||||
const dataBaru = await prisma.transaksiInvestasi.findMany({
|
||||
orderBy: {
|
||||
createdAt: "desc",
|
||||
},
|
||||
where: {
|
||||
authorId: userId,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
namaBank: true,
|
||||
nomorRekening: true,
|
||||
totalTransfer: true,
|
||||
lembarTerbeli: true,
|
||||
active: true,
|
||||
createdAt: true,
|
||||
updatedAt: true,
|
||||
authorId: true,
|
||||
masterStatusTransaksiInvestasiId: true,
|
||||
MasterStatusTransaksiInvestasi: true,
|
||||
investasiId: true,
|
||||
Investasi: true,
|
||||
// Author:true,
|
||||
},
|
||||
});
|
||||
|
||||
return dataBaru
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import prisma from "@/app/lib/prisma"
|
||||
|
||||
export default async function getTransaksiInvestasi(id: string) {
|
||||
export default async function getTransaksiByIdInvestasi(id: string) {
|
||||
const data = await prisma.transaksiInvestasi.findUnique({
|
||||
where: {
|
||||
id: id
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
"use server"
|
||||
|
||||
import prisma from "@/app/lib/prisma"
|
||||
|
||||
export default async function getMaster_StatusTransaksiInvestasi() {
|
||||
const data = await prisma.masterStatusTransaksiInvestasi.findMany()
|
||||
return data
|
||||
}
|
||||
Reference in New Issue
Block a user