feat (user): add code on create and update, also handle midwife creation
This commit is contained in:
@@ -20,6 +20,7 @@ type CreateDto struct {
|
||||
Person *ep.UpdateDto `json:"person"`
|
||||
PersonAddresses []epa.UpdateDto `json:"personAddresses"`
|
||||
PersonContacts []epc.UpdateDto `json:"personContacts"`
|
||||
Code *string `json:"code" validate:"maxLength=20"`
|
||||
Employee *EmployeUpdateDto `json:"employee"`
|
||||
IHS_Number *string `json:"ihs_number" validate:"maxLength=20"`
|
||||
SIP_Number *string `json:"sip_number" validate:"maxLength=20"`
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
ed "simrs-vx/internal/domain/main-entities/doctor"
|
||||
ee "simrs-vx/internal/domain/main-entities/employee"
|
||||
el "simrs-vx/internal/domain/main-entities/laborant"
|
||||
emw "simrs-vx/internal/domain/main-entities/midwife"
|
||||
en "simrs-vx/internal/domain/main-entities/nurse"
|
||||
et "simrs-vx/internal/domain/main-entities/nutritionist"
|
||||
ep "simrs-vx/internal/domain/main-entities/pharmacist"
|
||||
@@ -18,6 +19,7 @@ import (
|
||||
ud "simrs-vx/internal/use-case/main-use-case/doctor"
|
||||
ue "simrs-vx/internal/use-case/main-use-case/employee"
|
||||
ul "simrs-vx/internal/use-case/main-use-case/laborant"
|
||||
umw "simrs-vx/internal/use-case/main-use-case/midwife"
|
||||
un "simrs-vx/internal/use-case/main-use-case/nurse"
|
||||
ut "simrs-vx/internal/use-case/main-use-case/nutritionist"
|
||||
upe "simrs-vx/internal/use-case/main-use-case/person"
|
||||
@@ -106,6 +108,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
||||
switch input.Employee.Position_Code {
|
||||
case ero.EPCDoc:
|
||||
createDoc := ed.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
SIP_Number: input.SIP_Number,
|
||||
@@ -118,6 +121,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
||||
}
|
||||
case ero.EPCNur:
|
||||
createNurse := en.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
Unit_Id: input.Unit_Id,
|
||||
@@ -128,6 +132,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
||||
}
|
||||
case ero.EPCNut:
|
||||
createNutritionist := et.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
@@ -136,6 +141,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
||||
}
|
||||
case ero.EPCPha:
|
||||
createPharmacist := ep.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
@@ -144,12 +150,22 @@ func Create(input e.CreateDto) (*d.Data, error) {
|
||||
}
|
||||
case ero.EPCLab:
|
||||
createLaborant := el.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
if _, err := ul.CreateData(createLaborant, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
case ero.EPCMwi:
|
||||
createMidWife := emw.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
if _, err := umw.CreateData(createMidWife, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return errors.New("invalid employee position")
|
||||
}
|
||||
@@ -380,6 +396,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
||||
return err
|
||||
}
|
||||
createDoc := ed.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
SIP_Number: input.SIP_Number,
|
||||
@@ -402,6 +419,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
||||
return err
|
||||
}
|
||||
createNur := en.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
@@ -422,6 +440,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
||||
return err
|
||||
}
|
||||
createNut := et.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
@@ -442,6 +461,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
||||
return err
|
||||
}
|
||||
createPha := ep.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
@@ -462,6 +482,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
||||
return err
|
||||
}
|
||||
createLab := el.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
@@ -475,6 +496,27 @@ func Update(input e.UpdateDto) (*d.Data, error) {
|
||||
if _, err := ul.CreateData(createLab, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
case ero.EPCMwi:
|
||||
readMidWife := emw.ReadDetailDto{Employee_Id: &employeeData.Id}
|
||||
readMidWifeData, err := umw.ReadDetailData(readMidWife, &event, tx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
createMidWife := emw.CreateDto{
|
||||
Code: input.Code,
|
||||
Employee_Id: &employeeData.Id,
|
||||
IHS_Number: input.IHS_Number,
|
||||
}
|
||||
if readMidWifeData != nil {
|
||||
if err := umw.UpdateData(emw.UpdateDto{CreateDto: createMidWife}, readMidWifeData, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if _, err := umw.CreateData(createMidWife, &event, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return errors.New("invalid employee position")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user