From a6bb993b0dbdc79fd2e53dae46c8f322500773c4 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Fri, 23 Aug 2024 14:15:11 +0800 Subject: [PATCH] # fix ## Deskripsi: - Perubahan tampilan notifikasi - Pin map sesuai logo - Pin map bisa custom ### No Issue --- prisma/schema.prisma | 73 +++- prisma/seed.ts | 405 +----------------- .../2a49f6f4-e438-4553-8805-262cfc149676.jpg | Bin 0 -> 5573 bytes .../994abfea-c671-40e6-80ff-085d1ab630d8.jpeg | Bin 13553 -> 0 bytes .../c9b8ae8d-840a-4d67-9417-bb385779aca7.jpg | Bin 9336 -> 0 bytes .../d81f191e-9d94-433f-8e33-ad5bbaa187e8.jpg | Bin 13964 -> 0 bytes .../058062ed-4f6c-4b66-973d-baec02269426.jpg | Bin 0 -> 22963 bytes .../a4e06daa-c60c-47a5-b401-aa9dd2d62890.jpg} | Bin .../3b90a6b0-660f-4b0c-b9a2-4a7859b7d15f.png | Bin 0 -> 2447 bytes .../6d3378ed-2f89-4a8b-b93a-787d72118a17.png | Bin 0 -> 6384 bytes .../b46ad0ae-497e-4968-9943-14b571adce9a.jpg | Bin 0 -> 9957 bytes src/app/api/map/foto/[id]/route.ts | 32 ++ src/app/api/map/{ => pin}/[id]/route.ts | 4 +- src/app/contoh/page.tsx | 50 +++ .../investasi/transaksi/invoice/[id]/page.tsx | 12 + .../transaksi/pembelian/[id]/page.tsx | 5 +- .../transaksi/proses-transaksi/[id]/page.tsx | 11 + src/app/dev/map/custom-pin/[id]/page.tsx | 16 + src/app/dev/map/edit/[id]/page.tsx | 4 +- src/app/dev/map/main/page.tsx | 6 +- src/app/dev/notifikasi/page.tsx | 18 +- src/app/lib/router_hipmi/router_investasi.ts | 2 + src/app/lib/router_hipmi/router_map.ts | 4 +- .../_global/fun/generate_seeder.ts | 34 ++ .../fun/get/fun_master_kategori_app.ts | 13 + src/app_modules/_global/fun/get/index.ts | 3 + .../admin/map/component/drawer_detail_map.tsx | 2 +- .../home/component/button_header.tsx | 21 +- src/app_modules/investasi/_component/index.ts | 4 + .../transaksi/box_metode_pembayaran.tsx | 10 +- .../_component/transaksi/proses_acc_admin.tsx | 101 +++++ .../_component/transaksi/view_invoice.tsx | 267 ++++++++++++ src/app_modules/investasi/_ui/index.ts | 6 +- .../investasi/_ui/transaksi/invoice.tsx | 15 + .../_ui/transaksi/proses_pembelian.tsx | 22 + .../_ui/transaksi/proses_transaksi.tsx | 21 +- src/app_modules/investasi/detail/view.tsx | 20 +- .../portofolio/component/button_more.tsx | 12 +- .../component/detail_data_drawer_map.tsx | 52 ++- .../portofolio/fun/get/get_one_portofolio.ts | 14 +- .../katalog/portofolio/ui/ui_detail_map.tsx | 29 +- .../map/_component/detail_data.tsx | 50 ++- .../map/fun/create/fun_create_pin.ts | 4 +- .../map/fun/edit/fun_custom_pin_map.ts | 50 +++ src/app_modules/map/fun/edit/fun_edit_map.ts | 5 +- .../map/fun/get/fun_get_all_map.ts | 7 + .../map/fun/get/fun_get_one_by_id.ts | 2 +- .../fun/get/fun_get_one_by_portofolio_id.ts | 20 +- src/app_modules/map/fun/index.ts | 3 + src/app_modules/map/lib/default_lat_long.ts | 4 +- src/app_modules/map/lib/interface.ts | 5 +- src/app_modules/map/ui/index.ts | 5 +- src/app_modules/map/ui/ui_custom_pin.tsx | 224 ++++++++++ .../ui/{ui_edit_pin.tsx => ui_edit_map.tsx} | 52 ++- src/app_modules/map/ui/ui_map.tsx | 39 +- src/app_modules/map/view/custom_pin.tsx | 16 + src/app_modules/map/view/index.ts | 1 + src/app_modules/map/view/main_view.tsx | 11 +- .../notifikasi/component/card_skeleton.tsx | 62 +++ src/app_modules/notifikasi/component/index.ts | 5 + .../fun/get/fun_get_kategori_app.ts | 17 + .../fun/get/get_notifiaksi_by_id.ts | 27 +- .../notifikasi/lib/dummy_data_kategori.ts | 30 ++ .../notifikasi/lib/global_state.ts | 6 + src/app_modules/notifikasi/lib/index.ts | 5 + src/app_modules/notifikasi/ui/index.ts | 5 + .../notifikasi/ui/ui_layout_notifikasi.tsx | 91 ++++ .../{component => ui}/ui_notifiaksi.tsx | 114 +++-- .../notifikasi/{ => view}/index.ts | 0 .../notifikasi/view/view_notifikasi.tsx | 23 + .../notifikasi/view_notifikasi.tsx | 19 - src/bin/seeder/investasi/index.ts | 3 + .../investasi/new_status_transaksi.json | 22 + src/bin/seeder/master/index.ts | 3 + .../seeder/master/master_kategori_app.json | 30 ++ 75 files changed, 1602 insertions(+), 646 deletions(-) create mode 100644 public/donasi/invoice/2a49f6f4-e438-4553-8805-262cfc149676.jpg delete mode 100644 public/map/994abfea-c671-40e6-80ff-085d1ab630d8.jpeg delete mode 100644 public/map/c9b8ae8d-840a-4d67-9417-bb385779aca7.jpg delete mode 100644 public/map/d81f191e-9d94-433f-8e33-ad5bbaa187e8.jpg create mode 100644 public/map/foto/058062ed-4f6c-4b66-973d-baec02269426.jpg rename public/map/{9f873fae-7b5e-4c60-a5fa-cb6b63a1eba3.jpg => foto/a4e06daa-c60c-47a5-b401-aa9dd2d62890.jpg} (100%) create mode 100644 public/map/pin/3b90a6b0-660f-4b0c-b9a2-4a7859b7d15f.png create mode 100644 public/map/pin/6d3378ed-2f89-4a8b-b93a-787d72118a17.png create mode 100644 public/portofolio/logo/b46ad0ae-497e-4968-9943-14b571adce9a.jpg create mode 100644 src/app/api/map/foto/[id]/route.ts rename src/app/api/map/{ => pin}/[id]/route.ts (83%) create mode 100644 src/app/contoh/page.tsx create mode 100644 src/app/dev/investasi/transaksi/invoice/[id]/page.tsx create mode 100644 src/app/dev/investasi/transaksi/proses-transaksi/[id]/page.tsx create mode 100644 src/app/dev/map/custom-pin/[id]/page.tsx create mode 100644 src/app_modules/_global/fun/get/fun_master_kategori_app.ts create mode 100644 src/app_modules/_global/fun/get/index.ts create mode 100644 src/app_modules/investasi/_component/transaksi/proses_acc_admin.tsx create mode 100644 src/app_modules/investasi/_component/transaksi/view_invoice.tsx create mode 100644 src/app_modules/investasi/_ui/transaksi/invoice.tsx create mode 100644 src/app_modules/investasi/_ui/transaksi/proses_pembelian.tsx create mode 100644 src/app_modules/map/fun/edit/fun_custom_pin_map.ts create mode 100644 src/app_modules/map/fun/index.ts create mode 100644 src/app_modules/map/ui/ui_custom_pin.tsx rename src/app_modules/map/ui/{ui_edit_pin.tsx => ui_edit_map.tsx} (85%) create mode 100644 src/app_modules/map/view/custom_pin.tsx create mode 100644 src/app_modules/notifikasi/component/card_skeleton.tsx create mode 100644 src/app_modules/notifikasi/component/index.ts create mode 100644 src/app_modules/notifikasi/fun/get/fun_get_kategori_app.ts create mode 100644 src/app_modules/notifikasi/lib/dummy_data_kategori.ts create mode 100644 src/app_modules/notifikasi/lib/global_state.ts create mode 100644 src/app_modules/notifikasi/lib/index.ts create mode 100644 src/app_modules/notifikasi/ui/index.ts create mode 100644 src/app_modules/notifikasi/ui/ui_layout_notifikasi.tsx rename src/app_modules/notifikasi/{component => ui}/ui_notifiaksi.tsx (63%) rename src/app_modules/notifikasi/{ => view}/index.ts (100%) create mode 100644 src/app_modules/notifikasi/view/view_notifikasi.tsx delete mode 100644 src/app_modules/notifikasi/view_notifikasi.tsx create mode 100644 src/bin/seeder/investasi/index.ts create mode 100644 src/bin/seeder/investasi/new_status_transaksi.json create mode 100644 src/bin/seeder/master/index.ts create mode 100644 src/bin/seeder/master/master_kategori_app.json diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 15cfd506..2d38d7c4 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -46,6 +46,7 @@ model User { Admin_Notifikasi Notifikasi[] @relation("AdminNotifikasi") User_Notifikasi Notifikasi[] @relation("UserNotifikasi") BusinessMaps BusinessMaps[] + Investasi_Invoice Investasi_Invoice[] } model MasterUserRole { @@ -116,6 +117,7 @@ model Images { Job Job[] Image_Map BusinessMaps[] @relation("ImageMap") Image_Pin BusinessMaps[] @relation("ImagePin") + Investasi_Invoice Investasi_Invoice[] } model ImagesBackground { @@ -180,6 +182,18 @@ model MasterStatus { Job Job[] } +// ------------------- MASTER -------------------------- // + +model MasterBank { + id String @id @default(cuid()) + name String + norek String + active Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + Investasi_Invoice Investasi_Invoice[] +} + // -------------------- INVESTASI --------------------- // // Table investasi / saham model Investasi { @@ -218,6 +232,7 @@ model Investasi { TransaksiInvestasi TransaksiInvestasi[] MasterProgresInvestasi MasterProgresInvestasi? @relation(fields: [masterProgresInvestasiId], references: [id]) masterProgresInvestasiId String? + Investasi_Invoice Investasi_Invoice[] } model MasterPencarianInvestor { @@ -291,15 +306,6 @@ model BeritaInvestasi { investasiId String } -model MasterBank { - id String @id @default(cuid()) - name String - norek String - active Boolean @default(true) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt -} - model MasterProgresInvestasi { id String @id @default(cuid()) name String @@ -352,6 +358,40 @@ model MasterStatusTransaksiInvestasi { TransaksiInvestasi TransaksiInvestasi[] } +model Investasi_Invoice { + id String @id @default(cuid()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + nominal String + lembarTerbeli String + + Investasi Investasi? @relation(fields: [investasiId], references: [id]) + investasiId String? + + MasterBank MasterBank? @relation(fields: [masterBankId], references: [id]) + masterBankId String? + + StatusInvoice InvestasiMaster_StatusInvoice? @relation(fields: [statusInvoiceId], references: [id]) + statusInvoiceId String? + + Author User? @relation(fields: [authorId], references: [id]) + authorId String? + + Images Images? @relation(fields: [imagesId], references: [id]) + imagesId String? +} + +model InvestasiMaster_StatusInvoice { + id String @id @default(cuid()) + name String + active Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + Investasi_Invoice Investasi_Invoice[] +} + /// ---------------------------------------- DONASI ----------------------------------------- // model Donasi { id String @id @default(cuid()) @@ -875,6 +915,7 @@ model Notifikasi { adminId String? } +// MAPS model BusinessMaps { id String @id @default(cuid()) isActive Boolean @default(true) @@ -887,8 +928,18 @@ model BusinessMaps { authorId String? Portofolio Portofolio? @relation(fields: [portofolioId], references: [id]) portofolioId String? @unique - ImageMap Images? @relation("ImageMap", fields: [imagesMapId], references: [id], map: "MapImage") - imagesMapId String? + ImageMap Images? @relation("ImageMap", fields: [imageMapId], references: [id], map: "MapImage") + imageMapId String? ImagePin Images? @relation("ImagePin", fields: [imagePinId], references: [id], map: "PinImage") imagePinId String? } + +// Kategori App +model MasterKategoriApp { + id String @id @default(cuid()) + isActive Boolean @default(true) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + name String + value String? +} diff --git a/prisma/seed.ts b/prisma/seed.ts index 77eba579..b4eb2917 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -1,410 +1,9 @@ import prisma from "./../src/app/lib/prisma"; -// import { generate_seeder } from "./../src/app_modules/_global/fun/generate_seeder"; -import bidangBisnis from "./../src/bin/seeder/bidang_bisnis.json"; -import collaboration_industri from "./../src/bin/seeder/colab/master_industri.json"; -import collaboration_status from "./../src/bin/seeder/colab/master_status.json"; -import donasi_namaBank from "./../src/bin/seeder/donasi/master_bank.json"; -import donasi_durasi from "./../src/bin/seeder/donasi/master_durasi.json"; -import donasi_kategori from "./../src/bin/seeder/donasi/master_kategori.json"; -import donasi_status from "./../src/bin/seeder/donasi/master_status.json"; -import donasi_status_invoice from "./../src/bin/seeder/donasi/master_status_invoice.json"; -import event_status from "./../src/bin/seeder/event/master_status.json"; -import event_tipe_acara from "./../src/bin/seeder/event/master_tipe_acara.json"; -import forum_kategori_report from "./../src/bin/seeder/forum/master_report.json"; -import forum_status_posting from "./../src/bin/seeder/forum/master_status.json"; -import jenisProgres from "./../src/bin/seeder/investasi/master_progres.json"; -import namaBank from "./../src/bin/seeder/investasi/nama_bank.json"; -import pembagianDeviden from "./../src/bin/seeder/investasi/pembagian_deviden.json"; -import pencarianInvestor from "./../src/bin/seeder/investasi/pencarian_investor.json"; -import periodeDeviden from "./../src/bin/seeder/investasi/periode_deviden.json"; -import statusInvestasi from "./../src/bin/seeder/investasi/status_investasi.json"; -import statusTransaksiInvestasi from "./../src/bin/seeder/investasi/status_transaksi_investasi.json"; -import master_status from "./../src/bin/seeder/master_status.json"; -import nomor_admin from "./../src/bin/seeder/nomor_admin.json"; -import userRole from "./../src/bin/seeder/user_role.json"; -import userSeeder from "./../src/bin/seeder/user_seeder.json"; -import voting_status from "./../src/bin/seeder/voting/master_status.json"; +import { generate_seeder } from "./../src/app_modules/_global/fun/generate_seeder"; (async () => { console.log("start"); - for (let i of userRole) { - await prisma.masterUserRole.upsert({ - where: { - id: i.id.toString(), - }, - update: { - id: i.id.toString(), - name: i.name, - }, - create: { - id: i.id.toString(), - name: i.name, - }, - }); - } - - 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: { - id: i.id.toString(), - }, - update: { - id: i.id.toString(), - name: i.name, - }, - create: { - id: i.id.toString(), - name: i.name, - }, - }); - } - - for (let i of pencarianInvestor) { - await prisma.masterPencarianInvestor.upsert({ - where: { - id: i.id.toString(), - }, - update: { - id: i.id.toString(), - name: i.name, - }, - create: { - id: i.id.toString(), - name: i.name, - }, - }); - } - - for (let i of pembagianDeviden) { - await prisma.masterPembagianDeviden.upsert({ - where: { - id: i.id.toString(), - }, - update: { - id: i.id.toString(), - name: i.name, - }, - create: { - id: i.id.toString(), - name: i.name, - }, - }); - } - - for (let i of periodeDeviden) { - await prisma.masterPeriodeDeviden.upsert({ - where: { - id: i.id.toString(), - }, - update: { - id: i.id.toString(), - name: i.name, - }, - create: { - id: i.id.toString(), - name: i.name, - }, - }); - } - - for (let i of statusInvestasi) { - await prisma.masterStatusInvestasi.upsert({ - where: { - id: i.id, - }, - create: { - id: i.id, - name: i.name, - color: i.color, - }, - update: { - id: i.id, - name: i.name, - color: i.color, - }, - }); - } - - for (let i of namaBank) { - await prisma.masterBank.upsert({ - where: { - id: i.id.toString(), - }, - create: { - id: i.id.toString(), - name: i.name, - norek: i.norek.toString(), - }, - update: { - id: i.id.toString(), - name: i.name, - norek: i.norek.toString(), - }, - }); - } - - for (let i of statusTransaksiInvestasi) { - await prisma.masterStatusTransaksiInvestasi.upsert({ - where: { - id: i.id, - }, - create: { - id: i.id, - name: i.name, - color: i.color, - }, - update: { - id: i.id, - name: i.name, - color: i.color, - }, - }); - } - - for (let i of jenisProgres) { - await prisma.masterProgresInvestasi.upsert({ - where: { - id: i.id, - }, - create: { - id: i.id, - name: i.name, - }, - update: { - name: i.name, - }, - }); - } - - for (let d of donasi_status) { - await prisma.donasiMaster_StatusDonasi.upsert({ - where: { - id: d.id, - }, - create: { - id: d.id, - name: d.name, - }, - update: { - name: d.name, - }, - }); - } - - for (let d of donasi_kategori) { - await prisma.donasiMaster_Kategori.upsert({ - where: { - id: d.id, - }, - create: { - id: d.id, - name: d.name, - }, - update: { - name: d.name, - }, - }); - } - - for (let d of donasi_durasi) { - await prisma.donasiMaster_Durasi.upsert({ - where: { - id: d.id, - }, - create: { - id: d.id, - name: d.name, - }, - update: { - name: d.name, - }, - }); - } - - for (let i of donasi_namaBank) { - await prisma.donasiMaster_Bank.upsert({ - where: { - id: i.id, - }, - create: { - id: i.id, - name: i.name, - norek: i.norek, - }, - update: { - id: i.id, - name: i.name, - norek: i.norek, - }, - }); - } - - for (let d of donasi_status_invoice) { - await prisma.donasiMaster_StatusInvoice.upsert({ - where: { - id: d.id, - }, - create: { - id: d.id, - name: d.name, - }, - update: { - name: d.name, - }, - }); - } - - for (let e of event_status) { - await prisma.eventMaster_Status.upsert({ - where: { - id: e.id, - }, - create: { - id: e.id, - name: e.name, - }, - update: { - name: e.name, - }, - }); - } - - for (let e of event_tipe_acara) { - await prisma.eventMaster_TipeAcara.upsert({ - where: { - id: e.id, - }, - create: { - id: e.id, - name: e.name, - }, - update: { - name: e.name, - }, - }); - } - - for (let v of voting_status) { - await prisma.voting_Status.upsert({ - where: { - id: v.id, - }, - create: { - id: v.id, - name: v.name, - }, - update: { - name: v.name, - }, - }); - } - - for (let m of master_status) { - await prisma.masterStatus.upsert({ - where: { - id: m.id, - }, - create: { - id: m.id, - name: m.name, - }, - update: { - name: m.name, - }, - }); - } - - for (let m of forum_kategori_report) { - await prisma.forumMaster_KategoriReport.upsert({ - where: { - id: m.id as number, - }, - create: { - title: m.title, - deskripsi: m.deskripsi, - }, - update: { - title: m.title, - deskripsi: m.deskripsi, - }, - }); - } - - for (let s of forum_status_posting) { - await prisma.forumMaster_StatusPosting.upsert({ - where: { - id: s.id, - }, - create: { - status: s.status, - }, - update: { - status: s.status, - }, - }); - } - - for (let p of collaboration_industri) { - await prisma.projectCollaborationMaster_Industri.upsert({ - where: { - id: p.id, - }, - create: { - name: p.name, - }, - update: { - name: p.name, - }, - }); - } - - for (let p of collaboration_status) { - await prisma.projectCollaborationMaster_Status.upsert({ - where: { - id: p.id, - }, - create: { - name: p.name, - }, - update: { - name: p.name, - }, - }); - } - - for (let a of nomor_admin) { - await prisma.nomorAdmin.upsert({ - where: { - id: a.id, - }, - create: { - id: a.id, - nomor: a.nomor, - }, - update: { - id: a.id, - nomor: a.nomor, - }, - }); - } + await generate_seeder(); })() .then(() => { console.log("success"); diff --git a/public/donasi/invoice/2a49f6f4-e438-4553-8805-262cfc149676.jpg b/public/donasi/invoice/2a49f6f4-e438-4553-8805-262cfc149676.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ea83eb05bc4c42a620cbb15e3224b7376afebdcc GIT binary patch literal 5573 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

