diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-03-07 16:31:30 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-03-07 16:31:30 +0700 |
| commit | f0914e957be3dd73b69388e028505c7ce1361e9e (patch) | |
| tree | 7d5c4c12478a7b0b4a417ef1512320b634d597d8 | |
| parent | 91e98f591c65499d543e49188deb156e77fbd494 (diff) | |
<iman> update code
| -rw-r--r-- | src-migrate/validations/tempo.ts | 11 | ||||
| -rw-r--r-- | src/lib/pengajuan-tempo/component/Pengiriman.jsx | 169 |
2 files changed, 97 insertions, 83 deletions
diff --git a/src-migrate/validations/tempo.ts b/src-migrate/validations/tempo.ts index 469f351d..dad26c5a 100644 --- a/src-migrate/validations/tempo.ts +++ b/src-migrate/validations/tempo.ts @@ -75,6 +75,17 @@ export const TempoSchemaKontakPerson = z message: 'Email Finance tidak boleh sama dengan Email Purchasing', path: ['financeEmail'], } + ) + .refine( + (data) => + !data.direkturEmail || + (data.direkturEmail !== data.financeEmail && + data.direkturEmail !== data.purchasingEmail), + { + message: + 'Email Direktur tidak boleh sama dengan Email Finance atau Purchasing', + path: ['direkturEmail'], + } ); export const TempoSchemaPengiriman = z.object({ PICTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), diff --git a/src/lib/pengajuan-tempo/component/Pengiriman.jsx b/src/lib/pengajuan-tempo/component/Pengiriman.jsx index ae8b1c78..52376f61 100644 --- a/src/lib/pengajuan-tempo/component/Pengiriman.jsx +++ b/src/lib/pengajuan-tempo/component/Pengiriman.jsx @@ -355,7 +355,6 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { validatePengiriman(); } }; - console.log('formPengiriman', formPengiriman); const isFormValid = useMemo( () => Object.keys(errorsPengiriman).length === 0, [errorsPengiriman] @@ -1411,6 +1410,48 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { </div> </div> + <div className='w-full flex flex-row justify-between items-start'> + <div className='w-2/5'> + <label className='form-label text-nowrap'> + Prosedur Pengiriman{' '} + <span className=' opacity-60'>(Opsional)</span> + </label> + <span className='text-xs opacity-60 text-red-500'> + Format: pdf, jpeg, jpg, png. max file size 2MB + </span> + </div> + <div className='w-3/5'> + <div className='flex flex-row items-start gap-2'> + <label + htmlFor='dokumenProsedur' + className='cursor-pointer min-w-40 text-center bg-gray-200 hover:bg-gray-300 text-gray-700 py-2 px-4 rounded' + > + {formPengiriman?.dokumenProsedur?.name + ? 'Ubah Dokumen' + : 'Upload Dokumen'} + </label> + <input + id='dokumenProsedur' + name='dokumenProsedur' + type='file' + title=' ' + className='hidden' + aria-invalid={formPengiriman.dokumenProsedur} + onChange={handleInputChangeFile} + accept='.pdf,.png,.jpg,.jpeg' + /> + <span className='text-gray-600 line-clamp-2'> + {formPengiriman?.dokumenProsedur?.name} + </span> + </div> + {chekValid && ( + <div className='text-caption-2 text-danger-500 mt-1'> + {errorsPengiriman.dokumenProsedur} + </div> + )} + </div> + </div> + <div className='flex flex-row justify-between items-start'> <div className='w-2/5'> <label className='form-label text-wrap'> @@ -1560,47 +1601,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { )} </div> </div> - <div className='w-full flex flex-row justify-between items-start'> - <div className='w-2/5'> - <label className='form-label text-nowrap'> - Prosedur Pengiriman{' '} - <span className=' opacity-60'>(Opsional)</span> - </label> - <span className='text-xs opacity-60 text-red-500'> - Format: pdf, jpeg, jpg, png. max file size 2MB - </span> - </div> - <div className='w-3/5'> - <div className='flex flex-row items-start gap-2'> - <label - htmlFor='dokumenProsedur' - className='cursor-pointer min-w-40 text-center bg-gray-200 hover:bg-gray-300 text-gray-700 py-2 px-4 rounded' - > - {formPengiriman?.dokumenProsedur?.name - ? 'Ubah Dokumen' - : 'Upload Dokumen'} - </label> - <input - id='dokumenProsedur' - name='dokumenProsedur' - type='file' - title=' ' - className='hidden' - aria-invalid={formPengiriman.dokumenProsedur} - onChange={handleInputChangeFile} - accept='.pdf,.png,.jpg,.jpeg' - /> - <span className='text-gray-600 line-clamp-2'> - {formPengiriman?.dokumenProsedur?.name} - </span> - </div> - {chekValid && ( - <div className='text-caption-2 text-danger-500 mt-1'> - {errorsPengiriman.dokumenProsedur} - </div> - )} - </div> - </div> + </div> </form> </div> @@ -2140,6 +2141,48 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { </div> </div> + <div className='w-full flex flex-col justify-between items-start gap-2'> + <div className=''> + <label className='form-label text-nowrap'> + Prosedur Pengiriman{' '} + <span className=' opacity-60'>(Opsional)</span> + </label> + </div> + <div className='flex flex-col gap-2'> + <div className='flex flex-row items-start gap-2'> + <label + htmlFor='dokumenProsedur' + className='cursor-pointer min-w-40 text-center bg-gray-200 hover:bg-gray-300 text-gray-700 py-2 px-4 rounded' + > + {formPengiriman?.dokumenProsedur?.name + ? 'Ubah Dokumen' + : 'Upload Dokumen'} + </label> + <input + id='dokumenProsedur' + name='dokumenProsedur' + type='file' + title=' ' + className='hidden' + aria-invalid={errorsPengiriman.dokumenProsedur} + onChange={handleInputChangeFile} + accept='.pdf,.png,.jpg,.jpeg' + /> + <span className='mt-2 text-gray-600 line-clamp-2'> + {formPengiriman?.dokumenProsedur?.name} + </span> + </div> + {chekValid && ( + <div className='text-caption-2 text-danger-500 mt-1'> + {errorsPengiriman.dokumenProsedur} + </div> + )} + <span className='text-xs opacity-60 text-red-500'> + Format: pdf, jpeg, jpg, png. max file size 2MB + </span> + </div> + </div> + <div className='flex flex-col gap-2 justify-between items-start'> <label className='form-label text-wrap'> Apakah ada dokumen tanda terima yang diberikan pada saat @@ -2288,47 +2331,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { <div className='w-2/5'></div> </div> - <div className='w-full flex flex-col justify-between items-start gap-2'> - <div className=''> - <label className='form-label text-nowrap'> - Prosedur Pengiriman{' '} - <span className=' opacity-60'>(Opsional)</span> - </label> - </div> - <div className='flex flex-col gap-2'> - <div className='flex flex-row items-start gap-2'> - <label - htmlFor='dokumenProsedur' - className='cursor-pointer min-w-40 text-center bg-gray-200 hover:bg-gray-300 text-gray-700 py-2 px-4 rounded' - > - {formPengiriman?.dokumenProsedur?.name - ? 'Ubah Dokumen' - : 'Upload Dokumen'} - </label> - <input - id='dokumenProsedur' - name='dokumenProsedur' - type='file' - title=' ' - className='hidden' - aria-invalid={errorsPengiriman.dokumenProsedur} - onChange={handleInputChangeFile} - accept='.pdf,.png,.jpg,.jpeg' - /> - <span className='mt-2 text-gray-600 line-clamp-2'> - {formPengiriman?.dokumenProsedur?.name} - </span> - </div> - {chekValid && ( - <div className='text-caption-2 text-danger-500 mt-1'> - {errorsPengiriman.dokumenProsedur} - </div> - )} - <span className='text-xs opacity-60 text-red-500'> - Format: pdf, jpeg, jpg, png. max file size 2MB - </span> - </div> - </div> + </div> </form> </div> |
