TableSanksi.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import Datatable from "@/components/Tables/Datatable";
  2. import { Button } from "reactstrap";
  3. import Link from "next/link";
  4. import moment from "moment";
  5. function TableSanksi({ listData, to, linkName }) {
  6. return (
  7. <div className="card b">
  8. <div className="card-body card-over">
  9. <Datatable options={{ responsive: false, ordering: true }}>
  10. <table className="table w-100" data-order='[0, "desc"]'>
  11. <thead>
  12. <tr>
  13. <th>Nomor Sanksi</th>
  14. <th>Keterangan Sanksi</th>
  15. {/* <th>Created</th> */}
  16. <th>Status</th>
  17. <th></th>
  18. </tr>
  19. </thead>
  20. <tbody>
  21. {listData.length
  22. ? listData.map((data) => {
  23. return (
  24. <tr key={data._id}>
  25. {/* <td>{data.no_sanksi}</td> */}
  26. <td>
  27. <div className="media align-items-center">
  28. <div className="media-body d-flex">
  29. <div>
  30. <p style={{ display: "none" }}>{data.createdAt}</p>
  31. <h4>{data.no_sanksi}</h4>
  32. <p>{moment(data.createdAt).format("MM-DD-YYYY")}</p>
  33. </div>
  34. </div>
  35. </div>
  36. </td>
  37. <td>
  38. <div className="table-desc">
  39. <div className="media align-items-center">
  40. <div className="media-body d-flex">
  41. <div>
  42. {/* <h4 className="m-0">{data.laporan.pt.nama}</h4> */}
  43. <h4 className="m-0">{data.laporan.pt.nama.length > 64 ? data.laporan.pt.nama.substring(0, 64) + "..." : data.laporan.pt.nama}</h4>
  44. {/* <p className="w-105">{data.keterangan.length > 150 ? data.keterangan.substring(0, 150) + "..." : data.keterangan}</p> */}
  45. <p className="w-105">{data.keterangan}</p>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. </td>
  51. {/* <td>{moment(data.createdAt).fromNow()}</td> */}
  52. <td>{[...new Set((data.perbaikan || []).map((e) => e.index))].length === data.riwayat_jawaban_cabut_sanksi.length?
  53. <div>
  54. <div className="badge badge-green">
  55. Sudah Dijawab
  56. </div>
  57. {data.jawaban?.cabut_sanksi?.status == "Rekomedasi Perbaikan" ? <p className="w-105">Rekomendasi Perbaikan</p> : ''}
  58. </div>
  59. :
  60. <div>
  61. <div className="badge badge-red">
  62. Belum Dijawab
  63. </div>
  64. <p className="w-105">Perbaikan ke-{[...new Set((data.perbaikan || []).map((e) => e.index))].length}</p>
  65. </div>}
  66. </td>
  67. <td>
  68. <div className="ml-auto">
  69. <Link
  70. href={{
  71. pathname: to,
  72. query: { id: data._id },
  73. }}
  74. >
  75. <Button className="btn-login" color >
  76. <span className="font-color-white">
  77. {linkName}
  78. </span>
  79. </Button>
  80. </Link>
  81. </div>
  82. </td>
  83. </tr>
  84. );
  85. })
  86. : ""}
  87. </tbody>
  88. </table>
  89. </Datatable>
  90. </div>
  91. </div>
  92. );
  93. }
  94. export default TableSanksi;