108 lines
5.7 KiB
Java
108 lines
5.7 KiB
Java
package com.utopiaindustries.controller;
|
|
|
|
import com.utopiaindustries.auth.FinishingRole;
|
|
import com.utopiaindustries.dao.ctp.FinishedItemDAO;
|
|
import com.utopiaindustries.model.ctp.FinishedItem;
|
|
import com.utopiaindustries.model.ctp.FinishedItemWrapper;
|
|
import com.utopiaindustries.service.BundleService;
|
|
import com.utopiaindustries.service.InventoryAccountService;
|
|
import com.utopiaindustries.service.InventoryService;
|
|
import com.utopiaindustries.service.LocationService;
|
|
import com.utopiaindustries.util.StringUtils;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.List;
|
|
|
|
@Controller
|
|
@FinishingRole
|
|
@RequestMapping( "/finishing" )
|
|
public class FinishingController {
|
|
|
|
private final FinishedItemDAO finishedItemDAO;
|
|
private final BundleService bundleService;
|
|
private final InventoryAccountService inventoryAccountService;
|
|
private final LocationService locationService;
|
|
private final InventoryService inventoryService;
|
|
|
|
public FinishingController(FinishedItemDAO finishedItemDAO, BundleService bundleService, InventoryAccountService inventoryAccountService, LocationService locationService, InventoryService inventoryService) {
|
|
this.finishedItemDAO = finishedItemDAO;
|
|
this.bundleService = bundleService;
|
|
this.inventoryAccountService = inventoryAccountService;
|
|
this.locationService = locationService;
|
|
this.inventoryService = inventoryService;
|
|
}
|
|
|
|
@GetMapping
|
|
public String showHome(Model model ){
|
|
return "redirect:/finishing/finished-items";
|
|
}
|
|
|
|
@GetMapping( "/finished-items" )
|
|
public String showFinishedItems( @RequestParam(value = "id", required = false ) String id,
|
|
@RequestParam(value = "item-id", required = false ) String itemId,
|
|
@RequestParam( value = "sku", required = false ) String sku,
|
|
@RequestParam( value = "start-date", required = false) String startDate,
|
|
@RequestParam( value = "end-date", required = false ) String endDate,
|
|
@RequestParam( value = "job-card-id", required = false ) String jobCardId,
|
|
@RequestParam( value = "count", required = false ) Long count,
|
|
Model model ){
|
|
LocalDate startDate1 = StringUtils.isNullOrEmpty(startDate) ? LocalDate.now().minusDays(30) : LocalDate.parse(startDate);
|
|
LocalDate endDate1 = StringUtils.isNullOrEmpty(endDate) ? LocalDate.now() : LocalDate.parse(endDate);
|
|
List<FinishedItem> itemList = bundleService.getFinishedItem( id, itemId, sku, startDate1.toString(), endDate1.toString(), jobCardId ,count );
|
|
model.addAttribute("items", itemList ) ;
|
|
if(StringUtils.isNullOrEmpty( startDate) || StringUtils.isNullOrEmpty( endDate )){
|
|
return "redirect:/finishing/finished-items?id=&item-id=&sku=&job-card-id=&start-date="+startDate1+"&end-date="+endDate1+"&count=100";
|
|
}
|
|
return "finishing/finished-item-list";
|
|
}
|
|
|
|
|
|
/*
|
|
* get finishing inventory accounts
|
|
* */
|
|
@GetMapping( "/inventory-accounts" )
|
|
public String getInventoryAccounts( @RequestParam( value = "id", required = false ) String id,
|
|
@RequestParam( value = "title", required = false) String title,
|
|
@RequestParam( value = "active", required = false ) String active,
|
|
@RequestParam( value = "created-by", required = false ) String createdBy,
|
|
@RequestParam( value = "start-date", required = false ) String startDate,
|
|
@RequestParam( value = "end-date", required = false ) String endDate,
|
|
@RequestParam( value = "site-id", required = false ) String siteId,
|
|
@RequestParam( value = "count", required = false ) Long count,
|
|
Model model ) {
|
|
// 5 for Finishing
|
|
model.addAttribute("accounts", inventoryAccountService.getInventoryAccounts( id, title, active, createdBy, startDate, endDate, siteId, count, "PROCESS", "5" , false ));
|
|
model.addAttribute("locations", locationService.findAll() );
|
|
if(count == null){
|
|
return "redirect:/finishing/inventory-accounts?id=&title=&active=&created-by=&start-date=&end-date=&site-id=&site-title=&count=100";
|
|
}
|
|
return "/finishing/inventory-accounts";
|
|
}
|
|
|
|
@GetMapping( "segregate-inventory" )
|
|
public String segregateFinishedItems( Model model ){
|
|
model.addAttribute("accounts", inventoryAccountService.findInventoryAccountsForFinishedItems() );
|
|
model.addAttribute("wrapper", new FinishedItemWrapper() );
|
|
return "/finishing/segregate-inventory";
|
|
}
|
|
|
|
|
|
@PostMapping( "segregate-inventory" )
|
|
public String segregateFinishItemsInventory( @ModelAttribute FinishedItemWrapper wrapper,
|
|
RedirectAttributes redirectAttributes,
|
|
Model model ){
|
|
try {
|
|
inventoryService.segregateFinishedItems( wrapper );
|
|
redirectAttributes.addFlashAttribute("success", "Items Successfully saved !" );
|
|
} catch ( Exception e ){
|
|
redirectAttributes.addFlashAttribute("error", e.getMessage() );
|
|
}
|
|
return "redirect:/finishing/finished-items";
|
|
}
|
|
|
|
}
|