diff --git a/src/controllers/hospital_information.ts b/src/controllers/hospital_information.ts index 04216b7..badc7fc 100644 --- a/src/controllers/hospital_information.ts +++ b/src/controllers/hospital_information.ts @@ -25,10 +25,14 @@ const hospitalCreateUpdateSchema = { address: Joi.string().required().label("Hospital Address"), phone: Joi.string().required().label("Hospital Phone"), logo: Joi.string().allow(null, "").label("Hospital Logo"), - province: Joi.string().allow("").optional().label("Province Code"), - city: Joi.string().allow("").optional().label("City Code"), - subdistrict: Joi.string().allow("").optional().label("Subdistrict Code"), - ward: Joi.string().allow("").optional().label("Ward Code"), + // province: Joi.string().allow("").optional().label("Province Code"), + // city: Joi.string().allow("").optional().label("City Code"), + // subdistrict: Joi.string().allow("").optional().label("Subdistrict Code"), + // ward: Joi.string().allow("").optional().label("Ward Code"), + munisipo: Joi.string().allow(null, "").label("Munisipo ID"), + administrativu: Joi.string().allow(null, "").label("Administrativu ID"), + aldeia: Joi.string().allow(null, "").label("Aldeia ID"), + suco: Joi.string().allow(null, "").label("Suco ID"), }; interface FileUploadRequest extends Request { @@ -46,10 +50,14 @@ export class HospitalInformationController { try { const hospital = await OrmHelper.DB.getRepository(HospitalInformation) .createQueryBuilder("HospitalInformation") - .leftJoinAndSelect("HospitalInformation.province", "province") - .leftJoinAndSelect("HospitalInformation.city", "city") - .leftJoinAndSelect("HospitalInformation.subdistrict", "subdistrict") - .leftJoinAndSelect("HospitalInformation.ward", "ward") + .leftJoinAndSelect("HospitalInformation.munisipo", "munisipo") + .leftJoinAndSelect("HospitalInformation.administrativu", "administrativu") + .leftJoinAndSelect("HospitalInformation.aldeia", "aldeia") + .leftJoinAndSelect("HospitalInformation.suco", "suco") + // .leftJoinAndSelect("HospitalInformation.province", "province") + // .leftJoinAndSelect("HospitalInformation.city", "city") + // .leftJoinAndSelect("HospitalInformation.subdistrict", "subdistrict") + // .leftJoinAndSelect("HospitalInformation.ward", "ward") .getOne(); if (!hospital) return ReturnHelper.errorResponse(res, 404, 404, Language.lang.failed_view, "Hospital not found"); @@ -66,10 +74,10 @@ export class HospitalInformationController { phone: hospital.phone, logo: hospitallogo, file: hospital.logo, - province: hospital.province, - city: hospital.city, - subdistrict: hospital.subdistrict, - ward: hospital.ward + munisipo: hospital.munisipo, + administrativu: hospital.administrativu, + aldeia: hospital.aldeia, + suco: hospital.suco }; return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, result); @@ -105,10 +113,14 @@ export class HospitalInformationController { hospitalinformation.address = param.address; hospitalinformation.phone = param.phone; hospitalinformation.logo = param.logo || existing.logo; // ✅ pertahankan logo lama kalau kosong - hospitalinformation.province = param.province; - hospitalinformation.city = param.city; - hospitalinformation.subdistrict = param.subdistrict; - hospitalinformation.ward = param.ward; + // hospitalinformation.province = param.province; + // hospitalinformation.city = param.city; + // hospitalinformation.subdistrict = param.subdistrict; + // hospitalinformation.ward = param.ward; + hospitalinformation.suco = param.suco; + hospitalinformation.administrativu = param.administrativu; + hospitalinformation.aldeia = param.aldeia; + hospitalinformation.munisipo = param.munisipo; hospitalinformation.updated_by = req.auth?.data.name; } else { // ── INSERT ───────────────────────────────────────────── @@ -117,10 +129,14 @@ export class HospitalInformationController { hospitalinformation.address = param.address; hospitalinformation.phone = param.phone; hospitalinformation.logo = param.logo; - hospitalinformation.province = param.province; - hospitalinformation.city = param.city; - hospitalinformation.subdistrict = param.subdistrict; - hospitalinformation.ward = param.ward; + // hospitalinformation.province = param.province; + // hospitalinformation.city = param.city; + // hospitalinformation.subdistrict = param.subdistrict; + // hospitalinformation.ward = param.ward; + hospitalinformation.suco = param.suco; + hospitalinformation.administrativu = param.administrativu; + hospitalinformation.aldeia = param.aldeia; + hospitalinformation.munisipo = param.munisipo; hospitalinformation.created_by = req.auth?.data.name; hospitalinformation.updated_by = req.auth?.data.name; } diff --git a/src/controllers/patient_guarantor.ts b/src/controllers/patient_guarantor.ts index 9dd923c..405a026 100644 --- a/src/controllers/patient_guarantor.ts +++ b/src/controllers/patient_guarantor.ts @@ -195,7 +195,7 @@ export class PatientGuarantorController { if (param.is_default || param.is_default === true) { await OrmHelper.DB.getRepository(PatientGuarantor) - .update({ is_default: true }, { is_default: false, updated_by: req.auth.data.name }); + .update({ is_default: true }, { is_default: false, updated_by: req.auth?.data.name }); } const data = new PatientGuarantor() @@ -209,10 +209,8 @@ export class PatientGuarantorController { data.patient_group = param.patient_group_id; data.faretype = param.faretype; data.maximal_liability = param.maximalliability; - data.is_default = param.is_default; - data.is_full_paid = param.is_full_paid; - data.created_by = req.auth.data.name; - data.updated_by = req.auth.data.name; + data.created_by = req.auth?.data.name; + data.updated_by = req.auth?.data.name; await OrmHelper.DB.manager.save(data); @@ -274,13 +272,31 @@ export class PatientGuarantorController { const repo = OrmHelper.DB.getRepository(PatientGuarantor); const data = await repo.findOneBy({ id: param.id }); - if (data == null) { + + if (data != null) { + data.guarantor_name = param.guarantor_name; + data.phone = param.phone; + data.province = param.province; + data.city = param.city; + data.zip_code = param.zip_code; + data.agreement_no = param.agreement_no; + data.agreement_desc = param.agreement_desc; + data.patient_group = param.patient_group_id; + data.faretype = param.faretype; + data.maximal_liability = param.maximalliability; + data.created_by = req.auth?.data.name; + data.updated_by = req.auth?.data.name; + + await repo.save(data); + + return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, data); + } else { return ReturnHelper.errorResponse(res, 404, 401, Language.lang.failed_not_found, ""); } if (param.is_default || param.is_default === true) { await OrmHelper.DB.getRepository(PatientGuarantor) - .update({ is_default: true }, { is_default: false, updated_by: req.auth.data.name }); + .update({ is_default: true }, { is_default: false, updated_by: req.auth?.data.name }); } data.guarantor_name = param.guarantor_name; @@ -340,11 +356,11 @@ export class PatientGuarantorController { const existData = await repo.findOne({ where: { id: param.id } }); if (existData && !param.hard) { - existData.deleted_by = req.auth.data.name; + existData.deleted_by = req.auth?.data.name; await OrmHelper.DB.manager.save(existData); } - const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected ?? 0; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); @@ -382,7 +398,7 @@ export class PatientGuarantorController { const repo = OrmHelper.DB.getRepository(PatientGuarantor); - const affected = (await repo.restore({ id: param.id })).affected; + const affected = (await repo.restore({ id: param.id })).affected ?? 0; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_restore, {}); diff --git a/src/controllers/pharmacy/pharmacy_info.ts b/src/controllers/pharmacy/pharmacy_info.ts index 1d14049..5a39393 100644 --- a/src/controllers/pharmacy/pharmacy_info.ts +++ b/src/controllers/pharmacy/pharmacy_info.ts @@ -251,10 +251,10 @@ export class PharmacyInfoController { .required() .label('Default Room'), - province: Joi.string().allow("").optional().label("Province Code"), - city: Joi.string().allow("").optional().label("City Code"), - subdistrict: Joi.string().allow("").optional().label("Subdistrict Code"), - ward: Joi.string().allow("").optional().label("Ward Code"), + // province: Joi.string().allow("").optional().label("Province Code"), + // city: Joi.string().allow("").optional().label("City Code"), + // subdistrict: Joi.string().allow("").optional().label("Subdistrict Code"), + // ward: Joi.string().allow("").optional().label("Ward Code"), }); const param: any = await schema.validateAsync(req.body); @@ -262,17 +262,17 @@ export class PharmacyInfoController { const data = new PharmacyInfo() data.name = param.name, data.address = param.address - // data.munisipiu = param.munisipiu, - // data.postu_admin = param.postu_admin - // data.suco = param.suco - // data.aldeia = param.aldeia + data.munisipiu = param.munisipiu, + data.postu_admin = param.postu_admin + data.suco = param.suco + data.aldeia = param.aldeia data.phone = param.phone data.default_room = param.default_room_id data.logo = param.logo - data.province = param.province - data.city = param.city - data.subdistrict = param.subdistrict - data.ward = param.ward + // data.province = param.province + // data.city = param.city + // data.subdistrict = param.subdistrict + // data.ward = param.ward data.created_by = req.auth?.data.name; await OrmHelper.DB.manager.save(data); @@ -329,21 +329,42 @@ export class PharmacyInfoController { .required() .label('Address'), - province: Joi.string() - .allow("", null) - .label('Province'), + munisipiu: Joi.string() + .uuid() + .required() + .label('Munisipiu'), - city: Joi.string() - .allow("", null) - .label('City'), + postu_admin: Joi.string() + .uuid() + .required() + .label('Postu Admin'), - subdistrict: Joi.string() - .allow("", null) - .label('Subdistrict'), + suco: Joi.string() + .uuid() + .required() + .label('Suco'), - ward: Joi.string() - .allow("", null) - .label('Ward'), + aldeia: Joi.string() + .uuid() + .required() + .label('Aldeia'), + + + // province: Joi.string() + // .allow("", null) + // .label('Province'), + + // city: Joi.string() + // .allow("", null) + // .label('City'), + + // subdistrict: Joi.string() + // .allow("", null) + // .label('Subdistrict'), + + // ward: Joi.string() + // .allow("", null) + // .label('Ward'), }); req.body.id = req.params['id']; @@ -357,17 +378,17 @@ export class PharmacyInfoController { if (data != null) { data.name = param.name, data.address = param.address - // data.munisipiu = param.munisipiu, - // data.postu_admin = param.postu_admin - // data.suco = param.suco - // data.aldeia = param.aldeia + data.munisipiu = param.munisipiu, + data.postu_admin = param.postu_admin + data.suco = param.suco + data.aldeia = param.aldeia data.phone = param.phone data.default_room = param.default_room_id data.logo = param.logo - data.province = param.province - data.city = param.city - data.subdistrict = param.subdistrict - data.ward = param.ward + // data.province = param.province + // data.city = param.city + // data.subdistrict = param.subdistrict + // data.ward = param.ward data.updated_by = req.auth?.data.name; await repo.save(data); @@ -419,7 +440,7 @@ export class PharmacyInfoController { await OrmHelper.DB.manager.save(existData); } - const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected ?? 0; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); @@ -457,7 +478,7 @@ export class PharmacyInfoController { const repo = OrmHelper.DB.getRepository(PharmacyInfo); - const affected = (await repo.restore({ id: param.id })).affected; + const affected = (await repo.restore({ id: param.id })).affected ?? 0; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_restore, {}); diff --git a/src/model/pharmacy_info.ts b/src/model/pharmacy_info.ts index 781b2dc..c4d137a 100644 --- a/src/model/pharmacy_info.ts +++ b/src/model/pharmacy_info.ts @@ -19,10 +19,10 @@ export class PharmacyInfoModel { .leftJoinAndSelect("pharmacy_info.postu_admin", "postu_admin") .leftJoinAndSelect("pharmacy_info.suco", "suco") .leftJoinAndSelect("pharmacy_info.aldeia", "aldeia") - .leftJoinAndSelect("pharmacy_info.province", "province") - .leftJoinAndSelect("pharmacy_info.city", "city") - .leftJoinAndSelect("pharmacy_info.subdistrict", "subdistrict") - .leftJoinAndSelect("pharmacy_info.ward", "ward"); + // .leftJoinAndSelect("pharmacy_info.province", "province") + // .leftJoinAndSelect("pharmacy_info.city", "city") + // .leftJoinAndSelect("pharmacy_info.subdistrict", "subdistrict") + // .leftJoinAndSelect("pharmacy_info.ward", "ward"); if (whereAttr.length != 0) { query = query.where(whereAttr.join(" and "), whereVal); } diff --git a/src/swagger/builder.js b/src/swagger/builder.js index e5e8ce7..ac2d4d9 100644 --- a/src/swagger/builder.js +++ b/src/swagger/builder.js @@ -241,10 +241,14 @@ const doc = { $address: "Hospital Address", $phone: "Hospital Phone", $logo: "Hospital Logo", - $province: "province code", - $city: "city code", - $subdistrict: "subdistrict code", - $ward: "ward code", + // $province: "province code", + // $city: "city code", + // $subdistrict: "subdistrict code", + // $ward: "ward code", + $munisipo: "Munisipo ID", + $administrativu: "Administrativu ID", + $aldeia: "Aldeia ID", + $suco: "Suco ID", }, files: { $file_name: "File Name", @@ -333,16 +337,16 @@ const doc = { $logo: "Logo (string, max 256)", $name: "Name (string, max 256)", $address: "Address (string, max 500)", - // $munisipiu: "Munisipiu ID (UUID)", - // $postu_admin: "Postu Admin ID (UUID)", - // $suco: "Suco ID (UUID)", - // $aldeia: "Aldeia ID (UUID)", + $munisipiu: "Munisipiu ID (UUID)", + $postu_admin: "Postu Admin ID (UUID)", + $suco: "Suco ID (UUID)", + $aldeia: "Aldeia ID (UUID)", $phone: "Phone (string, max 30, optional)", $default_room_id: "Default Room ID (UUID)", - $province: "Province Code", - $city: "City Code", - $subdistrict: "Subdistrict Code", - $ward: "Ward Code", + // $province: "Province Code", + // $city: "City Code", + // $subdistrict: "Subdistrict Code", + // $ward: "Ward Code", }, item_price: { $item_master_id: "Item Master ID (required, UUID)",