Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
C
ctas-box
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Fachri
ctas-box
Commits
28518047
Commit
28518047
authored
Dec 15, 2025
by
Fachri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixing error
parent
f3ec3847
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
194 deletions
+11
-194
src/sections/faktur/fakturPm/hooks/useSaveFakturPK.tsx
src/sections/faktur/fakturPm/hooks/useSaveFakturPK.tsx
+0
-177
src/sections/faktur/fakturPm/hooks/useUpload.tsx
src/sections/faktur/fakturPm/hooks/useUpload.tsx
+0
-13
src/sections/faktur/fakturPm/view/faktur-pm-list-view.tsx
src/sections/faktur/fakturPm/view/faktur-pm-list-view.tsx
+11
-4
No files found.
src/sections/faktur/fakturPm/hooks/useSaveFakturPK.tsx
deleted
100644 → 0
View file @
f3ec3847
import
{
useMutation
}
from
'
@tanstack/react-query
'
;
import
dayjs
from
'
dayjs
'
;
import
type
{
TPostFakturPKRequest
}
from
'
../types/types
'
;
import
fakturApi
from
'
../utils/api
'
;
/**
* Mapping nilai radio ke boolean flag fgUangMuka & fgPelunasan
*/
const
getPaymentFlags
=
(
value
:
string
)
=>
{
switch
(
value
)
{
case
'
uang_muka
'
:
return
{
fgUangMuka
:
true
,
fgPelunasan
:
false
};
case
'
pelunasan
'
:
return
{
fgUangMuka
:
false
,
fgPelunasan
:
true
};
default
:
// single_payment atau lainnya
return
{
fgUangMuka
:
false
,
fgPelunasan
:
false
};
}
};
/**
* Transformasi data form menjadi payload untuk endpoint IF_TXR_001/create
*/
const
transformParams
=
(
formData
:
any
):
TPostFakturPKRequest
=>
{
const
{
id
,
// internal id
fgUangMuka
,
// string dari radio
nomorFaktur
,
nomorFakturDiganti
,
detailTransaksi
,
idKeteranganTambahan
,
keteranganTambahan
,
masaPajak
,
tahunPajak
,
refDoc
,
referensi
,
npwpPembeli
,
idLainPembeli
,
kdNegaraPembeli
,
nikPaspPembeli
,
namaPembeli
,
tkuPembeli
,
alamatPembeli
,
emailPembeli
,
keterangan1
,
keterangan2
,
keterangan3
,
keterangan4
,
keterangan5
,
objekFaktur
,
jumlahUangMuka
,
totalDpp
,
totalDppLain
,
totalPpn
,
totalPpnbm
,
tanggalFaktur
,
fgPengganti
,
capKetTambahan
,
uangMukaDpp
,
uangMukaDppLain
,
uangMukaPpn
,
uangMukaPpnbm
,
}
=
formData
;
let
finalNpwpPembeli
=
npwpPembeli
;
let
finalNikPaspPembeli
=
nikPaspPembeli
;
if
(
idLainPembeli
===
'
2
'
||
idLainPembeli
===
'
3
'
)
{
// jika Paspor / ID Lain → nikPaspPembeli ambil dari npwpPembeli
finalNikPaspPembeli
=
npwpPembeli
||
''
;
// npwpPembeli HARUS menjadi 16 digit nol
finalNpwpPembeli
=
'
0000000000000000
'
;
}
// 🔁 Konversi nilai radio ke boolean flag
const
{
fgUangMuka
:
flagUangMuka
,
fgPelunasan
:
flagPelunasan
}
=
getPaymentFlags
(
fgUangMuka
);
const
totalDiskon
=
Array
.
isArray
(
objekFaktur
)
?
objekFaktur
.
reduce
((
sum
,
item
)
=>
sum
+
Number
(
item
.
diskon
??
0
),
0
)
:
0
;
return
{
id
:
id
??
null
,
fgUangMuka
:
flagUangMuka
,
fgPelunasan
:
flagPelunasan
,
nomorFaktur
:
nomorFaktur
??
''
,
nomorFakturDiganti
:
nomorFakturDiganti
??
''
,
detailTransaksi
:
detailTransaksi
??
''
,
idKeteranganTambahan
:
idKeteranganTambahan
??
''
,
keteranganTambahan
:
keteranganTambahan
??
''
,
masaPajak
:
String
(
masaPajak
??
dayjs
().
month
()
+
1
).
padStart
(
2
,
'
0
'
),
tahunPajak
:
String
(
tahunPajak
??
dayjs
().
year
()),
refDoc
:
refDoc
??
''
,
referensi
:
referensi
??
''
,
// npwpPembeli: npwpPembeli ?? '',
npwpPembeli
:
finalNpwpPembeli
,
idLainPembeli
:
idLainPembeli
??
''
,
kdNegaraPembeli
:
kdNegaraPembeli
??
'
IDN
'
,
// nikPaspPembeli: nikPaspPembeli ?? '',
nikPaspPembeli
:
finalNikPaspPembeli
,
namaPembeli
:
namaPembeli
??
''
,
tkuPembeli
:
tkuPembeli
??
''
,
alamatPembeli
:
alamatPembeli
??
''
,
emailPembeli
:
emailPembeli
??
''
,
keterangan1
:
keterangan1
??
''
,
keterangan2
:
keterangan2
??
''
,
keterangan3
:
keterangan3
??
''
,
keterangan4
:
keterangan4
??
''
,
keterangan5
:
keterangan5
??
''
,
objekFaktur
:
Array
.
isArray
(
objekFaktur
)
?
objekFaktur
.
map
((
item
)
=>
({
brgJasa
:
item
.
brgJasa
??
''
,
kdBrgJasa
:
item
.
kdBrgJasa
??
''
,
namaBrgJasa
:
item
.
namaBrgJasa
??
''
,
satuanBrgJasa
:
item
.
satuanBrgJasa
??
''
,
hargaSatuan
:
Number
(
item
.
hargaSatuan
??
0
),
jmlBrgJasa
:
Number
(
item
.
jmlBrgJasa
??
0
),
totalHarga
:
Number
(
item
.
totalHarga
??
0
),
diskon
:
Number
(
item
.
diskon
??
0
),
// cekDppLain: item.cekDppLain,
cekDppLain
:
item
.
cekDppLain
!==
undefined
?
item
.
cekDppLain
:
null
,
// biarkan kosong, jangan ubah
dpp
:
Number
(
item
.
dpp
??
0
),
dppLain
:
Number
(
item
.
dppLain
??
0
),
tarifPpn
:
Number
(
item
.
tarifPpn
??
11
),
ppn
:
Number
(
item
.
ppn
??
0
),
tarifPpnbm
:
Number
(
item
.
tarifPpnbm
??
0
),
ppnbm
:
Number
(
item
.
ppnbm
??
0
),
}))
:
[],
jumlahUangMuka
:
fgUangMuka
===
'
uang_muka
'
?
Number
(
jumlahUangMuka
??
0
)
:
fgUangMuka
===
'
pelunasan
'
?
Number
(
uangMukaDpp
??
0
)
:
0
,
// jumlahUangMuka: Number(totalDpp ?? 0),
totalDpp
:
Number
(
totalDpp
??
0
),
totalDppLain
:
Number
(
totalDppLain
??
0
),
totalPpn
:
Number
(
totalPpn
??
0
),
totalPpnbm
:
Number
(
totalPpnbm
??
0
),
uangMukaDpp
:
Number
(
uangMukaDpp
??
0
),
uangMukaDppLain
:
Number
(
uangMukaDppLain
??
0
),
uangMukaPpn
:
Number
(
uangMukaPpn
??
0
),
uangMukaPpnbm
:
Number
(
uangMukaPpnbm
??
0
),
tanggalFaktur
:
tanggalFaktur
?
dayjs
(
String
(
tanggalFaktur
)).
format
(
'
DDMMYYYY
'
)
:
dayjs
().
format
(
'
DDMMYYYY
'
),
fgPengganti
:
String
(
fgPengganti
??
'
0
'
),
capKetTambahan
:
capKetTambahan
??
''
,
totalDiskon
:
String
(
totalDiskon
),
};
};
/**
* Hook untuk menyimpan data Faktur PK ke endpoint IF_TXR_001/create
*/
const
useSaveFakturPk
=
(
props
?:
any
)
=>
useMutation
({
mutationKey
:
[
'
save-fakturpk
'
],
mutationFn
:
async
(
params
:
any
)
=>
{
const
payload
=
transformParams
(
params
);
return
fakturApi
.
saveFakturPK
(
payload
);
},
...
props
,
});
export
default
useSaveFakturPk
;
src/sections/faktur/fakturPm/hooks/useUpload.tsx
deleted
100644 → 0
View file @
f3ec3847
// hooks/useUpload.ts
import
{
useMutation
}
from
'
@tanstack/react-query
'
;
import
fakturApi
from
'
../utils/api
'
;
const
useUpload
=
(
props
?:
any
)
=>
useMutation
({
mutationKey
:
[
'
upload-faktur
'
],
mutationFn
:
(
payload
:
{
id
:
string
|
number
})
=>
fakturApi
.
upload
(
payload
),
...
props
,
});
export
default
useUpload
;
src/sections/faktur/fakturPm/view/faktur-pm-list-view.tsx
View file @
28518047
...
@@ -23,6 +23,7 @@ import {
...
@@ -23,6 +23,7 @@ import {
PlaylistAddCheckTwoTone
,
PlaylistAddCheckTwoTone
,
PlaylistRemoveTwoTone
,
PlaylistRemoveTwoTone
,
RemoveCircleTwoTone
,
RemoveCircleTwoTone
,
SwapHorizontalCircleTwoTone
,
}
from
'
@mui/icons-material
'
;
}
from
'
@mui/icons-material
'
;
import
{
FG_STATUS_FAKTUR_PK
}
from
'
../constant
'
;
import
{
FG_STATUS_FAKTUR_PK
}
from
'
../constant
'
;
import
{
enqueueSnackbar
}
from
'
notistack
'
;
import
{
enqueueSnackbar
}
from
'
notistack
'
;
...
@@ -476,6 +477,12 @@ export function FakturPmListView() {
...
@@ -476,6 +477,12 @@ export function FakturPmListView() {
},
},
],
],
[
[
{
title
:
'
Batal
'
,
icon
:
<
HighlightOffTwoTone
sx=
{
{
width
:
26
,
height
:
26
}
}
/>,
func
:
()
=>
setIsCancelModalOpen
(
true
),
disabled
:
!
validatedActions
.
canCancel
,
},
{
{
title
:
'
Pengganti
'
,
title
:
'
Pengganti
'
,
icon
:
<
FileOpenTwoTone
sx=
{
{
width
:
26
,
height
:
26
}
}
/>,
icon
:
<
FileOpenTwoTone
sx=
{
{
width
:
26
,
height
:
26
}
}
/>,
...
@@ -483,10 +490,10 @@ export function FakturPmListView() {
...
@@ -483,10 +490,10 @@ export function FakturPmListView() {
disabled
:
!
validatedActions
.
canReplacement
,
disabled
:
!
validatedActions
.
canReplacement
,
},
},
{
{
title
:
'
Batal
'
,
title
:
'
Retur
'
,
icon
:
<
HighlightOff
TwoTone
sx=
{
{
width
:
26
,
height
:
26
}
}
/>,
icon
:
<
SwapHorizontalCircle
TwoTone
sx=
{
{
width
:
26
,
height
:
26
}
}
/>,
func
:
()
=>
setIs
Cancel
ModalOpen
(
true
),
func
:
()
=>
setIs
Pengganti
ModalOpen
(
true
),
disabled
:
!
validatedActions
.
can
Cancel
,
disabled
:
!
validatedActions
.
can
Replacement
,
},
},
],
],
[
[
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment