SalesOrderDTO.java 3.91 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
package com.eksad.masterdata.common.dto;

import com.eksad.ddms.common.dto.CreationalSpecificationDTO;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderSourceType;
import com.eksad.masterdata.common.listEnum.SalesOrderState;
import com.eksad.masterdata.common.listEnum.SalesOrderStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SalesOrderDTO {

    private String salesOrderID;
    private String poCustomerID;
    private String ahassCode;
    private String noNotaPenjualan;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "Asia/Jakarta")
    private Date salesOrderDate;
    private Double dp;
    private Double total;
    private SalesOrderType salesOrderType;
    private SalesOrderStatus salesOrderLastKnownStatus;
    private SalesOrderState salesOrderLastKnownState;
    private DataStatus salesOrderStatus;
    private CreationalSpecificationDTO salesOrderCreational;
    private List<SalesOrderDetailDTO> salesOrderDetailDTOs;
    private SalesOrderSourceType orderSource;
    private String workOrderID;
    private Boolean salesPackage;
    private Long version;
    private Integer countPrint;
    private String appsOrderNumber;
    private String posServiceID;
    private Date bastDate;
    private String bastNo;

    public SalesOrderDTO(String salesOrderID, String poCustomerID, String ahassCode, String noNotaPenjualan, Date salesOrderDate, Double dp, Double total, SalesOrderType salesOrderType, SalesOrderStatus salesOrderLastKnownStatus, SalesOrderState salesOrderLastKnownState, DataStatus salesOrderStatus, CreationalSpecificationDTO salesOrderCreational, List<SalesOrderDetailDTO> salesOrderDetailDTOs, SalesOrderSourceType orderSource, String workOrderID, Boolean salesPackage, Long version, Integer countPrint, String appsOrderNumber) {
        this.salesOrderID = salesOrderID;
        this.poCustomerID = poCustomerID;
        this.ahassCode = ahassCode;
        this.noNotaPenjualan = noNotaPenjualan;
        this.salesOrderDate = salesOrderDate;
        this.dp = dp;
        this.total = total;
        this.salesOrderType = salesOrderType;
        this.salesOrderLastKnownStatus = salesOrderLastKnownStatus;
        this.salesOrderLastKnownState = salesOrderLastKnownState;
        this.salesOrderStatus = salesOrderStatus;
        this.salesOrderCreational = salesOrderCreational;
        this.salesOrderDetailDTOs = salesOrderDetailDTOs;
        this.orderSource = orderSource;
        this.workOrderID = workOrderID;
        this.salesPackage = salesPackage;
        this.version = version;
        this.countPrint = countPrint;
        this.appsOrderNumber = appsOrderNumber;
    }


    @JsonIgnore
    public SalesOrderDTO getInstance() {
        return new SalesOrderDTO(
                UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
                "dummy poCustomerID",
                "dummy ahasscode",
                "dummy noNotaPenjualan",
                new Date(),
                0.0,
                0.0,
                SalesOrderType.REGULAR,
                SalesOrderStatus.DRAFT,
                SalesOrderState.INITIAL_ORDER,
                DataStatus.ACTIVE,
                new CreationalSpecificationDTO().getInstance(),
                new ArrayList<>(Arrays.asList(new SalesOrderDetailDTO().getInstance())),
                SalesOrderSourceType.SO,
                UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
                Boolean.FALSE, 0L, 0,
                "dummy AppsOrderNumber",
                "dummy Pos",
                new Date(),
                ""
        );
    }
}