SalesOrderAssembler.java 4.31 KB
Newer Older
akbar fauzi's avatar
akbar fauzi committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
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;
    }
}