+
+ {currentCorporate?.data.map((item, index) => (
+
+
+
+
+
+ Field
+ Old Value
+ New Values
+
+
+
+ {Object.entries(item.old_values).map(([key, value]) => {
+ let renderedValue;
+ if (key !== 'reason') {
+ return null; // Melewati iterasi saat key adalah 'deleted_by'
+ }
+ renderedValue = item.new_values[key];
+
+ const field = key.charAt(0).toUpperCase() + key.slice(1);
+
+ return (
+
+ {`${field}`}
+ {`${value}`}
+ {renderedValue}
+
+ );
+ })}
+
+
+
+
+ ))}
+
+ );
+}
diff --git a/frontend/dashboard/src/pages/Corporates/Form.tsx b/frontend/dashboard/src/pages/Corporates/Form.tsx
index 9a7eab2c..a1a8b935 100755
--- a/frontend/dashboard/src/pages/Corporates/Form.tsx
+++ b/frontend/dashboard/src/pages/Corporates/Form.tsx
@@ -62,59 +62,115 @@ type Props = {
};
export default function CorporateForm({ isEdit, currentCorporate }: Props) {
+
const navigate = useNavigate();
const [corporate_groups, setCorporateGroups] = useState([]);
// const [ errors, setErrors ] = useState<{ [key: string]: string }>({});
const { enqueueSnackbar } = useSnackbar();
-
- const NewCorporateSchema = Yup.object().shape({
- name: Yup.string().required('Name is required'),
- code: Yup.string().required('Corporate Code is required').test(
- 'unique-code',
- 'Code must be unique',
- async function (value) {
- const existingCodes = await getExistingCodes();
- return !existingCodes.includes(value);
- }
- ),
- active: Yup.boolean().required('Corporate Status is required'),
- type: Yup.string().required('Type is required'),
- welcome_message: Yup.string().required('Welcome Message is required'),
- help_text: Yup.string().required('Help Text is required'),
- // policy_code: Yup.string().required('Policy Code is required'),
- policy_start: Yup.date().required('Start Date is required'),
- policy_end: Yup.date().required('End Date is required').min(Yup.ref('policy_start'), "end date can't be before start date"),
- policy_total_premi: Yup.number().required('Deposit Initial Fund is required').min(0),
- // linking_rules: Yup.string().required('Link Rules is required'),
- policy_minimal_deposit_percentage:
- Yup.number()
- .typeError("Please enter a valid number")
- .required('Percentage Deposit is required')
- .min(0, "Minimum atleast 0")
- .max(100, "Allowed maximum is 100"),
- policy_minimal_alert_percentage:
- Yup.number()
- .typeError("Please enter a valid number")
- .required('Percentage Alert is required')
- .min(0, "Minimum atleast 0")
- .max(100, "Allowed maximum is 100"),
- policy_stop_service_percentage:
- Yup.number()
- .typeError("Please enter a valid number")
- .min(0, "Minimum atleast 0")
- .required('Percentage Stop is required')
- .test("max", "Total should not exceed 100 %", function(value) {
- const { policy_minimal_alert_percentage } = this.parent;
- const { policy_minimal_deposit_percentage } = this.parent;
- return value == 100 - policy_minimal_alert_percentage- policy_minimal_deposit_percentage;
- }),
- parent_id: Yup.string().when('type', {
- is: 'subcorporate',
- then: Yup.string().required('Corporate is required because type is Sub Corporate'),
- }),
- });
+ let NewCorporateSchema = null;
+ if (isEdit){
+ NewCorporateSchema = Yup.object().shape({
+ isEdited: Yup.boolean(),
+ name: Yup.string().required('Name is required'),
+ code: Yup.string().required('Corporate Code is required').test(
+ 'unique-code',
+ 'Code must be unique',
+ async function (value) {
+ const existingCodes = await getExistingCodes();
+ return !existingCodes.includes(value);
+ }
+ ),
+ active: Yup.boolean().required('Corporate Status is required'),
+ type: Yup.string().required('Type is required'),
+ welcome_message: Yup.string().required('Welcome Message is required'),
+ help_text: Yup.string().required('Help Text is required'),
+ // policy_code: Yup.string().required('Policy Code is required'),
+ policy_start: Yup.date().required('Start Date is required'),
+ policy_end: Yup.date().required('End Date is required').min(Yup.ref('policy_start'), "end date can't be before start date"),
+ policy_total_premi: Yup.number().required('Deposit Initial Fund is required').min(0),
+ // linking_rules: Yup.string().required('Link Rules is required'),
+ policy_minimal_deposit_percentage:
+ Yup.number()
+ .typeError("Please enter a valid number")
+ .required('Percentage Deposit is required')
+ .min(0, "Minimum atleast 0")
+ .max(100, "Allowed maximum is 100"),
+ policy_minimal_alert_percentage:
+ Yup.number()
+ .typeError("Please enter a valid number")
+ .required('Percentage Alert is required')
+ .min(0, "Minimum atleast 0")
+ .max(100, "Allowed maximum is 100"),
+ policy_stop_service_percentage:
+ Yup.number()
+ .typeError("Please enter a valid number")
+ .min(0, "Minimum atleast 0")
+ .required('Percentage Stop is required')
+ .test("max", "Total should not exceed 100 %", function(value) {
+ const { policy_minimal_alert_percentage } = this.parent;
+ const { policy_minimal_deposit_percentage } = this.parent;
+ return value == 100 - policy_minimal_alert_percentage- policy_minimal_deposit_percentage;
+ }),
+ parent_id: Yup.string().when('type', {
+ is: 'subcorporate',
+ then: Yup.string().required('Corporate is required because type is Sub Corporate'),
+ }),
+
+ reason: Yup.string().required('Reason for update is required when editing data'),
+ });
+ } else {
+ // console.log('test')
+ NewCorporateSchema = Yup.object().shape({
+ isEdited: Yup.boolean(),
+ name: Yup.string().required('Name is required'),
+ code: Yup.string().required('Corporate Code is required').test(
+ 'unique-code',
+ 'Code must be unique',
+ async function (value) {
+ const existingCodes = await getExistingCodes();
+ return !existingCodes.includes(value);
+ }
+ ),
+ active: Yup.boolean().required('Corporate Status is required'),
+ type: Yup.string().required('Type is required'),
+ welcome_message: Yup.string().required('Welcome Message is required'),
+ help_text: Yup.string().required('Help Text is required'),
+ // policy_code: Yup.string().required('Policy Code is required'),
+ policy_start: Yup.date().required('Start Date is required'),
+ policy_end: Yup.date().required('End Date is required').min(Yup.ref('policy_start'), "end date can't be before start date"),
+ policy_total_premi: Yup.number().required('Deposit Initial Fund is required').min(0),
+ // linking_rules: Yup.string().required('Link Rules is required'),
+ policy_minimal_deposit_percentage:
+ Yup.number()
+ .typeError("Please enter a valid number")
+ .required('Percentage Deposit is required')
+ .min(0, "Minimum atleast 0")
+ .max(100, "Allowed maximum is 100"),
+ policy_minimal_alert_percentage:
+ Yup.number()
+ .typeError("Please enter a valid number")
+ .required('Percentage Alert is required')
+ .min(0, "Minimum atleast 0")
+ .max(100, "Allowed maximum is 100"),
+ policy_stop_service_percentage:
+ Yup.number()
+ .typeError("Please enter a valid number")
+ .min(0, "Minimum atleast 0")
+ .required('Percentage Stop is required')
+ .test("max", "Total should not exceed 100 %", function(value) {
+ const { policy_minimal_alert_percentage } = this.parent;
+ const { policy_minimal_deposit_percentage } = this.parent;
+ return value == 100 - policy_minimal_alert_percentage- policy_minimal_deposit_percentage;
+ }),
+ parent_id: Yup.string().when('type', {
+ is: 'subcorporate',
+ then: Yup.string().required('Corporate is required because type is Sub Corporate'),
+ }),
+ });
+ }
+
async function getExistingCodes() {
// axios
@@ -127,15 +183,16 @@ export default function CorporateForm({ isEdit, currentCorporate }: Props) {
// });
try {
- let response = await axios.get('/corporates'); // get data all corporate
+ let response = await axios.get('/corporates/1/code'); // get data all corporate
let codeCurrent = ""
if (isEdit){
let responseCodeCurrent = await axios.get(`/corporates/${currentCorporate?.id}/edit`); // get data current corporate
codeCurrent = responseCodeCurrent.data.code; // get data code corporate current
}
- let existingCodes = response.data.data.map(item => item.code); // get data code corporate all
+ // console.log(response.data);
+ let existingCodes = response.data.map(item => item); // get data code corporate all
- var filteredArray = existingCodes.filter(e => e != codeCurrent)
+ let filteredArray = existingCodes.filter(e => e != codeCurrent)
return filteredArray;
} catch (error) {
console.error(error);
@@ -147,6 +204,7 @@ export default function CorporateForm({ isEdit, currentCorporate }: Props) {
() => ({
code: currentCorporate?.code || '',
name: currentCorporate?.name || '',
+ reason: currentCorporate?.reason || '',
welcome_message: currentCorporate?.welcome_message || '',
help_text: currentCorporate?.help_text || '',
active: currentCorporate?.id ? currentCorporate?.active === 1 : true,
@@ -224,6 +282,7 @@ export default function CorporateForm({ isEdit, currentCorporate }: Props) {
formData.append('active', data.active ? '1' : '0');
formData.append('type', data.type);
formData.append('welcome_message', data.welcome_message);
+ formData.append('reason', data.reason);
formData.append('help_text', data.help_text);
formData.append('policy_id', data.policy_id);
formData.append('policy_code', data.policy_code);
@@ -390,7 +449,7 @@ export default function CorporateForm({ isEdit, currentCorporate }: Props) {
id: 'Lilili',
},
];
-
+ const [isDisabled, setIsDisabled] = useState(isEdit);
const handleTypeChange = (event: SelectChangeEvent) => {
setValue('type', event.target.value);
};
@@ -431,12 +490,15 @@ export default function CorporateForm({ isEdit, currentCorporate }: Props) {
))}
+ )}
+