75 lines
3.6 KiB
Java
75 lines
3.6 KiB
Java
package com.utopiaindustries.controller;
|
|
|
|
import com.utopiaindustries.auth.PackagingRole;
|
|
import com.utopiaindustries.model.ctp.FinishedItemWrapper;
|
|
import com.utopiaindustries.service.InventoryAccountService;
|
|
import com.utopiaindustries.service.LocationService;
|
|
import com.utopiaindustries.service.PackagingService;
|
|
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;
|
|
|
|
@Controller
|
|
@PackagingRole
|
|
@RequestMapping("/packaging" )
|
|
public class PackagingController {
|
|
|
|
private final InventoryAccountService inventoryAccountService;
|
|
private final PackagingService packagingService;
|
|
private final LocationService locationService;
|
|
|
|
public PackagingController(InventoryAccountService inventoryAccountService, PackagingService packagingService, LocationService locationService) {
|
|
this.inventoryAccountService = inventoryAccountService;
|
|
this.packagingService = packagingService;
|
|
this.locationService = locationService;
|
|
}
|
|
|
|
@GetMapping
|
|
public String showHome(Model model ){
|
|
return "redirect:/packaging/receive-inventory";
|
|
}
|
|
|
|
@GetMapping("/receive-inventory")
|
|
public String packagingItemReceive( Model model ){
|
|
model.addAttribute("accounts", inventoryAccountService.findInventoryAccounts(6L));
|
|
model.addAttribute("wrapper", new FinishedItemWrapper() );
|
|
return "/packaging/receive-inventory-form";
|
|
}
|
|
|
|
|
|
@PostMapping( "/packaging-items" )
|
|
public String packagingItems( @ModelAttribute FinishedItemWrapper wrapper,
|
|
RedirectAttributes redirectAttributes,
|
|
Model model ){
|
|
try {
|
|
packagingService.createPackagingItem( wrapper );
|
|
redirectAttributes.addFlashAttribute("success", "Items Successfully received !" );
|
|
} catch ( Exception e ){
|
|
redirectAttributes.addFlashAttribute("error", e.getMessage() );
|
|
}
|
|
return "redirect:/packaging/receive-inventory";
|
|
}
|
|
|
|
@GetMapping( "/inventory-accounts" )
|
|
public String showInventoryAccounts(@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 ){
|
|
if(StringUtils.isNullOrEmpty( active )){
|
|
return "redirect:/packaging/inventory-accounts?id=&title=&active=1&created-by=&start-date=&end-date=&site-id=&site-title=&count=100";
|
|
}
|
|
model.addAttribute("accounts", inventoryAccountService.getInventoryAccounts( id, title, active, createdBy, startDate, endDate, siteId, count , null, null,true ) );
|
|
model.addAttribute("locations", locationService.findAll() );
|
|
return "/packaging/inventory-accounts";
|
|
}
|
|
}
|