summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-03-05 10:35:33 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-03-05 10:35:33 +0700
commit9b22da67a1a397ca43ff80abb8ef4bbefef9b448 (patch)
tree6a8e05b18bcb2f87a168164eb34d7630edefee7a
parentd81883a63ac49fbcffe77a6a4220d910214b25a4 (diff)
<iman> CR renca telepon tempo
-rw-r--r--src-migrate/modules/register/stores/usePengajuanTempoStore.ts2
-rw-r--r--src-migrate/types/tempo.ts2
-rw-r--r--src-migrate/validations/tempo.ts12
-rw-r--r--src/lib/pengajuan-tempo/component/PengajuanTempo.jsx10
-rw-r--r--src/lib/pengajuan-tempo/component/Pengiriman.jsx117
5 files changed, 138 insertions, 5 deletions
diff --git a/src-migrate/modules/register/stores/usePengajuanTempoStore.ts b/src-migrate/modules/register/stores/usePengajuanTempoStore.ts
index 1e086c06..5f6e4974 100644
--- a/src-migrate/modules/register/stores/usePengajuanTempoStore.ts
+++ b/src-migrate/modules/register/stores/usePengajuanTempoStore.ts
@@ -186,6 +186,8 @@ export const usePengajuanTempoStorePengiriman = create<
districtPengiriman: '',
subDistrictPengiriman: '',
zipPengiriman: '',
+ PICBarangMobile: '',
+ invoicePicMobile: '',
invoicePicTittle: '',
invoicePic: '',
isSameAddrees: '',
diff --git a/src-migrate/types/tempo.ts b/src-migrate/types/tempo.ts
index d043e2d6..f28cfdef 100644
--- a/src-migrate/types/tempo.ts
+++ b/src-migrate/types/tempo.ts
@@ -42,6 +42,8 @@ export type tempoPropsPengiriman = {
cityPengiriman: string;
streetInvoice: string;
zip: string;
+ PICBarangMobile: string;
+ invoicePicMobile: string;
invoicePic: string;
isSameAddrees: string;
stateInvoice: string;
diff --git a/src-migrate/validations/tempo.ts b/src-migrate/validations/tempo.ts
index f019275c..4dc810a1 100644
--- a/src-migrate/validations/tempo.ts
+++ b/src-migrate/validations/tempo.ts
@@ -77,6 +77,18 @@ export const TempoSchemaPengiriman = z.object({
.string()
.min(1, { message: 'Kelurahan harus dipilih' }),
zipPengiriman: z.string().min(1, { message: 'Kode pos harus diisi' }),
+ PICBarangMobile: z
+ .string()
+ .min(1, { message: 'Nomor telepon harus diisi' })
+ .refine((val) => /^\d{10,12}$/.test(val), {
+ message: 'Format nomor telepon tidak valid, contoh: 081234567890',
+ }),
+ invoicePicMobile: z
+ .string()
+ .min(1, { message: 'Nomor telepon harus diisi' })
+ .refine((val) => /^\d{10,12}$/.test(val), {
+ message: 'Format nomor telepon tidak valid, contoh: 081234567890',
+ }),
invoicePicTittle: z.string().min(1, { message: 'Tittle harus dipilih' }),
invoicePic: z.string().min(1, { message: 'Nama pic invoice harus diisi' }),
streetInvoice: z.string().min(1, { message: 'Alamat invoice harus diisi' }),
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index c577aa41..0db5b371 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -67,6 +67,11 @@ const PengajuanTempo = () => {
const [notValid, setNotValid] = useState(false);
const [buttonSubmitClick, setButtonSubmitClick] = useState(false);
const stepDivs = [
+ <Pengiriman
+ key='pengiriman'
+ chekValid={notValid}
+ buttonSubmitClick={buttonSubmitClick}
+ />,
<InformasiPerusahaan
key='informasi-perusahaan'
chekValid={notValid}
@@ -77,11 +82,6 @@ const PengajuanTempo = () => {
chekValid={notValid}
buttonSubmitClick={buttonSubmitClick}
/>,
- <Pengiriman
- key='pengiriman'
- chekValid={notValid}
- buttonSubmitClick={buttonSubmitClick}
- />,
<Referensi
key='referensi'
chekValid={notValid}
diff --git a/src/lib/pengajuan-tempo/component/Pengiriman.jsx b/src/lib/pengajuan-tempo/component/Pengiriman.jsx
index 755cf45d..c78ee69c 100644
--- a/src/lib/pengajuan-tempo/component/Pengiriman.jsx
+++ b/src/lib/pengajuan-tempo/component/Pengiriman.jsx
@@ -311,7 +311,9 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
const districtPengirimanRef = useRef(null);
const subDistrictPengirimanRef = useRef(null);
const zipRef = useRef(null);
+ const PICBarangMobileRef = useRef(null);
const invoicePicRef = useRef(null);
+ const invoicePicMobileRef = useRef(null);
const streetInvoiceRef = useRef(null);
const stateInvoiceRef = useRef(null);
const cityInvoiceRef = useRef(null);
@@ -366,10 +368,18 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
zipRef.current.scrollIntoView(options);
return;
}
+ if (errorsPengiriman.PICBarangMobile && PICBarangMobileRef.current) {
+ PICBarangMobileRef.current.scrollIntoView(options);
+ return;
+ }
if (errorsPengiriman.invoicePic && invoicePicRef.current) {
invoicePicRef.current.scrollIntoView(options);
return;
}
+ if (errorsPengiriman.invoicePicMobile && invoicePicMobileRef.current) {
+ invoicePicMobileRef.current.scrollIntoView(options);
+ return;
+ }
if (errorsPengiriman.streetInvoice && streetInvoiceRef.current) {
streetInvoiceRef.current.scrollIntoView(options);
return;
@@ -803,6 +813,38 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
<div className='flex flex-row justify-between items-start'>
<div className='w-2/5'>
<label className='form-label text-nowrap'>
+ No. HP PIC Penerimaan Barang
+ </label>
+ {!isKonfirmasi && (
+ <span className='text-xs opacity-60'>
+ isi nomor PIC penerimaan barang yang bertanggung jawab di
+ perusahaan anda
+ </span>
+ )}
+ </div>
+ <div className='w-3/5'>
+ <input
+ id='PICBarangMobile'
+ name='PICBarangMobile'
+ ref={PICBarangMobileRef}
+ placeholder='Masukkan nomor PIC penerimaan barang'
+ value={formPengiriman.PICBarangMobile}
+ type='tel'
+ className='form-input'
+ aria-invalid={errorsPengiriman.PICBarangMobile}
+ onChange={handleInputChange}
+ />
+ {chekValid && (
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errorsPengiriman.PICBarangMobile}
+ </div>
+ )}
+ </div>
+ </div>
+
+ <div className='flex flex-row justify-between items-start'>
+ <div className='w-2/5'>
+ <label className='form-label text-nowrap'>
Alamat Pengiriman Barang
</label>
{!isKonfirmasi && (
@@ -990,6 +1032,8 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
</div>
</div>
+
+
<div className='flex flex-row justify-between items-start'>
<div className='w-2/5'>
<label className='form-label text-nowrap'>
@@ -1033,6 +1077,30 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
</div>
</div>
+ <div className='flex flex-col gap-2 justify-between items-start'>
+ <label className='form-label text-nowrap'>
+ No. HP PIC Penerimaan Invoice
+ </label>
+ <div className='flex items-center border border-gray-300 rounded-md w-full'>
+ <input
+ id='invoicePicMobile'
+ name='invoicePicMobile'
+ ref={invoicePicMobileRef}
+ value={formPengiriman.invoicePicMobile}
+ placeholder='Masukkan nomor PIC Penerimaan Invoice'
+ type='tel'
+ className='form-input'
+ aria-invalid={errorsPengiriman.invoicePicMobile}
+ onChange={handleInputChange}
+ />
+ </div>
+ {chekValid && (
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errorsPengiriman.invoicePicMobile}
+ </div>
+ )}
+ </div>
+
<div className='flex flex-row justify-between items-start'>
<div className='w-2/5'>
<label className='form-label text-nowrap'>
@@ -1483,6 +1551,30 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
</div>
<div className='flex flex-col gap-2 justify-between items-start'>
+ <label className='form-label text-nowrap'>
+ No. HP PIC Penerimaan Barang
+ </label>
+ <div className='flex items-center border border-gray-300 rounded-md w-full'>
+ <input
+ id='PICBarangMobile'
+ name='PICBarangMobile'
+ ref={PICBarangMobileRef}
+ value={formPengiriman.PICBarangMobile}
+ placeholder='Masukkan nomor PIC penerimaan barang'
+ type='tel'
+ className='form-input'
+ aria-invalid={errorsPengiriman.PICBarangMobile}
+ onChange={handleInputChange}
+ />
+ </div>
+ {chekValid && (
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errorsPengiriman.PICBarangMobile}
+ </div>
+ )}
+ </div>
+
+ <div className='flex flex-col gap-2 justify-between items-start'>
<label className='form-label text-nowrap'>
Alamat Pengiriman Barang
</label>
@@ -1661,6 +1753,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
</div>
</div>
+
<div className='flex flex-col gap-2 justify-between items-start'>
<label className='form-label text-nowrap'>
Nama PIC Penerimaan Invoice
@@ -1701,6 +1794,30 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
</div>
<div className='flex flex-col gap-2 justify-between items-start'>
+ <label className='form-label text-nowrap'>
+ No. HP PIC Penerimaan Invoice
+ </label>
+ <div className='flex items-center border border-gray-300 rounded-md w-full'>
+ <input
+ id='invoicePicMobile'
+ name='invoicePicMobile'
+ ref={invoicePicMobileRef}
+ value={formPengiriman.invoicePicMobile}
+ placeholder='Masukkan nomor PIC Penerimaan Invoice'
+ type='tel'
+ className='form-input'
+ aria-invalid={errorsPengiriman.invoicePicMobile}
+ onChange={handleInputChange}
+ />
+ </div>
+ {chekValid && (
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errorsPengiriman.PICBarangMobile}
+ </div>
+ )}
+ </div>
+
+ <div className='flex flex-col gap-2 justify-between items-start'>
<label className='form-label text-nowrap'>
Alamat Pengiriman Invoice
</label>