update : add region in master data

This commit is contained in:
wayanrivan
2026-04-08 09:58:48 +07:00
parent fb8c352567
commit a67078580f
5 changed files with 77 additions and 56 deletions

View File

@ -79,28 +79,28 @@ export class PharmacyInfoController {
}
static async detail(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Pharmacy - PharmacyInfo']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { description: '', in: 'path', type: 'string' }
*/
try {
const schema = Joi.object().keys({
id: Joi.string().uuid().required().label("Pharmacy Info Id"),
});
let param: any = await schema.validateAsync(req.params);
let data = await PharmacyInfoModel.list({ "id": param.id }).then((q) => q.getOne());
if (!data) throw { message: "Pharmacy Info Not Found" };
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, data);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_not_found, err.message);
}
/*
#swagger.tags = ['Pharmacy - PharmacyInfo']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { description: '', in: 'path', type: 'string' }
*/
try {
const schema = Joi.object().keys({
id: Joi.string().uuid().required().label("Pharmacy Info Id"),
});
let param: any = await schema.validateAsync(req.params);
let data = await PharmacyInfoModel.list({ "id": param.id }).then((q) => q.getOne());
if (!data) throw { message: "Pharmacy Info Not Found" };
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, data);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_not_found, err.message);
}
}
static async export(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
@ -144,7 +144,7 @@ export class PharmacyInfoController {
var query = await PharmacyInfoModel.list(filter);
const data = await query.getMany();
const filename = "pharmacy_info.csv";
res.setHeader('Content-Type', 'text/csv');
@ -250,6 +250,11 @@ export class PharmacyInfoController {
.uuid()
.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"),
});
const param: any = await schema.validateAsync(req.body);
@ -264,7 +269,11 @@ export class PharmacyInfoController {
data.phone = param.phone
data.default_room = param.default_room_id
data.logo = param.logo
data.created_by = req.auth.data.name;
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);
@ -369,7 +378,11 @@ export class PharmacyInfoController {
data.phone = param.phone
data.default_room = param.default_room_id
data.logo = param.logo
data.updated_by = req.auth.data.name;
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);
@ -416,7 +429,7 @@ export class PharmacyInfoController {
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);
}
@ -625,33 +638,33 @@ export class PharmacyInfoController {
}
static async view(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Pharmacy - PharmacyInfo']
#swagger.security = [{ "bearerAuth": [] }]
*/
try {
const data = await OrmHelper.DB
.getRepository(PharmacyInfo)
.findOne({
where: {}
});
if (!data) return ReturnHelper.errorResponse(res, 404, 404, Language.lang.failed_view, "data not found");
const result = {
id: data.id,
name: data.name,
address: data.address,
phone: data.phone,
logo: 'http://his.shiblysolution.id:3011/service-master-data/uploads/hospital-logo/' + data.logo
};
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, result);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res,400,401,Language.lang.failed_view,err.message);
}
/*
#swagger.tags = ['Pharmacy - PharmacyInfo']
#swagger.security = [{ "bearerAuth": [] }]
*/
try {
const data = await OrmHelper.DB
.getRepository(PharmacyInfo)
.findOne({
where: {}
});
if (!data) return ReturnHelper.errorResponse(res, 404, 404, Language.lang.failed_view, "data not found");
const result = {
id: data.id,
name: data.name,
address: data.address,
phone: data.phone,
logo: 'http://his.shiblysolution.id:3011/service-master-data/uploads/hospital-logo/' + data.logo
};
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, result);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message);
}
}
}

View File

@ -82,7 +82,7 @@ export class RegionController {
}
}
static async subdistric(req: Request, res: Response, next: NextFunction): Promise<Response> {
static async subdistrict(req: Request, res: Response, next: NextFunction): Promise<Response> {
/*
#swagger.tags = ['Region']
#swagger.security = [{

View File

@ -18,7 +18,11 @@ export class PharmacyInfoModel {
.leftJoinAndSelect("pharmacy_info.munisipiu", "munisipiu")
.leftJoinAndSelect("pharmacy_info.postu_admin", "postu_admin")
.leftJoinAndSelect("pharmacy_info.suco", "suco")
.leftJoinAndSelect("pharmacy_info.aldeia", "aldeia");
.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");
if (whereAttr.length != 0) {
query = query.where(whereAttr.join(" and "), whereVal);
}

View File

@ -488,7 +488,7 @@ export class RoutePrivate {
app.get('/api/region/province', RegionController.province)
app.get('/api/region/city/:province_code', RegionController.city)
app.get('/api/region/subdistrict/:city_code', RegionController.subdistric)
app.get('/api/region/subdistrict/:city_code', RegionController.subdistrict)
app.get('/api/region/ward/:subdistric_code', RegionController.ward)
}
}

View File

@ -319,6 +319,10 @@ const doc = {
$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",
},
item_price: {
$item_master_id: "Item Master ID (required, UUID)",