package com.eksad.masterdata.domain.assembler; import com.eksad.ddms.common.util.object.IObjectAssembler; import com.eksad.masterdata.common.dto.CreationalSpecificationDTO; import com.eksad.masterdata.common.dto.SalesOrderDTO; import com.eksad.masterdata.domain.SalesOrder; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class SalesOrderAssembler implements IObjectAssembler<SalesOrder, SalesOrderDTO> { @Override public SalesOrderDTO toDTO(SalesOrder domainObject) { SalesOrderDTO dto = new SalesOrderDTO(); dto.setSalesOrderCreational(domainObject.getSalesOrderCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getSalesOrderCreational())); dto.setSalesOrderLastKnownState(domainObject.getSalesOrderLastKnownState()); dto.setSalesOrderLastKnownStatus(domainObject.getSalesOrderLastKnownStatus()); dto.setSalesOrderType(domainObject.getSalesOrderType()); dto.setTotal(domainObject.getTotal()); dto.setDp(domainObject.getDp()); dto.setPoCustomerID(domainObject.getPoCustomerID()); dto.setSalesOrderDate(domainObject.getSalesOrderDate()); dto.setSalesOrderDetailDTOs(domainObject.getSalesOrderDetails() == null ? new ArrayList<>() : new SalesOrderDetailAssembler().toDTOs(domainObject.getSalesOrderDetails())); dto.setSalesOrderID(domainObject.getSalesOrderID()); dto.setSalesOrderStatus(domainObject.getSalesOrderStatus()); dto.setNoNotaPenjualan(domainObject.getNoNotaPenjualan()); dto.setAhassCode(domainObject.getAhassCode()); dto.setOrderSource(domainObject.getOrderSource()); dto.setWorkOrderID(domainObject.getWorkOrderID()); dto.setSalesPackage(domainObject.getSalesPackage() == null ? Boolean.FALSE : domainObject.getSalesPackage()); dto.setVersion(domainObject.getVersion()); dto.setCountPrint(domainObject.getCountPrint()); dto.setAppsOrderNumber(domainObject.getAppsOrderNumber()); return dto; } @Override public SalesOrder toDomain(SalesOrderDTO dtoObject) { SalesOrder data = new SalesOrder(); data.setDp(dtoObject.getDp()); data.setPoCustomerID(dtoObject.getPoCustomerID()); data.setSalesOrderCreational(dtoObject.getSalesOrderCreational() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getSalesOrderCreational())); data.setSalesOrderLastKnownState(dtoObject.getSalesOrderLastKnownState()); data.setSalesOrderLastKnownStatus(dtoObject.getSalesOrderLastKnownStatus()); data.setSalesOrderType(dtoObject.getSalesOrderType()); data.setTotal(dtoObject.getTotal()); data.setSalesOrderDate(dtoObject.getSalesOrderDate()); data.setSalesOrderDetails(dtoObject.getSalesOrderDetailDTOs() == null ? new HashSet<>() : new SalesOrderDetailAssembler().toDomains(dtoObject.getSalesOrderDetailDTOs())); data.setSalesOrderID(dtoObject.getSalesOrderID()); data.setSalesOrderStatus(dtoObject.getSalesOrderStatus()); data.setNoNotaPenjualan(dtoObject.getNoNotaPenjualan()); data.setAhassCode(dtoObject.getAhassCode()); data.setOrderSource(dtoObject.getOrderSource()); data.setWorkOrderID(dtoObject.getWorkOrderID()); data.setSalesPackage(dtoObject.getSalesPackage()); data.setVersion(dtoObject.getVersion()); data.setCountPrint(dtoObject.getCountPrint()); data.setAppsOrderNumber(dtoObject.getAppsOrderNumber()); return data; } public List<SalesOrderDTO> toDTOs(Set<SalesOrder> arg0) { List<SalesOrderDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public List<SalesOrderDTO> toDTOs(List<SalesOrder> arg0) { List<SalesOrderDTO> res = new ArrayList<>(); arg0.stream().forEach((o) -> { res.add(toDTO(o)); }); return res; } public Set<SalesOrder> toDomains(List<SalesOrderDTO> arg0) { Set<SalesOrder> res = new HashSet<>(); arg0.stream().forEach((o) -> { res.add(toDomain(o)); }); return res; } }