/* eslint-disable no-mixed-spaces-and-tabs */ import { CardCustom } from '@/components/CardCustom' import { Belakang } from '@/components/Layouts' import { Judul, SubJudul } from '@/components/TextCustom' import { ddRekomendasi } from '@/constant/globalData' import { TagihanGet, VerifikasiSave } from '@/services/otorisasi/verifikasi-service' import { Formik } from 'formik' import 'moment/locale/id' import Head from 'next/head' import Link from 'next/link' import { useRouter } from 'next/router' import { Accordion, AccordionTab } from 'primereact/accordion' import { BreadCrumb } from 'primereact/breadcrumb' import { Button } from 'primereact/button' import { Card } from 'primereact/card' import { Dropdown } from 'primereact/dropdown' import { InputText } from 'primereact/inputtext' import { InputTextarea } from 'primereact/inputtextarea' import { RadioButton } from 'primereact/radiobutton' import { TabPanel, TabView } from 'primereact/tabview' import { Toast } from 'primereact/toast' import React, { useEffect, useRef, useState } from 'react' import Swal from 'sweetalert2' export default function FormPersetujuan() { const router = useRouter() const { tagihan_id } = router.query const [dataTagihan, setDataTagihan] = useState([]) const [dataDetail, setDataDetail] = useState([]) useEffect(() => { tagihan_id && TagihanGet({ ref_id: tagihan_id }) .then((res) => { setDataTagihan(res.data[0]) setDataDetail(res.data[1]) }) .catch((err) => console.log(err)) }, [tagihan_id]) const toast = useRef(null) const [activeIndex, setActiveIndex] = useState(0) /** * *Breadcrumb */ const items = [{ label: 'Persetujuan', url: '/otorisasi/persetujuan' }, { label: 'Form' }] const home = { icon: 'pi pi-home', url: '/dashboard' } const formikInitialValues = () => { const detail = dataDetail.length > 0 && dataDetail.map((value) => { let cekTMS = [] value.syarat.map((valueTMS) => { cekTMS.push(valueTMS.ms) }) let cekTMSH = cekTMS.find((isi_tms) => isi_tms === 'tms') return { detail_id: value.detail_id, jenis_belanja: value.jenis_belanja, jenis_kegiatan: value.jenis_kegiatan, akun: value.akun_id, keperluan_untuk: value.keperluan, rekom_kabag: cekTMSH === 'tms' ? 'Ditolak/dikembalikan' : '', syarat: value.syarat.map((valueSyarat) => { return { syarat_id: valueSyarat.syarat_id, nama_persyaratan: valueSyarat.syarat_dokumen, catatans: { verif: valueSyarat.verif_note, bendahara: valueSyarat.bendahara_note, spm: valueSyarat.spm_note, }, ms: valueSyarat.ms, } }), } }) return { details: detail, persetujuan: false, tagihan_id: tagihan_id } } return ( <> Form Persetujuan
Form Persetujuan
{dataDetail.length > 0 && ( { VerifikasiSave(values) .then((res) => { if (res.status == 'ok') { Swal.fire({ title: 'Success', text: 'Verifikasi berhasil', icon: 'success', timer: 2000, timerProgressBar: true, }).then(() => { router.push('/otorisasi/persetujuan') }) } setSubmitting(false) }) .catch((err) => { setSubmitting(false) console.log(err) }) }} validate={(data) => { let errors = {} data.details.map((values, indexTagihan) => { const indexTagihanx = indexTagihan + 1 if (!values.rekom_kabag) { errors.rekom = 'required' toast.current.show({ severity: 'error', summary: 'Error Message', detail: 'Rekomendasi Tagihan ' + indexTagihanx + ' Tidak Boleh Kosong', }) } values.syarat.map((valuesSyarats, indexSyarat) => { const indexSyaratx = indexSyarat + 1 if (!valuesSyarats.ms) { errors.ms = 'required' toast.current.show({ severity: 'error', summary: 'Error Message', detail: 'Tagihan ' + indexTagihanx + ' Syarat ke ' + indexSyaratx + ' MS/TMS Tidak Boleh Kosong', }) } else if (valuesSyarats.ms === 'tms') { if (!valuesSyarats.catatans.verif) { errors.keterangan = 'required' toast.current.show({ severity: 'error', summary: 'Error Message', detail: 'Tagihan ' + indexTagihanx + ' Syarat ke ' + indexSyaratx + ' Catatan Tidak Boleh Kosong', }) } } }) }) return errors }} validateOnChange={false} > {({ values, handleChange, handleSubmit, setFieldValue, isSubmitting }) => { const handleKirim = () => { setFieldValue('persetujuan', true) handleSubmit() } const handleTolak = () => { setFieldValue('persetujuan', false) handleSubmit() } let cekTMSTolak = [] values.details.map((valRekomKabag) => { cekTMSTolak.push(valRekomKabag.rekom_kabag) }) let cekTMSTolakH = cekTMSTolak.find((isi_tms) => isi_tms === 'Ditolak/dikembalikan') return ( setActiveIndex(e.index)} className='mt-3 shadow' > {dataDetail.map((dataTagihan, indexTagihan) => { let cekTMS = [] values.details[indexTagihan].syarat.map((valueTMS) => { cekTMS.push(valueTMS.ms) }) let cekTMSH = cekTMS.find((isi_tms) => isi_tms === 'tms') return (
Syarat

Syarat dengan status TMS (Tidak memenuhi syarat)

Syarat dengan catatan

{dataTagihan.syarat.map((valueSyarat, indexSyarat) => { return (
MS TMS
{ handleChange(e) setFieldValue(`details.${indexTagihan}.rekom_kabag`, null) }} checked={values.details[indexTagihan].syarat[indexSyarat].ms === 'ms'} />
{ handleChange(e) setFieldValue( `details.${indexTagihan}.rekom_kabag`, 'Ditolak/dikembalikan' ) }} checked={values.details[indexTagihan].syarat[indexSyarat].ms === 'tms'} />

Catatan

) })}
Rekomendasi Verif Rekomendasi Kasub Rekomendasi Kabag val.name === 'Ditolak/dikembalikan') : ddRekomendasi.filter((val) => val.name !== 'Ditolak/dikembalikan') } onChange={handleChange} placeholder='Pilih rekomendasi' className='w-80' showClear={ values.details[indexTagihan].rekom_kabag ? values.details[indexTagihan].rekom_kabag === 'Ditolak/dikembalikan' ? false : true : false } readOnly={cekTMSH === 'tms' ? true : false} />
) })}
) }}
)}
) }