feat: add GetLinesByMovementId method to InventoryMovementController and service for retrieving movement lines
This commit is contained in:
parent
0eed8f6a7b
commit
cf380fc711
|
|
@ -17,6 +17,7 @@ type InventoryMovementController interface {
|
|||
Delete(ctx *gin.Context)
|
||||
GetById(ctx *gin.Context)
|
||||
GetAll(ctx *gin.Context)
|
||||
GetLinesByMovementId(ctx *gin.Context)
|
||||
CreateLine(ctx *gin.Context)
|
||||
UpdateLine(ctx *gin.Context)
|
||||
DeleteLine(ctx *gin.Context)
|
||||
|
|
@ -26,6 +27,18 @@ type inventoryMovementController struct {
|
|||
movementService service.InventoryMovementService
|
||||
}
|
||||
|
||||
func (c *inventoryMovementController) GetLinesByMovementId(ctx *gin.Context) {
|
||||
id := ctx.Param("id")
|
||||
result, err := c.movementService.GetLinesByMovementId(ctx, id)
|
||||
if err != nil {
|
||||
res := utils.BuildResponseFailed(dto.MESSAGE_FAILED_GET_INVENTORY_MOVEMENT_LINE, err.Error(), nil)
|
||||
ctx.JSON(http.StatusInternalServerError, res)
|
||||
return
|
||||
}
|
||||
res := utils.BuildResponseSuccess(dto.MESSAGE_SUCCESS_GET_INVENTORY_MOVEMENT_LINE, result)
|
||||
ctx.JSON(http.StatusOK, res)
|
||||
}
|
||||
|
||||
func (c *inventoryMovementController) Create(ctx *gin.Context) {
|
||||
var req dto.InventoryMovementCreateRequest
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ const (
|
|||
MESSAGE_SUCCESS_DELETE_INVENTORY_MOVEMENT = "success delete inventory movement"
|
||||
MESSAGE_SUCCESS_DELETE_INVENTORY_MOVEMENT_LINE = "success delete inventory movement line"
|
||||
MESSAGE_FAILED_GET_DATA_FROM_BODY = "failed get data from body"
|
||||
MESSAGE_FAILED_GET_INVENTORY_MOVEMENT_LINE = "failed get inventory movement line"
|
||||
MESSAGE_SUCCESS_GET_INVENTORY_MOVEMENT_LINE = "success get inventory movement line"
|
||||
)
|
||||
|
||||
type InventoryMovementCreateRequest struct {
|
||||
|
|
|
|||
|
|
@ -52,7 +52,9 @@ func (r *inventoryMovementRepository) GetAll(ctx context.Context, filter query.I
|
|||
db = query.ApplyInventoryMovementFilters(db, filter)
|
||||
var movements []entities.TInventoryMovementEntity
|
||||
var total int64
|
||||
if err := db.Find(&movements).Count(&total).Error; err != nil {
|
||||
if err := db.
|
||||
Preload("Client").
|
||||
Find(&movements).Count(&total).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
return movements, total, nil
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ func RegisterRoutes(server *gin.Engine, injector *do.Injector) {
|
|||
movementRoutes.PUT(":id", middlewares.Authenticate(jwtService), movementController.Update)
|
||||
movementRoutes.DELETE(":id", middlewares.Authenticate(jwtService), movementController.Delete)
|
||||
movementRoutes.GET("", middlewares.Authenticate(jwtService), movementController.GetAll)
|
||||
movementRoutes.GET(":id/lines", middlewares.Authenticate(jwtService), movementController.GetLinesByMovementId)
|
||||
movementRoutes.POST(":id/lines", middlewares.Authenticate(jwtService), movementController.CreateLine)
|
||||
movementRoutes.PUT("lines/:id", middlewares.Authenticate(jwtService), movementController.UpdateLine)
|
||||
movementRoutes.DELETE("lines/:id", middlewares.Authenticate(jwtService), movementController.DeleteLine)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ type InventoryMovementService interface {
|
|||
GetAll(ctx context.Context, filter query.InventoryMovementFilter) ([]dtodomain.InventoryMovementResponse, int64, error)
|
||||
Update(ctx context.Context, req dtodomain.InventoryMovementUpdateRequest, id string) (dtodomain.InventoryMovementResponse, error)
|
||||
Delete(ctx context.Context, id string) error
|
||||
GetLinesByMovementId(ctx context.Context, movementId string) ([]dtodomain.InventoryMovementLineResponse, error)
|
||||
CreateLine(ctx context.Context, movementId string, req dtodomain.InventoryMovementLineCreateRequest) (dtodomain.InventoryMovementLineResponse, error)
|
||||
UpdateLine(ctx context.Context, lineId string, req dtodomain.InventoryMovementLineUpdateRequest) (dtodomain.InventoryMovementLineResponse, error)
|
||||
DeleteLine(ctx context.Context, lineId string) error
|
||||
|
|
@ -29,6 +30,22 @@ type inventoryMovementService struct {
|
|||
movementLineRepo repository.InventoryMovementLineRepository
|
||||
}
|
||||
|
||||
// GetLinesByMovementId implements InventoryMovementService.
|
||||
func (s *inventoryMovementService) GetLinesByMovementId(ctx context.Context, movementId string) ([]dtodomain.InventoryMovementLineResponse, error) {
|
||||
lines, err := s.movementLineRepo.GetAllByMovementId(ctx, movementId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var responses []dtodomain.InventoryMovementLineResponse
|
||||
for _, e := range lines {
|
||||
responses = append(responses, dtodomain.ToInventoryMovementLineResponse(e))
|
||||
}
|
||||
if responses == nil {
|
||||
responses = make([]dtodomain.InventoryMovementLineResponse, 0)
|
||||
}
|
||||
return responses, nil
|
||||
}
|
||||
|
||||
func (s *inventoryMovementService) Create(ctx context.Context, req dtodomain.InventoryMovementCreateRequest) (dtodomain.InventoryMovementResponse, error) {
|
||||
tx := s.db.Begin()
|
||||
defer func() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue