repair: delete error code
This commit is contained in:
@@ -19,7 +19,7 @@ import TableList from '../../../components/Global/TableList';
|
||||
import { ConfigProvider } from 'antd';
|
||||
import { NotifAlert, NotifOk, NotifConfirmDialog } from '../../../components/Global/ToastNotif';
|
||||
import { useBreadcrumb } from '../../../layout/LayoutBreadcrumb';
|
||||
import { getBrandById, getErrorCodesByBrandId } from '../../../api/master-brand';
|
||||
import { getBrandById, getErrorCodesByBrandId, deleteErrorCode } from '../../../api/master-brand';
|
||||
import { getFileUrl } from '../../../api/file-uploads';
|
||||
import BrandForm from './component/BrandForm';
|
||||
import ErrorCodeSimpleForm from './component/ErrorCodeSimpleForm';
|
||||
@@ -43,9 +43,6 @@ const EditBrandDevice = () => {
|
||||
const [errorCodeIcon, setErrorCodeIcon] = useState(null);
|
||||
const [selectedSparepartIds, setSelectedSparepartIds] = useState([]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
// Context integration
|
||||
// Use step from query parameter
|
||||
const tab = searchParams.get('tab');
|
||||
const [currentStep, setCurrentStep] = useState(tab === 'error-codes' ? 1 : 0);
|
||||
const [editingErrorCodeKey, setEditingErrorCodeKey] = useState(null);
|
||||
@@ -59,16 +56,6 @@ const EditBrandDevice = () => {
|
||||
const [existingErrorCodes, setExistingErrorCodes] = useState([]);
|
||||
|
||||
const {
|
||||
solutionFields,
|
||||
solutionTypes,
|
||||
solutionStatuses,
|
||||
solutionsToDelete,
|
||||
firstSolutionValid,
|
||||
checkFirstSolutionValid,
|
||||
handleAddSolutionField,
|
||||
handleRemoveSolutionField,
|
||||
handleSolutionTypeChange,
|
||||
handleSolutionStatusChange,
|
||||
resetSolutionFields,
|
||||
getSolutionData,
|
||||
setSolutionsForExistingRecord,
|
||||
@@ -199,7 +186,7 @@ const EditBrandDevice = () => {
|
||||
);
|
||||
};
|
||||
|
||||
const deleteErrorCode = (tempId, permanent = false) => {
|
||||
const deleteLocalErrorCode = (tempId, permanent = false) => {
|
||||
if (permanent) {
|
||||
setTempErrorCodes(prev => prev.filter(ec => ec.tempId !== tempId));
|
||||
setExistingErrorCodes(prev => prev.filter(ec => ec.tempId !== tempId));
|
||||
@@ -390,21 +377,46 @@ const EditBrandDevice = () => {
|
||||
}
|
||||
};
|
||||
|
||||
const handleDeleteErrorCode = (record) => {
|
||||
const handleDeleteErrorCode = async (record) => {
|
||||
NotifConfirmDialog({
|
||||
icon: 'question',
|
||||
title: 'Konfirmasi Hapus',
|
||||
message: `Apakah Anda yakin ingin menghapus error code "${record.error_code}"?`,
|
||||
onConfirm: () => {
|
||||
// Use soft delete (mark as deleted) instead of permanent delete
|
||||
const tempId = record.tempId || `existing_${record.error_code_id}`;
|
||||
deleteErrorCode(tempId, false); // false = soft delete
|
||||
NotifOk({
|
||||
icon: 'success',
|
||||
title: 'Berhasil',
|
||||
message: 'Error code berhasil dihapus!',
|
||||
});
|
||||
setTrigerFilter(prev => !prev);
|
||||
onConfirm: async () => {
|
||||
try {
|
||||
if (record.status === 'existing' && record.error_code_id) {
|
||||
const response = await deleteErrorCode(id, record.error_code_id);
|
||||
if (response && response.statusCode === 200) {
|
||||
NotifOk({
|
||||
icon: 'success',
|
||||
title: 'Berhasil',
|
||||
message: 'Error code berhasil dihapus!',
|
||||
});
|
||||
setTrigerFilter(prev => !prev);
|
||||
} else {
|
||||
NotifAlert({
|
||||
icon: 'error',
|
||||
title: 'Error',
|
||||
message: response?.message || 'Failed to delete error code',
|
||||
});
|
||||
}
|
||||
} else {
|
||||
const tempId = record.tempId;
|
||||
deleteLocalErrorCode(tempId, true);
|
||||
NotifOk({
|
||||
icon: 'success',
|
||||
title: 'Berhasil',
|
||||
message: 'Error code berhasil dihapus!',
|
||||
});
|
||||
setTrigerFilter(prev => !prev);
|
||||
}
|
||||
} catch (error) {
|
||||
NotifAlert({
|
||||
icon: 'error',
|
||||
title: 'Error',
|
||||
message: error.message || 'Failed to delete error code',
|
||||
});
|
||||
}
|
||||
},
|
||||
onCancel: () => {}
|
||||
});
|
||||
@@ -416,14 +428,16 @@ const EditBrandDevice = () => {
|
||||
...tempErrorCodes
|
||||
];
|
||||
|
||||
const activeErrorCodes = allErrorCodes.filter(ec => ec.status !== 'deleted');
|
||||
|
||||
if (searchText) {
|
||||
return allErrorCodes.filter(ec =>
|
||||
return activeErrorCodes.filter(ec =>
|
||||
ec.error_code.toLowerCase().includes(searchText.toLowerCase()) ||
|
||||
ec.error_code_name.toLowerCase().includes(searchText.toLowerCase())
|
||||
);
|
||||
}
|
||||
|
||||
return allErrorCodes;
|
||||
return activeErrorCodes;
|
||||
}, [existingErrorCodes, tempErrorCodes, searchText]);
|
||||
|
||||
const errorCodeColumns = (showPreviewModal, showEditModal, showDeleteDialog) => [
|
||||
|
||||
Reference in New Issue
Block a user