diff --git a/src/controllers/patient_guarantor.ts b/src/controllers/patient_guarantor.ts index 818c6f7..9dd923c 100644 --- a/src/controllers/patient_guarantor.ts +++ b/src/controllers/patient_guarantor.ts @@ -187,10 +187,17 @@ export class PatientGuarantorController { patient_group_id: Joi.string().guid({ version: 'uuidv4' }).required().label('Patient Group'), faretype: Joi.string().guid({ version: 'uuidv4' }).required().label('Fare Type'), maximalliability: Joi.number().optional().label('Maximal Liability'), + is_default: Joi.bool().optional().default(false).label('Is Default'), + is_full_paid: Joi.bool().optional().default(false).label('Is Full Paid'), }); const param: any = await schema.validateAsync(req.body); + 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 }); + } + const data = new PatientGuarantor() data.guarantor_name = param.guarantor_name; data.phone = param.phone; @@ -202,6 +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; @@ -254,6 +263,8 @@ export class PatientGuarantorController { patient_group_id: Joi.string().guid({ version: 'uuidv4' }).required().label('Patient Group'), faretype: Joi.string().guid({ version: 'uuidv4' }).required().label('Fare Type'), maximalliability: Joi.number().optional().label('Maximal Liability'), + is_default: Joi.bool().optional().default(false).label('Is Default'), + is_full_paid: Joi.bool().optional().default(false).label('Is Full Paid'), }); req.body.id = req.params['id']; @@ -263,27 +274,33 @@ export class PatientGuarantorController { const repo = OrmHelper.DB.getRepository(PatientGuarantor); const data = await repo.findOneBy({ id: param.id }); - - 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 { + if (data == null) { 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 }); + } + + 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.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; + + await repo.save(data); + + return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, data); } catch (e: unknown) { log.error(e); const err = e as Error; diff --git a/src/swagger/builder.js b/src/swagger/builder.js index f81060f..e5e8ce7 100644 --- a/src/swagger/builder.js +++ b/src/swagger/builder.js @@ -376,6 +376,8 @@ const doc = { $patient_group_id: "2e1a1b33-bbb2-4f33-b2c4-cff5976f3f95", // Patient Group (UUID) $faretype: "3f1a1b33-bbb2-4f33-b2c4-cff5976f3f95", // Fare Type (UUID) $maximalliability: 1000000, // Maximal Liability (opsional) + is_default: false, // Is Default (opsional) + is_full_paid: false, // Is Full Paid (opsional) }, refferal_hospital: { $refferal_hospital_name: "RefferalHospital name",