diff --git a/src/app/dev/investasi/main/transaksi/page.tsx b/src/app/dev/investasi/main/transaksi/page.tsx
index a5496acb..9827d215 100644
--- a/src/app/dev/investasi/main/transaksi/page.tsx
+++ b/src/app/dev/investasi/main/transaksi/page.tsx
@@ -1,9 +1,32 @@
import { TransaksiInvestasi } from "@/app_modules/investasi";
+import getListAllTransaksiById_Investasi from "@/app_modules/investasi/fun/get_list_all_transaksi_by_id";
+import getMaster_StatusTransaksiInvestasi from "@/app_modules/investasi/fun/master/get_status_transaksi";
+
+import fs from "fs";
+import yaml from "yaml";
+import { unsealData } from "iron-session";
+import { cookies } from "next/headers";
+import funCountDown from "@/app_modules/investasi/fun/fun_countdown_investasi";
+import funCekSisaWaktuTransaksiInvestasi from "@/app_modules/investasi/fun/fun_cek_sisa_waktu";
+const config = yaml.parse(fs.readFileSync("config.yaml").toString());
export default async function Page() {
+ const c = cookies().get("ssn");
+ const tkn = JSON.parse(
+ await unsealData(c?.value as string, {
+ password: config.server.password,
+ })
+ );
+ const userId = tkn.id;
+ const statusTransaksi = await getMaster_StatusTransaksiInvestasi();
+ const listTransaksi = await getListAllTransaksiById_Investasi(userId);
+
return (
<>
-
+
>
);
}
diff --git a/src/app/dev/investasi/status_transaksi/gagal/layout.tsx b/src/app/dev/investasi/status_transaksi/gagal/[id]/layout.tsx
similarity index 100%
rename from src/app/dev/investasi/status_transaksi/gagal/layout.tsx
rename to src/app/dev/investasi/status_transaksi/gagal/[id]/layout.tsx
diff --git a/src/app/dev/investasi/status_transaksi/gagal/[id]/page.tsx b/src/app/dev/investasi/status_transaksi/gagal/[id]/page.tsx
new file mode 100644
index 00000000..fb6362ad
--- /dev/null
+++ b/src/app/dev/investasi/status_transaksi/gagal/[id]/page.tsx
@@ -0,0 +1,14 @@
+import { StatusTransaksiInvestasi_Gagal } from "@/app_modules/investasi";
+import getTransaksiByIdInvestasi from "@/app_modules/investasi/fun/get_transaksi_investasi";
+
+export default async function Page({ params }: { params: { id: string } }) {
+ // console.log(params.id)
+ const dataTransaksi = await getTransaksiByIdInvestasi(params.id);
+// console.log(dataTransaksi);
+
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/src/app/dev/investasi/status_transaksi/gagal/page.tsx b/src/app/dev/investasi/status_transaksi/gagal/page.tsx
deleted file mode 100644
index 184b345c..00000000
--- a/src/app/dev/investasi/status_transaksi/gagal/page.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import { StatusTransaksiInvestasi_Gagal } from "@/app_modules/investasi";
-
-export default async function Page() {
- return <>
-
- >
-}
\ No newline at end of file
diff --git a/src/app/dev/investasi/transfer/[id]/page.tsx b/src/app/dev/investasi/transfer/[id]/page.tsx
index bafc300c..7c89ddce 100644
--- a/src/app/dev/investasi/transfer/[id]/page.tsx
+++ b/src/app/dev/investasi/transfer/[id]/page.tsx
@@ -1,11 +1,17 @@
import { TransferInvestasi } from "@/app_modules/investasi";
+import funCountDown from "@/app_modules/investasi/fun/fun_countdown_investasi";
import getOneInvestasiById from "@/app_modules/investasi/fun/get_one_investasi_by_id";
-import getTransaksiInvestasi from "@/app_modules/investasi/fun/get_transaksi_investasi";
+import getTransaksiByIdInvestasi from "@/app_modules/investasi/fun/get_transaksi_investasi";
export default async function Page({ params }: { params: { id: string } }) {
- const dataTransaksi = await getTransaksiInvestasi(params.id);
+ const dataTransaksi = await getTransaksiByIdInvestasi(params.id);
+ // const cd = await funCountDown(params.id)
+ // console.log(dataTransaksi)
+ // const cd = await funCountDown("" + dataTransaksi?.id);
- return <>
-
- >;
+ return (
+ <>
+
+ >
+ );
}
diff --git a/src/app/lib/router_hipmi/router_investasi.ts b/src/app/lib/router_hipmi/router_investasi.ts
index 8706301e..6f14ad03 100644
--- a/src/app/lib/router_hipmi/router_investasi.ts
+++ b/src/app/lib/router_hipmi/router_investasi.ts
@@ -18,7 +18,7 @@ export const RouterInvestasi = {
// proses beli saham
proses_investasi: "/dev/investasi/proses_investasi/",
status_transaksi: "/dev/investasi/status_transaksi/berhasil",
- status_transaksi_gagal: "/dev/investasi/status_transaksi/gagal",
+ status_transaksi_gagal: "/dev/investasi/status_transaksi/gagal/",
metode_transfer: "/dev/investasi/metode_transfer/",
// edit //
diff --git a/src/app_modules/investasi/fun/fun_cek_sisa_waktu.ts b/src/app_modules/investasi/fun/fun_cek_sisa_waktu.ts
new file mode 100644
index 00000000..5a355019
--- /dev/null
+++ b/src/app_modules/investasi/fun/fun_cek_sisa_waktu.ts
@@ -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)
+ });
+ }
+ }
+
+}
diff --git a/src/app_modules/investasi/fun/fun_countdown_investasi.ts b/src/app_modules/investasi/fun/fun_countdown_investasi.ts
new file mode 100644
index 00000000..b83b62bb
--- /dev/null
+++ b/src/app_modules/investasi/fun/fun_countdown_investasi.ts
@@ -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);
+}
diff --git a/src/app_modules/investasi/fun/fun_ganti_status_transaksi.ts b/src/app_modules/investasi/fun/fun_ganti_status_transaksi.ts
new file mode 100644
index 00000000..26834d42
--- /dev/null
+++ b/src/app_modules/investasi/fun/fun_ganti_status_transaksi.ts
@@ -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",
+ };
+}
diff --git a/src/app_modules/investasi/fun/get_list_all_transaksi_by_id.ts b/src/app_modules/investasi/fun/get_list_all_transaksi_by_id.ts
new file mode 100644
index 00000000..ad748c67
--- /dev/null
+++ b/src/app_modules/investasi/fun/get_list_all_transaksi_by_id.ts
@@ -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
+}
diff --git a/src/app_modules/investasi/fun/get_transaksi_investasi.ts b/src/app_modules/investasi/fun/get_transaksi_investasi.ts
index be63b646..24f47ff1 100644
--- a/src/app_modules/investasi/fun/get_transaksi_investasi.ts
+++ b/src/app_modules/investasi/fun/get_transaksi_investasi.ts
@@ -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
diff --git a/src/app_modules/investasi/fun/master/get_status_transaksi.ts b/src/app_modules/investasi/fun/master/get_status_transaksi.ts
new file mode 100644
index 00000000..2f59b37f
--- /dev/null
+++ b/src/app_modules/investasi/fun/master/get_status_transaksi.ts
@@ -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
+}
\ No newline at end of file
diff --git a/src/app_modules/investasi/index.ts b/src/app_modules/investasi/index.ts
index 11ef934a..70da1e0e 100644
--- a/src/app_modules/investasi/index.ts
+++ b/src/app_modules/investasi/index.ts
@@ -55,7 +55,7 @@ import DetailPublishInvestasi from "./detail_portofolio/publish/page";
import LayoutDetailPublishInvestasi from "./detail_portofolio/publish/layout";
import DetailRejectInvestasi from "./detail_portofolio/reject/page";
import LayoutDetailRejectInvestasi from "./detail_portofolio/reject/layout";
-import TransaksiInvestasi from "./transaksi/page";
+import TransaksiInvestasi from "./transaksi/view";
import LayoutTransaksiInvestasi from "./transaksi/layout";
import StatusTransaksiInvestasi_Gagal from "./status_transaksi/gagal/view";
import LayoutStatusTransaksiInvestasi_Gagal from "./status_transaksi/gagal/layout";
diff --git a/src/app_modules/investasi/metode_transfer/view.tsx b/src/app_modules/investasi/metode_transfer/view.tsx
index a188601e..0f1278dc 100644
--- a/src/app_modules/investasi/metode_transfer/view.tsx
+++ b/src/app_modules/investasi/metode_transfer/view.tsx
@@ -77,7 +77,7 @@ export default function MetodeTransferInvestasi({
return (
<>
-
{JSON.stringify(transferValue, null, 2)}
+ {/* {JSON.stringify(transferValue, null, 2)} */}
{/* Box judul */}
{investasi.title}
diff --git a/src/app_modules/investasi/model/model_investasi.ts b/src/app_modules/investasi/model/model_investasi.ts
index e731682a..c6896e15 100644
--- a/src/app_modules/investasi/model/model_investasi.ts
+++ b/src/app_modules/investasi/model/model_investasi.ts
@@ -6,16 +6,16 @@ export interface MODEL_Investasi {
targetDana: string;
hargaLembar: string;
totalLembar: string;
- sisaLembar: string,
- lembarTerbeli: string
+ sisaLembar: string;
+ lembarTerbeli: string;
roi: string;
active: true;
createdAt: Date;
updatedAt: Date;
authorId: string;
imagesId: string;
- catatan: string
- progress: string,
+ catatan: string;
+ progress: string;
MasterStatusInvestasi: MODEL_Status_investasi;
BeritaInvestasi: Model_Berita_Investasi[];
DokumenInvestasi: Model_Dokumen_Investasi[];
@@ -23,19 +23,25 @@ export interface MODEL_Investasi {
MasterPembagianDeviden: Model_All_Master;
MasterPencarianInvestor: Model_All_Master;
MasterPeriodeDeviden: Model_All_Master;
+ masterPeriodeDevidenId: string;
+ masterPembagianDevidenId: string;
+ masterPencarianInvestorId: string;
}
export interface MODEL_Transaksi_Investasi {
id: string;
- lembarTerbeli: string,
- totalTransfer: string,
- namaBank: string,
- nomorRekening: string
- active: true;
+ namaBank: string;
+ nomorRekening: string;
+ totalTransfer: string;
+ lembarTerbeli: string;
+ active: boolean;
createdAt: Date;
updatedAt: Date;
- Author: MODEL_User_profile,
- Investasi: MODEL_Investasi
+ investasiId: string;
+ authorId: string;
+ masterStatusTransaksiInvestasiId: string;
+ MasterStatusTransaksiInvestasi: Model_Status_Transaksi_Investasi;
+ Investasi: MODEL_Investasi;
}
export interface MODEL_Status_investasi {
@@ -61,29 +67,38 @@ export interface Model_Berita_Investasi {
}
export interface Model_Prospektus_Investasi {
- id: string
- url: string
+ id: string;
+ url: string;
active: boolean;
- createdAt: Date
- updatedAt: Date
- investasiId: string
+ createdAt: Date;
+ updatedAt: Date;
+ investasiId: string;
}
export interface Model_Dokumen_Investasi {
- id: string
- title: string
- url: string
+ id: string;
+ title: string;
+ url: string;
active: boolean;
- createdAt: Date
- updatedAt: Date
- investasiId: string
+ createdAt: Date;
+ updatedAt: Date;
+ investasiId: string;
}
export interface Model_Nama_Bank {
- id: string,
- name: string,
- norek: string,
- active: boolean,
- createdAt: Date,
- updatedAt: Date
+ id: string;
+ name: string;
+ norek: string;
+ active: boolean;
+ createdAt: Date;
+ updatedAt: Date;
+}
+
+export interface Model_Status_Transaksi_Investasi {
+ id: string;
+ name: string;
+ color: string;
+ active: boolean;
+ createdAt: Date;
+ updatedAt: Date;
}
diff --git a/src/app_modules/investasi/proses_investasi/view.tsx b/src/app_modules/investasi/proses_investasi/view.tsx
index e82923b0..307ed783 100644
--- a/src/app_modules/investasi/proses_investasi/view.tsx
+++ b/src/app_modules/investasi/proses_investasi/view.tsx
@@ -60,7 +60,7 @@ export default function ProsesInvestasi({
return (
<>
- {JSON.stringify(transferValue, null, 2)}
+ {/* {JSON.stringify(transferValue, null, 2)} */}
{/* Sisa Lembar Saham */}
diff --git a/src/app_modules/investasi/status_transaksi/gagal/layout.tsx b/src/app_modules/investasi/status_transaksi/gagal/layout.tsx
index 57ccfeaa..b93873df 100644
--- a/src/app_modules/investasi/status_transaksi/gagal/layout.tsx
+++ b/src/app_modules/investasi/status_transaksi/gagal/layout.tsx
@@ -1,57 +1,67 @@
-"use client"
+"use client";
import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
import { Warna } from "@/app/lib/warna";
-import { AppShell, Header, Group, CloseButton, ActionIcon, Footer, Center, Button, Text } from "@mantine/core";
+import {
+ AppShell,
+ Header,
+ Group,
+ CloseButton,
+ ActionIcon,
+ Footer,
+ Center,
+ Button,
+ Text,
+} from "@mantine/core";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { gs_investasiFooter } from "../../g_state";
-export default function LayoutStatusTransaksiInvestasi_Gagal( {
- children,
- }: {
- children: React.ReactNode;
- }) {
- const router = useRouter();
- const [hotMenu, setHotMenu] = useAtom(gs_investasiFooter);
-
- return (
- <>
-
-
- {
- router.push(RouterInvestasi.main_transaksi);
- setHotMenu(3);
- }}
- />
- Status Transaksi
-
-
-
- }
- footer={
-
- }
- >
- {children}
-
- >
- );
- }
\ No newline at end of file
+export default function LayoutStatusTransaksiInvestasi_Gagal({
+ children,
+}: {
+ children: React.ReactNode;
+}) {
+ const router = useRouter();
+ const [hotMenu, setHotMenu] = useAtom(gs_investasiFooter);
+
+ return (
+ <>
+
+
+ {
+ router.push(RouterInvestasi.main_transaksi);
+ setHotMenu(3);
+ }}
+ />
+ Status Transaksi
+
+
+
+ }
+ footer={
+
+ }
+ >
+ {children}
+
+ >
+ );
+}
diff --git a/src/app_modules/investasi/status_transaksi/gagal/view.tsx b/src/app_modules/investasi/status_transaksi/gagal/view.tsx
index 620a8a7b..1d1dcf7a 100644
--- a/src/app_modules/investasi/status_transaksi/gagal/view.tsx
+++ b/src/app_modules/investasi/status_transaksi/gagal/view.tsx
@@ -1,22 +1,27 @@
-"use client"
+"use client";
-import { Paper, Stack, Center, Flex, Title, Divider, Group, Text } from "@mantine/core";
+import {
+ Paper,
+ Stack,
+ Center,
+ Flex,
+ Title,
+ Divider,
+ Group,
+ Text,
+} from "@mantine/core";
import { useShallowEffect } from "@mantine/hooks";
import { IconAlertHexagon } from "@tabler/icons-react";
import moment from "moment";
import { useState } from "react";
+import { MODEL_Transaksi_Investasi } from "../../model/model_investasi";
-export default function StatusTransaksiInvestasi_Gagal(){
- const [tgl, setTgl] = useState(null);
-
- useShallowEffect(() => {
- onDate();
- }, []);
-
- async function onDate() {
- const d = Date.now();
- setTgl(moment(d).format("LLL"));
- }
+export default function StatusTransaksiInvestasi_Gagal({
+ dataTransaksi,
+}: {
+ dataTransaksi: MODEL_Transaksi_Investasi;
+}) {
+ const [transaksi, setTransaksi] = useState(dataTransaksi)
return (
<>
@@ -26,37 +31,39 @@ export default function StatusTransaksiInvestasi_Gagal(){
Transaksi Gagal
- {tgl}
+ {moment(transaksi.createdAt).format('lll')}
-
-
-
-
-
- Rp. 300.000
-
-
+
+
+
+
+ {/* Rp. {transaksi.totalTransfer} */}
+
- Penerima
- Nama Penerima
+ Nama Investasi
+ {transaksi.Investasi.title}
- Bank Penerima
- Nama Bank(BNI, BSI, dll)
+ Bank Tujuan
+ {transaksi.namaBank}
- Nomor Rekening
- 0000000000000
+ Jumlah Transfer
+ Rp. {transaksi.totalTransfer}
+
+
+ Jumlah Lembar
+ {transaksi.lembarTerbeli}
>
);
-}
\ No newline at end of file
+}
diff --git a/src/app_modules/investasi/transaksi/page.tsx b/src/app_modules/investasi/transaksi/page.tsx
deleted file mode 100644
index c4e94f28..00000000
--- a/src/app_modules/investasi/transaksi/page.tsx
+++ /dev/null
@@ -1,127 +0,0 @@
-"use client";
-
-import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
-import { Badge, Group, Paper, Stack, Text, Title } from "@mantine/core";
-import { useRouter } from "next/navigation";
-import toast from "react-simple-toasts";
-
-export default function TransaksiInvestasi() {
- const router = useRouter();
- const listStatusTransaksi = [
- { id: 1, name: "Berhasil" },
- { id: 2, name: "Menunggu" },
- { id: 3, name: "Proses" },
- { id: 4, name: "Batal" },
- ];
-
- const dataDummy = [
- {
- id: 1,
- name: "Judul Investasi",
- status: { id: 1, name: "Berhasil" },
- },
- {
- id: 2,
- name: "Judul Investasi",
- status: { id: 3, name: "Proses" },
- },
- {
- id: 3,
- name: "Judul Investasi",
- status: { id: 2, name: "Menunggu" },
- },
- {
- id: 4,
- name: "Judul Investasi",
- status: { id: 4, name: "Batal" },
- },
- {
- id: 5,
- name: "Judul Investasi",
- status: { id: 1, name: "Berhasil" },
- },
- ];
-
- async function onKlik(id: any) {
- if (id === 1) {
- return router.push(RouterInvestasi.status_transaksi);
- } else {
- if (id === 2) {
- return router.push(RouterInvestasi.transfer);
- } else {
- if (id === 3) {
- return router.push(RouterInvestasi.dialog_transaksi)
- } else {
- return router.push(RouterInvestasi.status_transaksi_gagal)
- }
- }
- }
- }
-
- return (
- <>
-
- {dataDummy.map((e) => (
- onKlik(e.status.id)}
- >
-
- {e.name}
- Rp. 100.000
-
-
-
- Nama Bank
- 10 Oktober 2023
-
- {(() => {
- if (e.status.id === 1) {
- return (
- <>
-
- Berhasil
-
- >
- );
- } else {
- if (e.status.id === 2) {
- return (
- <>
-
- Menunggu
-
- >
- );
- } else {
- if (e.status.id === 3) {
- return (
- <>
- <>
-
- Proses
-
- >
- >
- );
- } else {
- return (
- <>
-
- Dibatalkan
-
- >
- );
- }
- }
- }
- })()}
-
-
- ))}
-
- >
- );
-}
diff --git a/src/app_modules/investasi/transaksi/view.tsx b/src/app_modules/investasi/transaksi/view.tsx
new file mode 100644
index 00000000..980e730e
--- /dev/null
+++ b/src/app_modules/investasi/transaksi/view.tsx
@@ -0,0 +1,129 @@
+"use client";
+
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import { Badge, Group, Paper, Stack, Text, Title } from "@mantine/core";
+import { useRouter } from "next/navigation";
+import toast from "react-simple-toasts";
+import {
+ MODEL_Transaksi_Investasi,
+ Model_Status_Transaksi_Investasi,
+} from "../model/model_investasi";
+import { useState } from "react";
+import moment from "moment";
+import funCountDown from "../fun/fun_countdown_investasi";
+import funGantiStatusTransaksi_Investasi from "../fun/fun_ganti_status_transaksi";
+import { useInterval, useShallowEffect } from "@mantine/hooks";
+
+export default function TransaksiInvestasi({
+ statusTransaksi,
+ listTransaksi,
+}: {
+ statusTransaksi: Model_Status_Transaksi_Investasi[];
+ listTransaksi: MODEL_Transaksi_Investasi[];
+}) {
+ const router = useRouter();
+ const [status, setStatus] = useState(statusTransaksi);
+ const [transaksi, setTransaksi] = useState(listTransaksi);
+
+
+ async function onKlik(statusId: string, transaksiId: string) {
+ // console.log(id)
+ if (statusId === "1") {
+ return router.push(RouterInvestasi.transfer + transaksiId);
+ } else {
+ if (statusId === "2") {
+ return router.push(RouterInvestasi.transfer);
+ } else {
+ if (statusId === "3") {
+ return router.push(RouterInvestasi.dialog_transaksi);
+ } else {
+ return router.push(
+ RouterInvestasi.status_transaksi_gagal + transaksiId
+ );
+ }
+ }
+ }
+ }
+
+
+
+ return (
+ <>
+
+ {transaksi.map((e) => (
+ onKlik(e.masterStatusTransaksiInvestasiId, e.id)}
+ >
+
+ {e.Investasi.title}
+ Rp.{e.totalTransfer}
+
+
+
+ Bank {e.namaBank}
+ {moment(e.createdAt).format("ll")}
+
+ {(() => {
+ if (e.masterStatusTransaksiInvestasiId === "1") {
+ return (
+ <>
+
+ {e.MasterStatusTransaksiInvestasi.name}
+
+ >
+ );
+ } else {
+ if (e.masterStatusTransaksiInvestasiId === "2") {
+ return (
+ <>
+
+ {e.MasterStatusTransaksiInvestasi.name}
+
+ >
+ );
+ } else {
+ if (e.masterStatusTransaksiInvestasiId === "3") {
+ return (
+ <>
+ <>
+
+ {e.MasterStatusTransaksiInvestasi.name}
+
+ >
+ >
+ );
+ } else {
+ return (
+ <>
+
+ {e.MasterStatusTransaksiInvestasi.name}
+
+ >
+ );
+ }
+ }
+ }
+ })()}
+
+
+ ))}
+
+ {/* {JSON.stringify(transaksi, null, 2)} */}
+ >
+ );
+}
diff --git a/src/app_modules/investasi/transfer/view.tsx b/src/app_modules/investasi/transfer/view.tsx
index be9a8f5a..0955a4c1 100644
--- a/src/app_modules/investasi/transfer/view.tsx
+++ b/src/app_modules/investasi/transfer/view.tsx
@@ -19,10 +19,10 @@ import {
Text,
Title,
} from "@mantine/core";
-import { useShallowEffect } from "@mantine/hooks";
+import { useInterval, useShallowEffect } from "@mantine/hooks";
import { IconAlertTriangle } from "@tabler/icons-react";
import moment from "moment";
-import { useRouter } from "next/navigation";
+import { redirect, useRouter } from "next/navigation";
import { useState } from "react";
import Countdown from "react-countdown";
@@ -33,6 +33,7 @@ import {
import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
import { useAtom } from "jotai";
import { gs_TransferValue, gs_investasiFooter } from "../g_state";
+import funGantiStatusTransaksi_Investasi from "../fun/fun_ganti_status_transaksi";
export default function TransferInvestasi({
dataTransaksi,
@@ -41,13 +42,11 @@ export default function TransferInvestasi({
}) {
const router = useRouter();
const [transaksi, setTransaksi] = useState(dataTransaksi);
- const [hotMenu, setHotMenu] = useAtom(gs_investasiFooter);
- const [countDown, setCountDown] = useState({
- jam: "",
- menit: "",
- detik: "",
+ const [countDown, setCountDown] = useState({
+ jam: null,
+ menit: null,
+ detik: null,
});
- const [transferValue, setTransferValue] = useAtom(gs_TransferValue);
// useShallowEffect(() => {
// const inter = apa_kabar("2023-11-18");
@@ -63,36 +62,45 @@ export default function TransferInvestasi({
// return inter;
// }
- useShallowEffect(() => {
- const mulai = moment(transaksi.createdAt).format();
- const selesai = moment(transaksi.createdAt).add(1, "days").format();
- const inter = funCountDown(mulai as any, selesai as any);
+ // useShallowEffect(() => {
+ // const mulai = moment(transaksi.createdAt).format();
+ // const selesai = moment(transaksi.createdAt).add(1, "days").format();
+ // const timer = funCountDown(mulai as any, selesai as any);
- return () => clearInterval(inter);
- }, []);
+ // return () => clearInterval(timer);
+ // }, []);
- function funCountDown(mulai: Date, selesai: Date) {
- // console.log(selesai)
- let d = moment.duration(moment(selesai).diff(new Date()));
- const inter = setInterval(() => {
- d = moment.duration(+d - 1000, "milliseconds");
- // console.log(d.hours(), d.minutes(), d.seconds())
-
- setCountDown({
- ...countDown,
- jam: "" + d.hours(),
- menit: "" + d.minutes(),
- detik: "" + d.seconds(),
+ // functionbaru ==========================//
+ const selesai = moment(transaksi.createdAt).add(1, "days").format();
+ let durasi = moment.duration(moment(selesai).diff(new Date()));
+ const interval = useInterval(() => {
+ durasi = moment.duration(+durasi - 1000, "milliseconds");
+ if (durasi.hours() <= 0 && durasi.minutes() <= 0 && durasi.seconds() <= 0) {
+ funGantiStatusTransaksi_Investasi(transaksi.id, "4").then((res) => {
+ if (res.status === 200) {
+ router.push(
+ RouterInvestasi.status_transaksi_gagal + `${transaksi.id}`
+ );
+ interval.stop();
+ }
});
- }, 1000);
+ }
+ setCountDown({
+ ...countDown,
+ jam: durasi.hours(),
+ menit: durasi.minutes(),
+ detik: durasi.seconds(),
+ });
+ }, 1000);
- return inter;
- }
+ useShallowEffect(() => {
+ interval.start();
+ }, []);
return (
<>
- {/* {JSON.stringify(transferValue, null, 2)}
- {JSON.stringify(transaksi, null,2)} */}
+ {/* {JSON.stringify(transaksi, null,2)} */}
+ {/* {countDown.jam} */}
Mohon transfer untuk diteruskan ke :
@@ -106,18 +114,18 @@ export default function TransferInvestasi({
- {moment().add(1, "days").calendar()}
+ {moment(transaksi.createdAt).format("lll")}
-
+
- {countDown.jam === "0" &&
- countDown.menit === "0" &&
- countDown.detik === "0" ? (
-
- Waktu habis
-
+ {countDown.jam <= 0 &&
+ countDown.menit <= 0 &&
+ countDown.detik <= 0 ? (
+
+ Waktu Habis
+
) : (
{countDown.jam}:{countDown.menit}:{countDown.detik}
@@ -220,7 +228,7 @@ export default function TransferInvestasi({
bg={Warna.biru}
onClick={() => {
router.push(RouterInvestasi.dialog_transaksi);
- setHotMenu(1);
+ // setHotMenu(1);
// router.push(RouterInvestasi.status_transaksi);
}}
>