diff --git a/Modules/Internal/Http/Controllers/Api/OrganizationController.php b/Modules/Internal/Http/Controllers/Api/OrganizationController.php index 852ee18c..487a8258 100644 --- a/Modules/Internal/Http/Controllers/Api/OrganizationController.php +++ b/Modules/Internal/Http/Controllers/Api/OrganizationController.php @@ -53,6 +53,7 @@ class OrganizationController extends Controller 'type' => 'hospital', 'status' => $request->active == 1 ? 'active' : 'inactive', 'description' => $request->description, + 'corporate_id_partner' => $request->corporate_id_partner ]; $create_organization = Organization::create($organization); diff --git a/Modules/Internal/Transformers/OrganizationResource.php b/Modules/Internal/Transformers/OrganizationResource.php index 283fd9c9..5b045a6f 100644 --- a/Modules/Internal/Transformers/OrganizationResource.php +++ b/Modules/Internal/Transformers/OrganizationResource.php @@ -31,6 +31,7 @@ class OrganizationResource extends JsonResource 'district_id' => $this->currentAddress->district_id ?? null, 'village_id' => $this->currentAddress->village_id ?? null, 'postal_code' => $this->currentAddress->postal_code ?? null, + 'corporate_id_partner' => $this->corporate_id_partner ?? null, 'active' => $this->status == 'active' ? 1 : 0, ]; diff --git a/app/Models/Organization.php b/app/Models/Organization.php index 9b15406d..7a705843 100644 --- a/app/Models/Organization.php +++ b/app/Models/Organization.php @@ -18,6 +18,7 @@ class Organization extends Model 'description', 'part_of', 'main_address_id', + 'corporate_id_partner', ]; // public $with = [ diff --git a/frontend/dashboard/src/@types/organization.tsx b/frontend/dashboard/src/@types/organization.tsx index d5348677..af5175a4 100644 --- a/frontend/dashboard/src/@types/organization.tsx +++ b/frontend/dashboard/src/@types/organization.tsx @@ -21,6 +21,7 @@ export type Organizations = { merchant_key: string; image_url: string; region_groups: string; + corporate_id_partner: string; }; export type Provinces = { diff --git a/frontend/dashboard/src/pages/Master/Hospitals/Form.tsx b/frontend/dashboard/src/pages/Master/Hospitals/Form.tsx index 1574953c..09acecf8 100644 --- a/frontend/dashboard/src/pages/Master/Hospitals/Form.tsx +++ b/frontend/dashboard/src/pages/Master/Hospitals/Form.tsx @@ -127,13 +127,12 @@ export default function OrganizationsForm({ isEdit, currentOrganizations }: Prop village_id: currentOrganizations?.village_id || '', postal_code: currentOrganizations?.postal_code || '', description: currentOrganizations?.description || '', + corporate_id_partner: currentOrganizations?.corporate_id_partner || [], }), // eslint-disable-next-line react-hooks/exhaustive-deps [currentOrganizations] ); - console.log('defaultValues', defaultValues); - function StatusLabel({ value }: { value: boolean }) { return ( ([]); const [village, setVillage] = useState([]); + const [corporate_id_partner, setCorporateIdPartner] = useState([]); + const [selectedCorporatID, setSelectedCorporateID] = useState([]); + + const handleSelectChange = (event, selectedOptions:any) => { + const selectedValues = selectedOptions.map(option => option.value); + setSelectedCorporateID(selectedValues); + setValue('corporate_id_partner', selectedCorporatID) + }; + useEffect(() => { axios.get('/province').then((res) => { setProvince(res.data.data.map((item: any) => ({ value: item.id, label: item.name }))); @@ -304,6 +314,27 @@ export default function OrganizationsForm({ isEdit, currentOrganizations }: Prop } }, [values.province_id, values.city_id, values.district_id, values.village_id]); + useEffect(() => { + axios.get('/corporates').then((res) => { + setCorporateIdPartner(res.data.data.map((item: any) => ({ value: item.id, label: item.name }))); + }); + + const loadCorporateIdPartner = async () => { + if (values.corporate_id_partner == currentOrganizations?.corporate_id_partner){ + const res = await axios.get('/corporates'); + setCorporateIdPartner(res.data.data.map((item: any) => ({ value: item.id, label: item.name }))); + } + } + + if (values.corporate_id_partner) { + loadCorporateIdPartner(); + } + + console.log(corporate_id_partner, 'test'); + + }, [values.corporate_id_partner]) + + const findValueProvince = province.find( (item: any) => item.value === currentOrganizations?.province_id ); @@ -315,6 +346,10 @@ export default function OrganizationsForm({ isEdit, currentOrganizations }: Prop (item: any) => item.value === currentOrganizations?.village_id ); + const findValueCorporate = selectedCorporatID.find( + (item: any) => item.value === currentOrganizations?.corporate_id_partner + ); + return ( @@ -450,6 +485,8 @@ export default function OrganizationsForm({ isEdit, currentOrganizations }: Prop )} /> + + Kode Pos @@ -462,6 +499,28 @@ export default function OrganizationsForm({ isEdit, currentOrganizations }: Prop Longitude + + + Rekanan + ( + option.label} + value={corporate_id_partner.filter(option => selectedCorporatID.includes(option.value))} + onChange={handleSelectChange} + multiple // Enable multiple selections + renderInput={(params) => ( + + )} + /> + )} + /> + + Deskripsi