PODealerAssembler.java 6.03 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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
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.PODealerDTO;
import com.eksad.masterdata.common.dto.PODealerDetailDTO;
import com.eksad.masterdata.domain.PODealer;
import com.eksad.masterdata.domain.PODealerDetail;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class PODealerAssembler implements IObjectAssembler<PODealer, PODealerDTO> {
    @Override
    public PODealerDTO toDTO(PODealer domainObject) {
        PODealerDTO dto = new PODealerDTO();
        dto.setPoNumber(domainObject.getPoNumber());
        dto.setPoDate(domainObject.getPoDate());
        dto.setCustomerID(domainObject.getCustomerID());
        dto.setDealerID(domainObject.getDealerID());
        dto.setPoType(domainObject.getPoType());
        dto.setTotalPart(domainObject.getTotalPart());
        dto.setTotalQuantity(domainObject.getTotalQuantity());
        dto.setPpn(domainObject.getPpn());
        dto.setFinalPrice(domainObject.getFinalPrice());
        dto.setPoDealerLastKnowState(domainObject.getPoDealerLastKnownState());
        dto.setRefNumber(domainObject.getRefNumber());
        dto.setDealerDestination(domainObject.getDealerDestination());
        dto.setPoDealerCreationalDTO(
                domainObject.getPoDealerCreational() == null
                        ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getPoDealerCreational()));
        dto.setPoDealerDetailDTOs(new ArrayList(domainObject.getPoDealerDetails()));
        dto.setDraftNumber(domainObject.getDraftNumber());
        dto.setUploadPO(domainObject.getUploadPO());
        dto.setVersion(domainObject.getVersion());
        dto.setPosServiceID(domainObject.getPosServiceID());
        return dto;
    }

    @Override
    public PODealer toDomain(PODealerDTO dtoObject) {
        PODealer data = new PODealer();
        data.setPoNumber(dtoObject.getPoNumber());
        data.setPoDate(dtoObject.getPoDate());
        data.setCustomerID(dtoObject.getCustomerID());
        data.setDealerID(dtoObject.getDealerID());
        data.setPoType(dtoObject.getPoType());
        data.setTotalPart(dtoObject.getTotalPart());
        data.setTotalQuantity(dtoObject.getTotalQuantity());
        data.setTotalPrice(dtoObject.getTotalPrice());
        data.setPpn(dtoObject.getPpn());
        data.setFinalPrice(dtoObject.getFinalPrice());
        data.setPoDealerLastKnownState(dtoObject.getPoDealerLastKnowState());
        data.setPoDealerCreational(
                dtoObject.getPoDealerCreationalDTO() == null
                        ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getPoDealerCreationalDTO()));
        data.setPoDealerDetails(new HashSet<>(this.toDetailDomains(dtoObject.getPoDealerDetailDTOs())));
        data.setRefNumber(dtoObject.getRefNumber());
        data.setDealerDestination(dtoObject.getDealerDestination());
        data.setDraftNumber(dtoObject.getDraftNumber());
        data.setUploadPO(dtoObject.getUploadPO());
        data.setVersion(dtoObject.getVersion());
        data.setPosServiceID(dtoObject.getPosServiceID());
        return data;
    }

    private PODealerDetailDTO toDTO(PODealerDetail domain) {
        PODealerDetailDTO dto = new PODealerDetailDTO();
        dto.setPartID(domain.getPartID());
        dto.setPoCustomerID(domain.getPoCustomerID());
        dto.setQuantity(domain.getQuantity());
        dto.setPrice(domain.getPrice());
        dto.setDiscount(domain.getDiscount());
        dto.setPoDealerDetailStatus(domain.getPoDealerDetailStatus());
        dto.setPoDealerDetailCreationalDTO(
                domain.getPoDealerDetailCreational() == null
                        ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domain.getPoDealerDetailCreational()));
        dto.setSalesPackageMDID(domain.getSalesPackageMDID());
        return dto;
    }

    private PODealerDetail toDomain(PODealerDetailDTO dto) {
        PODealerDetail domain = new PODealerDetail();
        domain.setPartID(dto.getPartID());
        domain.setPoCustomerID(dto.getPoCustomerID());
        domain.setQuantity(dto.getQuantity());
        domain.setPrice(dto.getPrice());
        domain.setDiscount(dto.getDiscount());
        domain.setPoDealerDetailStatus(dto.getPoDealerDetailStatus());
        domain.setPoDealerDetailCreational(
                dto.getPoDealerDetailCreationalDTO() == null
                        ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dto.getPoDealerDetailCreationalDTO()));
        domain.setSalesPackageMDID(dto.getSalesPackageMDID());
        return domain;
    }

    public List<PODealerDTO> toDTOs(Set<PODealer> arg0) {
        List<PODealerDTO> res = new ArrayList<>();
        arg0.stream().forEach((o) -> {
            res.add(toDTO(o));
        });
        return res;
    }

    public List<PODealerDTO> toDTOs(List<PODealer> arg0) {
        List<PODealerDTO> res = new ArrayList<>();
        arg0.stream().forEach((o) -> {
            res.add(toDTO(o));
        });
        return res;
    }

    public List<PODealerDetailDTO> toDetailDTOs(List<PODealerDetail> arg0) {
        List<PODealerDetailDTO> res = new ArrayList<>();
        arg0.stream().forEach((o) -> {
            res.add(toDTO(o));
        });
        return res;
    }

    public Set<PODealer> toDomains(List<PODealerDTO> arg0) {
        Set<PODealer> res = new HashSet<>();
        arg0.stream().forEach((o) -> {
            res.add(toDomain(o));
        });
        return res;
    }

    public Set<PODealerDetail> toDetailDomains(List<PODealerDetailDTO> arg0) {
        Set<PODealerDetail> res = new HashSet<>();
        arg0.stream().forEach((o) -> {
            res.add(toDomain(o));
        });
        return res;
    }
}