diff --git a/api/Booking/booking.js b/api/Booking/booking.js index a9b0d1a..d64213d 100644 --- a/api/Booking/booking.js +++ b/api/Booking/booking.js @@ -76,7 +76,39 @@ async function getReview(transactionID, token="") { return res; } +async function getReviewPayment(transactionID, token="") { + var res = await apollo.query( + ` + query($input: ID!) { + booking(transactionID:$input) { + id + transactionID + namaPemesan + emailPemesan + teleponPemesan + pemesan + checkIn + checkOut + jumlahPengunjung + namaKamar + requestKamar + hargaKamar + ppnKamar + hargaTotal + catatan + } + } + `, + token, + { + "input": transactionID + } + ); + return res; +} + module.exports = { + getReviewPayment: getReviewPayment, AddBooking: AddBooking, getReview: getReview, }; \ No newline at end of file diff --git a/components/Booking/checkout.js b/components/Booking/checkout.js index 990610e..b41ec25 100644 --- a/components/Booking/checkout.js +++ b/components/Booking/checkout.js @@ -7,24 +7,33 @@ import NumberFormat from 'react-number-format'; //sweet alert import swal from 'sweetalert'; +function CreateID(length) { + var result = ''; + var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + var charactersLength = characters.length; + for (var i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * + charactersLength)); + } + return result; +} + +const UUID = CreateID(10); +// console.log("hasil : ", UUID); + const Checkout = function ({ backend, checkoutItem, ...props }) { // const [HargaFasilitas, setHargaFasilitas] = useState(''); // const [NamaFasilitas, setNamaFasilitas] = useState(''); - function CreateID(length) { - var result = ''; - var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - var charactersLength = characters.length; - for (var i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * - charactersLength)); - } - return result; - } + var [TglCheckIn, setCheckIn] = useState(''); + var [TglCheckOut, setCheckOut] = useState(''); - const UUID = CreateID(10); - console.log("hasil : ", UUID); + var date = (new Date(TglCheckIn)).getTime(); + var today = (new Date(TglCheckOut)).getTime(); + const msDay = 24 * 60 * 60 * 1000; + + var days = Math.floor((today - date) / msDay); const [formValue, setFormValue] = React.useState({ transactionID: UUID, @@ -40,7 +49,7 @@ const Checkout = function ({ backend, checkoutItem, ...props }) { hargaKamar: "", namaKamar: "", ppnKamar: 0.1, - hargaTotal: checkoutItem[0].hargaKamar + checkoutItem[0].hargaKamar * 0.1, + hargaTotal: "", }); const disablePastDate = () => { @@ -51,15 +60,6 @@ const Checkout = function ({ backend, checkoutItem, ...props }) { return yyyy + "-" + mm + "-" + dd; }; - const [TglCheckIn, setCheckIn] = useState(''); - const [TglCheckOut, setCheckOut] = useState(''); - - const date = (new Date(TglCheckIn)).getTime(); - const today = (new Date(TglCheckOut)).getTime(); - const msDay = 24 * 60 * 60 * 1000; - - const days = Math.floor((today - date) / msDay); - const Router = useRouter(); return ( @@ -85,6 +85,7 @@ const Checkout = function ({ backend, checkoutItem, ...props }) { ...formValue, namaKamar: checkoutItem[0].namaKamar, hargaKamar: checkoutItem[0].hargaKamar, + hargaTotal: checkoutItem[0].hargaKamar * days + checkoutItem[0].hargaKamar * days * 0.1, } setFormValue(newformValue) // console.log(JSON.stringify(newformValue)); @@ -306,7 +307,7 @@ const Checkout = function ({ backend, checkoutItem, ...props }) {
{ diff --git a/package.json b/package.json index 495093d..d63817b 100644 --- a/package.json +++ b/package.json @@ -14,14 +14,16 @@ "@emotion/react": "^11.6.0", "@emotion/styled": "^11.6.0", "@mui/material": "^5.1.1", + "@nextui-org/react": "^1.0.1-alpha.57", "animate.css": "^4.1.1", "axios": "^0.21.1", "cross-fetch": "^3.1.4", "dotenv": "^10.0.0", + "formik": "^2.2.9", "graphql": "^16.0.1", - "next": "^10.0.7", "midtrans-client": "^1.2.3", "midtrans-payment": "^1.2.7", + "next": "^10.0.7", "nodemailer": "^6.5.0", "nodemailer-sendgrid-transport": "^0.2.0", "react": "^17.0.1", @@ -46,4 +48,4 @@ "sweetalert2-react-content": "^3.3.1" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/pages/review.js b/pages/review.js index adfcff1..ec529ff 100644 --- a/pages/review.js +++ b/pages/review.js @@ -30,7 +30,7 @@ export async function getServerSideProps(context) { } // midtrans - var parameters = await GetReviewItem.getReview(); + var parameters = await GetReviewItem.getReview(query.s || 0); console.log("parameters", parameters); var transactionToken = []; if (parameters["STATUS"] === 1) { @@ -42,16 +42,15 @@ export async function getServerSideProps(context) { }); let parameter = { "transaction_details": { - // "order_id": parameters["DATA"]["bookings"][0]["NamaPemesan"], + "order_id": parameters["DATA"]["bookings"][0]["transactionID"], "gross_amount": parameters["DATA"]["bookings"][0]["hargaTotal"], - "order_id":"Trx-Ord-2545343543", - // "gross_amount":33750000, }, "credit_card": { "secure": true }, "customer_details": { "first_name": parameters["DATA"]["bookings"][0]["namaPemesan"], "phone": parameters["DATA"]["bookings"][0]["teleponPemesan"], + "email": parameters["DATA"]["bookings"][0]["emailPemesan"], // "first_name":"Yusmar", // "phone":"087797315685", "billing_address": diff --git a/yarn.lock b/yarn.lock index 1bff28a..a782440 100644 --- a/yarn.lock +++ b/yarn.lock @@ -46,7 +46,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-validator-identifier@^7.15.7": +"@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": version "7.15.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== @@ -60,6 +60,13 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/plugin-syntax-jsx@7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx@^7.12.13": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1" @@ -81,6 +88,14 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/types@7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + "@babel/types@7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" @@ -397,6 +412,13 @@ resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-10.2.3.tgz#2f3e42fe6680798f276e3621345c2886b231348b" integrity sha512-qtBF56vPC6d6a8p7LYd0iRjW89fhY80kAIzmj+VonvIGjK/nymBjcFUhbKiMFqlhsarCksnhwX+Zmn95Dw9qvA== +"@nextui-org/react@^1.0.1-alpha.57": + version "1.0.1-alpha.57" + resolved "https://registry.yarnpkg.com/@nextui-org/react/-/react-1.0.1-alpha.57.tgz#814fd7a9f1ac079408f67d3a5012ba0ab8e11996" + integrity sha512-Z1g35WjuDPaVcWIr2QifygeIDGUSlzmjHpmZj41YI0nisnEoJvkct0DGhimP/UvF9pTHL933fh+ow5o0FJgoIg== + dependencies: + styled-jsx "^4.0.1" + "@opentelemetry/api@0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.14.0.tgz#4e17d8d2f1da72b19374efa7b6526aa001267cae" @@ -1303,6 +1325,11 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1746,6 +1773,19 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +formik@^2.2.9: + version "2.2.9" + resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.9.tgz#8594ba9c5e2e5cf1f42c5704128e119fc46232d0" + integrity sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA== + dependencies: + deepmerge "^2.1.1" + hoist-non-react-statics "^3.3.0" + lodash "^4.17.21" + lodash-es "^4.17.21" + react-fast-compare "^2.0.1" + tiny-warning "^1.0.2" + tslib "^1.10.0" + fs-extra@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" @@ -2375,7 +2415,7 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash-es@^4.2.1: +lodash-es@^4.17.21, lodash-es@^4.2.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== @@ -3010,6 +3050,11 @@ react-dom@^17.0.1: object-assign "^4.1.1" scheduler "^0.20.2" +react-fast-compare@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + react-feather@^2.0.9: version "2.0.9" resolved "https://registry.yarnpkg.com/react-feather/-/react-feather-2.0.9.tgz#6e42072130d2fa9a09d4476b0e61b0ed17814480" @@ -3527,6 +3572,20 @@ styled-jsx@3.3.2: stylis "3.5.4" stylis-rule-sheet "0.0.10" +styled-jsx@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-4.0.1.tgz#ae3f716eacc0792f7050389de88add6d5245b9e9" + integrity sha512-Gcb49/dRB1k8B4hdK8vhW27Rlb2zujCk1fISrizCcToIs+55B4vmUM0N9Gi4nnVfFZWe55jRdWpAqH1ldAKWvQ== + dependencies: + "@babel/plugin-syntax-jsx" "7.14.5" + "@babel/types" "7.15.0" + convert-source-map "1.7.0" + loader-utils "1.2.3" + source-map "0.7.3" + string-hash "1.1.3" + stylis "3.5.4" + stylis-rule-sheet "0.0.10" + stylis-rule-sheet@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" @@ -3613,6 +3672,11 @@ timers-browserify@2.0.12, timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -3677,6 +3741,11 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== +tslib@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + tslib@^2.1.0, tslib@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"