You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

220 line
8.4 KiB

  1. import React from "react";
  2. import classNames from "classnames";
  3. import { makeStyles } from "@material-ui/core/styles";
  4. import Header from "components/Header/Header.js";
  5. import HeaderLinks from "components/Header/HeaderLinks.js";
  6. import Footer from "components/Footer/Footer.js";
  7. import OrderProduct from "pages-sections/yamaha/order/order.js";
  8. import Parallax from "components/Parallax/Parallax.js";
  9. import styles from "assets/jss/nextjs-material-kit/pages/components.js";
  10. import GetTransaction from "api/transaction/transaction.js";
  11. import Cookies from "cookies";
  12. const useStyles = makeStyles(styles);
  13. const Order = function ({ transactionToken, user, order, unpaid, prepared, sending, finished, backend, ...props }) {
  14. const classes = useStyles();
  15. const { ...rest } = props;
  16. return (
  17. <div>
  18. <Header
  19. leftLinks={<HeaderLinks username={user} />}
  20. fixed
  21. color="info"
  22. changeColorOnScroll={{
  23. height: 400,
  24. color: "white"
  25. }}
  26. {...rest}
  27. />
  28. <Parallax image={require("assets/img/Promotion_2-1.jpg")} width="200px"/>
  29. <div className={classNames(classes.main, classes.mainRaised)}>
  30. <OrderProduct order={order} transactionToken={transactionToken} unpaid={unpaid} prepared={prepared} sending={sending} finished={finished} backend={backend}/>
  31. </div>
  32. <Footer />
  33. </div>
  34. );
  35. }
  36. export default Order;
  37. export async function getServerSideProps(context) {
  38. var {query} = context;
  39. var order = [];
  40. var res = await GetTransaction.getTransaction();
  41. if (res["STATUS"] === 1) {
  42. order = res["DATA"]["transactions"];
  43. }
  44. var unpaid = [];
  45. var res = await GetTransaction.getTransactionUnpaid();
  46. if (res["STATUS"] === 1) {
  47. unpaid = res["DATA"]["transactions"];
  48. }
  49. var prepared = [];
  50. var res = await GetTransaction.getTransactionPrepared();
  51. if (res["STATUS"] === 1) {
  52. prepared = res["DATA"]["transactions"];
  53. }
  54. var sending = [];
  55. var res = await GetTransaction.getTransactionSending();
  56. if (res["STATUS"] === 1) {
  57. sending = res["DATA"]["transactions"];
  58. }
  59. var finished = [];
  60. var res = await GetTransaction.getTransactionFinished();
  61. if (res["STATUS"] === 1) {
  62. finished = res["DATA"]["transactions"];
  63. }
  64. //backend
  65. const backend = process.env.BACKEND_SERVER_URI;
  66. //user
  67. var { req, resp } = context;
  68. const cookies = new Cookies(req, resp);
  69. var user = "";
  70. var userObj = (await cookies.get("user"))
  71. ? JSON.parse(await cookies.get("user"))
  72. : null;
  73. if (userObj) {
  74. let sessionId = userObj["partners_login_states"].filter(function (i) {
  75. return (
  76. i.business_partner && i.business_partner.name.toUpperCase() == "YAMAHA"
  77. );
  78. });
  79. if (sessionId.length != 0) user = userObj["username"];
  80. }
  81. // midtrans
  82. var parameters = await GetTransaction.PayTransactionUnpaid();
  83. console.log("parameter", parameters);
  84. // var transactionToken = [];
  85. // if ( parameters["STATUS"] === 1 )
  86. // {
  87. // const midtransClient = require('midtrans-client');
  88. // let snap = new midtransClient.Snap({
  89. // isProduction : false,
  90. // serverKey : 'SB-Mid-server-SfBhLkXXlTxCBx7EYP5T2k3d',
  91. // clientKey : 'SB-Mid-client-srx674LjNbEybd4-'
  92. // });
  93. // let parameter = {
  94. // "transaction_details": {
  95. // // "order_id": parameters["DATA"]["transaction"]["id"],
  96. // // "gross_amount": parameters["DATA"]["transaction"]["product_price"],
  97. // "order_id":"Trx-Ord-00000001",
  98. // "gross_amount":33750000,
  99. // "gross_amount": parameters["DATA"]["transaction"]["product_price"],
  100. // }, "credit_card":{
  101. // "secure" : true
  102. // },
  103. // "customer_details": {
  104. // // "first_name": parameters["DATA"]["transaction"]["cust_name"],
  105. // // "phone": parameters["DATA"]["transaction"]["cust_telp"],
  106. // "first_name":"Yusmar",
  107. // "phone":"087797315685",
  108. // "billing_address":
  109. // {
  110. // // "first_name": parameters["DATA"]["transaction"]["cust_name"],
  111. // // "phone": parameters["DATA"]["transaction"]["cust_telp"],
  112. // // "address": parameters["DATA"]["transaction"]["cust_address"],
  113. // "first_name":"Yusmar",
  114. // "phone":"087797315685",
  115. // "address":"THAMRIN INDRAPURA JL.AIPDA KAREL SATSUIT TUBUN,17 ILIR, KEC.ILIR TIM.I, PALEMBANG, KOTA PALEMBANG - ILIR TIMUR II, SUMATERA SELATAN, ID 30114"
  116. // },
  117. // "shipping_address":
  118. // {
  119. // // "first_name": parameters["DATA"]["transaction"]["cust_name"],
  120. // // "phone": parameters["DATA"]["transaction"]["cust_telp"],
  121. // // "address": parameters["DATA"]["transaction"]["cust_address"],
  122. // "first_name":"Yusmar",
  123. // "phone":"087797315685",
  124. // "address":"THAMRIN INDRAPURA JL.AIPDA KAREL SATSUIT TUBUN,17 ILIR, KEC.ILIR TIM.I, PALEMBANG, KOTA PALEMBANG - ILIR TIMUR II, SUMATERA SELATAN, ID 30114"
  125. // }
  126. // },
  127. // };
  128. // await snap.createTransaction(parameter)
  129. // .then((transaction)=>{
  130. // // transaction token
  131. // transactionToken = transaction.token;
  132. // console.log('transactionToken:',transactionToken);
  133. // // transaction redirect url
  134. // let transactionRedirectUrl = transaction.redirect_url;
  135. // console.log('transactionRedirectUrl:',transactionRedirectUrl);
  136. // })
  137. // .catch((e)=>{
  138. // console.log('Error occured:',e.message);
  139. // });
  140. // }
  141. var transactionToken = [];
  142. const midtransClient = require('midtrans-client');
  143. let snap = new midtransClient.Snap({
  144. isProduction : false,
  145. serverKey : 'SB-Mid-server-SfBhLkXXlTxCBx7EYP5T2k3d',
  146. clientKey : 'SB-Mid-client-srx674LjNbEybd4-'
  147. });
  148. let parameter = {
  149. "transaction_details": {
  150. // "order_id": parameters["DATA"]["transaction"]["id"],
  151. // "gross_amount": parameters["DATA"]["transaction"]["product_price"],
  152. "order_id":"Trx-Ord-00000001",
  153. "gross_amount":33750000,
  154. },
  155. "credit_card": {
  156. "secure" : true
  157. },
  158. "customer_details": {
  159. // "first_name": parameters["DATA"]["transaction"]["cust_name"],
  160. // "phone": parameters["DATA"]["transaction"]["cust_telp"],
  161. "first_name":"Yusmar",
  162. "phone":"087797315685",
  163. "billing_address":
  164. {
  165. // "first_name": parameters["DATA"]["transaction"]["cust_name"],
  166. // "phone": parameters["DATA"]["transaction"]["cust_telp"],
  167. // "address": parameters["DATA"]["transaction"]["cust_address"],
  168. "first_name":"Yusmar",
  169. "phone":"087797315685",
  170. "address":"THAMRIN INDRAPURA JL.AIPDA KAREL SATSUIT TUBUN,17 ILIR, KEC.ILIR TIM.I, PALEMBANG, KOTA PALEMBANG - ILIR TIMUR II, SUMATERA SELATAN, ID 30114"
  171. },
  172. "shipping_address":
  173. {
  174. // "first_name": parameters["DATA"]["transaction"]["cust_name"],
  175. // "phone": parameters["DATA"]["transaction"]["cust_telp"],
  176. // "address": parameters["DATA"]["transaction"]["cust_address"],
  177. "first_name":"Yusmar",
  178. "phone":"087797315685",
  179. "address":"THAMRIN INDRAPURA JL.AIPDA KAREL SATSUIT TUBUN,17 ILIR, KEC.ILIR TIM.I, PALEMBANG, KOTA PALEMBANG - ILIR TIMUR II, SUMATERA SELATAN, ID 30114"
  180. }
  181. },
  182. };
  183. await snap.createTransaction(parameter)
  184. .then((transaction)=> {
  185. // transaction token
  186. transactionToken = transaction.token;
  187. console.log('transactionToken:',transactionToken);
  188. // transaction redirect url
  189. let transactionRedirectUrl = transaction.redirect_url;
  190. console.log('transactionRedirectUrl:',transactionRedirectUrl);
  191. })
  192. .catch((e)=> {
  193. console.log('Error occured:',e.message);
  194. });
  195. console.log("token :", transactionToken);
  196. return {
  197. props: { backend, user, unpaid, prepared, sending, finished, order, transactionToken, }, // will be passed to the page component as props
  198. };
  199. }