presensi_print.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. import React, { Component } from 'react';
  2. import SignatureCanvas from 'react-signature-canvas'
  3. import { getOneLaporan, updateLaporan } from "@/actions/pelaporan";
  4. import { Row, Col, Input, FormGroup, Label, Progress } from "reactstrap";
  5. import { connect } from "react-redux";
  6. import moment from "moment";
  7. import 'moment/locale/id'
  8. moment.locale('id')
  9. import { getOneCatatan } from '../../actions/catatan';
  10. class ComponentToPrint extends React.Component {
  11. formData = {}
  12. constructor(props) {
  13. super(props);
  14. this.state = {
  15. };
  16. }
  17. static getInitialProps = async ({ query }) => {
  18. return { query };
  19. };
  20. componentDidMount = async () => {
  21. const { token, query } = this.props;
  22. const { id } = query;
  23. const getCatatan = await getOneCatatan(token, id)
  24. // const sanksi = await getOneSanksi(token, idSanksi, { all: true });
  25. const pt = getCatatan.data?.isi.pt;
  26. const catatan = getCatatan.data
  27. const judul = getCatatan.data.judul
  28. const tempat = catatan.isi.tempat
  29. const setTanggal = catatan.isi.setTanggal
  30. const isi = catatan.isi.isi
  31. const tanggal = catatan.isi.tanggal
  32. const isEditTanggal = catatan.isi.isEditTanggal
  33. const isEditTempat = catatan.isi.isEditTempat
  34. const simpulan = catatan.isi.simpulan
  35. const rekomendasi = catatan.isi.rekomendasi
  36. this.setState({ isi, catatan, judul, pt, tanggal, tempat, isEditTanggal, isEditTempat, simpulan, rekomendasi, setTanggal });
  37. };
  38. render() {
  39. const { catatan, pt, isEditTanggal, tanggal } = this.state;
  40. return (
  41. <page>
  42. <div className='BA-Header'>
  43. <img className='BA-logo' src="/static/img/logo-single-1-login.png" alt="logo" />
  44. <h3 >LAPORAN HASIL EVALUASI DAN PEMBAHASAN</h3>
  45. {pt && (<h4 className='text-uppercase' >{pt.nama}</h4>)}
  46. </div>
  47. <div className='BA-body pt-3'>
  48. <p>
  49. Pada hari ini
  50. {this.state?.setTanggal === true ?
  51. <span > {moment(tanggal || this.state?.tanggal).locale("id").format("dddd")}, tanggal&nbsp;{moment(tanggal || this.state?.tanggal).format("D")}&nbsp;bulan&nbsp;{moment(tanggal || this.state?.tanggal).locale("id").format("MMMM")} tahun &nbsp;{moment(tanggal || this.state?.tanggal).format("YYYY")},</span> :
  52. <span ><strong>&nbsp;- &nbsp;</strong></span>
  53. }
  54. bertempat di
  55. {this.state?.tempat ?
  56. <span className='hhh'>
  57. &nbsp;{this.state?.tempat}
  58. </span>
  59. :
  60. <span ><strong>&nbsp;[Mohon Diisi] &nbsp;</strong></span>
  61. }
  62. ,
  63. telah dilakukan rapat Verifikasi dan Validasi Dokumen Usul Pencabutan Sanksi Administratif {pt && (<span>{pt.nama}</span>)}, yang dihadiri oleh:
  64. <ol>
  65. {catatan?.daftar_kehadiran_peserta?.map((value) =>
  66. <li>
  67. {value.nama}
  68. </li>)}
  69. </ol>
  70. </p>
  71. <div className='table-a my-4' >
  72. <table className=' ml-auto mr-auto'>
  73. <thead >
  74. <tr>
  75. <th >NO</th>
  76. <th>ASPEK PERBAIKAN</th>
  77. <th >LAPORAN PERBAIKAN</th>
  78. <th >HASIL VERIFIKASI DAN VALIDASI</th>
  79. </tr>
  80. </thead>
  81. <tbody>
  82. {this.state.isi?.map((isi, index) => (
  83. <tr key={index}>
  84. <td>{index + 1}</td>
  85. <td style={{ width: "30%" }}>
  86. {isi.Aspek_Perbaikan}
  87. </td>
  88. <td style={{ width: "30%" }}>
  89. {isi.Laporan_Perbaikan}
  90. </td>
  91. <td style={{ width: "40%" }}>
  92. {isi.Hasil_Verifikasi}
  93. </td>
  94. </tr>
  95. ))}
  96. </tbody>
  97. </table>
  98. </div>
  99. <div className='table-b my-4 pl-4 pr-5' >
  100. <tr>
  101. <td style={{ width: "8%" }}>Simpulan :</td>
  102. <td >
  103. {this.state.simpulan}
  104. </td>
  105. </tr>
  106. </div>
  107. <div className='table-b my-4 pl-4 pr-5' >
  108. <tr>
  109. <td style={{ width: "8%" }}>Rekomendasi :</td>
  110. <td >
  111. {this.state.rekomendasi}
  112. </td>
  113. </tr>
  114. </div>
  115. <div className='mt-5'>
  116. <div className='header-ttd signature-border pt-1 pb-1'>
  117. <text className='header-ttd font-weight-bold '>PESERTA RAPAT</text>
  118. </div>
  119. <div id="ttd">
  120. {catatan
  121. ? catatan?.daftar_kehadiran_peserta?.map((value) => (
  122. <div className='ttd-div'>
  123. <div className='sign-ttd'>
  124. <img
  125. className='sign-ttd'
  126. src={value.ttd.path} />
  127. </div>
  128. <div className='sign-nama'>
  129. <text>
  130. {value.nama}
  131. </text>
  132. </div>
  133. </div>
  134. )) : ""}
  135. </div>
  136. </div>
  137. </div>
  138. <div id="footer">
  139. <span>{catatan?.judul}</span>
  140. </div>
  141. </page>
  142. );
  143. }
  144. }
  145. export default ComponentToPrint