update: change province, ward,subdistrict, city to tl administration

This commit is contained in:
wayanrivan
2026-04-26 10:50:37 +07:00
parent d40838eb51
commit 2a33abd39a
5 changed files with 137 additions and 80 deletions

View File

@ -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;
}

View File

@ -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, {});

View File

@ -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, {});