YicJyVj%NV^4@ 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 BXT<;j diff --git a/public/map/d81f191e-9d94-433f-8e33-ad5bbaa187e8.jpg b/public/map/d81f191e-9d94-433f-8e33-ad5bbaa187e8.jpg deleted file mode 100644 index 830b275a6db54baa6d84990e60a262d0a365c7de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13964 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

c2Y6O>i{<0zSm^9qa81Vtux5$V>Zb}BMmL*1+M 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 literal 0 HcmV?d00001 diff --git a/public/map/pin/6d3378ed-2f89-4a8b-b93a-787d72118a17.png b/public/map/pin/6d3378ed-2f89-4a8b-b93a-787d72118a17.png new file mode 100644 index 0000000000000000000000000000000000000000..f88d76f7cdc21f619dc8d9e7a57494155c74a6c5 GIT binary patch literal 6384 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 PlL1hc*O04`u?+t|x95H~ literal 0 HcmV?d00001 diff --git a/public/portofolio/logo/b46ad0ae-497e-4968-9943-14b571adce9a.jpg b/public/portofolio/logo/b46ad0ae-497e-4968-9943-14b571adce9a.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b069b1eddd9d6770edffa21954f9ee16a80c9305 GIT binary patch literal 9957 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 + + + + + return ( + + + + {Array.from(new Array(10), (_, i) => ( + + Contoh + + ))} + + + + + Ini Bagian Yang Gak Ikut + + + ); +} diff --git a/src/app/dev/investasi/transaksi/invoice/[id]/page.tsx b/src/app/dev/investasi/transaksi/invoice/[id]/page.tsx new file mode 100644 index 00000000..96af36c1 --- /dev/null +++ b/src/app/dev/investasi/transaksi/invoice/[id]/page.tsx @@ -0,0 +1,12 @@ +import { Investasi_UiInvoice } from "@/app_modules/investasi/_ui"; + +export default function Page({ params }: { params: { id: string } }) { + const invoiceId = params.id; + + + return ( + <> + + + ); +} diff --git a/src/app/dev/investasi/transaksi/pembelian/[id]/page.tsx b/src/app/dev/investasi/transaksi/pembelian/[id]/page.tsx index c8c5754a..ff9e0b90 100644 --- a/src/app/dev/investasi/transaksi/pembelian/[id]/page.tsx +++ b/src/app/dev/investasi/transaksi/pembelian/[id]/page.tsx @@ -1,5 +1,6 @@ import { investasi_funGetOneInvestasiById } from "@/app_modules/investasi/_fun"; -import { Investasi_UiProsesTransaksi } from "@/app_modules/investasi/_ui"; +import { Investasi_UiProsesPembelian } from "@/app_modules/investasi/_ui"; + export default async function Page({ params }: { params: { id: string } }) { const investasiId = params.id; @@ -7,7 +8,7 @@ export default async function Page({ params }: { params: { id: string } }) { return ( <> - + ); } diff --git a/src/app/dev/investasi/transaksi/proses-transaksi/[id]/page.tsx b/src/app/dev/investasi/transaksi/proses-transaksi/[id]/page.tsx new file mode 100644 index 00000000..08909807 --- /dev/null +++ b/src/app/dev/investasi/transaksi/proses-transaksi/[id]/page.tsx @@ -0,0 +1,11 @@ +import { Investasi_UiProsesTransaksi } from "@/app_modules/investasi/_ui"; + +export default async function Page({ params }: { params: { id: string } }) { + const invoiceId = params.id; + + return ( + <> + + + ); +} diff --git a/src/app/dev/map/custom-pin/[id]/page.tsx b/src/app/dev/map/custom-pin/[id]/page.tsx new file mode 100644 index 00000000..40347ba6 --- /dev/null +++ b/src/app/dev/map/custom-pin/[id]/page.tsx @@ -0,0 +1,16 @@ +import { map_funGetOneBusinessMapByPortofolioId } from "@/app_modules/map/fun/get/fun_get_one_by_portofolio_id"; +import { Map_CustomPin } from "@/app_modules/map/view"; + +export default async function Page({ params }: { params: { id: string } }) { + const portofolioId = params.id; + const dataMap = await map_funGetOneBusinessMapByPortofolioId({ + portofolioId: portofolioId, + }); + + + return ( + <> + + + ); +} diff --git a/src/app/dev/map/edit/[id]/page.tsx b/src/app/dev/map/edit/[id]/page.tsx index 79a07168..13a5758d 100644 --- a/src/app/dev/map/edit/[id]/page.tsx +++ b/src/app/dev/map/edit/[id]/page.tsx @@ -1,9 +1,9 @@ -import { map_funGetOneByPortofolioId } from "@/app_modules/map/fun/get/fun_get_one_by_portofolio_id"; +import { map_funGetOneBusinessMapByPortofolioId } from "@/app_modules/map/fun/get/fun_get_one_by_portofolio_id"; import { Map_EditPin } from "@/app_modules/map/view"; export default async function Page({ params }: { params: { id: string } }) { const portofolioId = params.id; - const dataMap = await map_funGetOneByPortofolioId({portofolioId: portofolioId}) + const dataMap = await map_funGetOneBusinessMapByPortofolioId({portofolioId: portofolioId}) return ( <> diff --git a/src/app/dev/map/main/page.tsx b/src/app/dev/map/main/page.tsx index 36cb8f49..202b3ffc 100644 --- a/src/app/dev/map/main/page.tsx +++ b/src/app/dev/map/main/page.tsx @@ -1,14 +1,14 @@ import ComponentGlobal_IsEmptyData from "@/app_modules/_global/component/is_empty_data"; +import { map_funGetAllMap } from "@/app_modules/map/fun/get/fun_get_all_map"; import { Map_View } from "@/app_modules/map/view"; const mapboxToken = process.env.MAPBOX_TOKEN!; export default async function Page() { - if (!mapboxToken) - return ; + const dataMap = await map_funGetAllMap(); return ( <> - + ); } diff --git a/src/app/dev/notifikasi/page.tsx b/src/app/dev/notifikasi/page.tsx index de986f62..93689e8a 100644 --- a/src/app/dev/notifikasi/page.tsx +++ b/src/app/dev/notifikasi/page.tsx @@ -1,12 +1,24 @@ -import { Notifikasi_MainView } from "@/app_modules/notifikasi"; +import { ComponentNotifikasi_CardSkeleton } from "@/app_modules/notifikasi/component"; +import { notifikasi_funGetKategoriApp } from "@/app_modules/notifikasi/fun/get/fun_get_kategori_app"; import notifikasi_getByUserId from "@/app_modules/notifikasi/fun/get/get_notifiaksi_by_id"; +import { Notifikasi_MainView } from "@/app_modules/notifikasi/view"; +import { Suspense } from "react"; export default async function Page() { - const listNotifikasi = await notifikasi_getByUserId({ page: 1 }); + const listNotifikasi = await notifikasi_getByUserId({ + page: 1, + kategoriApp: "Semua", + }); + const masterKategori = await notifikasi_funGetKategoriApp(); return ( <> - + }> + + ); } diff --git a/src/app/lib/router_hipmi/router_investasi.ts b/src/app/lib/router_hipmi/router_investasi.ts index c3933bf9..7c97bdec 100644 --- a/src/app/lib/router_hipmi/router_investasi.ts +++ b/src/app/lib/router_hipmi/router_investasi.ts @@ -2,6 +2,8 @@ export const NEW_RouterInvestasi = { // Transaksi pembelian: "/dev/investasi/transaksi/pembelian/", metode_pembayaran: "/dev/investasi/transaksi/metode-pembayaran/", + invoice: "/dev/investasi/transaksi/invoice/", + proses_transaksi: "/dev/investasi/transaksi/proses-transaksi/", // file view file_view: "/dev/investasi/file-view/", diff --git a/src/app/lib/router_hipmi/router_map.ts b/src/app/lib/router_hipmi/router_map.ts index b2c4bd15..4c2f8a66 100644 --- a/src/app/lib/router_hipmi/router_map.ts +++ b/src/app/lib/router_hipmi/router_map.ts @@ -1,10 +1,12 @@ export const RouterMap = { // api - api_foto: "/api/map/", + api_foto: "/api/map/foto/", + api_custom_pin: "/api/map/pin/", // main splash: "/dev/map/splash", main_view: "/dev/map/main", create: "/dev/map/create/", edit: "/dev/map/edit/", + custom_pin: "/dev/map/custom-pin/", }; diff --git a/src/app_modules/_global/fun/generate_seeder.ts b/src/app_modules/_global/fun/generate_seeder.ts index 837c2f12..828bde19 100644 --- a/src/app_modules/_global/fun/generate_seeder.ts +++ b/src/app_modules/_global/fun/generate_seeder.ts @@ -23,6 +23,8 @@ import nomor_admin from "../../../bin/seeder/nomor_admin.json"; import userRole from "../../../bin/seeder/user_role.json"; import userSeeder from "../../../bin/seeder/user_seeder.json"; import voting_status from "../../../bin/seeder/voting/master_status.json"; +import { master_kategori_app } from "@/bin/seeder/master"; +import { new_status_transaksi_investasi } from "@/bin/seeder/investasi"; export async function generate_seeder() { for (let i of userRole) { @@ -404,5 +406,37 @@ export async function generate_seeder() { }); } + for (let a of master_kategori_app) { + await prisma.masterKategoriApp.upsert({ + where: { + id: a.id, + }, + create: { + id: a.id, + name: a.name, + }, + update: { + id: a.id, + name: a.name, + }, + }); + } + + for (let a of new_status_transaksi_investasi) { + await prisma.investasiMaster_StatusInvoice.upsert({ + where: { + id: a.id, + }, + create: { + id: a.id, + name: a.name, + }, + update: { + id: a.id, + name: a.name, + }, + }); + } + return { status: 200, success: true }; } diff --git a/src/app_modules/_global/fun/get/fun_master_kategori_app.ts b/src/app_modules/_global/fun/get/fun_master_kategori_app.ts new file mode 100644 index 00000000..a47a70ea --- /dev/null +++ b/src/app_modules/_global/fun/get/fun_master_kategori_app.ts @@ -0,0 +1,13 @@ +"use server"; + +import prisma from "@/app/lib/prisma"; + +export async function funGlobal_getMasterKategoriApp() { + const data = await prisma.masterKategoriApp.findMany({ + where: { + isActive: true, + }, + }); + + return data; +} diff --git a/src/app_modules/_global/fun/get/index.ts b/src/app_modules/_global/fun/get/index.ts new file mode 100644 index 00000000..6c8d677a --- /dev/null +++ b/src/app_modules/_global/fun/get/index.ts @@ -0,0 +1,3 @@ +import { funGlobal_getMasterKategoriApp } from "./fun_master_kategori_app"; + +export { funGlobal_getMasterKategoriApp }; diff --git a/src/app_modules/admin/map/component/drawer_detail_map.tsx b/src/app_modules/admin/map/component/drawer_detail_map.tsx index 2cae9c40..19bb1de8 100644 --- a/src/app_modules/admin/map/component/drawer_detail_map.tsx +++ b/src/app_modules/admin/map/component/drawer_detail_map.tsx @@ -66,7 +66,7 @@ export function ComponentAdminMap_Drawer({ radius={"md"} width={300} alt="Foto" - src={RouterMap.api_foto + data?.imagesId} + src={RouterMap.api_foto + data?.imageMapId} /> diff --git a/src/app_modules/home/component/button_header.tsx b/src/app_modules/home/component/button_header.tsx index 2410796d..080f9c7c 100644 --- a/src/app_modules/home/component/button_header.tsx +++ b/src/app_modules/home/component/button_header.tsx @@ -16,6 +16,8 @@ import { RouterNotifikasi } from "@/app/lib/router_hipmi/router_notifikasi"; import { useShallowEffect } from "@mantine/hooks"; import notifikasi_countUserNotifikasi from "@/app_modules/notifikasi/fun/count/fun_count_by_id"; import mqtt_client from "@/util/mqtt_client"; +import { useAtom } from "jotai"; +import { gs_notifikasi_kategori_app } from "@/app_modules/notifikasi/lib"; export function ComponentHome_ButtonHeaderLeft({ dataUser, @@ -59,19 +61,9 @@ export function ComponentHome_ButtonHeaderRight({ const router = useRouter(); const [count, setCount] = useState(countNotifikasi); const [isLoadingBell, setIsLoadingBell] = useState(false); - - // useShallowEffect(() => { - // onLoadNotifkasi({ - // onLoad(val) { - // setCount(val); - // }, - // }); - // }, []); - - // async function onLoadNotifkasi({ onLoad }: { onLoad: (val: any) => void }) { - // const loadNotifikasi = await notifikasi_countUserNotifikasi(); - // onLoad(loadNotifikasi); - // } + const [activeKategori, setActiveKategori] = useAtom( + gs_notifikasi_kategori_app + ); useShallowEffect(() => { mqtt_client.subscribe("USER"); @@ -107,11 +99,14 @@ export function ComponentHome_ButtonHeaderRight({ } else { router.push(RouterNotifikasi.main, { scroll: false }); setIsLoadingBell(true); + setActiveKategori("Semua") } }} > {isLoadingBell ? ( + ) : count === 0 ? ( + ) : ( + + + + + + Admin sedang memproses transaksimu + +

+ +
+ + Mohon menunggu ! + + + + + + + + + + Hubungi admin jika tidak kunjung di proses! + + + Klik pada logo Whatsapp ini. + + + {/* + + */} + + + + + + ); +} diff --git a/src/app_modules/investasi/_component/transaksi/view_invoice.tsx b/src/app_modules/investasi/_component/transaksi/view_invoice.tsx new file mode 100644 index 00000000..baf22321 --- /dev/null +++ b/src/app_modules/investasi/_component/transaksi/view_invoice.tsx @@ -0,0 +1,267 @@ +"use client"; + +import { NEW_RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; +import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah"; +import { + Stack, + Title, + Group, + Paper, + Grid, + CopyButton, + Button, + Center, + FileButton, + Text, +} from "@mantine/core"; +import { IconCamera, IconCircleCheck } from "@tabler/icons-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export function ComponentInvestasi_ViewInvoice({ + dataInvoice, +}: { + dataInvoice: any; +}) { + const router = useRouter(); + const [invoice, setDataInvoice] = useState(dataInvoice); + const [file, setFile] = useState(null); + const [image, setImage] = useState(null); + // const [active, setActive] = useAtom(gs_donasi_hot_menu); + + return ( + <> + + + Mohon transfer ke rekening dibawah + + untuk diteruskan ke + {invoice?.Donasi?.Author.username} + + + + + + + Bank {invoice?.DonasiMaster_Bank?.name} + PT. Himpunan Pengusaha Badung + + + + + + + {invoice?.DonasiMaster_Bank?.norek} + + + + + + + {({ copied, copy }) => ( + + )} + + + + + + + + + + + + Jumlah transfer + + + + + + + <TampilanRupiahDonasi nominal={+(+invoice.nominal)} /> + + + + + + + {({ copied, copy }) => ( + + )} + + + + + + {/* + Sudah termasuk biaya admin Rp. 2.500,- + */} + + + + + +
+ { + try { + // const buffer = URL.createObjectURL( + // new Blob([new Uint8Array(await files.arrayBuffer())]) + // ); + // console.log(buffer, "ini buffer"); + // console.log(files, " ini file"); + setFile(files); + // onUpload(invoice.id, files); + } catch (error) { + console.log(error); + } + }} + accept="image/png,image/jpeg" + > + {(props) => ( + + )} + +
+ {file ? ( +
+ + + Upload berhasil{" "} + + + +
+ ) : ( +
+ + Upload bukti transfer anda ! + +
+ )} +
+
+ + {file !== null ? ( + + ) : ( + + )} +
+ + ); +} diff --git a/src/app_modules/investasi/_ui/index.ts b/src/app_modules/investasi/_ui/index.ts index a016b178..d128a84a 100644 --- a/src/app_modules/investasi/_ui/index.ts +++ b/src/app_modules/investasi/_ui/index.ts @@ -1,7 +1,11 @@ import { Investasi_UiFileView } from "./file_view"; +import { Investasi_UiInvoice } from "./transaksi/invoice"; import { Investasi_UiMetodePembayaran } from "./transaksi/metode_pembayaran"; +import { Investasi_UiProsesPembelian } from "./transaksi/proses_pembelian"; import { Investasi_UiProsesTransaksi } from "./transaksi/proses_transaksi"; -export { Investasi_UiProsesTransaksi }; +export { Investasi_UiProsesPembelian }; export { Investasi_UiMetodePembayaran }; export { Investasi_UiFileView }; +export { Investasi_UiInvoice }; +export { Investasi_UiProsesTransaksi }; diff --git a/src/app_modules/investasi/_ui/transaksi/invoice.tsx b/src/app_modules/investasi/_ui/transaksi/invoice.tsx new file mode 100644 index 00000000..01a61cf5 --- /dev/null +++ b/src/app_modules/investasi/_ui/transaksi/invoice.tsx @@ -0,0 +1,15 @@ +"use client"; + +import UIGlobal_LayoutTamplate from "@/app_modules/_global/ui/ui_layout_tamplate"; +import { ComponentInvestasi_ViewInvoice } from "../../_component"; +import UIGlobal_LayoutHeaderTamplate from "@/app_modules/_global/ui/ui_header_tamplate"; + +export function Investasi_UiInvoice() { + return ( + } + > + + + ); +} diff --git a/src/app_modules/investasi/_ui/transaksi/proses_pembelian.tsx b/src/app_modules/investasi/_ui/transaksi/proses_pembelian.tsx new file mode 100644 index 00000000..4cbf7e31 --- /dev/null +++ b/src/app_modules/investasi/_ui/transaksi/proses_pembelian.tsx @@ -0,0 +1,22 @@ +"use client"; + +import UIGlobal_LayoutHeaderTamplate from "@/app_modules/_global/ui/ui_header_tamplate"; +import UIGlobal_LayoutTamplate from "@/app_modules/_global/ui/ui_layout_tamplate"; +import { ComponentInvestasi_BoxPembelian } from "../../_component"; + + +export function Investasi_UiProsesPembelian({ + dataInvestasi, +}: { + dataInvestasi: any; +}) { + return ( + <> + } + > + + + + ); +} diff --git a/src/app_modules/investasi/_ui/transaksi/proses_transaksi.tsx b/src/app_modules/investasi/_ui/transaksi/proses_transaksi.tsx index 587460a2..62fe2565 100644 --- a/src/app_modules/investasi/_ui/transaksi/proses_transaksi.tsx +++ b/src/app_modules/investasi/_ui/transaksi/proses_transaksi.tsx @@ -1,21 +1,22 @@ "use client"; -import UIGlobal_LayoutHeaderTamplate from "@/app_modules/_global/ui/ui_header_tamplate"; import UIGlobal_LayoutTamplate from "@/app_modules/_global/ui/ui_layout_tamplate"; -import { ComponentInvestasi_BoxPembelian } from "../../_component"; +import { ComponentInvestasi_ProsesAccAdmin } from "../../_component"; +import UIGlobal_LayoutHeaderTamplate from "@/app_modules/_global/ui/ui_header_tamplate"; +import { IconX } from "@tabler/icons-react"; - -export function Investasi_UiProsesTransaksi({ - dataInvestasi, -}: { - dataInvestasi: any; -}) { +export function Investasi_UiProsesTransaksi() { return ( <> } + header={ + } + /> + } > - + ); diff --git a/src/app_modules/investasi/detail/view.tsx b/src/app_modules/investasi/detail/view.tsx index 29bd51d5..7058b1b9 100644 --- a/src/app_modules/investasi/detail/view.tsx +++ b/src/app_modules/investasi/detail/view.tsx @@ -2,10 +2,14 @@ import { NEW_RouterInvestasi, - RouterInvestasi_OLD, + RouterInvestasi_OLD } from "@/app/lib/router_hipmi/router_investasi"; import { Warna } from "@/app/lib/warna"; import ComponentGlobal_AuthorNameOnHeader from "@/app_modules/_global/author_name_on_header"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; import { MODEL_PROFILE_OLD } from "@/app_modules/home/model/user_profile"; import { ActionIcon, @@ -19,10 +23,9 @@ import { Image, Paper, Progress, - SimpleGrid, Stack, Text, - Title, + Title } from "@mantine/core"; import { IconBookDownload, @@ -35,12 +38,8 @@ import { useAtom } from "jotai"; import moment from "moment"; import { useRouter } from "next/navigation"; import { useState } from "react"; -import { gs_TransferValue } from "../g_state"; import { MODEL_INVESTASI } from "../_lib/interface"; -import { - AccentColor, - MainColor, -} from "@/app_modules/_global/color/color_pallet"; +import { gs_TransferValue } from "../g_state"; export default function DetailInvestasi({ dataInvestasi, @@ -86,10 +85,11 @@ export default function DetailInvestasi({ async function onSubmit() { //NEW - // router.push(NEW_RouterInvestasi.pembelian + data.id, { scroll: false }); + router.push(NEW_RouterInvestasi.pembelian + data.id, { scroll: false }); // OLD - router.push(RouterInvestasi_OLD.proses_transaksi + `${data.id}`); + // router.push(RouterInvestasi_OLD.proses_transaksi + `${data.id}`); + setTransaksiValue({ ...transaksiValue, lembarTerbeli: "", diff --git a/src/app_modules/katalog/portofolio/component/button_more.tsx b/src/app_modules/katalog/portofolio/component/button_more.tsx index 65397a97..766b2482 100644 --- a/src/app_modules/katalog/portofolio/component/button_more.tsx +++ b/src/app_modules/katalog/portofolio/component/button_more.tsx @@ -9,6 +9,8 @@ import { IconDotsVertical, IconEdit, IconId, + IconMapPin, + IconMapPin2, IconMapPinMinus, IconPhotoEdit, } from "@tabler/icons-react"; @@ -46,10 +48,16 @@ export function ComponentPortofolio_ButtonMore({ }, { id: "4", - name: "Edit pin map", - icon: , + name: "Edit data map", + icon: , path: RouterMap.edit + `${portoId}`, }, + { + id: "5", + name: "Custom pin map", + icon: , + path: RouterMap.custom_pin + `${portoId}`, + }, ]; return ( diff --git a/src/app_modules/katalog/portofolio/component/detail_data_drawer_map.tsx b/src/app_modules/katalog/portofolio/component/detail_data_drawer_map.tsx index 3c004dbb..ef68cee8 100644 --- a/src/app_modules/katalog/portofolio/component/detail_data_drawer_map.tsx +++ b/src/app_modules/katalog/portofolio/component/detail_data_drawer_map.tsx @@ -2,6 +2,10 @@ import { RouterMap } from "@/app/lib/router_hipmi/router_map"; import ComponentGlobal_AuthorNameOnHeader from "@/app_modules/_global/author_name_on_header"; +import { MainColor } from "@/app_modules/_global/color/color_pallet"; +import { ComponentMap_SkeletonDrawerDetailData } from "@/app_modules/map/_component"; +import { map_funGetOneById } from "@/app_modules/map/fun/get/fun_get_one_by_id"; +import { MODEL_MAP } from "@/app_modules/map/lib/interface"; import { Box, Button, @@ -10,23 +14,17 @@ import { Image, SimpleGrid, Stack, - Text, - Title, + Text } from "@mantine/core"; import { useShallowEffect } from "@mantine/hooks"; -import { useState } from "react"; import { IconBuildingSkyscraper, IconListDetails, - IconPhoneCall, IconMapPin, + IconPhoneCall, } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; -import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; -import { MainColor } from "@/app_modules/_global/color/color_pallet"; -import { MODEL_MAP } from "@/app_modules/map/lib/interface"; -import { map_funGetOneById } from "@/app_modules/map/fun/get/fun_get_one_by_id"; -import { ComponentMap_SkeletonDrawerDetailData } from "@/app_modules/map/_component"; +import { useState } from "react"; export function ComponentPortofolio_DetailDataMap({ mapId }: { mapId: any }) { const router = useRouter(); @@ -45,7 +43,7 @@ export function ComponentPortofolio_DetailDataMap({ mapId }: { mapId: any }) { return ( <> - + @@ -104,6 +102,38 @@ export function ComponentPortofolio_DetailDataMap({ mapId }: { mapId: any }) { + + + + + + + + + + {/*
{JSON.stringify(data, null, 2)}
*/}
diff --git a/src/app_modules/katalog/portofolio/fun/get/get_one_portofolio.ts b/src/app_modules/katalog/portofolio/fun/get/get_one_portofolio.ts index 49565a82..5baca6d4 100644 --- a/src/app_modules/katalog/portofolio/fun/get/get_one_portofolio.ts +++ b/src/app_modules/katalog/portofolio/fun/get/get_one_portofolio.ts @@ -8,18 +8,8 @@ export async function portofolio_getOneById(portoId: string) { where: { id: portoId, }, - select: { - id: true, - id_Portofolio: true, - namaBisnis: true, - alamatKantor: true, - deskripsi: true, - tlpn: true, - active: true, - profileId: true, + include: { Logo: true, - logoId: true, - masterBidangBisnisId: true, MasterBidangBisnis: { select: { id: true, @@ -41,6 +31,8 @@ export async function portofolio_getOneById(portoId: string) { BusinessMaps: { include: { Author: true, + ImageMap: true, + ImagePin: true, }, }, }, diff --git a/src/app_modules/katalog/portofolio/ui/ui_detail_map.tsx b/src/app_modules/katalog/portofolio/ui/ui_detail_map.tsx index 3d3d3158..1ecfaffe 100644 --- a/src/app_modules/katalog/portofolio/ui/ui_detail_map.tsx +++ b/src/app_modules/katalog/portofolio/ui/ui_detail_map.tsx @@ -1,10 +1,12 @@ "use client"; +import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; +import { RouterMap } from "@/app/lib/router_hipmi/router_map"; import { AccentColor } from "@/app_modules/_global/color/color_pallet"; import { ComponentMap_DrawerDetailData } from "@/app_modules/map/_component"; import { defaultMapZoom } from "@/app_modules/map/lib/default_lat_long"; import { MODEL_MAP } from "@/app_modules/map/lib/interface"; -import { Image, Paper, Stack, Text, Title } from "@mantine/core"; +import { Image, Paper, Stack, Title } from "@mantine/core"; import "mapbox-gl/dist/mapbox-gl.css"; import { useState } from "react"; import { @@ -16,7 +18,6 @@ import { } from "react-map-gl"; import { ComponentPortofolio_DetailDataMap } from "../component"; import { MODEL_LOGO, MODEL_PORTOFOLIO } from "../model/interface"; -import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; export function Portofolio_UiMap({ mapboxToken, @@ -25,7 +26,6 @@ export function Portofolio_UiMap({ mapboxToken: string; data: MODEL_PORTOFOLIO; }) { - // console.log(data); return ( - - {/* - {data.namePin} - */}
diff --git a/src/app_modules/map/_component/detail_data.tsx b/src/app_modules/map/_component/detail_data.tsx index f241b21d..4bc306dc 100644 --- a/src/app_modules/map/_component/detail_data.tsx +++ b/src/app_modules/map/_component/detail_data.tsx @@ -30,6 +30,7 @@ import { useRouter } from "next/navigation"; import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; import { MainColor } from "@/app_modules/_global/color/color_pallet"; import { ComponentMap_SkeletonDrawerDetailData } from "./skeleton_detail_data"; +import Link from "next/link"; export function ComponentMap_DetailData({ mapId }: { mapId: any }) { const router = useRouter(); @@ -48,7 +49,7 @@ export function ComponentMap_DetailData({ mapId }: { mapId: any }) { return ( <> - + @@ -116,24 +117,35 @@ export function ComponentMap_DetailData({ mapId }: { mapId: any }) { { maxWidth: 600, cols: 1, spacing: "sm" }, ]} > - + - - - + {/*
{JSON.stringify(data, null, 2)}
*/} diff --git a/src/app_modules/map/fun/create/fun_create_pin.ts b/src/app_modules/map/fun/create/fun_create_pin.ts index f68aa22b..0269aa52 100644 --- a/src/app_modules/map/fun/create/fun_create_pin.ts +++ b/src/app_modules/map/fun/create/fun_create_pin.ts @@ -29,7 +29,7 @@ export async function map_funCreatePin({ data }: { data: any }) { if (!uploadImage) return { status: 400, message: "Gagal upload foto lokasi" }; const upload_Folder = Buffer.from(await gambar.arrayBuffer()); - fs.writeFileSync(`./public/map/${uploadImage.url}`, upload_Folder); + fs.writeFileSync(`./public/map/foto/${uploadImage.url}`, upload_Folder); const create = await prisma.businessMaps.create({ data: { @@ -38,7 +38,7 @@ export async function map_funCreatePin({ data }: { data: any }) { namePin: data.namePin, portofolioId: data?.portofolioId, authorId: authorId, - imagesMapId: uploadImage.id, + imageMapId: uploadImage.id, }, }); diff --git a/src/app_modules/map/fun/edit/fun_custom_pin_map.ts b/src/app_modules/map/fun/edit/fun_custom_pin_map.ts new file mode 100644 index 00000000..85cadf6d --- /dev/null +++ b/src/app_modules/map/fun/edit/fun_custom_pin_map.ts @@ -0,0 +1,50 @@ +"use server"; + +import prisma from "@/app/lib/prisma"; +import _ from "lodash"; +import { v4 } from "uuid"; +import fs from "fs"; +import { revalidatePath } from "next/cache"; +import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; + +export async function map_funCustomPinMap({ + mapId, + file, +}: { + mapId: string; + file: FormData; +}) { + + const newPin: any = file.get("file"); + const fileName = newPin.name; + const fileExtension = _.lowerCase(newPin.name.split(".").pop()); + const fileRandomName = v4(fileName) + "." + fileExtension; + + const uploadPin = await prisma.images.create({ + data: { + url: fileRandomName, + label: "MAP_CUSTOM_PIN", + }, + select: { + id: true, + url: true, + }, + }); + + if (!uploadPin) return { status: 400, message: "Gagal upload foto lokasi" }; + const upload_Folder = Buffer.from(await newPin.arrayBuffer()); + fs.writeFileSync(`./public/map/pin/${uploadPin.url}`, upload_Folder); + + const updt = await prisma.businessMaps.update({ + where: { + id: mapId, + }, + data: { + imagePinId: uploadPin.id, + }, + }); + + if (!updt) return { status: 400, message: "Gagal update pin" }; + revalidatePath(RouterPortofolio.main_detail) + return { status: 200, message: "Berhasil update pin" }; +} diff --git a/src/app_modules/map/fun/edit/fun_edit_map.ts b/src/app_modules/map/fun/edit/fun_edit_map.ts index 1c09b93e..5fef7c09 100644 --- a/src/app_modules/map/fun/edit/fun_edit_map.ts +++ b/src/app_modules/map/fun/edit/fun_edit_map.ts @@ -11,6 +11,7 @@ import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; export async function map_funEditMap({ data, file, + }: { data: MODEL_MAP; file: FormData; @@ -37,7 +38,7 @@ export async function map_funEditMap({ if (!uploadImage) return { status: 400, message: "Gagal upload foto lokasi" }; const upload_Folder = Buffer.from(await gambar.arrayBuffer()); - fs.writeFileSync(`./public/map/${uploadImage.url}`, upload_Folder); + fs.writeFileSync(`./public/map/foto/${uploadImage.url}`, upload_Folder); const updt = await prisma.businessMaps.update({ where: { @@ -47,7 +48,7 @@ export async function map_funEditMap({ latitude: data.latitude, longitude: data.longitude, namePin: data.namePin, - imagesMapId: uploadImage.id, + imageMapId: uploadImage.id, }, }); diff --git a/src/app_modules/map/fun/get/fun_get_all_map.ts b/src/app_modules/map/fun/get/fun_get_all_map.ts index 15814a79..fcf777c2 100644 --- a/src/app_modules/map/fun/get/fun_get_all_map.ts +++ b/src/app_modules/map/fun/get/fun_get_all_map.ts @@ -7,6 +7,13 @@ export async function map_funGetAllMap() { where: { isActive: true, }, + include: { + Portofolio: { + select: { + logoId: true, + }, + }, + }, }); return data; diff --git a/src/app_modules/map/fun/get/fun_get_one_by_id.ts b/src/app_modules/map/fun/get/fun_get_one_by_id.ts index d1455b64..1ac1f3c6 100644 --- a/src/app_modules/map/fun/get/fun_get_one_by_id.ts +++ b/src/app_modules/map/fun/get/fun_get_one_by_id.ts @@ -28,7 +28,7 @@ export async function map_funGetOneById({ mapId }: { mapId: string }) { latitude: true, longitude: true, authorId: true, - imagesMapId: true, + imageMapId: true, Portofolio: { select: { id: true, diff --git a/src/app_modules/map/fun/get/fun_get_one_by_portofolio_id.ts b/src/app_modules/map/fun/get/fun_get_one_by_portofolio_id.ts index 3c5cc618..772336bf 100644 --- a/src/app_modules/map/fun/get/fun_get_one_by_portofolio_id.ts +++ b/src/app_modules/map/fun/get/fun_get_one_by_portofolio_id.ts @@ -2,7 +2,7 @@ import prisma from "@/app/lib/prisma"; -export async function map_funGetOneByPortofolioId({ +export async function map_funGetOneBusinessMapByPortofolioId({ portofolioId, }: { portofolioId: string; @@ -11,13 +11,17 @@ export async function map_funGetOneByPortofolioId({ where: { portofolioId: portofolioId, }, - select: { - id: true, - namePin: true, - latitude: true, - longitude: true, - imagesMapId: true, - }, + include: { + ImageMap: true, + ImagePin: true, + Portofolio: { + select: { + id: true, + Logo: true, + logoId: true + } + } + } }); return res; diff --git a/src/app_modules/map/fun/index.ts b/src/app_modules/map/fun/index.ts new file mode 100644 index 00000000..8c34dd18 --- /dev/null +++ b/src/app_modules/map/fun/index.ts @@ -0,0 +1,3 @@ +import { map_funCustomPinMap } from "./edit/fun_custom_pin_map"; + +export { map_funCustomPinMap }; diff --git a/src/app_modules/map/lib/default_lat_long.ts b/src/app_modules/map/lib/default_lat_long.ts index 22d6bdd2..809f3e4e 100644 --- a/src/app_modules/map/lib/default_lat_long.ts +++ b/src/app_modules/map/lib/default_lat_long.ts @@ -1,3 +1,3 @@ -export const defaultLatLong = [-8.723606930462012, 115.17496509980654]; -export const defaultMapZoom = 12 +export const defaultLatLong = [-8.745326073272455, 115.17319973054386]; +export const defaultMapZoom = 11 diff --git a/src/app_modules/map/lib/interface.ts b/src/app_modules/map/lib/interface.ts index 3bc5d587..d1c08054 100644 --- a/src/app_modules/map/lib/interface.ts +++ b/src/app_modules/map/lib/interface.ts @@ -13,5 +13,8 @@ export interface MODEL_MAP { Author: MODEL_USER; portofolioId: string; Portofolio: MODEL_PORTOFOLIO - imagesId: string + imageMapId: string + ImageMap: any + imagePinId: string + ImagePin: any } diff --git a/src/app_modules/map/ui/index.ts b/src/app_modules/map/ui/index.ts index b246f0a1..34f2c255 100644 --- a/src/app_modules/map/ui/index.ts +++ b/src/app_modules/map/ui/index.ts @@ -1,4 +1,5 @@ export { UiMap_MapBoxView } from "./ui_map"; export { UiMap_SplashView } from "./ui_splash"; -export { UiMap_CreatePin } from "./ui_create_pin" -export { UiMap_EditPin } from "./ui_edit_pin" \ No newline at end of file +export { UiMap_CreatePin } from "./ui_create_pin"; +export { UiMap_EditMap as UiMap_EditPin } from "./ui_edit_map"; +export { UiMap_CustomPin } from "./ui_custom_pin"; diff --git a/src/app_modules/map/ui/ui_custom_pin.tsx b/src/app_modules/map/ui/ui_custom_pin.tsx new file mode 100644 index 00000000..ac3e0cd8 --- /dev/null +++ b/src/app_modules/map/ui/ui_custom_pin.tsx @@ -0,0 +1,224 @@ +"use client"; + +import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; +import { RouterMap } from "@/app/lib/router_hipmi/router_map"; +import { + AccentColor, + MainColor, +} from "@/app_modules/_global/color/color_pallet"; +import ComponentGlobal_BoxInformation from "@/app_modules/_global/component/box_information"; +import ComponentGlobal_IsEmptyData from "@/app_modules/_global/component/is_empty_data"; +import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; +import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal"; +import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; +import { + Avatar, + Button, + Center, + FileButton, + Stack +} from "@mantine/core"; +import { IconCamera } from "@tabler/icons-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; +import { + AttributionControl, + Map, + Marker, + NavigationControl, + ScaleControl, +} from "react-map-gl"; +import { map_funCustomPinMap } from "../fun"; +import { defaultMapZoom } from "../lib/default_lat_long"; +import { MODEL_MAP } from "../lib/interface"; + +export function UiMap_CustomPin({ + dataMap, + mapboxToken, +}: { + dataMap: MODEL_MAP; + mapboxToken: string; +}) { + const [data, setData] = useState(dataMap); + const [filePin, setFilePin] = useState(null); + const [imgPin, setImgPin] = useState(null); + + if (!mapboxToken) + return ; + + return ( + <> + {/* Logo Custom */} + + + + + {imgPin ? ( +
+ +
+ ) : ( +
+ +
+ )} + +
+ { + try { + const buffer = URL.createObjectURL( + new Blob([new Uint8Array(await files.arrayBuffer())]) + ); + if (files.size > 2000000) { + ComponentGlobal_NotifikasiPeringatan( + "Maaf, Ukuran file terlalu besar, maximum 2mb", + 3000 + ); + } else { + setImgPin(buffer); + setFilePin(files); + } + } catch (error) { + console.log(error); + } + }} + accept="image/png,image/jpeg" + > + {(props) => ( + + )} + +
+
+ + {/* Map */} + + + + + + + + + + +
+ + ); +} + +function ButtonSimpan({ + mapId, + filePin, +}: { + mapId: string; + filePin: FormData; +}) { + const router = useRouter(); + const [isLoading, setLoading] = useState(false); + + async function onCustom() { + const file = new FormData(); + file.append("file", filePin as any); + + const res = await map_funCustomPinMap({ mapId: mapId, file: file }); + res.status === 200 + ? (ComponentGlobal_NotifikasiBerhasil(res.message), router.back()) + : ComponentGlobal_NotifikasiGagal(res.message); + } + + return ( + <> + + + ); +} diff --git a/src/app_modules/map/ui/ui_edit_pin.tsx b/src/app_modules/map/ui/ui_edit_map.tsx similarity index 85% rename from src/app_modules/map/ui/ui_edit_pin.tsx rename to src/app_modules/map/ui/ui_edit_map.tsx index 47e7d986..ceb34f6c 100644 --- a/src/app_modules/map/ui/ui_edit_pin.tsx +++ b/src/app_modules/map/ui/ui_edit_map.tsx @@ -1,27 +1,27 @@ "use client"; +import { RouterPortofolio } from "@/app/lib/router_hipmi/router_katalog"; +import { RouterMap } from "@/app/lib/router_hipmi/router_map"; import { AccentColor, MainColor, } from "@/app_modules/_global/color/color_pallet"; +import ComponentGlobal_BoxInformation from "@/app_modules/_global/component/box_information"; import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil"; import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan"; import { AspectRatio, - Box, + Avatar, Button, Center, FileButton, Image, Paper, Stack, - Text, TextInput, - Title, } from "@mantine/core"; import { IconCamera } from "@tabler/icons-react"; -import _ from "lodash"; import { useRouter } from "next/navigation"; import { useState } from "react"; import Map, { @@ -30,13 +30,11 @@ import Map, { NavigationControl, ScaleControl, } from "react-map-gl"; -import { map_funCreatePin } from "../fun/create/fun_create_pin"; -import { defaultLatLong, defaultMapZoom } from "../lib/default_lat_long"; -import { MODEL_MAP } from "../lib/interface"; -import { RouterMap } from "@/app/lib/router_hipmi/router_map"; import { map_funEditMap } from "../fun/edit/fun_edit_map"; +import { defaultMapZoom } from "../lib/default_lat_long"; +import { MODEL_MAP } from "../lib/interface"; -export function UiMap_EditPin({ +export function UiMap_EditMap({ mapboxToken, dataMap, }: { @@ -47,10 +45,9 @@ export function UiMap_EditPin({ const [file, setFile] = useState(null); const [img, setImg] = useState(null); - return ( <> - + - - image - + @@ -123,7 +127,10 @@ export function UiMap_EditPin({ /> - + {/* Foto Usaha */} + + + {img ? ( @@ -214,8 +221,7 @@ function ButtonSavePin({ data, file }: { data: MODEL_MAP; file: FormData }) { const res = await map_funEditMap({ data: data, - file: gambar - + file: gambar, }); res.status === 200 ? (ComponentGlobal_NotifikasiBerhasil(res.message), router.back()) @@ -225,7 +231,7 @@ function ButtonSavePin({ data, file }: { data: MODEL_MAP; file: FormData }) { return ( <> + ))} + +
+ {_.isEmpty(data) ? ( ) : ( (
@@ -121,7 +165,7 @@ export function Notifikasi_UiView({ )} )} - + ); } diff --git a/src/app_modules/notifikasi/index.ts b/src/app_modules/notifikasi/view/index.ts similarity index 100% rename from src/app_modules/notifikasi/index.ts rename to src/app_modules/notifikasi/view/index.ts diff --git a/src/app_modules/notifikasi/view/view_notifikasi.tsx b/src/app_modules/notifikasi/view/view_notifikasi.tsx new file mode 100644 index 00000000..121c50a0 --- /dev/null +++ b/src/app_modules/notifikasi/view/view_notifikasi.tsx @@ -0,0 +1,23 @@ +import UIGlobal_LayoutHeaderTamplate from "../../_global/ui/ui_header_tamplate"; +import { Notifikasi_UiLayout, Notifikasi_UiView } from "../ui"; + +export default function Notifikasi_MainView({ + listNotifikasi, + masterKategori, +}: { + listNotifikasi: any[]; + masterKategori: any[]; +}) { + return ( + <> + } + > + + + + ); +} diff --git a/src/app_modules/notifikasi/view_notifikasi.tsx b/src/app_modules/notifikasi/view_notifikasi.tsx deleted file mode 100644 index 2855b5b9..00000000 --- a/src/app_modules/notifikasi/view_notifikasi.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import UIGlobal_LayoutHeaderTamplate from "../_global/ui/ui_header_tamplate"; -import UIGlobal_LayoutTamplate from "../_global/ui/ui_layout_tamplate"; -import { Notifikasi_UiView } from "./component/ui_notifiaksi"; - -export default function Notifikasi_MainView({ - listNotifikasi, -}: { - listNotifikasi: any[]; -}) { - return ( - <> - } - > - - - - ); -} diff --git a/src/bin/seeder/investasi/index.ts b/src/bin/seeder/investasi/index.ts new file mode 100644 index 00000000..65b32fc9 --- /dev/null +++ b/src/bin/seeder/investasi/index.ts @@ -0,0 +1,3 @@ +import new_status_transaksi_investasi from "./new_status_transaksi.json"; + +export { new_status_transaksi_investasi }; diff --git a/src/bin/seeder/investasi/new_status_transaksi.json b/src/bin/seeder/investasi/new_status_transaksi.json new file mode 100644 index 00000000..1e9c92bd --- /dev/null +++ b/src/bin/seeder/investasi/new_status_transaksi.json @@ -0,0 +1,22 @@ +[ + { + "id": "1", + "name": "Berhasil" + }, + { + "id": "2", + "name": "Proses" + }, + { + "id": "3", + "name": "Menunggu" + }, + { + "id": "4", + "name": "Menolak" + }, + { + "id": "5", + "name": "Gagal" + } +] diff --git a/src/bin/seeder/master/index.ts b/src/bin/seeder/master/index.ts new file mode 100644 index 00000000..2b36c6e7 --- /dev/null +++ b/src/bin/seeder/master/index.ts @@ -0,0 +1,3 @@ +import master_kategori_app from "./master_kategori_app.json"; + +export { master_kategori_app }; diff --git a/src/bin/seeder/master/master_kategori_app.json b/src/bin/seeder/master/master_kategori_app.json new file mode 100644 index 00000000..1ffdba06 --- /dev/null +++ b/src/bin/seeder/master/master_kategori_app.json @@ -0,0 +1,30 @@ +[ + { + "id": "1", + "name": "Event" + }, + { + "id": "2", + "name": "Job" + }, + { + "id": "3", + "name": "Voting" + }, + { + "id": "4", + "name": "Donasi" + }, + { + "id": "5", + "name": "Investasi" + }, + { + "id": "6", + "name": "Forum" + }, + { + "id": "7", + "name": "Collaboration" + } +]