mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
add approval projectflockkandang closed,expense must be done,stock must empty by flag unfinished:need info approval fix
This commit is contained in:
@@ -42,7 +42,7 @@ func (ChickinModule) RegisterRoutes(router fiber.Router, db *gorm.DB, validate *
|
|||||||
approvalRepo := commonRepo.NewApprovalRepository(db)
|
approvalRepo := commonRepo.NewApprovalRepository(db)
|
||||||
approvalService := commonSvc.NewApprovalService(approvalRepo)
|
approvalService := commonSvc.NewApprovalService(approvalRepo)
|
||||||
if err := approvalService.RegisterWorkflowSteps(utils.ApprovalWorkflowProjectFlockKandang, utils.ProjectFlockKandangApprovalSteps); err != nil {
|
if err := approvalService.RegisterWorkflowSteps(utils.ApprovalWorkflowProjectFlockKandang, utils.ProjectFlockKandangApprovalSteps); err != nil {
|
||||||
panic(fmt.Sprintf("failed to register project flock kandang approval workflow: %v", err))
|
panic(fmt.Sprintf("failed to register chickin approval workflow: %v", err))
|
||||||
}
|
}
|
||||||
|
|
||||||
chickinService := sChickin.NewChickinService(chickinRepo, kandangRepo, warehouseRepo, productWarehouseRepo, projectFlockRepo, projectflockkandangrepo, projectflockpopulationrepo, chickinDetailRepo, validate)
|
chickinService := sChickin.NewChickinService(chickinRepo, kandangRepo, warehouseRepo, productWarehouseRepo, projectFlockRepo, projectflockkandangrepo, projectflockpopulationrepo, chickinDetailRepo, validate)
|
||||||
|
|||||||
+1
-1
@@ -106,7 +106,7 @@ func (u *ProjectFlockKandangController) Closing(c *fiber.Ctx) error {
|
|||||||
Code: fiber.StatusOK,
|
Code: fiber.StatusOK,
|
||||||
Status: "success",
|
Status: "success",
|
||||||
Message: "Status closing kandang diperbarui",
|
Message: "Status closing kandang diperbarui",
|
||||||
// Data: dto.ToProjectFlockKandangDetailDTO(*result),
|
// Data: dto.ProjectFlockKandangDetailDTO(*result),
|
||||||
Data: result,
|
Data: result,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ func (ProjectFlockKandangModule) RegisterRoutes(router fiber.Router, db *gorm.DB
|
|||||||
|
|
||||||
approvalRepo := commonRepo.NewApprovalRepository(db)
|
approvalRepo := commonRepo.NewApprovalRepository(db)
|
||||||
approvalService := commonSvc.NewApprovalService(approvalRepo)
|
approvalService := commonSvc.NewApprovalService(approvalRepo)
|
||||||
// register workflow steps for project flock kandang approvals
|
// register workflow steps for chickin approvals
|
||||||
if err := approvalService.RegisterWorkflowSteps(utils.ApprovalWorkflowProjectFlockKandang, utils.ProjectFlockKandangApprovalSteps); err != nil {
|
if err := approvalService.RegisterWorkflowSteps(utils.ApprovalWorkflowProjectFlockKandang, utils.ProjectFlockKandangApprovalSteps); err != nil {
|
||||||
panic(fmt.Sprintf("failed to register project flock kandang approval workflow: %v", err))
|
panic(fmt.Sprintf("failed to register chickin approval workflow: %v", err))
|
||||||
}
|
}
|
||||||
|
|
||||||
expenseRepo := rExpense.NewExpenseRepository(db)
|
expenseRepo := rExpense.NewExpenseRepository(db)
|
||||||
|
|||||||
+23
-1
@@ -2,6 +2,7 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -219,6 +220,27 @@ func (s projectFlockKandangService) Closing(c *fiber.Ctx, id uint, req *validati
|
|||||||
return nil, fiber.NewError(fiber.StatusBadRequest, "Masih ada expense belum selesai untuk kandang ini")
|
return nil, fiber.NewError(fiber.StatusBadRequest, "Masih ada expense belum selesai untuk kandang ini")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.WarehouseRepo != nil && s.ProductWarehouseRepo != nil {
|
||||||
|
warehouse, werr := s.WarehouseRepo.GetByKandangID(c.Context(), pfk.KandangId)
|
||||||
|
if werr != nil {
|
||||||
|
return nil, werr
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, flagName := range []utils.FlagType{utils.FlagPakan, utils.FlagOVK} {
|
||||||
|
productWarehouses, pwErr := s.ProductWarehouseRepo.GetByFlagAndWarehouseID(c.Context(), string(flagName), warehouse.Id)
|
||||||
|
if pwErr != nil {
|
||||||
|
return nil, pwErr
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, pw := range productWarehouses {
|
||||||
|
if pw.Quantity > 0 {
|
||||||
|
return nil, fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Stok %s masih tersedia (product warehouse %d: %.2f)", flagName, pw.Id, pw.Quantity))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
closeTime := now
|
closeTime := now
|
||||||
if req.ClosedDate != nil {
|
if req.ClosedDate != nil {
|
||||||
parsed, perr := utils.ParseDateString(strings.TrimSpace(*req.ClosedDate))
|
parsed, perr := utils.ParseDateString(strings.TrimSpace(*req.ClosedDate))
|
||||||
@@ -236,7 +258,7 @@ func (s projectFlockKandangService) Closing(c *fiber.Ctx, id uint, req *validati
|
|||||||
c.Context(),
|
c.Context(),
|
||||||
utils.ApprovalWorkflowProjectFlockKandang,
|
utils.ApprovalWorkflowProjectFlockKandang,
|
||||||
id,
|
id,
|
||||||
utils.ProjectFlockKandangStepDisetujui,
|
utils.ProjectFlockKandangStepClosed,
|
||||||
&closeAction,
|
&closeAction,
|
||||||
actorID,
|
actorID,
|
||||||
nil,
|
nil,
|
||||||
|
|||||||
+2
-1
@@ -297,7 +297,8 @@ func (r *projectFlockKandangRepositoryImpl) HasKandangsLinkedToOtherProject(ctx
|
|||||||
}
|
}
|
||||||
q := r.db.WithContext(ctx).
|
q := r.db.WithContext(ctx).
|
||||||
Table("project_flock_kandangs").
|
Table("project_flock_kandangs").
|
||||||
Where("kandang_id IN ?", kandangIDs)
|
Where("kandang_id IN ?", kandangIDs).
|
||||||
|
Where("closed_at IS NULL")
|
||||||
if exceptProjectID != nil {
|
if exceptProjectID != nil {
|
||||||
q = q.Where("project_flock_id <> ?", *exceptProjectID)
|
q = q.Where("project_flock_id <> ?", *exceptProjectID)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,17 +163,33 @@ var ProjectFlockApprovalSteps = map[approvalutils.ApprovalStep]string{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
// Project Flock Kandang Approval
|
// Chickin Approval
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
const (
|
const (
|
||||||
ApprovalWorkflowProjectFlockKandang approvalutils.ApprovalWorkflowKey = approvalutils.ApprovalWorkflowKey("PROJECT_FLOCK_KANDANGS")
|
ApprovalWorkflowChickin approvalutils.ApprovalWorkflowKey = approvalutils.ApprovalWorkflowKey("CHICKINS")
|
||||||
|
ChickinStepPengajuan approvalutils.ApprovalStep = 1
|
||||||
|
ChickinStepDisetujui approvalutils.ApprovalStep = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
var ChickinApprovalSteps = map[approvalutils.ApprovalStep]string{
|
||||||
|
ChickinStepPengajuan: "Pengajuan",
|
||||||
|
ChickinStepDisetujui: "Disetujui",
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
// Project-Flock kandang Approval
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
const (
|
||||||
|
ApprovalWorkflowProjectFlockKandang approvalutils.ApprovalWorkflowKey = approvalutils.ApprovalWorkflowKey("CHICKINS")
|
||||||
ProjectFlockKandangStepPengajuan approvalutils.ApprovalStep = 1
|
ProjectFlockKandangStepPengajuan approvalutils.ApprovalStep = 1
|
||||||
ProjectFlockKandangStepDisetujui approvalutils.ApprovalStep = 2
|
ProjectFlockKandangStepDisetujui approvalutils.ApprovalStep = 2
|
||||||
|
ProjectFlockKandangStepClosed approvalutils.ApprovalStep = 3
|
||||||
)
|
)
|
||||||
|
|
||||||
var ProjectFlockKandangApprovalSteps = map[approvalutils.ApprovalStep]string{
|
var ProjectFlockKandangApprovalSteps = map[approvalutils.ApprovalStep]string{
|
||||||
ProjectFlockKandangStepPengajuan: "Pengajuan",
|
ProjectFlockKandangStepPengajuan: "Pengajuan",
|
||||||
ProjectFlockKandangStepDisetujui: "Disetujui",
|
ProjectFlockKandangStepDisetujui: "Disetujui",
|
||||||
|
ProjectFlockKandangStepClosed: "Closed",
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user