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