diff --git a/coba.sh b/coba.sh new file mode 100644 index 00000000..1dcb1341 --- /dev/null +++ b/coba.sh @@ -0,0 +1,28 @@ +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" +}' diff --git a/prisma/migrations/20231219030550_transaksi_sukses/migration.sql b/prisma/migrations/20231219030550_transaksi_sukses/migration.sql new file mode 100644 index 00000000..7d359e58 --- /dev/null +++ b/prisma/migrations/20231219030550_transaksi_sukses/migration.sql @@ -0,0 +1,257 @@ +-- CreateTable +CREATE TABLE "Katalog" ( + "id" TEXT NOT NULL, + "namaBisnis" TEXT NOT NULL, + "alamatKantor" TEXT NOT NULL, + "tlpn" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "profileId" TEXT, + "masterBidangBisnisId" TEXT NOT NULL, + + CONSTRAINT "Katalog_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterBidangBisnis" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "MasterBidangBisnis_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Investasi" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "targetDana" TEXT NOT NULL, + "hargaLembar" TEXT NOT NULL, + "totalLembar" TEXT NOT NULL, + "roi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "countDown" TIMESTAMP(3), + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "authorId" TEXT, + "catatan" TEXT, + "sisaLembar" TEXT NOT NULL, + "lembarTerbeli" TEXT DEFAULT '0', + "progress" TEXT DEFAULT '0', + "masterPeriodeDevidenId" TEXT, + "masterPembagianDevidenId" TEXT, + "masterPencarianInvestorId" TEXT, + "imagesId" TEXT, + "masterStatusInvestasiId" TEXT DEFAULT '2', + "masterProgresInvestasiId" TEXT, + + CONSTRAINT "Investasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterPencarianInvestor" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "MasterPencarianInvestor_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterPeriodeDeviden" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "MasterPeriodeDeviden_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterPembagianDeviden" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "MasterPembagianDeviden_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterStatusInvestasi" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "color" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "MasterStatusInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ProspektusInvestasi" ( + "id" TEXT NOT NULL, + "url" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "investasiId" TEXT, + + CONSTRAINT "ProspektusInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DokumenInvestasi" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "url" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "investasiId" TEXT, + + CONSTRAINT "DokumenInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "BeritaInvestasi" ( + "id" TEXT NOT NULL, + "title" TEXT NOT NULL, + "deskripsi" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "imagesId" TEXT, + "investasiId" TEXT NOT NULL, + + CONSTRAINT "BeritaInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterBank" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "norek" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "MasterBank_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterProgresInvestasi" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "MasterProgresInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "TransaksiInvestasi" ( + "id" TEXT NOT NULL, + "investasiId" TEXT NOT NULL, + "authorId" TEXT NOT NULL, + "namaBank" TEXT, + "nomorRekening" TEXT, + "token" TEXT, + "redirect_url" TEXT, + "quantity" TEXT NOT NULL, + "price" TEXT NOT NULL, + "gross_amount" TEXT NOT NULL, + "merchant_name" TEXT NOT NULL, + "status_code" TEXT, + "status_message" TEXT, + "transaction_id" TEXT, + "order_id" TEXT, + "payment_type" TEXT, + "transaction_time" TEXT, + "transaction_status" TEXT, + "fraud_status" TEXT, + "pdf_url" TEXT, + "finish_redirect_url" TEXT, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "masterStatusTransaksiInvestasiId" TEXT DEFAULT '1', + + CONSTRAINT "TransaksiInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "MasterStatusTransaksiInvestasi" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "color" TEXT, + "active" BOOLEAN NOT NULL DEFAULT true, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "MasterStatusTransaksiInvestasi_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Investasi_imagesId_key" ON "Investasi"("imagesId"); + +-- CreateIndex +CREATE UNIQUE INDEX "ProspektusInvestasi_investasiId_key" ON "ProspektusInvestasi"("investasiId"); + +-- AddForeignKey +ALTER TABLE "Katalog" ADD CONSTRAINT "Katalog_profileId_fkey" FOREIGN KEY ("profileId") REFERENCES "Profile"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Katalog" ADD CONSTRAINT "Katalog_masterBidangBisnisId_fkey" FOREIGN KEY ("masterBidangBisnisId") REFERENCES "MasterBidangBisnis"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_masterPeriodeDevidenId_fkey" FOREIGN KEY ("masterPeriodeDevidenId") REFERENCES "MasterPeriodeDeviden"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_masterPembagianDevidenId_fkey" FOREIGN KEY ("masterPembagianDevidenId") REFERENCES "MasterPembagianDeviden"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_masterPencarianInvestorId_fkey" FOREIGN KEY ("masterPencarianInvestorId") REFERENCES "MasterPencarianInvestor"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_masterStatusInvestasiId_fkey" FOREIGN KEY ("masterStatusInvestasiId") REFERENCES "MasterStatusInvestasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Investasi" ADD CONSTRAINT "Investasi_masterProgresInvestasiId_fkey" FOREIGN KEY ("masterProgresInvestasiId") REFERENCES "MasterProgresInvestasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ProspektusInvestasi" ADD CONSTRAINT "ProspektusInvestasi_investasiId_fkey" FOREIGN KEY ("investasiId") REFERENCES "Investasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "DokumenInvestasi" ADD CONSTRAINT "DokumenInvestasi_investasiId_fkey" FOREIGN KEY ("investasiId") REFERENCES "Investasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "BeritaInvestasi" ADD CONSTRAINT "BeritaInvestasi_imagesId_fkey" FOREIGN KEY ("imagesId") REFERENCES "Images"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "BeritaInvestasi" ADD CONSTRAINT "BeritaInvestasi_investasiId_fkey" FOREIGN KEY ("investasiId") REFERENCES "Investasi"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "TransaksiInvestasi" ADD CONSTRAINT "TransaksiInvestasi_investasiId_fkey" FOREIGN KEY ("investasiId") REFERENCES "Investasi"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "TransaksiInvestasi" ADD CONSTRAINT "TransaksiInvestasi_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "TransaksiInvestasi" ADD CONSTRAINT "TransaksiInvestasi_masterStatusTransaksiInvestasiId_fkey" FOREIGN KEY ("masterStatusTransaksiInvestasiId") REFERENCES "MasterStatusTransaksiInvestasi"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d0086387..0a4cf6c8 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -22,7 +22,6 @@ model User { UserSession UserSession? Profile Profile? Investasi Investasi[] - // Investor Investor[] TransaksiInvestasi TransaksiInvestasi[] } @@ -124,19 +123,17 @@ model Investasi { masterPembagianDevidenId String? MasterPencarianInvestor MasterPencarianInvestor? @relation(fields: [masterPencarianInvestorId], references: [id]) masterPencarianInvestorId String? - ImageInvestasi Images? @relation(fields: [imagesId], references: [id]) imagesId String? @unique - ProspektusInvestasi ProspektusInvestasi? - MasterStatusInvestasi MasterStatusInvestasi? @relation(fields: [masterStatusInvestasiId], references: [id]) masterStatusInvestasiId String? @default("2") + ProspektusInvestasi ProspektusInvestasi? BeritaInvestasi BeritaInvestasi[] DokumenInvestasi DokumenInvestasi[] - - // Investor Investor[] - TransaksiInvestasi TransaksiInvestasi[] + TransaksiInvestasi TransaksiInvestasi[] + MasterProgresInvestasi MasterProgresInvestasi? @relation(fields: [masterProgresInvestasiId], references: [id]) + masterProgresInvestasiId String? } model MasterPencarianInvestor { @@ -219,6 +216,15 @@ model MasterBank { updatedAt DateTime @updatedAt } +model MasterProgresInvestasi { + id String @id @default(cuid()) + name String + active Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + Investasi Investasi[] +} + model TransaksiInvestasi { id String @id @default(cuid()) Investasi Investasi @relation(fields: [investasiId], references: [id]) @@ -262,16 +268,3 @@ model MasterStatusTransaksiInvestasi { TransaksiInvestasi TransaksiInvestasi[] } -// model Investor { -// id String @id @default(cuid()) -// totalBeli String -// jumlahLembar String -// active Boolean @default(true) -// createdAt DateTime @default(now()) -// updatedAt DateTime @updatedAt - -// Investasi Investasi? @relation(fields: [investasiId], references: [id]) -// investasiId String? -// User User? @relation(fields: [userId], references: [id]) -// userId String? -// } diff --git a/public/file/06714b9b-5ed3-44df-b512-36110c5b91dd.pdf b/public/file/06714b9b-5ed3-44df-b512-36110c5b91dd.pdf new file mode 100644 index 00000000..92b2f709 Binary files /dev/null and b/public/file/06714b9b-5ed3-44df-b512-36110c5b91dd.pdf differ diff --git a/public/file/07ff2276-c08d-4e4e-8ab1-09bd3da614e4.pdf b/public/file/07ff2276-c08d-4e4e-8ab1-09bd3da614e4.pdf deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/file/07ff2276-c08d-4e4e-8ab1-09bd3da614e4.pdf and /dev/null differ diff --git a/public/file/6dba0c6a-af24-4838-9b49-a741431e5a06.pdf b/public/file/0bfd9239-0853-42d9-bb7f-681adbec25ae.pdf similarity index 100% rename from public/file/6dba0c6a-af24-4838-9b49-a741431e5a06.pdf rename to public/file/0bfd9239-0853-42d9-bb7f-681adbec25ae.pdf diff --git a/public/file/207b634c-1e43-41e4-9b1e-4838a3ca7b4f.pdf b/public/file/207b634c-1e43-41e4-9b1e-4838a3ca7b4f.pdf deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/file/207b634c-1e43-41e4-9b1e-4838a3ca7b4f.pdf and /dev/null differ diff --git a/public/file/2382858f-5586-40d5-a63f-aa3f4cb35bb5.pdf b/public/file/2382858f-5586-40d5-a63f-aa3f4cb35bb5.pdf deleted file mode 100644 index e90a28f2..00000000 Binary files a/public/file/2382858f-5586-40d5-a63f-aa3f4cb35bb5.pdf and /dev/null differ diff --git a/public/file/2e4f2d30-e190-40b7-9719-c114c2816786.pdf b/public/file/2e4f2d30-e190-40b7-9719-c114c2816786.pdf deleted file mode 100644 index 6b87abcb..00000000 Binary files a/public/file/2e4f2d30-e190-40b7-9719-c114c2816786.pdf and /dev/null differ diff --git a/public/file/3525303f-3537-4278-a7b9-b08f8210e62e.pdf b/public/file/3525303f-3537-4278-a7b9-b08f8210e62e.pdf deleted file mode 100644 index 1bcf8cea..00000000 Binary files a/public/file/3525303f-3537-4278-a7b9-b08f8210e62e.pdf and /dev/null differ diff --git a/public/file/eacaceb0-07b7-4502-8895-92e5d38d831d.pdf b/public/file/3ece02cd-8472-42ee-9721-356041bcd655.pdf similarity index 100% rename from public/file/eacaceb0-07b7-4502-8895-92e5d38d831d.pdf rename to public/file/3ece02cd-8472-42ee-9721-356041bcd655.pdf diff --git a/public/file/bc01912d-857b-4223-b7be-cad8e941fe55.pdf b/public/file/5ef5daeb-0ef7-47d4-847d-a201ff0bd818.pdf similarity index 100% rename from public/file/bc01912d-857b-4223-b7be-cad8e941fe55.pdf rename to public/file/5ef5daeb-0ef7-47d4-847d-a201ff0bd818.pdf diff --git a/public/investasi/096dd9a5-9c99-40bc-a965-6e5cbbbac65c.png b/public/file/6e9274d3-5c39-47ee-bf7c-114189618dff.pdf similarity index 100% rename from public/investasi/096dd9a5-9c99-40bc-a965-6e5cbbbac65c.png rename to public/file/6e9274d3-5c39-47ee-bf7c-114189618dff.pdf diff --git a/public/file/77f3b86b-9a8f-40d6-abcc-3da54b5e18a5.pdf b/public/file/77f3b86b-9a8f-40d6-abcc-3da54b5e18a5.pdf deleted file mode 100644 index 66e914cb..00000000 Binary files a/public/file/77f3b86b-9a8f-40d6-abcc-3da54b5e18a5.pdf and /dev/null differ diff --git a/public/file/783ed0ae-bd83-4063-83f9-a7be505de602.pdf b/public/file/783ed0ae-bd83-4063-83f9-a7be505de602.pdf deleted file mode 100644 index 0df106e4..00000000 Binary files a/public/file/783ed0ae-bd83-4063-83f9-a7be505de602.pdf and /dev/null differ diff --git a/public/file/7a4ec42c-a41c-4160-963c-e1adc15713ce.pdf b/public/file/7a4ec42c-a41c-4160-963c-e1adc15713ce.pdf deleted file mode 100644 index b62f7486..00000000 Binary files a/public/file/7a4ec42c-a41c-4160-963c-e1adc15713ce.pdf and /dev/null differ diff --git a/public/file/8eada122-415d-4e47-b272-ca386da87de2.pdf b/public/file/8eada122-415d-4e47-b272-ca386da87de2.pdf deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/file/8eada122-415d-4e47-b272-ca386da87de2.pdf and /dev/null differ diff --git a/public/file/a936677b-e936-4858-83bd-ad6ca561fa75.pdf b/public/file/a936677b-e936-4858-83bd-ad6ca561fa75.pdf deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/file/a936677b-e936-4858-83bd-ad6ca561fa75.pdf and /dev/null differ diff --git a/public/file/b8744958-ed2a-4a3b-8d28-06995fa842db.pdf b/public/file/b8744958-ed2a-4a3b-8d28-06995fa842db.pdf deleted file mode 100644 index d0f301d6..00000000 Binary files a/public/file/b8744958-ed2a-4a3b-8d28-06995fa842db.pdf and /dev/null differ diff --git a/public/file/c8904500-c9fd-40e4-a500-7ccb9fb48eb5.pdf b/public/file/c8904500-c9fd-40e4-a500-7ccb9fb48eb5.pdf new file mode 100644 index 00000000..92b2f709 Binary files /dev/null and b/public/file/c8904500-c9fd-40e4-a500-7ccb9fb48eb5.pdf differ diff --git a/public/file/dcf5d2e5-99aa-4317-b6e7-114f22cdd530.pdf b/public/file/dcf5d2e5-99aa-4317-b6e7-114f22cdd530.pdf deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/file/dcf5d2e5-99aa-4317-b6e7-114f22cdd530.pdf and /dev/null differ diff --git a/public/file/e1366e3c-26c3-4939-8503-0ac3e2e68f03.pdf b/public/file/e1366e3c-26c3-4939-8503-0ac3e2e68f03.pdf new file mode 100644 index 00000000..92b2f709 Binary files /dev/null and b/public/file/e1366e3c-26c3-4939-8503-0ac3e2e68f03.pdf differ diff --git a/public/file/f1e236c5-e9c6-4fd8-9359-690fcc831172.pdf b/public/file/f1e236c5-e9c6-4fd8-9359-690fcc831172.pdf deleted file mode 100644 index e0896cad..00000000 Binary files a/public/file/f1e236c5-e9c6-4fd8-9359-690fcc831172.pdf and /dev/null differ diff --git a/public/investasi/31c56c35-62ad-4d99-9759-79b8041526b0.png b/public/investasi/0815b390-ff1c-4139-a67f-ff4603b9e2ca.png similarity index 100% rename from public/investasi/31c56c35-62ad-4d99-9759-79b8041526b0.png rename to public/investasi/0815b390-ff1c-4139-a67f-ff4603b9e2ca.png diff --git a/public/investasi/0d8dff94-0f13-412d-b629-2ccdaa5eb0cd.png b/public/investasi/0d8dff94-0f13-412d-b629-2ccdaa5eb0cd.png deleted file mode 100644 index e0896cad..00000000 Binary files a/public/investasi/0d8dff94-0f13-412d-b629-2ccdaa5eb0cd.png and /dev/null differ diff --git a/public/investasi/0f380d71-f1d7-4d36-a303-8f5e35e2f4a9.jpeg b/public/investasi/0f380d71-f1d7-4d36-a303-8f5e35e2f4a9.jpeg deleted file mode 100644 index e90a28f2..00000000 Binary files a/public/investasi/0f380d71-f1d7-4d36-a303-8f5e35e2f4a9.jpeg and /dev/null differ diff --git a/public/investasi/122c806d-00f2-45eb-a7f0-b03f96a8d065.png b/public/investasi/122c806d-00f2-45eb-a7f0-b03f96a8d065.png deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/investasi/122c806d-00f2-45eb-a7f0-b03f96a8d065.png and /dev/null differ diff --git a/public/investasi/1a18c5f1-7cae-4a30-9a58-9a4d4080cd7e.png b/public/investasi/1a18c5f1-7cae-4a30-9a58-9a4d4080cd7e.png deleted file mode 100644 index 1bcf8cea..00000000 Binary files a/public/investasi/1a18c5f1-7cae-4a30-9a58-9a4d4080cd7e.png and /dev/null differ diff --git a/public/investasi/1cf3bcf1-23cf-46ca-9376-706e38ad6232.jpeg b/public/investasi/1cf3bcf1-23cf-46ca-9376-706e38ad6232.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/1cf3bcf1-23cf-46ca-9376-706e38ad6232.jpeg and /dev/null differ diff --git a/public/investasi/23aa0fd6-5479-4c8e-b5a3-4370739496de.jpeg b/public/investasi/23aa0fd6-5479-4c8e-b5a3-4370739496de.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/23aa0fd6-5479-4c8e-b5a3-4370739496de.jpeg and /dev/null differ diff --git a/public/investasi/7536ab7e-6e83-4a67-890e-b8310fd34489.png b/public/investasi/24c94a56-5563-4a2e-a401-b5f771d9ba12.png similarity index 100% rename from public/investasi/7536ab7e-6e83-4a67-890e-b8310fd34489.png rename to public/investasi/24c94a56-5563-4a2e-a401-b5f771d9ba12.png diff --git a/public/investasi/d5520b3e-1cd0-47b0-bdcd-1bcb61a18ad4.png b/public/investasi/2756d89c-0156-4252-920a-443d25ead85e.png similarity index 100% rename from public/investasi/d5520b3e-1cd0-47b0-bdcd-1bcb61a18ad4.png rename to public/investasi/2756d89c-0156-4252-920a-443d25ead85e.png diff --git a/public/investasi/2e2e21c5-233a-4982-99cb-944f3732c7ce.jpeg b/public/investasi/2e2e21c5-233a-4982-99cb-944f3732c7ce.jpeg deleted file mode 100644 index 326da9f2..00000000 Binary files a/public/investasi/2e2e21c5-233a-4982-99cb-944f3732c7ce.jpeg and /dev/null differ diff --git a/public/investasi/3071eb24-6c32-4933-b910-86f4708dea33.png b/public/investasi/3071eb24-6c32-4933-b910-86f4708dea33.png deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/investasi/3071eb24-6c32-4933-b910-86f4708dea33.png and /dev/null differ diff --git a/public/investasi/4297c21c-529d-4f71-bb52-b2fcb60a2bac.png b/public/investasi/4297c21c-529d-4f71-bb52-b2fcb60a2bac.png new file mode 100644 index 00000000..24d01eeb Binary files /dev/null and b/public/investasi/4297c21c-529d-4f71-bb52-b2fcb60a2bac.png differ diff --git a/public/investasi/45aae76b-f076-4fe0-92c1-10f7d3a4f162.png b/public/investasi/45aae76b-f076-4fe0-92c1-10f7d3a4f162.png deleted file mode 100644 index d0f301d6..00000000 Binary files a/public/investasi/45aae76b-f076-4fe0-92c1-10f7d3a4f162.png and /dev/null differ diff --git a/public/investasi/5121f1ac-0f77-4e6b-9efd-9a720a428a90.png b/public/investasi/5121f1ac-0f77-4e6b-9efd-9a720a428a90.png deleted file mode 100644 index e0896cad..00000000 Binary files a/public/investasi/5121f1ac-0f77-4e6b-9efd-9a720a428a90.png and /dev/null differ diff --git a/public/investasi/19a66ae5-0e25-4cb4-b339-a16f3f70f61f.jpeg b/public/investasi/59b1d508-1b64-46f2-99c2-a43f268a2a86.jpeg similarity index 100% rename from public/investasi/19a66ae5-0e25-4cb4-b339-a16f3f70f61f.jpeg rename to public/investasi/59b1d508-1b64-46f2-99c2-a43f268a2a86.jpeg diff --git a/public/investasi/5acac2f1-faaf-43e4-a1c4-473decb03eda.png b/public/investasi/5acac2f1-faaf-43e4-a1c4-473decb03eda.png deleted file mode 100644 index d0f301d6..00000000 Binary files a/public/investasi/5acac2f1-faaf-43e4-a1c4-473decb03eda.png and /dev/null differ diff --git a/public/investasi/5b5c6e05-7bd3-477e-abed-6cb04caa514f.png b/public/investasi/5b5c6e05-7bd3-477e-abed-6cb04caa514f.png deleted file mode 100644 index 98983643..00000000 Binary files a/public/investasi/5b5c6e05-7bd3-477e-abed-6cb04caa514f.png and /dev/null differ diff --git a/public/investasi/5c4c827e-8035-472c-81d3-98d1b2539f1f.png b/public/investasi/5c4c827e-8035-472c-81d3-98d1b2539f1f.png deleted file mode 100644 index d0f301d6..00000000 Binary files a/public/investasi/5c4c827e-8035-472c-81d3-98d1b2539f1f.png and /dev/null differ diff --git a/public/investasi/7c89447d-c0bb-43a5-be74-6a5af2f64c46.jpeg b/public/investasi/7c89447d-c0bb-43a5-be74-6a5af2f64c46.jpeg deleted file mode 100644 index b62f7486..00000000 Binary files a/public/investasi/7c89447d-c0bb-43a5-be74-6a5af2f64c46.jpeg and /dev/null differ diff --git a/public/investasi/4c94a52d-e7ba-4206-ae3f-e0224ed250b1.jpeg b/public/investasi/83fd7d43-e40d-4a4c-bdff-bd7eeb75ac04.jpeg similarity index 100% rename from public/investasi/4c94a52d-e7ba-4206-ae3f-e0224ed250b1.jpeg rename to public/investasi/83fd7d43-e40d-4a4c-bdff-bd7eeb75ac04.jpeg diff --git a/public/investasi/8a7ba77a-c9eb-4414-9b5d-9818fa1fdfe0.jpeg b/public/investasi/8a7ba77a-c9eb-4414-9b5d-9818fa1fdfe0.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/8a7ba77a-c9eb-4414-9b5d-9818fa1fdfe0.jpeg and /dev/null differ diff --git a/public/investasi/968362f6-c34e-4873-afd7-57e2c954bf0a.jpeg b/public/investasi/968362f6-c34e-4873-afd7-57e2c954bf0a.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/968362f6-c34e-4873-afd7-57e2c954bf0a.jpeg and /dev/null differ diff --git a/public/investasi/9faf04ce-7621-4b2d-8c4f-fb447aa71ecc.png b/public/investasi/9faf04ce-7621-4b2d-8c4f-fb447aa71ecc.png deleted file mode 100644 index 98983643..00000000 Binary files a/public/investasi/9faf04ce-7621-4b2d-8c4f-fb447aa71ecc.png and /dev/null differ diff --git a/public/investasi/b6b5f6f8-0c08-466c-adb2-4e06973dc744.png b/public/investasi/b6b5f6f8-0c08-466c-adb2-4e06973dc744.png deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/investasi/b6b5f6f8-0c08-466c-adb2-4e06973dc744.png and /dev/null differ diff --git a/public/investasi/cbe1b9b4-db4d-4774-8347-73898ffbeb6d.jpeg b/public/investasi/cbe1b9b4-db4d-4774-8347-73898ffbeb6d.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/cbe1b9b4-db4d-4774-8347-73898ffbeb6d.jpeg and /dev/null differ diff --git a/public/file/c9d1124e-801f-4b74-a891-f8d13df20ef9.pdf b/public/investasi/d5b525d2-f460-4b0e-af8a-02b9c21a972e.png similarity index 100% rename from public/file/c9d1124e-801f-4b74-a891-f8d13df20ef9.pdf rename to public/investasi/d5b525d2-f460-4b0e-af8a-02b9c21a972e.png diff --git a/public/investasi/d7676dc6-7213-47aa-9a69-31078d8b038b.jpeg b/public/investasi/d7676dc6-7213-47aa-9a69-31078d8b038b.jpeg deleted file mode 100644 index 66e914cb..00000000 Binary files a/public/investasi/d7676dc6-7213-47aa-9a69-31078d8b038b.jpeg and /dev/null differ diff --git a/public/investasi/db3fafcd-cefe-4d24-8cc8-bf34d35f9d2d.png b/public/investasi/db3fafcd-cefe-4d24-8cc8-bf34d35f9d2d.png deleted file mode 100644 index 98983643..00000000 Binary files a/public/investasi/db3fafcd-cefe-4d24-8cc8-bf34d35f9d2d.png and /dev/null differ diff --git a/public/investasi/dd37b54c-8d1a-4c17-aa2c-ebf18f6ff3cf.jpeg b/public/investasi/dd37b54c-8d1a-4c17-aa2c-ebf18f6ff3cf.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/dd37b54c-8d1a-4c17-aa2c-ebf18f6ff3cf.jpeg and /dev/null differ diff --git a/public/investasi/ddf1e9c2-92f0-4885-b467-01cc35d1bf46.png b/public/investasi/ddf1e9c2-92f0-4885-b467-01cc35d1bf46.png new file mode 100644 index 00000000..24d01eeb Binary files /dev/null and b/public/investasi/ddf1e9c2-92f0-4885-b467-01cc35d1bf46.png differ diff --git a/public/investasi/e071a6c4-c9c2-4df1-9f36-b5c0176646a5.png b/public/investasi/e071a6c4-c9c2-4df1-9f36-b5c0176646a5.png deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/investasi/e071a6c4-c9c2-4df1-9f36-b5c0176646a5.png and /dev/null differ diff --git a/public/investasi/e5ed3b6d-7215-4018-84c7-3f90c0c92552.jpeg b/public/investasi/e5ed3b6d-7215-4018-84c7-3f90c0c92552.jpeg deleted file mode 100644 index 803e3c56..00000000 Binary files a/public/investasi/e5ed3b6d-7215-4018-84c7-3f90c0c92552.jpeg and /dev/null differ diff --git a/public/investasi/eb0d32ba-5f8d-4ae4-ac01-5b15a288d28d.jpeg b/public/investasi/eb0d32ba-5f8d-4ae4-ac01-5b15a288d28d.jpeg deleted file mode 100644 index 0df106e4..00000000 Binary files a/public/investasi/eb0d32ba-5f8d-4ae4-ac01-5b15a288d28d.jpeg and /dev/null differ diff --git a/public/investasi/ed11274a-a1ea-47da-bd06-96cffbb5945c.jpeg b/public/investasi/ed11274a-a1ea-47da-bd06-96cffbb5945c.jpeg deleted file mode 100644 index 326da9f2..00000000 Binary files a/public/investasi/ed11274a-a1ea-47da-bd06-96cffbb5945c.jpeg and /dev/null differ diff --git a/public/file/9f65f1ba-8eda-4126-9275-58a0295e8637.pdf b/public/investasi/ed305bf4-65e1-441a-a8bb-2d815a6e49c1.png similarity index 100% rename from public/file/9f65f1ba-8eda-4126-9275-58a0295e8637.pdf rename to public/investasi/ed305bf4-65e1-441a-a8bb-2d815a6e49c1.png diff --git a/public/investasi/f365bf66-febb-4d48-aec8-acd7f3f59cbe.png b/public/investasi/f365bf66-febb-4d48-aec8-acd7f3f59cbe.png deleted file mode 100644 index d0c9754c..00000000 Binary files a/public/investasi/f365bf66-febb-4d48-aec8-acd7f3f59cbe.png and /dev/null differ diff --git a/public/investasi/f3e7698b-44de-4dc5-9238-65196abc4fe7.png b/public/investasi/f3e7698b-44de-4dc5-9238-65196abc4fe7.png new file mode 100644 index 00000000..24d01eeb Binary files /dev/null and b/public/investasi/f3e7698b-44de-4dc5-9238-65196abc4fe7.png differ diff --git a/public/investasi/f769c96d-5787-42ac-965d-96c65be604cd.jpeg b/public/investasi/f769c96d-5787-42ac-965d-96c65be604cd.jpeg deleted file mode 100644 index 8bf49b6b..00000000 Binary files a/public/investasi/f769c96d-5787-42ac-965d-96c65be604cd.jpeg and /dev/null differ diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts index ef91c0e6..f7442d2c 100644 --- a/src/app/api/auth/login/route.ts +++ b/src/app/api/auth/login/route.ts @@ -20,7 +20,7 @@ export async function POST(req: Request) { } else { try { await fetch( - `https://wa.wibudev.com/code?nom=${body.nomor}&text=${body.otp}` + `https://wa.wibudev.com/code?nom=${body.nomor}&text=Masukan Kode OTP:${body.otp}` ); return NextResponse.json({ body, diff --git a/src/app/api/investasi/gambar/[id]/route.ts b/src/app/api/investasi/gambar/[id]/route.ts index 85584050..8fce01cc 100644 --- a/src/app/api/investasi/gambar/[id]/route.ts +++ b/src/app/api/investasi/gambar/[id]/route.ts @@ -6,6 +6,7 @@ export async function GET( req: NextRequest, { params }: { params: { id: string } } ) { + const data = await prisma.images.findUnique({ where: { id: params.id, diff --git a/src/app/api/investasi/midtrans/[id]/route.ts b/src/app/api/investasi/midtrans/[id]/route.ts new file mode 100644 index 00000000..4c1b0cd8 --- /dev/null +++ b/src/app/api/investasi/midtrans/[id]/route.ts @@ -0,0 +1,9 @@ +import { NextRequest, NextResponse } from "next/server"; + +export async function POST(req: NextRequest, {params}: {params: {id: any}}) { + + const body = await req.json() + console.log(body) + + return NextResponse.json({ status: 200, message: "OK", data: body }); +} diff --git a/src/app/api/investasi/prospektus/[id]/route.ts b/src/app/api/investasi/prospektus/[id]/route.ts index 5b095111..243b204a 100644 --- a/src/app/api/investasi/prospektus/[id]/route.ts +++ b/src/app/api/investasi/prospektus/[id]/route.ts @@ -6,7 +6,7 @@ export async function GET( req: NextRequest, { params }: { params: { id: string } } ) { - console.log(params.id) + // console.log(params.id) const data = await prisma.prospektusInvestasi.findUnique({ where: { id: params.id }, select: { diff --git a/src/app/api/seeder/route.ts b/src/app/api/seeder/route.ts index fab554d6..483fae84 100644 --- a/src/app/api/seeder/route.ts +++ b/src/app/api/seeder/route.ts @@ -8,6 +8,8 @@ import pembagianDeviden from "./../../../bin/seeder/investasi/pembagian_deviden. import statusInvestasi from "./../../../bin/seeder/investasi/status_investasi.json"; 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"; export async function GET(req: Request) { const dev = new URL(req.url).searchParams.get("dev"); @@ -28,6 +30,24 @@ export async function GET(req: Request) { }); } + for (let i of userSeeder) { + await prisma.user.upsert({ + where: { + nomor: i.nomor, + }, + create: { + nomor: i.nomor, + username: i.name, + masterUserRoleId: i.masterUserRoleId, + }, + update: { + nomor: i.nomor, + username: i.name, + masterUserRoleId: i.masterUserRoleId, + }, + }); + } + for (let i of bidangBisnis) { await prisma.masterBidangBisnis.upsert({ where: { @@ -146,6 +166,21 @@ export async function GET(req: Request) { }); } + for (let i of jenisProgres) { + await prisma.masterProgresInvestasi.upsert({ + where: { + id: i.id, + }, + create: { + id: i.id, + name: i.name, + }, + update: { + name: i.name, + }, + }); + } + return NextResponse.json({ success: true }); } diff --git a/src/app/dev/investasi/detail/[id]/page.tsx b/src/app/dev/investasi/detail/[id]/page.tsx index fccfe11f..f2f23011 100644 --- a/src/app/dev/investasi/detail/[id]/page.tsx +++ b/src/app/dev/investasi/detail/[id]/page.tsx @@ -28,6 +28,8 @@ export default async function Page({ params }: { params: { id: string } }) { const totalInvestor = await funTotalInvestorByIdInvestasi(dataInvestasi?.id) + // console.log(dataInvestasi?.MasterProgresInvestasi?.name) + return ( <> + // await funUpadteProgresPersenInvestasi(i).then( + // async () => + // await getAllDataPublishInvestasi().then((val: any) => + // dataInves.push(val) + // ) + // ) + // ); + // } + + // const realData = dataInves.map((e) => e) + // console.log(allData) + + - // console.log(data) return ( <> ); diff --git a/src/app/dev/investasi/proses_transaksi/[id]/page.tsx b/src/app/dev/investasi/proses_transaksi/[id]/page.tsx index 83bc2e3f..40f0b6c3 100644 --- a/src/app/dev/investasi/proses_transaksi/[id]/page.tsx +++ b/src/app/dev/investasi/proses_transaksi/[id]/page.tsx @@ -17,7 +17,8 @@ export default async function Page({ params }: { params: { id: string } }) { const userLogin = await funGetUserProfile(user.id); const dataInvestasi = await getOneInvestasiById(params.id); - // console.log(userLogin); + + // console.log(dataInvestasi); return ( <> + {children} + +} \ No newline at end of file diff --git a/src/app/dev/investasi/status_pesanan/[id]/page.tsx b/src/app/dev/investasi/status_pesanan/[id]/page.tsx new file mode 100644 index 00000000..f5f6c5c7 --- /dev/null +++ b/src/app/dev/investasi/status_pesanan/[id]/page.tsx @@ -0,0 +1,14 @@ +import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"; +import { StatusPesananInvetsatsi } from "@/app_modules/investasi"; +import getOneTransaksiByIdInvestasi from "@/app_modules/investasi/fun/get_one_transaksi_by_id"; +import getTransaksiByIdInvestasi from "@/app_modules/investasi/fun/get_transaksi_investasi"; + +export default async function Page({ params }: { params: { id: string } }) { + const dataTransaksi = await getOneTransaksiByIdInvestasi(params.id); + + return ( + <> + + + ); +} diff --git a/src/app/lib/router_hipmi/router_investasi.ts b/src/app/lib/router_hipmi/router_investasi.ts index b7f9c63c..35d57616 100644 --- a/src/app/lib/router_hipmi/router_investasi.ts +++ b/src/app/lib/router_hipmi/router_investasi.ts @@ -2,6 +2,7 @@ export const RouterInvestasi = { api_gambar: "/api/investasi/gambar/", api_file_prospektus: "/api/investasi/prospektus/", api_file_dokumen: "/api/investasi/dokumen/", + api_get_notif_midtrans: "/api/investasi/midtrans", //INVESTASI main: "/dev/investasi/main", @@ -20,6 +21,7 @@ export const RouterInvestasi = { proses_investasi: "/dev/investasi/proses_investasi/", proses_transaksi: "/dev/investasi/proses_transaksi/", status_transaksi: "/dev/investasi/status_transaksi/berhasil", + status_pesanan:"/dev/investasi/status_pesanan/", status_transaksi_gagal: "/dev/investasi/status_transaksi/gagal/", metode_transfer: "/dev/investasi/metode_transfer/", diff --git a/src/app_modules/admin/investasi/konfirmasi/view.tsx b/src/app_modules/admin/investasi/konfirmasi/view.tsx index b685ae97..10ec8b66 100644 --- a/src/app_modules/admin/investasi/konfirmasi/view.tsx +++ b/src/app_modules/admin/investasi/konfirmasi/view.tsx @@ -122,7 +122,7 @@ export default function Admin_KonfirmasiInvestasi({ } async function onPublish() { - await funGantiStatusInvestasi(investasi.id, "3").then((res) => { + await funGantiStatusInvestasi(investasi.id, "3", "1").then((res) => { if (res.status === 200) { setTimeout(() => setPublish(false), 1000); router.push(RouterAdminInvestasi.table_status_review); diff --git a/src/app_modules/fun/midtrans/fun_get_notif.ts b/src/app_modules/fun/midtrans/fun_get_notif.ts new file mode 100644 index 00000000..1783e0be --- /dev/null +++ b/src/app_modules/fun/midtrans/fun_get_notif.ts @@ -0,0 +1,15 @@ +"use server"; + +export default async function funGetNotif({ + params, +}: { + params: { data: any }; +}) { + const body = params.data; + console.log(body); + + return { + status: 200, + message: "OK", + }; +} diff --git a/src/app_modules/investasi/create/view.tsx b/src/app_modules/investasi/create/view.tsx index 3a5d3fb4..e90c0344 100644 --- a/src/app_modules/investasi/create/view.tsx +++ b/src/app_modules/investasi/create/view.tsx @@ -75,26 +75,26 @@ export default function InvestasiCreate({ }; // toast("Berhasil disimpan") - // if (_.values(body).includes("")) return toast("Lengkapi data"); - if (!fl) return toast("Gambar Kosong"); - if (!pdf) return toast("File Kosong"); + // if (_.values(body).includes("")) return toast("Lengkapi data"); + if (!fl) return toast("Gambar Kosong"); + if (!pdf) return toast("File Kosong"); - const gmbr = new FormData(); - gmbr.append("file", fl); + const gmbr = new FormData(); + gmbr.append("file", fl); - const flPdf = new FormData(); - flPdf.append("file", pdf); + const flPdf = new FormData(); + flPdf.append("file", pdf as any); - await funCreateInvestasi(gmbr, flPdf, body as any).then((res) => { - if (res.status === 201) { - // toast(res.message); - setChangeColor(1); - setActiveTab("Review"); - router.push(RouterInvestasi.dialog_create); - } else { - toast(res.message); - } - }); + await funCreateInvestasi(gmbr, flPdf, body as any).then((res) => { + if (res.status === 201) { + // toast(res.message); + setChangeColor(1); + setActiveTab("Review"); + router.push(RouterInvestasi.dialog_create); + } else { + toast(res.message); + } + }); } async function onTotalLembar(target: any, harga: any) { diff --git a/src/app_modules/investasi/detail/view.tsx b/src/app_modules/investasi/detail/view.tsx index d3194459..78eb94ea 100644 --- a/src/app_modules/investasi/detail/view.tsx +++ b/src/app_modules/investasi/detail/view.tsx @@ -25,6 +25,7 @@ import { IconCircleCheck, IconFileDescription, IconSpeakerphone, + IconXboxX, } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; @@ -41,13 +42,13 @@ export default function DetailInvestasi({ dataUser, loginUserId, progress, - totalInvestor + totalInvestor, }: { dataInvestasi: MODEL_Investasi; dataUser: MODEL_User_profile; loginUserId: string; progress: number; - totalInvestor: number + totalInvestor: number; }) { const router = useRouter(); const [investasi, setInvestasi] = useState(dataInvestasi); @@ -102,22 +103,54 @@ export default function DetailInvestasi({ {user.username} - {Number(investasi.MasterPencarianInvestor.name) - - moment(new Date()).diff(new Date(investasi.countDown), "days") <= - 0 ? ( - - - Selesai - + {investasi.MasterProgresInvestasi.id === "1" ? ( + + + Sisa waktu: + + {Number(investasi.MasterPencarianInvestor.name) - + moment(new Date()).diff( + new Date(investasi.countDown), + "days" + )} + + Hari + + ) : ( - - Sisa waktu: - - {Number(investasi.MasterPencarianInvestor.name) - - moment(new Date()).diff(new Date(investasi.countDown), "days")} - - Hari - + + {investasi.MasterProgresInvestasi.id === "2" ? ( + + + + Selesai + + + ) : ( + + + + Waktu Habis + + + )} + )} @@ -192,9 +225,13 @@ export default function DetailInvestasi({ - + Investor - {new Intl.NumberFormat("id-ID", {maximumSignificantDigits: 10}).format(totalInvestor)} + + {new Intl.NumberFormat("id-ID", { + maximumSignificantDigits: 10, + }).format(totalInvestor)} + ROI @@ -242,25 +279,38 @@ export default function DetailInvestasi({ ))} - {loginUserId === investasi.authorId ? ( + {investasi.sisaLembar === "0" || + Number(investasi.MasterPencarianInvestor.name) - + moment(new Date()).diff(new Date(investasi.countDown), "days") <= + 0 ? (
-
) : ( -
- -
+ + {loginUserId === investasi.authorId ? ( +
+ +
+ ) : ( +
+ +
+ )} +
)} ); diff --git a/src/app_modules/investasi/dialog_page/create/layout.tsx b/src/app_modules/investasi/dialog_page/create/layout.tsx index 4a80e60c..fb9731e5 100644 --- a/src/app_modules/investasi/dialog_page/create/layout.tsx +++ b/src/app_modules/investasi/dialog_page/create/layout.tsx @@ -20,19 +20,20 @@ export default function LayoutDialogPageCreateInvestasi({ }: { children: React.ReactNode; }) { - const router = useRouter() + const router = useRouter(); useShallowEffect(() => { - setTimeout(() => router.push(RouterInvestasi.portofolio), 3000) - },[]) + setTimeout(() => router.push(RouterInvestasi.portofolio), 3000); + }, []); return ( <> +
- Proyek Investasi anda akan berstatus DRAFT + Mohon menunggu validasi Admin +
} > diff --git a/src/app_modules/investasi/fun/fun_create_investasi.ts b/src/app_modules/investasi/fun/fun_create_investasi.ts index 0ba89451..1a62b096 100644 --- a/src/app_modules/investasi/fun/fun_create_investasi.ts +++ b/src/app_modules/investasi/fun/fun_create_investasi.ts @@ -7,11 +7,12 @@ import fs from "fs"; import { revalidatePath } from "next/cache"; import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"; import { MODEL_Investasi } from "../model/model_investasi"; +import funUploadProspektusInvestasi from "./fun_upload_prospek"; export async function funCreateInvestasi( gamabar: FormData, filePdf: FormData, - data: MODEL_Investasi + data: MODEL_Investasi ) { // Function upload gambar const file: any = gamabar.get("file"); @@ -47,8 +48,8 @@ export async function funCreateInvestasi( totalLembar: data.totalLembar.toString(), sisaLembar: data.totalLembar.toString(), roi: data.roi.toString(), - masterPembagianDevidenId: data.masterPeriodeDevidenId, - masterPeriodeDevidenId: data.masterPembagianDevidenId, + masterPembagianDevidenId: data.masterPembagianDevidenId, + masterPeriodeDevidenId: data.masterPeriodeDevidenId, masterPencarianInvestorId: data.masterPencarianInvestorId, imagesId: uploadImage.id, masterStatusInvestasiId: "2", @@ -62,26 +63,31 @@ export async function funCreateInvestasi( }; // File upload function - const dataPdf: any = filePdf.get("file"); - const pdfName = dataPdf.name; - const pdfExt = _.lowerCase(dataPdf.name.split(".").pop()); - const pdfRandomName = v4(pdfName) + "." + pdfExt; + // const dataPdf: any = filePdf.get("file"); + // const pdfName = dataPdf.name; + // const pdfExt = _.lowerCase(dataPdf.name.split(".").pop()); + // const pdfRandomName = v4(pdfName) + "." + pdfExt; - const uploadFile = await prisma.prospektusInvestasi.create({ - data: { - investasiId: createInvest.id, - url: pdfRandomName, - }, - select: { - id: true, - url: true, - }, - }); + // const uploadFile = await prisma.prospektusInvestasi.create({ + // data: { + // investasiId: createInvest.id, + // url: pdfRandomName, + // }, + // select: { + // id: true, + // url: true, + // }, + // }); + // if (!uploadFile) return { status: 400, message: "File Kosong" }; + // const upPdfFolder = Buffer.from(await file.arrayBuffer()); + // fs.writeFileSync(`./public/file/${uploadFile.url}`, upPdfFolder); - if (!uploadFile) return { status: 400, message: "File Kosong" }; - const upPdfFolder = Buffer.from(await file.arrayBuffer()); - fs.writeFileSync(`./public/file/${uploadFile.url}`, upPdfFolder); + const updloadPDF = await funUploadProspektusInvestasi( + filePdf, + createInvest.id + ); + // console.log(updloadPDF); revalidatePath(RouterInvestasi.main_porto); diff --git a/src/app_modules/investasi/fun/fun_ganti_status.ts b/src/app_modules/investasi/fun/fun_ganti_status.ts index 8adcdd83..0745b76a 100644 --- a/src/app_modules/investasi/fun/fun_ganti_status.ts +++ b/src/app_modules/investasi/fun/fun_ganti_status.ts @@ -6,28 +6,64 @@ import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"; import moment from "moment"; import { revalidatePath } from "next/cache"; -export default async function funGantiStatusInvestasi(id: string, val: string) { - const publishCD = new Date - const data = await prisma.investasi.update({ - where: { - id: id, - }, - data: { - MasterStatusInvestasi: { - connect: { - id: val, +export default async function funGantiStatusInvestasi( + id: string, + statusInves: string, + statusProgres?: string +) { + console.log(statusProgres) + if (statusProgres === '1') { + const publishCD = new Date(); + const data = await prisma.investasi.update({ + where: { + id: id, + }, + data: { + MasterStatusInvestasi: { + connect: { + id: statusInves, + }, + }, + countDown: publishCD, + MasterProgresInvestasi: { + connect: { + id: statusProgres, + }, }, }, - countDown: publishCD, - }, - }); + }); - if (!data) return { status: 400 }; + if (!data) return { status: 400 }; - revalidatePath(RouterInvestasi.portofolio); - revalidatePath(RouterAdminInvestasi.main_investasi); + revalidatePath(RouterInvestasi.portofolio); + revalidatePath(RouterAdminInvestasi.main_investasi); - return { - status: 200, - }; + return { + status: 200, + }; + } else { + const publishCD = new Date(); + const data = await prisma.investasi.update({ + where: { + id: id, + }, + data: { + MasterStatusInvestasi: { + connect: { + id: statusInves, + }, + }, + countDown: publishCD, + }, + }); + + if (!data) return { status: 400 }; + + revalidatePath(RouterInvestasi.portofolio); + revalidatePath(RouterAdminInvestasi.main_investasi); + + return { + status: 200, + }; + } } diff --git a/src/app_modules/investasi/fun/fun_update_investasi.ts b/src/app_modules/investasi/fun/fun_update_investasi.ts index dc03a678..b549085f 100644 --- a/src/app_modules/investasi/fun/fun_update_investasi.ts +++ b/src/app_modules/investasi/fun/fun_update_investasi.ts @@ -2,20 +2,67 @@ import prisma from "@/app/lib/prisma"; import { MODEL_Investasi } from "../model/model_investasi"; +import { revalidatePath } from "next/cache"; +import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"; + +export default async function funUpdateInvestasi( + dataLembarSaham: MODEL_Investasi, + dataInvestasi: MODEL_Investasi +) { + + + const investasi = dataInvestasi; + // console.log(investasi) + const progres = + ((+investasi.totalLembar - +dataLembarSaham.sisaLembar) / + +investasi.totalLembar) * + 100; + const jumlahTerbeli = +investasi.totalLembar - +dataLembarSaham.sisaLembar; -export default async function funUpdateInvestasi(data: MODEL_Investasi) { - // console.log(data) const res = await prisma.investasi.update({ where: { - id: data.id, + id: dataLembarSaham.id, }, data: { - sisaLembar: "" + data.sisaLembar, - + sisaLembar: "" + dataLembarSaham.sisaLembar, + progress: "" + progres, + lembarTerbeli: "" + jumlahTerbeli, }, }); if (!res) return { status: 400, message: "Gagal update" }; + + if (res.progress === "100") { + const updateStatusProgres = await prisma.investasi.update({ + where: { + id: res.id, + }, + data: { + masterProgresInvestasiId: "2", + }, + }); + + // console.log(updateStatusProgres) + + try { + await fetch( + `https://wa.wibudev.com/code?nom=${investasi.author.nomor}&text=Selamat !! , Project Investasi ${investasi.title} Anda Sukses` + ); + return { + status: 200, + message: "Berhasil, kirim pesan ke Author" + } + } catch (error) { + return { + status: 400, + message: "Tidak Terkirim ke Author" + } + } + + } + + revalidatePath(RouterInvestasi.main); + return { status: 200, message: "Update berhasil", diff --git a/src/app_modules/investasi/fun/fun_update_payment.ts b/src/app_modules/investasi/fun/fun_update_payment.ts index f86efd44..a1f08111 100644 --- a/src/app_modules/investasi/fun/fun_update_payment.ts +++ b/src/app_modules/investasi/fun/fun_update_payment.ts @@ -20,17 +20,39 @@ export interface Model_Midtrans_Success { finish_redirect_url: string; } +interface Model_Body { + authorId: string; + customer_name: string; + phone: string; + gross_amount: number; + item_name: string; + price: number; + quantity: number; + merchant_name: string; + investasiId: string; +} + +interface Model_Token { + token: string; + redirect_url: string; +} + export default async function funUpdatePaymentInvestasi( data: Model_Midtrans_Success, - idPay: any, + body: Model_Body, + token: Model_Token ) { - console.log(data) if (data.status_code === "200") { - const res = await prisma.transaksiInvestasi.update({ - where: { - id: idPay, - }, + const res = await prisma.transaksiInvestasi.create({ data: { + gross_amount: "" + body.gross_amount, + merchant_name: body.merchant_name, + price: "" + body.price, + quantity: "" + body.quantity, + token: token.token, + redirect_url: token.redirect_url, + authorId: body.authorId, + investasiId: body.investasiId, status_code: data.status_code, status_message: data.status_message, order_id: data.order_id, @@ -48,49 +70,12 @@ export default async function funUpdatePaymentInvestasi( if (!res) return { status: 400, message: "Gagal update transaksi" }; - // const jumlah = Number(res.quantity); - // const sisa = Number(investasi?.sisaLembar); - // const hasil = sisa - jumlah; - - // const updateTransaksi = await prisma.investasi.update({ - // where: { - // id: investasi?.id, - // }, - // data: { - // sisaLembar: hasil.toString(), - // }, - // }); - - // console.log(updateTransaksi); - // if (!updateTransaksi) - // return { status: 400, message: "Gagal update investasi" }; - - revalidatePath(RouterInvestasi.main_transaksi) + revalidatePath(RouterInvestasi.main_transaksi); return { status: 200, - message: "Process", + message: "Berhasil", + data: res, }; - } else { - if (data.status_code === "201") { - const res = await prisma.transaksiInvestasi.update({ - where: { - id: idPay, - }, - data: { - status_code: "201", - }, - }); - return { - message: "Success", - }; - } else { - if ((!data.status_code as any) === "400") - return { status: 400, message: "Update Gagal" }; - return { - status: 200, - message: "Berhasil Update", - }; - } } } diff --git a/src/app_modules/investasi/fun/fun_update_progres_persen.ts b/src/app_modules/investasi/fun/fun_update_progres_persen.ts new file mode 100644 index 00000000..f5aeba43 --- /dev/null +++ b/src/app_modules/investasi/fun/fun_update_progres_persen.ts @@ -0,0 +1,20 @@ +"use server"; +import { MODEL_Investasi } from "../model/model_investasi"; +import moment from "moment"; +import prisma from "@/app/lib/prisma"; + +export default async function funUpadteProgresPersenInvestasi(data: MODEL_Investasi) { + // console.log(data) + if (data.MasterProgresInvestasi.id !== "2" && data.progress === "100") { + const res = await prisma.investasi.update({ + where: { + id: data.id, + }, + data: { + masterProgresInvestasiId: "2", + }, + }); + // console.log(res); + return res; + } +} diff --git a/src/app_modules/investasi/fun/fun_update_progres_waktu.ts b/src/app_modules/investasi/fun/fun_update_progres_waktu.ts new file mode 100644 index 00000000..af0b9cdd --- /dev/null +++ b/src/app_modules/investasi/fun/fun_update_progres_waktu.ts @@ -0,0 +1,23 @@ +"use server"; +import { MODEL_Investasi } from "../model/model_investasi"; +import moment from "moment"; +import prisma from "@/app/lib/prisma"; + +export default async function funUpadteProgresWaktuInvestasi(data: MODEL_Investasi) { + + const pencarian = data.MasterPencarianInvestor.name; + const countD = moment(new Date()).diff(new Date(data.countDown), "days"); + + if (+pencarian - +countD <= 0) { + const res = await prisma.investasi.update({ + where: { + id: data.id, + }, + data: { + masterProgresInvestasiId: "3", + }, + }); + // console.log(res); + return res; + } +} diff --git a/src/app_modules/investasi/fun/get_list_all_investasi.ts b/src/app_modules/investasi/fun/get_list_all_investasi.ts new file mode 100644 index 00000000..2c3985d4 --- /dev/null +++ b/src/app_modules/investasi/fun/get_list_all_investasi.ts @@ -0,0 +1,45 @@ +"use server"; + +import prisma from "@/app/lib/prisma"; + +export default async function getAllDataPublishInvestasi() { + const data = await prisma.investasi.findMany({ + orderBy: [ + { + masterProgresInvestasiId: "asc", + }, + { + countDown: "desc", + }, + ], + where: { + MasterStatusInvestasi: { + name: { + equals: "Publish", + }, + }, + }, + select: { + id: true, + title: true, + authorId: true, + hargaLembar: true, + targetDana: true, + totalLembar: true, + sisaLembar: true, + progress: true, + roi: true, + active: true, + createdAt: true, + updatedAt: true, + imagesId: true, + ProspektusInvestasi: true, + MasterPembagianDeviden: true, + MasterPencarianInvestor: true, + MasterPeriodeDeviden: true, + MasterProgresInvestasi: true, + countDown: true, + }, + }); + return data; +} diff --git a/src/app_modules/investasi/fun/get_list_all_publish.ts b/src/app_modules/investasi/fun/get_list_all_publish.ts index 6751508f..be61ac54 100644 --- a/src/app_modules/investasi/fun/get_list_all_publish.ts +++ b/src/app_modules/investasi/fun/get_list_all_publish.ts @@ -1,46 +1,142 @@ "use server"; import prisma from "@/app/lib/prisma"; +/** + * + * @param status progres > 1 - 3 + * @type string + * @returns data publish menurut status progresnya + */ +export async function getListAllPublish(status : string) { -export async function getListAllPublish() { - const data = await prisma.investasi.findMany({ - orderBy: { - countDown: "asc", - }, - where: { - MasterStatusInvestasi: { - name: { - equals: "Publish", + if (status === "1") { + const data = await prisma.investasi.findMany({ + orderBy: { + countDown: "asc", + }, + where: { + MasterStatusInvestasi: { + name: { + equals: "Publish", + }, + }, + AND: { + MasterProgresInvestasi: { + id: "1", + }, }, }, - AND: { + select: { + id: true, + title: true, + authorId: true, + hargaLembar: true, + targetDana: true, + totalLembar: true, + sisaLembar: true, + progress: true, + roi: true, active: true, + createdAt: true, + updatedAt: true, + imagesId: true, + // MasterStatusInvestasi: true, + // BeritaInvestasi: true, + // DokumenInvestasi: true, + ProspektusInvestasi: true, + MasterPembagianDeviden: true, + MasterPencarianInvestor: true, + MasterPeriodeDeviden: true, + MasterProgresInvestasi: true, + countDown: true, }, - }, - select: { - id: true, - title: true, - authorId: true, - hargaLembar: true, - targetDana: true, - totalLembar: true, - sisaLembar: true, - progress: true, - roi: true, - active: true, - createdAt: true, - updatedAt: true, - imagesId: true, - MasterStatusInvestasi: true, - BeritaInvestasi: true, - DokumenInvestasi: true, - ProspektusInvestasi: true, - MasterPembagianDeviden: true, - MasterPencarianInvestor: true, - MasterPeriodeDeviden: true, - countDown: true, - }, - }); - - return data; + }); + return data; + } + if (status === "2") { + const data = await prisma.investasi.findMany({ + orderBy: { + masterPencarianInvestorId: "asc", + }, + where: { + MasterStatusInvestasi: { + name: { + equals: "Publish", + }, + }, + AND: { + MasterProgresInvestasi: { + id: "2", + }, + }, + }, + select: { + id: true, + title: true, + authorId: true, + hargaLembar: true, + targetDana: true, + totalLembar: true, + sisaLembar: true, + progress: true, + roi: true, + active: true, + createdAt: true, + updatedAt: true, + imagesId: true, + // MasterStatusInvestasi: true, + // BeritaInvestasi: true, + // DokumenInvestasi: true, + ProspektusInvestasi: true, + MasterPembagianDeviden: true, + MasterPencarianInvestor: true, + MasterPeriodeDeviden: true, + countDown: true, + }, + }); + return data + } + if (status === "3") { + const data = await prisma.investasi.findMany({ + orderBy: { + masterPencarianInvestorId: "asc", + }, + where: { + MasterStatusInvestasi: { + name: { + equals: "Publish", + }, + }, + AND: { + MasterProgresInvestasi: { + id: "3", + }, + }, + }, + select: { + id: true, + title: true, + authorId: true, + hargaLembar: true, + targetDana: true, + totalLembar: true, + sisaLembar: true, + progress: true, + roi: true, + active: true, + createdAt: true, + updatedAt: true, + imagesId: true, + // MasterStatusInvestasi: true, + // BeritaInvestasi: true, + // DokumenInvestasi: true, + ProspektusInvestasi: true, + MasterPembagianDeviden: true, + MasterPencarianInvestor: true, + MasterPeriodeDeviden: true, + countDown: true, + }, + }); + return data + } } diff --git a/src/app_modules/investasi/fun/get_one_investasi_by_id.ts b/src/app_modules/investasi/fun/get_one_investasi_by_id.ts index 6cb1480f..ac059d0d 100644 --- a/src/app_modules/investasi/fun/get_one_investasi_by_id.ts +++ b/src/app_modules/investasi/fun/get_one_investasi_by_id.ts @@ -30,6 +30,7 @@ export default async function getOneInvestasiById(id: string) { MasterPembagianDeviden: true, MasterPencarianInvestor: true, MasterPeriodeDeviden: true, + MasterProgresInvestasi: true, author: true, countDown: true }, diff --git a/src/app_modules/investasi/fun/get_one_transaksi_berhasil_by_id.ts b/src/app_modules/investasi/fun/get_one_transaksi_by_id.ts similarity index 79% rename from src/app_modules/investasi/fun/get_one_transaksi_berhasil_by_id.ts rename to src/app_modules/investasi/fun/get_one_transaksi_by_id.ts index 2599a635..2eea1c30 100644 --- a/src/app_modules/investasi/fun/get_one_transaksi_berhasil_by_id.ts +++ b/src/app_modules/investasi/fun/get_one_transaksi_by_id.ts @@ -6,15 +6,18 @@ export default async function getOneTransaksiBerhasilByIdInvestasi( idTransaksi: string ) { const data = await prisma.transaksiInvestasi.findUnique({ - where: { id: idTransaksi, }, select: { Investasi: { select: { - - author: true, + author: { + select: { + nomor: true, + username: true, + } + }, BeritaInvestasi: true, DokumenInvestasi: true, ProspektusInvestasi: true, @@ -35,6 +38,10 @@ export default async function getOneTransaksiBerhasilByIdInvestasi( id: true, gross_amount: true, quantity: true, + transaction_id: true, + status_message: true, + payment_type: true, + namaBank: true, }, }); diff --git a/src/app_modules/investasi/fun/get_token_transaksi.js b/src/app_modules/investasi/fun/get_token_transaksi.js index 2affe0ab..bea592a7 100644 --- a/src/app_modules/investasi/fun/get_token_transaksi.js +++ b/src/app_modules/investasi/fun/get_token_transaksi.js @@ -33,7 +33,6 @@ export default async function getTokenTransaksi(data) { customer_details: { first_name: body.customer_name, phone: body.phone, - // email: "test@midtrans.com", }, enabled_payments: [ "permata_va", @@ -45,7 +44,7 @@ export default async function getTokenTransaksi(data) { "shopeepay", ], bca_va: { - va_number: "82340374411111", + va_number: "7725699636222", sub_company_code: "00000", free_text: { inquiry: [ @@ -81,25 +80,15 @@ export default async function getTokenTransaksi(data) { } }); + // console.log(token) + if (token.status === 400) { return { token: token }; } - const newTransaksi = await prisma.transaksiInvestasi.create({ - data: { - gross_amount: "" + data.gross_amount, - merchant_name: data.merchant_name, - price: "" + data.price, - quantity: "" + data.quantity, - token: token.value.token, - redirect_url: token.value.redirect_url, - authorId: data.authorId, - investasiId: data.investasiId, - }, - }); return { token: token, - dataTransaksi: newTransaksi, + // dataTransaksi: newTransaksi, }; } diff --git a/src/app_modules/investasi/fun/get_transaksi_investasi.ts b/src/app_modules/investasi/fun/get_transaksi_investasi.ts index e8846deb..e78e602b 100644 --- a/src/app_modules/investasi/fun/get_transaksi_investasi.ts +++ b/src/app_modules/investasi/fun/get_transaksi_investasi.ts @@ -11,6 +11,10 @@ export default async function getTransaksiByIdInvestasi(id: string) { id: true, namaBank: true, nomorRekening: true, + transaction_id: true, + quantity: true, + gross_amount: true, + status_message: true, active: true, createdAt: true, updatedAt: true, diff --git a/src/app_modules/investasi/g_state/index.ts b/src/app_modules/investasi/g_state/index.ts index 6ebaf50f..1002ddd3 100644 --- a/src/app_modules/investasi/g_state/index.ts +++ b/src/app_modules/investasi/g_state/index.ts @@ -13,3 +13,5 @@ export const gs_TransferValue = atomWithStorage("gs_TransferValue", { namaBank: "", nomorRekening: "", }); + +export const gs_midtrans_snap= atomWithStorage("gs_midtrans_snapssssssssss", false) diff --git a/src/app_modules/investasi/index.ts b/src/app_modules/investasi/index.ts index febf9db1..006aa1e6 100644 --- a/src/app_modules/investasi/index.ts +++ b/src/app_modules/investasi/index.ts @@ -65,6 +65,8 @@ import UploadDokumenInvestasi from "./upload_dokumen/view"; import LayoutUploadDokumenInvestasi from "./upload_dokumen/layout"; import ProsesTransaksiInvestasi from "./proses_transaksi/view"; import LayoutProsesTransaksiInvestasi from "./proses_transaksi/layout"; +import StatusPesananInvetsatsi from "./status_pesanan/view"; +import LayoutStatusPesananInvestasi from "./status_pesanan/layout"; export { MainInvestasi, @@ -134,4 +136,6 @@ export { LayoutUploadDokumenInvestasi, ProsesTransaksiInvestasi, LayoutProsesTransaksiInvestasi, + StatusPesananInvetsatsi, + LayoutStatusPesananInvestasi, }; diff --git a/src/app_modules/investasi/main/view.tsx b/src/app_modules/investasi/main/view.tsx index 11d16a3b..62b23b7c 100644 --- a/src/app_modules/investasi/main/view.tsx +++ b/src/app_modules/investasi/main/view.tsx @@ -25,7 +25,7 @@ import { import { useRouter } from "next/navigation"; import dataDummy from "../dummy/data_dummy.json"; import moment from "moment"; -import { IconCheck, IconCircleCheck } from "@tabler/icons-react"; +import { IconCheck, IconCircleCheck, IconXboxX } from "@tabler/icons-react"; import { MODEL_Investasi } from "../model/model_investasi"; import _ from "lodash"; import { useState } from "react"; @@ -35,39 +35,23 @@ import { Warna } from "@/app/lib/warna"; export default function MainInvestasi({ listData, - pencarianInvestor, - periodeDeviden, - pembagianDeviden, + dataSelesai, + dataWaktuHabis, }: { listData: MODEL_Investasi[]; - pencarianInvestor: MODEL_DEFAULT_MASTER[]; - periodeDeviden: MODEL_DEFAULT_MASTER[]; - pembagianDeviden: MODEL_DEFAULT_MASTER[]; + dataSelesai: MODEL_Investasi[]; + dataWaktuHabis: MODEL_Investasi[]; }) { + // console.log(listData) const router = useRouter(); const [investasi, setInvestasi] = useState(listData); + const [invesDone, setInvesDone] = useState(dataSelesai); + const [invesFail, setInvesFail] = useState(dataWaktuHabis); const [statusPublish, setStatusPublish] = useState(false); - async function onProgres(data: MODEL_Investasi) { - // console.log(data) - const total = Number(data.totalLembar); - const sisa = Number(data.sisaLembar); - const beli = total - sisa; - const hasil = (beli / total) * 100; - const progres = Math.round(hasil).toFixed(2); - // console.log(progres) - return progres; - } + // console.log(dataWaktuHabis) - // useShallowEffect(() => { - // onStatusPublish(investasi) - // },[investasi]) - - // async function onStatusPublish(investasi : MODEL_Investasi[]) { - - // } - - if (_.isEmpty(investasi)) + if (_.isEmpty(investasi) && _.isEmpty(invesDone) && _.isEmpty(invesFail)) return ( <> {" "} @@ -79,7 +63,6 @@ export default function MainInvestasi({ return ( <> - {/*
{JSON.stringify(listData, null, 2)}
*/} {investasi.map((e) => ( - {/* Progress dan titlr */} {e.title}
@@ -179,15 +148,6 @@ export default function MainInvestasi({ - {/* - {e.SahamTerbeli === null ? ( - "" - ) : ( - - Saham Anda - - )} - */} + ) : ( + + )} + + - - - - - Total Harga - - - Rp.{" "} - {new Intl.NumberFormat("id-ID", { - maximumFractionDigits: 10, - }).format(total)} - - - -
- {jumlah < 10 ? ( - - ) : ( - - )} -
- - )} - - + {/* */} ); } diff --git a/src/app_modules/investasi/status_pesanan/layout.tsx b/src/app_modules/investasi/status_pesanan/layout.tsx new file mode 100644 index 00000000..1356d682 --- /dev/null +++ b/src/app_modules/investasi/status_pesanan/layout.tsx @@ -0,0 +1,30 @@ +"use client"; + +import HeaderTamplate from "@/app_modules/component/header_tamplate"; +import { ActionIcon, AppShell, Group, Header, Text } from "@mantine/core"; +import { IconArrowLeft } from "@tabler/icons-react"; +import router from "next/router"; +import { title } from "process"; +import React from "react"; + +export default function LayoutStatusPesananInvestasi({ + children, +}: { + children: React.ReactNode; +}) { + return ( + <> + + + Status Transaksi + + + } + > + {children} + + + ); +} diff --git a/src/app_modules/investasi/status_pesanan/view.tsx b/src/app_modules/investasi/status_pesanan/view.tsx new file mode 100644 index 00000000..6a6d99f7 --- /dev/null +++ b/src/app_modules/investasi/status_pesanan/view.tsx @@ -0,0 +1,70 @@ +"use client"; + +import { useState } from "react"; +import { MODEL_Transaksi_Investasi } from "../model/model_investasi"; +import { Button, Group, Paper, Stack, Text } from "@mantine/core"; +import { useRouter } from "next/navigation"; +import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"; + +export default function StatusPesananInvetsatsi({ + dataTransaksi, +}: { + dataTransaksi: MODEL_Transaksi_Investasi; +}) { + const router = useRouter() + const [transaksi, setTransaksi] = useState(dataTransaksi); + + return ( + <> + + + + + Pemilik Investasi + {transaksi.Investasi.author.username} + + + Nomor Telephone + {transaksi.Investasi.author.nomor} + + + Nama Proyek Investasi + {transaksi.Investasi.title} + + + + + + + Transaksi ID + {transaksi.transaction_id} + + + Lembar Terbeli + {new Intl.NumberFormat("id-ID").format(+transaksi.quantity)} lembar + + + Total Transfer + Rp. {new Intl.NumberFormat("id-ID", {maximumFractionDigits: 10}).format(+transaksi.gross_amount)} + + + Tipe Pembayaran + {transaksi.payment_type.replace('_', " ")} + + + Nama Bank + {transaksi.namaBank} + + + Status Pembayaran + {transaksi.status_message} + + + + + + + ); +} diff --git a/src/app_modules/investasi/transaksi/view.tsx b/src/app_modules/investasi/transaksi/view.tsx index e720ae68..2fc02d23 100644 --- a/src/app_modules/investasi/transaksi/view.tsx +++ b/src/app_modules/investasi/transaksi/view.tsx @@ -68,8 +68,8 @@ export default function TransaksiInvestasi({ <> {transaksi.map((e) => ( - - + router.push(RouterInvestasi.status_pesanan + `${e.id}`)}> + {e.Investasi.title} @@ -86,62 +86,8 @@ export default function TransaksiInvestasi({ {moment(e.createdAt).format("ll")} {e.quantity} Lembar - {/* {(() => { - 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} - - - ); - } - } - } - })()} */}
- ))} diff --git a/src/bin/seeder/investasi/master_progres.json b/src/bin/seeder/investasi/master_progres.json new file mode 100644 index 00000000..951cf27c --- /dev/null +++ b/src/bin/seeder/investasi/master_progres.json @@ -0,0 +1,14 @@ +[ + { + "id": "1", + "name": "Dalam Proses" + }, + { + "id": "2", + "name": "Selesai" + }, + { + "id": "3", + "name": "Waktu Habis" + } +] diff --git a/src/bin/seeder/investasi/pembagian_deviden.json b/src/bin/seeder/investasi/pembagian_deviden.json index c15d09b1..6f9132c2 100644 --- a/src/bin/seeder/investasi/pembagian_deviden.json +++ b/src/bin/seeder/investasi/pembagian_deviden.json @@ -6,5 +6,13 @@ { "id": "2", "name": "6" + }, + { + "id": "3", + "name": "9" + }, + { + "id": "4", + "name": "12" } ] diff --git a/src/bin/seeder/user_seeder.json b/src/bin/seeder/user_seeder.json new file mode 100644 index 00000000..e83e8c96 --- /dev/null +++ b/src/bin/seeder/user_seeder.json @@ -0,0 +1,12 @@ +[ + { + "name": "Banuna", + "nomor": "6282340374412", + "masterUserRoleId": "1" + }, + { + "name": "Firman", + "nomor": "6281339158911", + "masterUserRoleId": "1" + } +] diff --git a/tsconfig.json b/tsconfig.json index a8c45b75..474fa58c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,6 +23,6 @@ "@/*": ["./src/*"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "src/app_modules/investasi/proses_transaksi/view.jsx"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "src/app_modules/investasi/proses_transaksi/view.jsx", "src/app/api/investasi/midtrans/[id]/route.ts"], "exclude": ["node_modules"] } diff --git a/zCoba.js b/zCoba.js index dcd2b8ff..f6500cfa 100644 --- a/zCoba.js +++ b/zCoba.js @@ -1,8 +1,20 @@ const moment = require("moment"); -function Coba() { - const tgl = new Date - console.log(tgl) +// function Coba() { +// let total = 100; +// let sisa = 1; + +// const hasil = (total - sisa) +// console.log(hasil) +// } + +// Coba(); + +function Coba1() { + const fruits = []; + const data = 10 - 4 + fruits.push(data); + console.log(fruits); } -Coba(); +Coba1();