adjustment detail division - 2

This commit is contained in:
vanilia
2025-10-24 14:50:03 +07:00
6 changed files with 38 additions and 72 deletions
@@ -0,0 +1,2 @@
-- Modify "Employee" table
ALTER TABLE "public"."Employee" DROP COLUMN "Division_Code";
+2 -1
View File
@@ -1,4 +1,4 @@
h1:fAJxBGCfoMXYDjYBlq6RITZ/dXbqiYtQWwupcBMLHV0= h1:XE6wCH2XnIm3XpP9itgkMFv8CCrc2SOb51W/bA5h3Uk=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -57,3 +57,4 @@ h1:fAJxBGCfoMXYDjYBlq6RITZ/dXbqiYtQWwupcBMLHV0=
20251021075552.sql h1:8gfSMAglflNO6L0sSzxFNEubYN8/O4thT7OQT+WH+3M= 20251021075552.sql h1:8gfSMAglflNO6L0sSzxFNEubYN8/O4thT7OQT+WH+3M=
20251023044432.sql h1:MkvajJs3bfk9+wHvQ43/ccAluJEBARm1gWr1u92ccLA= 20251023044432.sql h1:MkvajJs3bfk9+wHvQ43/ccAluJEBARm1gWr1u92ccLA=
20251024034832.sql h1:x3s3VEVYLOSKLAFxJGb2+c1FyTMMvPE+9k4Ew7rKQaI= 20251024034832.sql h1:x3s3VEVYLOSKLAFxJGb2+c1FyTMMvPE+9k4Ew7rKQaI=
20251024074315.sql h1:GkocUmXpU1QiZpjvELK4e6sKASxiS3kZTk+35Iux2ds=
+15 -42
View File
@@ -2,10 +2,7 @@ package division
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ep "simrs-vx/internal/domain/main-entities/person" edpb "simrs-vx/internal/domain/main-entities/division-position/base"
eu "simrs-vx/internal/domain/main-entities/user"
erc "simrs-vx/internal/domain/references/common"
erg "simrs-vx/internal/domain/references/organization"
) )
type CreateDto struct { type CreateDto struct {
@@ -52,55 +49,31 @@ type MetaDto struct {
type ResponseDto struct { type ResponseDto struct {
ecore.SmallMain ecore.SmallMain
Code string `json:"code"` Code string `json:"code"`
Name string `json:"name"` Name string `json:"name"`
Parent_Id *uint16 `json:"parent_id"` Parent_Id *uint16 `json:"parent_id"`
Parent *Division `json:"parent,omitempty"` Parent *Division `json:"parent,omitempty"`
Childrens []Division `json:"childrens,omitempty"` Childrens []Division `json:"childrens,omitempty"`
DivisionPosition []ResponseDivisionPosition `json:"divisionPositions,omitempty"` DivisionPosition []edpb.Basic `json:"divisionPositions,omitempty"`
} }
type ResponseDivisionPosition struct { func (d Division) ToResponse() ResponseDto {
ecore.SmallMain // adjust this according to the needs
Division_Id *uint16 `json:"division_id"`
Code string `json:"code"`
Name string `json:"name"`
HeadStatus bool `json:"headStatus"`
Employee_Id *uint `json:"employee_id"`
Employee ResponseDivisionEmployee `json:"employee"`
}
type ResponseDivisionEmployee struct {
ecore.Main // adjust this according to the needs
User_Id *uint `json:"user_id"`
User *eu.User `json:"user,omitempty"`
Person_Id *uint `json:"person_id"`
Person *ep.Person `json:"person,omitempty"`
Position_Code *erg.EmployeePositionCode `json:"position_code"`
Number *string `json:"number"`
Status_Code erc.ActiveStatusCode `json:"status_code"`
}
func (d Division) ToResponse(divPos []ResponseDivisionPosition) ResponseDto {
resp := ResponseDto{ resp := ResponseDto{
Code: d.Code, Code: d.Code,
Name: d.Name, Name: d.Name,
Parent_Id: d.Parent_Id, Parent_Id: d.Parent_Id,
Parent: d.Parent, Parent: d.Parent,
Childrens: d.Childrens, Childrens: d.Childrens,
DivisionPosition: d.DivisionPositions,
} }
resp.SmallMain = d.SmallMain resp.SmallMain = d.SmallMain
if divPos != nil {
resp.DivisionPosition = divPos
}
return resp return resp
} }
func ToResponseList(data []Division) []ResponseDto { func ToResponseList(data []Division) []ResponseDto {
resp := make([]ResponseDto, len(data)) resp := make([]ResponseDto, len(data))
for i, u := range data { for i, u := range data {
resp[i] = u.ToResponse(nil) resp[i] = u.ToResponse()
} }
return resp return resp
} }
+19 -25
View File
@@ -5,18 +5,16 @@ import (
ed "simrs-vx/internal/domain/main-entities/division" ed "simrs-vx/internal/domain/main-entities/division"
ep "simrs-vx/internal/domain/main-entities/person" ep "simrs-vx/internal/domain/main-entities/person"
eu "simrs-vx/internal/domain/main-entities/user" eu "simrs-vx/internal/domain/main-entities/user"
erg "simrs-vx/internal/domain/references/organization"
erc "simrs-vx/internal/domain/references/common" erc "simrs-vx/internal/domain/references/common"
) )
type CreateDto struct { type CreateDto struct {
User_Id *uint `json:"user_id"` User_Id *uint `json:"user_id"`
Person_Id *uint `json:"person_id"` Person_Id *uint `json:"person_id"`
Division_Code *string `json:"division_code"` Division_Code *string `json:"division_code"`
Number *string `json:"number" validate:"maxLength=20"` Number *string `json:"number" validate:"maxLength=20"`
Status_Code erc.ActiveStatusCode `json:"status_code" validate:"maxLength=10"` Status_Code erc.ActiveStatusCode `json:"status_code" validate:"maxLength=10"`
Position_Code *erg.EmployeePositionCode `json:"position_code"`
} }
type ReadListDto struct { type ReadListDto struct {
@@ -58,28 +56,24 @@ type MetaDto struct {
type ResponseDto struct { type ResponseDto struct {
ecore.Main ecore.Main
User_Id *uint `json:"user_id"` User_Id *uint `json:"user_id"`
User *eu.User `json:"user,omitempty"` User *eu.User `json:"user,omitempty"`
Person_Id *uint `json:"person_id"` Person_Id *uint `json:"person_id"`
Person *ep.Person `json:"person,omitempty"` Person *ep.Person `json:"person,omitempty"`
Division_Code *string `json:"division_code"` Division_Code *string `json:"division_code"`
Division *ed.Division `json:"division,omitempty"` Division *ed.Division `json:"division,omitempty"`
Position_Code *erg.EmployeePositionCode `json:"position_code"` Number *string `json:"number"`
Number *string `json:"number"` Status_Code erc.ActiveStatusCode `json:"status_code"`
Status_Code erc.ActiveStatusCode `json:"status_code"`
} }
func (d Employee) ToResponse() ResponseDto { func (d Employee) ToResponse() ResponseDto {
resp := ResponseDto{ resp := ResponseDto{
User_Id: d.User_Id, User_Id: d.User_Id,
User: d.User, User: d.User,
Person_Id: d.Person_Id, Person_Id: d.Person_Id,
Person: d.Person, Person: d.Person,
Division_Code: d.Division_Code, Number: d.Number,
Division: d.Division, Status_Code: d.Status_Code,
Number: d.Number,
Status_Code: d.Status_Code,
Position_Code: d.Position_Code,
} }
resp.Main = d.Main resp.Main = d.Main
return resp return resp
@@ -2,7 +2,6 @@ package employee
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/division"
ep "simrs-vx/internal/domain/main-entities/person" ep "simrs-vx/internal/domain/main-entities/person"
eu "simrs-vx/internal/domain/main-entities/user" eu "simrs-vx/internal/domain/main-entities/user"
erc "simrs-vx/internal/domain/references/common" erc "simrs-vx/internal/domain/references/common"
@@ -16,8 +15,6 @@ type Employee struct {
Person_Id *uint `json:"person_id"` Person_Id *uint `json:"person_id"`
Person *ep.Person `json:"person,omitempty" gorm:"foreignKey:Person_Id;references:Id"` Person *ep.Person `json:"person,omitempty" gorm:"foreignKey:Person_Id;references:Id"`
Position_Code *erg.EmployeePositionCode `json:"position_code" gorm:"size:20"` Position_Code *erg.EmployeePositionCode `json:"position_code" gorm:"size:20"`
Division_Code *string `json:"division_code"`
Division *ed.Division `json:"division,omitempty" gorm:"foreignKey:Division_Code;references:Code"`
Number *string `json:"number" gorm:"size:20"` Number *string `json:"number" gorm:"size:20"`
Status_Code erc.ActiveStatusCode `json:"status_code" gorm:"not null;size:10"` Status_Code erc.ActiveStatusCode `json:"status_code" gorm:"not null;size:10"`
} }
@@ -124,7 +124,6 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
func ReadDetail(input e.ReadDetailDto) (*d.Data, error) { func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
var data *e.Division var data *e.Division
var err error var err error
var dataDP []e.ResponseDivisionPosition
event := pl.Event{ event := pl.Event{
Feature: "ReadDetail", Feature: "ReadDetail",