Commit aa7cf412 authored by akbar fauzi's avatar akbar fauzi

service :

all service dgi
parent 8b838021
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ConfigurationDTO {
private String ahassId;
private String key;
private String value;
private String label;
private String description;
private DataStatus dataStatus;
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class CustomerDTO {
private String customerID;
private String custName;
private String custKTPNumber;
private String custKTPPhotoURL;
private String custNPWPNumber;
private Date dateofBirth;
private String custHPNumber;
private String groupType;
private String dealerID;
private String contactPerson;
private String address;
private String policeNumber;
private DataStatus custStatus;
private CreationalSpecificationDTO custCreationalDTO;
private String customerTypeID;
private String categoryID;
private String provinceID;
private String kabkotID;
private String kecamatanID;
private String kelurahanID;
private String postalCode;
private String noRangka;
private String noMesin;
private String noFax;
private String unitTypeCode;
private String unitTypeName;
private String unitTypeColour;
private String unitTypeColourName;
private Integer tahunPembuatan;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DPHLOPullDetailDTO implements Serializable {
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private Integer totalHargaParts;
private Integer uangMuka;
private Integer sisaBayar;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
private Date createdTime;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DPHLOPullHeaderDTO implements Serializable {
private String noInvoiceUangJaminan;
private String idHLODocument;
private String tanggalPemesananHLO;
private String noWorkOrder;
private String idCustomer;
private String dealerId;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
private Date createdTime;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
private Date modifiedTime;
private List<DPHLOPullDetailDTO> parts;
}
package com.eksad.masterdata.common.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DPHLOPullParamDTO implements Serializable {
private String fromTime;
private String toTime;
private String dealerId;
private String noWorkOrder;
private String idHLODocument;
}
package com.eksad.masterdata.common.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DPHLOTempDTO {
private String idHLODocument;
private String poNumber;
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private Integer totalHargaParts;
private Integer uangMuka;
private Integer sisaBayar;
// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.*;
import java.util.HashMap;
import java.util.Map;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"errorCode",
"message",
"status",
"idDealerSite",
"kodeDealerSite",
"kodeCustMD",
"unitBusiness",
"billToFlag",
"shipToFlag",
"plafond",
"topOli",
"topHGP",
"poSchedule",
"kategoryAHASS",
"salesmanMD",
"alamatSite",
"noTelpSite",
"noFaxSite",
"kodePos",
"latitude",
"longitude",
"idArea",
"tglAwalEfektif",
"tglAkhirEfektif",
"dealerSiteStatus",
"dealerSiteCreationalDTO"
})
public class DealerCodeDTO {
@JsonProperty("errorCode")
private String errorCode;
@JsonProperty("message")
private String message;
@JsonProperty("status")
private String status;
@JsonProperty("idDealerSite")
private String idDealerSite;
@JsonProperty("kodeDealerSite")
private String kodeDealerSite;
@JsonProperty("kodeCustMD")
private String kodeCustMD;
@JsonProperty("unitBusiness")
private String unitBusiness;
@JsonProperty("billToFlag")
private String billToFlag;
@JsonProperty("shipToFlag")
private String shipToFlag;
@JsonProperty("plafond")
private Double plafond;
@JsonProperty("topOli")
private String topOli;
@JsonProperty("topHGP")
private String topHGP;
@JsonProperty("poSchedule")
private Object poSchedule;
@JsonProperty("kategoryAHASS")
private String kategoryAHASS;
@JsonProperty("salesmanMD")
private String salesmanMD;
@JsonProperty("alamatSite")
private Object alamatSite;
@JsonProperty("noTelpSite")
private String noTelpSite;
@JsonProperty("noFaxSite")
private String noFaxSite;
@JsonProperty("kodePos")
private String kodePos;
@JsonProperty("latitude")
private Integer latitude;
@JsonProperty("longitude")
private Integer longitude;
@JsonProperty("idArea")
private String idArea;
@JsonProperty("tglAwalEfektif")
private Object tglAwalEfektif;
@JsonProperty("tglAkhirEfektif")
private Object tglAkhirEfektif;
@JsonProperty("dealerSiteStatus")
private String dealerSiteStatus;
@JsonProperty("dealerSiteCreationalDTO")
private DealerSiteCreationalDTO dealerSiteCreationalDTO;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("errorCode")
public String getErrorCode() {
return errorCode;
}
@JsonProperty("errorCode")
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
@JsonProperty("message")
public String getMessage() {
return message;
}
@JsonProperty("message")
public void setMessage(String message) {
this.message = message;
}
@JsonProperty("status")
public String getStatus() {
return status;
}
@JsonProperty("status")
public void setStatus(String status) {
this.status = status;
}
@JsonProperty("idDealerSite")
public String getIdDealerSite() {
return idDealerSite;
}
@JsonProperty("idDealerSite")
public void setIdDealerSite(String idDealerSite) {
this.idDealerSite = idDealerSite;
}
@JsonProperty("kodeDealerSite")
public String getKodeDealerSite() {
return kodeDealerSite;
}
@JsonProperty("kodeDealerSite")
public void setKodeDealerSite(String kodeDealerSite) {
this.kodeDealerSite = kodeDealerSite;
}
@JsonProperty("kodeCustMD")
public String getKodeCustMD() {
return kodeCustMD;
}
@JsonProperty("kodeCustMD")
public void setKodeCustMD(String kodeCustMD) {
this.kodeCustMD = kodeCustMD;
}
@JsonProperty("unitBusiness")
public String getUnitBusiness() {
return unitBusiness;
}
@JsonProperty("unitBusiness")
public void setUnitBusiness(String unitBusiness) {
this.unitBusiness = unitBusiness;
}
@JsonProperty("billToFlag")
public String getBillToFlag() {
return billToFlag;
}
@JsonProperty("billToFlag")
public void setBillToFlag(String billToFlag) {
this.billToFlag = billToFlag;
}
@JsonProperty("shipToFlag")
public String getShipToFlag() {
return shipToFlag;
}
@JsonProperty("shipToFlag")
public void setShipToFlag(String shipToFlag) {
this.shipToFlag = shipToFlag;
}
public Double getPlafond() {
return plafond;
}
public void setPlafond(Double plafond) {
this.plafond = plafond;
}
@JsonProperty("topOli")
public String getTopOli() {
return topOli;
}
@JsonProperty("topOli")
public void setTopOli(String topOli) {
this.topOli = topOli;
}
@JsonProperty("topHGP")
public String getTopHGP() {
return topHGP;
}
@JsonProperty("topHGP")
public void setTopHGP(String topHGP) {
this.topHGP = topHGP;
}
@JsonProperty("poSchedule")
public Object getPoSchedule() {
return poSchedule;
}
@JsonProperty("poSchedule")
public void setPoSchedule(Object poSchedule) {
this.poSchedule = poSchedule;
}
@JsonProperty("kategoryAHASS")
public String getKategoryAHASS() {
return kategoryAHASS;
}
@JsonProperty("kategoryAHASS")
public void setKategoryAHASS(String kategoryAHASS) {
this.kategoryAHASS = kategoryAHASS;
}
@JsonProperty("salesmanMD")
public String getSalesmanMD() {
return salesmanMD;
}
@JsonProperty("salesmanMD")
public void setSalesmanMD(String salesmanMD) {
this.salesmanMD = salesmanMD;
}
@JsonProperty("alamatSite")
public Object getAlamatSite() {
return alamatSite;
}
@JsonProperty("alamatSite")
public void setAlamatSite(Object alamatSite) {
this.alamatSite = alamatSite;
}
@JsonProperty("noTelpSite")
public String getNoTelpSite() {
return noTelpSite;
}
@JsonProperty("noTelpSite")
public void setNoTelpSite(String noTelpSite) {
this.noTelpSite = noTelpSite;
}
@JsonProperty("noFaxSite")
public String getNoFaxSite() {
return noFaxSite;
}
@JsonProperty("noFaxSite")
public void setNoFaxSite(String noFaxSite) {
this.noFaxSite = noFaxSite;
}
@JsonProperty("kodePos")
public String getKodePos() {
return kodePos;
}
@JsonProperty("kodePos")
public void setKodePos(String kodePos) {
this.kodePos = kodePos;
}
@JsonProperty("latitude")
public Integer getLatitude() {
return latitude;
}
@JsonProperty("latitude")
public void setLatitude(Integer latitude) {
this.latitude = latitude;
}
@JsonProperty("longitude")
public Integer getLongitude() {
return longitude;
}
@JsonProperty("longitude")
public void setLongitude(Integer longitude) {
this.longitude = longitude;
}
@JsonProperty("idArea")
public String getIdArea() {
return idArea;
}
@JsonProperty("idArea")
public void setIdArea(String idArea) {
this.idArea = idArea;
}
@JsonProperty("tglAwalEfektif")
public Object getTglAwalEfektif() {
return tglAwalEfektif;
}
@JsonProperty("tglAwalEfektif")
public void setTglAwalEfektif(Object tglAwalEfektif) {
this.tglAwalEfektif = tglAwalEfektif;
}
@JsonProperty("tglAkhirEfektif")
public Object getTglAkhirEfektif() {
return tglAkhirEfektif;
}
@JsonProperty("tglAkhirEfektif")
public void setTglAkhirEfektif(Object tglAkhirEfektif) {
this.tglAkhirEfektif = tglAkhirEfektif;
}
@JsonProperty("dealerSiteStatus")
public String getDealerSiteStatus() {
return dealerSiteStatus;
}
@JsonProperty("dealerSiteStatus")
public void setDealerSiteStatus(String dealerSiteStatus) {
this.dealerSiteStatus = dealerSiteStatus;
}
@JsonProperty("dealerSiteCreationalDTO")
public DealerSiteCreationalDTO getDealerSiteCreationalDTO() {
return dealerSiteCreationalDTO;
}
@JsonProperty("dealerSiteCreationalDTO")
public void setDealerSiteCreationalDTO(DealerSiteCreationalDTO dealerSiteCreationalDTO) {
this.dealerSiteCreationalDTO = dealerSiteCreationalDTO;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.*;
import java.util.HashMap;
import java.util.Map;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"createdAt",
"createdBy",
"modifiedAt",
"modifiedBy"
})
public class DealerSiteCreationalDTO {
@JsonProperty("createdAt")
private String createdAt;
@JsonProperty("createdBy")
private String createdBy;
@JsonProperty("modifiedAt")
private String modifiedAt;
@JsonProperty("modifiedBy")
private String modifiedBy;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("createdAt")
public String getCreatedAt() {
return createdAt;
}
@JsonProperty("createdAt")
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
@JsonProperty("createdBy")
public String getCreatedBy() {
return createdBy;
}
@JsonProperty("createdBy")
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
@JsonProperty("modifiedAt")
public String getModifiedAt() {
return modifiedAt;
}
@JsonProperty("modifiedAt")
public void setModifiedAt(String modifiedAt) {
this.modifiedAt = modifiedAt;
}
@JsonProperty("modifiedBy")
public String getModifiedBy() {
return modifiedBy;
}
@JsonProperty("modifiedBy")
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DetailSOManagePartSalesDTO implements Serializable {
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private String promoidParts;
private Integer discAmount;
private Double discPercentage;
private Integer Ppn;
private Integer totalHargaParts;
private Integer uangMuka;
private String bookingIdReference;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class HeaderSOManagePartSalesDTO implements Serializable {
private String noSO;
private String tglSO;
private String idCustomer;
private String namaCustomer;
private Integer discSO;
private Integer totalHargaSO;
private String dealerId;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
private List<DetailSOManagePartSalesDTO> parts;
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class POCustomerDTO {
private String poCustomerNumber;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
private Date poCustomerDate;
private String customerID;
private String ahassCode;
private DataStatus poCustomerStatus;
private CreationalSpecificationDTO poCustomerCreationalDTO;
private List<POCustomerDetailDTO> pOCustomerDetailDTOs;
private Long version;
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class POCustomerDetailDTO {
private String pOCustomerDetailID;
private String partID;
private Integer quantity;
private DataStatus pickSlipDetailDataStatus;
private CreationalSpecificationDTO poCustomerCreationalDTO;
}
package com.eksad.masterdata.common.dto;
import com.eksad.masterdata.common.listEnum.LastKnownState;
import com.eksad.masterdata.common.listEnum.PurchaseOrderType;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PODealerDTO {
private String poNumber;
private String poNumberReference;
private Date poDate;
private String customerID;
private String dealerID;
private Integer totalPart;
private Integer totalQuantity;
private BigDecimal totalPrice;
private BigDecimal ppn;
private BigDecimal finalPrice;
private LastKnownState poDealerLastKnowState;
private PurchaseOrderType poType;
private CreationalSpecificationDTO poDealerCreationalDTO;
private List<PODealerDetailDTO> poDealerDetailDTOs;
private String refNumber;
private String dealerDestination;
private String draftNumber;
private String uploadPO;
private Long version;
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PODealerDetailDTO {
private String partID;
private String poCustomerID;
private Integer quantity;
private BigDecimal price;
private BigDecimal discount;
private DataStatus poDealerDetailStatus;
private CreationalSpecificationDTO poDealerDetailCreationalDTO;
private String salesPackageMDID;
private Date ETARevisi;
private Date ETATercepat;
private Date ETATerlama;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class POManagePartsInboundDTO {
private String noPO;
private String jenisOrder;
private String idWarehouse;
private String partsNumber;
private Integer kuantitas;
private String uom;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date createdTime;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ParamDPHLODTO {
private String noInvoiceUangJaminan;
private String idHLODocument;
private String tanggalPemesananHLO;
private String noWorkOrder;
private String idCustomer;
private String dealerId;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date modifiedTime;
private List<ParamDPHLODetailDTO> parts;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ParamDPHLODetailDTO {
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private Integer totalHargaParts;
private Integer uangMuka;
private Integer sisaBayar;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ParamManageSalesDTO {
private String fromTime;
private String toTime;
private String dealerId;
private String noSO;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PartsManageInboundDetailTempDTO {
private String noPenerimaan;
private String noPO;
private String jenisOrder;
private String idWarehouse;
private String partsNumber;
private Integer kuantitas;
private String Uom;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PartsManageInboundParamDTO {
private String fromTime;
private String toTime;
private String dealerId;
private String noPO;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PartsManageSalesDetailTempDTO implements Serializable {
private String soNumber;
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private String promoidParts;
private Integer discAmount;
private Double discPercentage;
private Integer ppn;
private Integer totalHargaParts;
private Integer uangMuka;
private String bookingIdReference;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto;
import com.eksad.masterdata.common.listEnum.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ReceiptSOBankCreateCommandDTO implements Serializable {
/**
* Transactional Base Object
*/
private String createdBy;
private Date createdDate;
private String updatedBy;
private Date updatedDate;
private String recordID;
/**
* Receipt
*/
private String receiptID;
private Date receiptDocDate;
private ReceiptType receiptType;
private ReceiptCategory receiptCategory;
private ReceiptKind receiptKind;
private Double receiptAmount;
private String receiptNote;
private ReceiptStatus receiptStatus;
private Double receiptPaidAmount;
private Double receiptDpOutstandingAmount;
private Double receiptOutstandingAmount;
private String terbilang;
private String terbilangDPOutstandingAmount;
private String terbilangOutstandingAmount;
private Double kembalian;
/**
* SO
*/
private String soID;
/**
* Receipt Claim Bank
*/
private String bankID;
private String bankAccID;
private String bankTrxID;
private String ahassCode;
private String referenceNumber;
private PaymentType paymentType;
private Double biayaTambahan;
private String reffPONumber;
private String namaEkspedisi;
private String noResi;
private Date etaEkspedisi;
private Date tglPengambilan;
}
package com.eksad.masterdata.common.dto;
import com.eksad.masterdata.common.listEnum.ReceiptStatus;
import com.eksad.masterdata.common.listEnum.ReceiptType;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ReceiptSOTaskDTO implements Serializable {
private String soID;
private String ahassCode;
private String customerName;
private Double receiptAmount;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
private Date salesOrderDate;
private String receiptid;
private String customerid;
private ReceiptStatus receiptStatus;
private ReceiptType receiptType;
private Double biayaTambahan;
private Double receiptPaidAmount;
private String reffPONumber;
private String referenceNumber;
private String noNotaPenjualan;
private String namaEkspedisi;
private String noResi;
private Date etaEkspedisi;
private String receipt_obj_disc;
}
package com.eksad.masterdata.common.dto;
import com.eksad.masterdata.common.listEnum.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ReceiptSOTunaiChangeCommandDTO implements Serializable {
/**
* Transactional Base Object
*/
private String createdBy;
private Date createdDate;
private String updatedBy;
private Date updatedDate;
private String recordID;
private Long version;
/**
* Receipt
*/
private String receiptID;
private Date receiptDocDate;
private ReceiptType receiptType;
private ReceiptCategory receiptCategory;
private ReceiptKind receiptKind;
private Double receiptAmount;
private String receiptNote;
private ReceiptStatus receiptStatus;
private Double receiptPaidAmount;
private Double receiptDpOutstandingAmount;
private Double receiptOutstandingAmount;
private String terbilang;
private String terbilangDPOutstandingAmount;
private String terbilangOutstandingAmount;
private String soID;
private Double kembalian;
private String ahassCode;
private PaymentType paymentType;
private Double biayaTambahan;
}
package com.eksad.masterdata.common.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ReceivingManagePartsInboundDTO {
private String noPenerimaan;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private String tglPenerimaan;
private String noShippingList;
private String dealerId;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date createdTime;
@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date modifiedTime;
private List<POManagePartsInboundDTO> po;
}
package com.eksad.masterdata.common.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseReceiptSOTaskGetListDTO {
private List<ReceiptSOTaskDTO> datas;
private Long totalElements;
private Integer totalPage;
}
package com.eksad.masterdata.common.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UnpaidDPHLOPullParamDTO {
private String fromTime;
private String toTime;
private String dealerId;
private String noWorkOrder;
private String idHLODocument;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.ConfigurationDTO;
import lombok.Data;
@Data
public class ResponseConfigurationGetDTO {
ResponseDTO response;
private ConfigurationDTO configurationDTO;
}
package com.eksad.masterdata.common.dto.responseDto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseDPHLODTO {
private Integer status;
private ResponseMessageDPHLODTO message;
private Object data;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.masterdata.common.dto.DPHLOPullHeaderDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseDPHLOPullDTO implements Serializable {
private Integer status;
private String message;
private List<DPHLOPullHeaderDTO> data;
}
package com.eksad.masterdata.common.dto.responseDto;
public class ResponseDPHLOTempDTO {
String message;
Boolean isTrue;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Boolean getIsTrue() {
return isTrue;
}
public void setIsTrue(Boolean isTrue) {
this.isTrue = isTrue;
}
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.masterdata.common.dto.HeaderSOManagePartSalesDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseManagePartSalesDTO implements Serializable {
private String status;
private String message;
private List<HeaderSOManagePartSalesDTO> data;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.masterdata.common.dto.ReceivingManagePartsInboundDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseManagePartsInboundDTO implements Serializable {
private Integer status;
private String message;
private List<ReceivingManagePartsInboundDTO> data;
}
package com.eksad.masterdata.common.dto.responseDto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseMessageDPHLODTO {
private String confirmation;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.PODealerDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponsePODealerGetDTO {
ResponseDTO response;
private PODealerDTO data;
}
package com.eksad.masterdata.common.dto.responseDto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UnpaidDPHLOPullHeaderResponseDTO {
private String status; //test
private String message;
private List<UnpaidDPHLOPullResponseDTO> data;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UnpaidDPHLOPullPartResponseDTO {
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private Integer totalHargaParts;
private Integer uangMuka;
private Integer sisaBayar;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UnpaidDPHLOPullResponseDTO {
private String idHLODocument;
private String tanggalPemesananHLO;
private String noWorkOrder;
private String noBukuClaimC2;
private String noKTP;
private String namaCustomer;
private String alamat;
private String kodePropinsi;
private String kodeKota;
private String kodeKecamatan;
private String kodeKelurahan;
private String kodePos;
private String noKontak;
private String kodeTipeUnit;
private String tahunMotor;
private String noMesin;
private String noRangka;
private String flagNumbering;
private String vehicleOffRoad;
private String jobReturn;
private String dealerId;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
private List<UnpaidDPHLOPullPartResponseDTO> parts;
}
package com.eksad.masterdata.common.listEnum;
public enum LastKnownState {
ALL("ALL"),
DRAFT("DRAFT"),
NEW("WAITING FOR APPROVAL"),
AWAITING("PO SUBMITTED TO MD"),
OPEN("OPEN"),
CLOSED("COMPLETED"),
REJECTED("PO REJECTED"),
EXPIRED("EXPIRED"),
CANCEL("CANCEL"),
PARTIALFULLFILLED("PARTIAL FULLFILLED"),
ONPROCESS("PO SUBMITTED"),
APPROVED("APPROVED"), // Additional status HO from MD (Flow Hotline)
REVISED("REVISED"); // Additional status HO from MD (Flow Hotline)
private String value;
private LastKnownState(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
package com.eksad.masterdata.common.listEnum;
public enum PaymentType {
CASH("Cash"),
TRANSFER("Transfer"),
DEBIT("Debit"),
CREDIT_CARD("Credit Card"),
OVO("OVO"),
GOPAY("Gopay"),
E_MONEY("e-money"),
QRIS("QRIS"),
ASTRAPAY("ASTRAPay");
private String label;
private PaymentType(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
}
package com.eksad.masterdata.common.listEnum;
public enum PurchaseOrderType {
All("All"),
Fix("Fix"),
Urgent("Urgent"),
Reguler("Reguler"),
Hotline("Hotline"),
Local("Local");
private String value;
private PurchaseOrderType(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
package com.eksad.masterdata.common.listEnum;
public enum ReceiptCategory {
BANK("BANK", "Transfer Bank"),
TUNAI("TUNAI", "Tunai Kasir");
private String name;
private String value;
private ReceiptCategory(String name, String value) {
this.name = name;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.eksad.masterdata.common.listEnum;
public enum ReceiptKind {
DP("DP", "Pembayaran Pertama"),
SETTLEMENT("SETTLEMENT", "Pembayaran Kedua"),
PELUNASAN_LEASING("PELUNASAN_LEASING", "Pelunasan Leasing"),
REFUND("REFUND", "Pengembalian Uang"),
RETUR("RETUR", "Pengembalian Uang");
private String name;
private String value;
private ReceiptKind(String name, String value) {
this.name = name;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.eksad.masterdata.common.listEnum;
public enum ReceiptStatus {
OUTSTANDING, COMPLETE, CANCEL, SO_DP
}
package com.eksad.masterdata.common.listEnum;
public enum ReceiptType {
WO,
SO,
SO_DP,
SO_SETTLEMENT,
SPK_DP,
SPK_SETTLEMENT,
SPK_CANCEL,
SPK_RETURN,
LEASING,
CLAIM,
RETUR,
OTHER
}
package com.eksad.masterdata.controller;
import com.eksad.masterdata.common.dto.DPHLOPullParamDTO;
import com.eksad.masterdata.common.dto.DealerCodeDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponseDPHLOPullDTO;
import com.eksad.masterdata.repository.DPHLOPullRespository;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author Fariz<f.hasabi @ eksad.com>
*/
@RestController
@Slf4j
public class DPHLOPullRestController {
public String URL_AHM_GET_DEALER = "/get.dealer.by.ahm.dealer.code/{ahmDealerCode}";
private static final String md_url = "http://api-cbr.daya-dms.id/masterdata";
@Autowired
DPHLOPullRespository dPHLOPullRespository;
@RequestMapping(value = "/dgi-api/v1/dphlo/read",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseDPHLOPullDTO> getDPHLOPull(@RequestBody DPHLOPullParamDTO dto) throws ParseException, JsonProcessingException {
ResponseDPHLOPullDTO responseDTO = new ResponseDPHLOPullDTO();
ObjectMapper mapper = new ObjectMapper();
System.out.println("param ManagePartsInboundRestController = " + mapper.writeValueAsString(dto));
String fromDateString = "";
String toDateString = "";
Date startDate = null;
Date toDate = null;
String ahassCode = null;
final Calendar calendarToTime = Calendar.getInstance();
final Calendar calendarFromTime = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (dto.getNoWorkOrder() == null) {
dto.setNoWorkOrder("");
}
if (dto.getIdHLODocument() == null) {
dto.setIdHLODocument("");
}
if (!dto.getFromTime().isEmpty()) {
startDate = dateFormat.parse(dto.getFromTime());
fromDateString = dateFormat.format(startDate);
if (dto.getToTime().isEmpty()) {
dto.setToTime(getNextWeek());
toDateString = dto.getToTime();
}
calendarFromTime.setTime(startDate);
calendarFromTime.add(Calendar.DAY_OF_YEAR, 7);
} else {
responseDTO.setMessage("Parameter Mandatory harus di isi");
responseDTO.setStatus(0);
return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
}
if (!dto.getToTime().isEmpty()) {
toDate = dateFormat.parse(dto.getToTime());
calendarToTime.setTime(toDate);
toDateString = dateFormat.format(calendarToTime.getTime());
}
if (calendarToTime.after(calendarFromTime)) {
responseDTO.setMessage("Tenggat waktu hanya diperbolehkan 7 hari");
responseDTO.setStatus(0);
return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
}
// if (dto.getDealerId() == null || dto.getDealerId().equalsIgnoreCase("")) {
// responseDTO.setMessage("Harap isi parameter dealerID");
// responseDTO.setStatus("0");
// return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
// }
ahassCode = findAhassIDtoAhassCode(dto.getDealerId());
if (ahassCode == null || ahassCode.equalsIgnoreCase("")) {
responseDTO.setMessage("Data DealerID " + dto.getDealerId() + " Tidak ditemukan di DDMS");
responseDTO.setStatus(0);
return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
}
if (validateNotNull(dto)) {
if (!dto.getIdHLODocument().isEmpty() && !dto.getNoWorkOrder().isEmpty() && !dto.getFromTime().isEmpty()) {
if (dto.getNoWorkOrder().contains("SO")) {
responseDTO = dPHLOPullRespository.getDPHLOPullByRangeDatePOSO(dto.getDealerId(), dto.getIdHLODocument(), dto.getNoWorkOrder(), fromDateString, toDateString, ahassCode);
} else {
responseDTO = dPHLOPullRespository.getDPHLOPullByRangeDatePOWO(dto.getDealerId(), dto.getIdHLODocument(), dto.getNoWorkOrder(), fromDateString, toDateString, ahassCode);
}
} else if (!dto.getNoWorkOrder().isEmpty() && !dto.getFromTime().isEmpty()) {
if (dto.getNoWorkOrder().contains("SO")) {
responseDTO = dPHLOPullRespository.getDPHLOPullByRangeDateSO(dto.getDealerId(), dto.getNoWorkOrder(), fromDateString, toDateString, ahassCode);
} else {
responseDTO = dPHLOPullRespository.getDPHLOPullByRangeDateWO(dto.getDealerId(), dto.getNoWorkOrder(), fromDateString, toDateString, ahassCode);
}
} else if (!dto.getIdHLODocument().isEmpty() && !dto.getFromTime().isEmpty()) {
responseDTO = dPHLOPullRespository.getDPHLOPullByRangeDatePO(dto.getDealerId(), dto.getIdHLODocument(), fromDateString, toDateString, ahassCode);
} else if (!dto.getFromTime().isEmpty()) {
responseDTO = dPHLOPullRespository.getDPHLOPullByRangeDate(dto.getDealerId(), fromDateString, toDateString, ahassCode);
}
} else {
responseDTO.setMessage("Parameter tidak sesuai");
responseDTO.setStatus(0);
return new ResponseEntity<>(responseDTO, HttpStatus.ACCEPTED);
}
return new ResponseEntity<>(responseDTO, HttpStatus.OK);
}
public static String getNextWeek() throws ParseException {
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(new Date());
}
public String findAhassIDtoAhassCode(String ahmDealerCode) {
String ahassCode = "";
ObjectMapper mapper = new ObjectMapper();
try {
Map<String, String> params = new HashMap<>();
String url = md_url + URL_AHM_GET_DEALER;
System.out.println(url);
params.put("ahmDealerCode", ahmDealerCode);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<DealerCodeDTO> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), DealerCodeDTO.class, params);
System.out.println("GetAHMDealer" + mapper.writeValueAsString(result.getBody()));
return ahassCode = result.getBody().getAdditionalProperties().get("dealerCode").toString();
} catch (Exception e) {
e.printStackTrace();
return ahassCode;
}
}
private HttpHeaders createHeaders() {
return new HttpHeaders() {
{
String TOKEN = "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRhtT8IkyoSy60kPg8HM9Vpvb0TdNew4";
set("Authorization", TOKEN);
}
};
}
private Boolean validateNotNull(DPHLOPullParamDTO dto) {
return true;
}
}
package com.eksad.masterdata.controller;
import com.eksad.masterdata.common.dto.DealerCodeDTO;
import com.eksad.masterdata.common.dto.PartsManageInboundParamDTO;
import com.eksad.masterdata.common.dto.ReceivingManagePartsInboundDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponseManagePartsInboundDTO;
import com.eksad.masterdata.domain.CreationalSpecification;
import com.eksad.masterdata.domain.PartManageInboundParamJSON;
import com.eksad.masterdata.repository.ManagePartsInbounRepository;
import com.eksad.masterdata.repository.PartManageInboundRepository;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@Slf4j
public class ManagePartsInboundRestController {
public String URL_AHM_GET_DEALER = "/get.dealer.by.ahm.dealer.code/{ahmDealerCode}";
private static final String md_url = "http://api-cbr.daya-dms.id/masterdata";
@Autowired
PartManageInboundRepository inboundRepository;
@Autowired
ManagePartsInbounRepository managePartsInboundRepository;
@RequestMapping(value = "/dgi-api/v1/pinb/read",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseManagePartsInboundDTO> getPartManageInbound(@RequestBody PartsManageInboundParamDTO dto) throws ParseException, JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
System.out.println("param ManagePartsInboundRestController = " + mapper.writeValueAsString(dto));
inboundRepository.save(dtoTODomain(dto));
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String fromDateString = "";
String toDateString = "";
Date startDate = null;
Date toDate = null;
String ahassCode = null;
String dealerKodeSite = null;
ResponseManagePartsInboundDTO managePartsInboundDTO = new ResponseManagePartsInboundDTO();
List<ReceivingManagePartsInboundDTO> receivingManagePartsInboundDTO = new ArrayList<>();
final Calendar calendarToTime = Calendar.getInstance();
final Calendar calendarFromTime = Calendar.getInstance();
try {
if (!dto.getFromTime().isEmpty()) {
startDate = dateFormat.parse(dto.getFromTime());
fromDateString = dateFormat.format(startDate);
if (dto.getToTime().isEmpty()) {
dto.setToTime(getNextWeek());
toDateString = dto.getToTime();
}
calendarFromTime.setTime(startDate);
calendarFromTime.add(Calendar.DAY_OF_YEAR, 7);
}
if (!dto.getToTime().isEmpty()) {
toDate = dateFormat.parse(dto.getToTime());
calendarToTime.setTime(toDate);
toDateString = dateFormat.format(calendarToTime.getTime());
}
if (calendarToTime.after(calendarFromTime)) {
managePartsInboundDTO.setMessage("Tenggat waktu hanya diperbolehkan 7 hari");
managePartsInboundDTO.setStatus(0);
return new ResponseEntity<>(managePartsInboundDTO, HttpStatus.ACCEPTED);
}
if (dto.getDealerId() == null || dto.getDealerId().equalsIgnoreCase("")) {
managePartsInboundDTO.setMessage("Harap isi parameter dealerID");
managePartsInboundDTO.setStatus(0);
return new ResponseEntity<>(managePartsInboundDTO, HttpStatus.ACCEPTED);
}
ahassCode = findAhassIDtoAhassCode(dto.getDealerId());
if (ahassCode == null || ahassCode.equalsIgnoreCase("")) {
managePartsInboundDTO.setMessage("Data DealerID " + dto.getDealerId() + " Tidak ditemukan di DDMS");
managePartsInboundDTO.setStatus(0);
return new ResponseEntity<>(managePartsInboundDTO, HttpStatus.ACCEPTED);
}
// dealerKodeSite = dealerSiteRepository.getDealerSiteByAhassCodeDDMS(ahassCode).getKodedealersite();
if (!dto.getNoPO().isEmpty() && !dto.getFromTime().isEmpty() && !dto.getToTime().isEmpty()) {
managePartsInboundDTO = managePartsInboundRepository.getInboundByRangeDateWithPONumber(dto.getDealerId(), dto.getNoPO(), ahassCode, fromDateString, toDateString);
} else if (!dto.getFromTime().isEmpty() && !dto.getToTime().isEmpty()) {
managePartsInboundDTO = managePartsInboundRepository.getInboundByRangeDate(dto.getDealerId(), fromDateString, toDateString, ahassCode);
}
} catch (Exception e) {
managePartsInboundDTO.setStatus(0);
managePartsInboundDTO.setMessage("Terjadi kesalahan");
return new ResponseEntity<>(managePartsInboundDTO, HttpStatus.ACCEPTED);
}
return new ResponseEntity<>(managePartsInboundDTO, HttpStatus.OK);
}
public PartManageInboundParamJSON dtoTODomain(PartsManageInboundParamDTO dto) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
CreationalSpecification creationalSpecification = new CreationalSpecification();
creationalSpecification.setCreatedAt(new Date());
creationalSpecification.setCreatedBy("SYSTEM");
PartManageInboundParamJSON partInboundParamJSON = new PartManageInboundParamJSON();
partInboundParamJSON.setCreationalSpecification(creationalSpecification);
partInboundParamJSON.setJson(mapper.writeValueAsString(dto));
return partInboundParamJSON;
}
public static String getNextWeek() throws ParseException {
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(new Date());
}
public String findAhassIDtoAhassCode(String ahmDealerCode) {
String ahassCode = "";
ObjectMapper mapper = new ObjectMapper();
try {
Map<String, String> params = new HashMap<String, String>();
String url = md_url + URL_AHM_GET_DEALER;
System.out.println(url);
params.put("ahmDealerCode", ahmDealerCode);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<DealerCodeDTO> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), DealerCodeDTO.class, params);
System.out.println("GetAHMDealer" + mapper.writeValueAsString(result.getBody()));
return ahassCode = result.getBody().getAdditionalProperties().get("dealerCode").toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private HttpHeaders createHeaders() {
return new HttpHeaders() {
{
String TOKEN = "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRhtT8IkyoSy60kPg8HM9Vpvb0TdNew4";
set("Authorization", TOKEN);
}
};
}
}
package com.eksad.masterdata.controller;
import com.eksad.masterdata.common.dto.UnpaidDPHLOPullParamDTO;
import com.eksad.masterdata.service.UnpaidHLOHystrixService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.text.ParseException;
@RestController
@Slf4j
public class UnpaidHLORestController {
@Autowired
UnpaidHLOHystrixService service;
@RequestMapping(value = "dgi-api/v1/unpaidhlo/read",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> UnpaidDPHLOApigateway(@RequestBody UnpaidDPHLOPullParamDTO paramDTO) throws ParseException {
return service.getUnpaidHLO(paramDTO);
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import jakarta.persistence.*;
@Entity
@Table(name = "TRX_PARAMDPHLOJSON")
public class ParamDPHLOJSON implements EntityObject<ParamDPHLOJSON> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_param_dphlo_gen")
@SequenceGenerator(name = "trx_param_dphlo_gen", sequenceName = "trx_param_dphlo_seq", allocationSize = 1)
Integer id;
@Column(columnDefinition = "text")
private String json;
private String noInvoice;
private String poNumber;
@Embedded
private CreationalSpecification creationalSpecification;
public ParamDPHLOJSON() {
}
public ParamDPHLOJSON(String json, String noInvoice, String poNumber, CreationalSpecification creationalSpecification) {
this.json = json;
this.noInvoice = noInvoice;
this.poNumber = poNumber;
this.creationalSpecification = creationalSpecification;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
public String getNoInvoice() {
return noInvoice;
}
public void setNoInvoice(String noInvoice) {
this.noInvoice = noInvoice;
}
public String getPoNumber() {
return poNumber;
}
public void setPoNumber(String poNumber) {
this.poNumber = poNumber;
}
public CreationalSpecification getCreationalSpecification() {
return creationalSpecification;
}
public void setCreationalSpecification(CreationalSpecification creationalSpecification) {
this.creationalSpecification = creationalSpecification;
}
@Override
public boolean sameIdentityAs(ParamDPHLOJSON other) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import jakarta.persistence.*;
@Entity
@Table(name = "TRX_PARAMMANAGEPARTSALESJSON")
public class ParamManagePartSalesJSON implements EntityObject<ParamManagePartSalesJSON> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_param_manage_partsales_gen")
@SequenceGenerator(name = "trx_param_manage_partsales_gen", sequenceName = "trx_param_manage_partsales_seq", allocationSize = 1)
Integer id;
private String json;
@Embedded
private CreationalSpecification creationalSpecification;
public ParamManagePartSalesJSON() {
}
public ParamManagePartSalesJSON(String json, CreationalSpecification creationalSpecification) {
this.json = json;
this.creationalSpecification = creationalSpecification;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
public CreationalSpecification getCreationalSpecification() {
return creationalSpecification;
}
public void setCreationalSpecification(CreationalSpecification creationalSpecification) {
this.creationalSpecification = creationalSpecification;
}
@Override
public boolean sameIdentityAs(ParamManagePartSalesJSON other) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import jakarta.persistence.*;
@Entity
@Table(name = "TRX_PARTMANAGEINBOUNDPARAMJSON")
public class PartManageInboundParamJSON implements EntityObject<PartManageInboundParamJSON> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_param_manage_partinbound_gen")
@SequenceGenerator(name = "trx_param_manage_partinbound_gen", sequenceName = "trx_param_manage_partinbound_seq", allocationSize = 1)
Integer id;
private String json;
@Embedded
private CreationalSpecification creationalSpecification;
public PartManageInboundParamJSON() {
}
public PartManageInboundParamJSON(Integer id, String json, CreationalSpecification creationalSpecification) {
this.id = id;
this.json = json;
this.creationalSpecification = creationalSpecification;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Transient
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
public CreationalSpecification getCreationalSpecification() {
return creationalSpecification;
}
public void setCreationalSpecification(CreationalSpecification creationalSpecification) {
this.creationalSpecification = creationalSpecification;
}
@Override
public boolean sameIdentityAs(PartManageInboundParamJSON other) {
return this.equals(other);
}
}
package com.eksad.masterdata.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class UnpaidHLODetail {
private String partsNumber;
private Integer kuantitas;
private Integer hargaParts;
private Integer totalHargaParts;
private Double uangMuka;
private Double sisaBayar;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
private Integer poDealerID;
}
package com.eksad.masterdata.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class UnpaidHLOHeader {
private Integer poDealerID;
private String idHLODocument;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date tanggalPemesananHLO;
private String noWorkOrder;
private String noBukuClaimC2;
private String noKTP;
private String namaCustomer;
private String alamat;
private String kodePropinsi;
private String kodeKota;
private String kodeKecamatan;
private String kodeKelurahan;
private String kodePos;
private String noKontak;
private String kodeTipeUnit;
private String tahunMotor;
private String noMesin;
private String noRangka;
private String flagNumbering;
private String vehicleOffRoad;
private String jobReturn;
private String dealerId;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date createdTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy hh:mm:ss")
private Date modifiedTime;
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.common.dto.responseDto.ResponseDPHLOPullDTO;
public interface DPHLOPullRespository {
public ResponseDPHLOPullDTO getDPHLOPullByWONumber(String woNumber); // ini tidak terpakai
public ResponseDPHLOPullDTO getDPHLOPUllByPONumber(String poNumber); // ini tidak terpakai
public ResponseDPHLOPullDTO getDPHLOPullByRangeDate(String ahmCode, String fromTime, String toTime, String ahassCode);
public ResponseDPHLOPullDTO getDPHLOPullByRangeDatePO(String ahmCode, String poNumber, String fromTime, String toTime, String ahassCode);
public ResponseDPHLOPullDTO getDPHLOPullByRangeDateSO(String ahmCode, String woNumber, String fromTime, String toTime, String ahassCode);
public ResponseDPHLOPullDTO getDPHLOPullByRangeDateWO(String ahmCode, String woNumber, String fromTime, String toTime, String ahassCode);
public ResponseDPHLOPullDTO getDPHLOPullByRangeDatePOWO(String ahmCode, String poNumber, String woNumber, String fromTime, String toTime, String ahassCode);
public ResponseDPHLOPullDTO getDPHLOPullByRangeDatePOSO(String ahmCode, String poNumber, String woNumber, String fromTime, String toTime, String ahassCode);
public ResponseDPHLOPullDTO getDPHLOPullByAll(String woNumber, String poNumber); // ini tidak terpakai
public ResponseDPHLOPullDTO getDPHLOPullByAllSO(String woNumber, String poNumber); // ini tidak terpakai
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.common.dto.responseDto.ResponseManagePartSalesDTO;
public interface ManagePartSalesRepository {
public ResponseManagePartSalesDTO getManagePartSalesBySONumber(String soNumber);
public ResponseManagePartSalesDTO getManagePartSalesByRangeDate(String ahmCode, String startDate, String toTime, String ahassCode);
public ResponseManagePartSalesDTO getManagePartSalesByRangeDateSO(String ahmCode, String startDate, String toTime, String soNumber, String ahassCode);
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.common.dto.DetailSOManagePartSalesDTO;
import com.eksad.masterdata.common.dto.HeaderSOManagePartSalesDTO;
import com.eksad.masterdata.common.dto.PartsManageSalesDetailTempDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponseManagePartSalesDTO;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.hibernate.Session;
import org.hibernate.jdbc.Work;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@Repository
public class ManagePartSalesRepositoryImpl implements ManagePartSalesRepository {
ResponseManagePartSalesDTO responseManagePartSalesDTO = new ResponseManagePartSalesDTO();
HeaderSOManagePartSalesDTO headerDTOTemp = new HeaderSOManagePartSalesDTO();
List<HeaderSOManagePartSalesDTO> headerDTOs = new ArrayList<>();
List<HeaderSOManagePartSalesDTO> headerDTOsTemp = new ArrayList<>();
List<DetailSOManagePartSalesDTO> detailDTOs = new ArrayList<>();
DetailSOManagePartSalesDTO detailDTO = new DetailSOManagePartSalesDTO();
List<PartsManageSalesDetailTempDTO> detailDTOsTemp = new ArrayList<>();
PartsManageSalesDetailTempDTO detailDTOTemp = new PartsManageSalesDetailTempDTO();
@PersistenceContext
private EntityManager entity;
@Override
public ResponseManagePartSalesDTO getManagePartSalesBySONumber(String soNumber) {
headerDTOs = new ArrayList<>();
responseManagePartSalesDTO = new ResponseManagePartSalesDTO();
detailDTOsTemp = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
Session session = entity.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
PreparedStatement statement = connection.prepareStatement("select * from managepartsalesbysonumber (?)");
statement.setString(1, soNumber);
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTOTemp = new HeaderSOManagePartSalesDTO();
detailDTOTemp = new PartsManageSalesDetailTempDTO();
headerDTOTemp.setNoSO(result.getString("salesorderid"));
headerDTOTemp.setDealerId(result.getString("dealerid"));
headerDTOTemp.setDiscSO(result.getInt("discamaount"));
headerDTOTemp.setIdCustomer(result.getString("idcustomer"));
headerDTOTemp.setNamaCustomer(result.getString("namacustomer"));
headerDTOTemp.setCreatedTime(formatDate24Hour(result.getString("createdtime")));
headerDTOTemp.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTOTemp.setTglSO(result.getDate("createdtime").toString());
headerDTOTemp.setTotalHargaSO(result.getInt("totalhargaso"));
detailDTOTemp.setBookingIdReference(result.getString("bookingidref"));
detailDTOTemp.setCreatedTime(result.getDate("createdtime"));
detailDTOTemp.setDiscAmount((int) Math.round(result.getDouble("discamaount")));
detailDTOTemp.setHargaParts(result.getInt("hargapart"));
detailDTOTemp.setKuantitas(result.getInt("qty"));
detailDTOTemp.setModifiedTime(result.getDate("modifiedtime"));
detailDTOTemp.setPartsNumber(result.getString("partnumber"));
detailDTOTemp.setPpn(result.getInt("ppn"));
detailDTOTemp.setPromoidParts(result.getString("promoid"));
detailDTOTemp.setSoNumber(result.getString("salesorderid"));
detailDTOTemp.setTotalHargaParts(result.getInt("totalhargapart"));
detailDTOTemp.setUangMuka((int) Math.round(result.getDouble("dp")));
detailDTOTemp.setDiscPercentage(result.getDouble("discpercentage"));
// if (detailDTOTemp.getDiscAmount() > 0) {
// detailDTOTemp.setDiscPercentage(new Double(detailDTOTemp.getDiscAmount() / detailDTOTemp.getTotalHargaParts() * 100));
// } else {
// detailDTOTemp.setDiscPercentage(0.0);
// }
detailDTOsTemp.add(detailDTOTemp);
headerDTOsTemp.add(headerDTOTemp);
} catch (Exception e) {
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Terjadi kesalahan");
Logger.getLogger(ManagePartSalesRepositoryImpl.class.getName()).log(Level.SEVERE, null, e);
}
}
statement.close();
connection.close();
}
});
if (!headerDTOsTemp.isEmpty() && !detailDTOsTemp.isEmpty()) {
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getNoSO())).collect(Collectors.toList());
for (HeaderSOManagePartSalesDTO loopHeader : headerDTOs) {
Integer discTotal = 0;
Integer totalHargaSO = 0;
detailDTOs = new ArrayList<>();
for (PartsManageSalesDetailTempDTO loopDetail : detailDTOsTemp) {
if (loopDetail.getSoNumber().equalsIgnoreCase(loopHeader.getNoSO())) {
discTotal += (loopDetail.getDiscAmount() * loopDetail.getKuantitas());
loopDetail.setDiscAmount(0); // reset disc amount
totalHargaSO += loopDetail.getTotalHargaParts();
detailDTO = new DetailSOManagePartSalesDTO();
detailDTO = toDetailDTO(loopDetail);
detailDTOs.add(detailDTO);
}
}
loopHeader.setDiscSO(discTotal);
loopHeader.setTotalHargaSO(totalHargaSO);
loopHeader.setParts(detailDTOs);
}
}
session.close();
entity.close();
responseManagePartSalesDTO.setData(headerDTOs);
return responseManagePartSalesDTO;
}
@Override
public ResponseManagePartSalesDTO getManagePartSalesByRangeDate(String ahmCode, String startDate, String toTime, String ahassCode) {
return null;
}
@Override
public ResponseManagePartSalesDTO getManagePartSalesByRangeDateSO(String ahmCode, String startDate, String toTime, String soNumber, String ahassCode) {
return null;
}
public Date formatDate24Hour(String date) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date newDate = dateFormat.parse(date);
return newDate;
}
public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
Map<Object, Boolean> map = new ConcurrentHashMap<>();
return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
public DetailSOManagePartSalesDTO toDetailDTO(PartsManageSalesDetailTempDTO dto) {
DetailSOManagePartSalesDTO detailSOManagePartSalesDTO = new DetailSOManagePartSalesDTO();
detailSOManagePartSalesDTO.setBookingIdReference(dto.getBookingIdReference() == null ? "" : dto.getBookingIdReference());
detailSOManagePartSalesDTO.setCreatedTime(dto.getCreatedTime());
detailSOManagePartSalesDTO.setDiscAmount(dto.getDiscAmount());
detailSOManagePartSalesDTO.setDiscPercentage(getRoundingHalfDownOnePlace(dto.getDiscPercentage()));
detailSOManagePartSalesDTO.setHargaParts(dto.getHargaParts());
detailSOManagePartSalesDTO.setKuantitas(dto.getKuantitas());
detailSOManagePartSalesDTO.setModifiedTime(dto.getModifiedTime());
detailSOManagePartSalesDTO.setPartsNumber(dto.getPartsNumber().toUpperCase());
detailSOManagePartSalesDTO.setPpn(dto.getPpn());
detailSOManagePartSalesDTO.setPromoidParts(getMaxLengthPromoID(dto.getPromoidParts()));
detailSOManagePartSalesDTO.setTotalHargaParts(dto.getTotalHargaParts());
detailSOManagePartSalesDTO.setUangMuka(dto.getUangMuka());
return detailSOManagePartSalesDTO;
}
private static Double getRoundingHalfDownOnePlace(Double num) {
if (num == null) return 0d;
BigDecimal bd = new BigDecimal(num).setScale(1, RoundingMode.HALF_DOWN);
return bd.doubleValue();
}
private static String getMaxLengthPromoID(String id) {
if (id == null) return "";
if (id.length() > 10) {
return id.substring(0, 10);
}
return id;
}
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.common.dto.responseDto.ResponseManagePartsInboundDTO;
public interface ManagePartsInbounRepository {
public ResponseManagePartsInboundDTO getInboundByPONumber(String poNumber, String ahassCode);
public ResponseManagePartsInboundDTO getInboundByRangeDate(String dealerSiteCode, String fromTime, String toTime, String ahassCode);
public ResponseManagePartsInboundDTO getInboundByRangeDateWithPONumber(String dealerSiteCode, String poNumber, String ahassCode, String fromTime, String toTime);
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.common.dto.POManagePartsInboundDTO;
import com.eksad.masterdata.common.dto.PartsManageInboundDetailTempDTO;
import com.eksad.masterdata.common.dto.ReceivingManagePartsInboundDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponseManagePartsInboundDTO;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.hibernate.Session;
import org.hibernate.jdbc.Work;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@Repository
public class ManagePartsInbounRepositoryImpl implements ManagePartsInbounRepository {
ResponseManagePartsInboundDTO responseManagePartsInboundDTO = new ResponseManagePartsInboundDTO();
ReceivingManagePartsInboundDTO receivingManagePartsInboundDTO = new ReceivingManagePartsInboundDTO();
POManagePartsInboundDTO poManagePartsInboundDTO = new POManagePartsInboundDTO();
List<PartsManageInboundDetailTempDTO> detailDTOsTemp = new ArrayList<>();
List<POManagePartsInboundDTO> poManagePartsInboundDTOs = new ArrayList<>();
List<ReceivingManagePartsInboundDTO> receivingManagePartsInboundDTOs = new ArrayList<>();
List<ReceivingManagePartsInboundDTO> receivingManagePartsInboundDTOsTemp = new ArrayList<>();
PartsManageInboundDetailTempDTO detailDTOTemp = new PartsManageInboundDetailTempDTO();
@PersistenceContext
private EntityManager entity;
@Value("${spring.datasource.url}")
private String dataSource;
@Override
public ResponseManagePartsInboundDTO getInboundByPONumber(String poNumber, String ahassCode) {
System.out.println("masuk getInboundByPONumber");
System.out.println("dataSource : " + dataSource);
Session session = entity.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
detailDTOsTemp = new ArrayList<>();
receivingManagePartsInboundDTOsTemp = new ArrayList<>();
PreparedStatement statement = connection.prepareStatement("select * from partsmanageinboundpo (?)");
statement.setString(1, poNumber);
ResultSet result = statement.executeQuery();
while (result.next()) {
detailDTOTemp = new PartsManageInboundDetailTempDTO();
receivingManagePartsInboundDTO = new ReceivingManagePartsInboundDTO();
receivingManagePartsInboundDTO.setCreatedTime(result.getTimestamp("createdtime"));
receivingManagePartsInboundDTO.setDealerId(ahassCode);
receivingManagePartsInboundDTO.setModifiedTime(result.getTimestamp("modifiedtime"));
receivingManagePartsInboundDTO.setNoPenerimaan(result.getString("receivingnumber"));
receivingManagePartsInboundDTO.setNoShippingList(result.getString("sjnumber"));
// receivingManagePartsInboundDTO.setTglPenerimaan(formatDateString(result.getTimestamp("createdtime")));
detailDTOTemp.setNoPenerimaan(result.getString("receivingnumber"));
detailDTOTemp.setCreatedTime(result.getTimestamp("createdtime"));
detailDTOTemp.setModifiedTime(result.getTimestamp("modifiedtime"));
detailDTOTemp.setIdWarehouse(result.getString("warehousecode"));
detailDTOTemp.setKuantitas(result.getInt("qty"));
detailDTOTemp.setNoPO(result.getString("ponumber"));
detailDTOTemp.setPartsNumber(result.getString("partnumber"));
receivingManagePartsInboundDTOsTemp.add(receivingManagePartsInboundDTO);
detailDTOsTemp.add(detailDTOTemp);
}
statement.close();
connection.close();
}
});
if (!receivingManagePartsInboundDTOsTemp.isEmpty() && !detailDTOsTemp.isEmpty()) {
receivingManagePartsInboundDTOs = receivingManagePartsInboundDTOsTemp.stream().filter(distinctByKey(p -> p.getNoPenerimaan())).collect(Collectors.toList());
poManagePartsInboundDTOs = new ArrayList<>();
for (ReceivingManagePartsInboundDTO loopHeaderDTO : receivingManagePartsInboundDTOs) {
for (PartsManageInboundDetailTempDTO loopDetail : detailDTOsTemp) {
if (loopDetail.getNoPenerimaan().equalsIgnoreCase(loopHeaderDTO.getNoPenerimaan())) {
poManagePartsInboundDTO = new POManagePartsInboundDTO();
poManagePartsInboundDTO = toDTODetail(loopDetail);
poManagePartsInboundDTOs.add(poManagePartsInboundDTO);
}
}
loopHeaderDTO.setPo(poManagePartsInboundDTOs);
poManagePartsInboundDTOs = new ArrayList<>();
}
}
session.close();
entity.close();
responseManagePartsInboundDTO.setData(receivingManagePartsInboundDTOs);
return responseManagePartsInboundDTO;
}
@Override
public ResponseManagePartsInboundDTO getInboundByRangeDate(String dealerSiteCode, String fromTime, String toTime, String ahassCode) {
return null;
}
@Override
public ResponseManagePartsInboundDTO getInboundByRangeDateWithPONumber(String dealerSiteCode, String poNumber, String ahassCode, String fromTime, String toTime) {
return null;
}
public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
Map<Object, Boolean> map = new ConcurrentHashMap<>();
return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
public POManagePartsInboundDTO toDTODetail(PartsManageInboundDetailTempDTO dtoTemp) {
POManagePartsInboundDTO managePartsInboundDTO = new POManagePartsInboundDTO();
managePartsInboundDTO.setCreatedTime(dtoTemp.getCreatedTime());
managePartsInboundDTO.setModifiedTime(dtoTemp.getModifiedTime());
managePartsInboundDTO.setIdWarehouse(dtoTemp.getIdWarehouse().toUpperCase());
managePartsInboundDTO.setJenisOrder(dtoTemp.getJenisOrder());
managePartsInboundDTO.setKuantitas(dtoTemp.getKuantitas());
managePartsInboundDTO.setNoPO(dtoTemp.getNoPO().toUpperCase());
managePartsInboundDTO.setPartsNumber(dtoTemp.getPartsNumber().toUpperCase());
managePartsInboundDTO.setUom("PCS");
return managePartsInboundDTO;
}
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.domain.ParamDPHLOJSON;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Repository;
@Transactional
@Repository
public interface ParamDPHLOJSONRepository extends GenericRepository<ParamDPHLOJSON> {
ParamDPHLOJSON findOneBypoNumber(String poNumber);
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.domain.ParamManagePartSalesJSON;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Repository;
@Repository
@Transactional
public interface ParamManagePartSalesJSONRepository extends GenericRepository<ParamManagePartSalesJSON> {
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.domain.PartManageInboundParamJSON;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Repository;
@Repository
@Transactional
public interface PartManageInboundRepository extends GenericRepository<PartManageInboundParamJSON> {
}
......@@ -4,8 +4,18 @@ import com.eksad.masterdata.domain.SalesOrder;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Date;
import java.util.List;
public interface SalesOrderRepository extends GenericRepository<SalesOrder> {
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderID=:soID")
SalesOrder findOneBySalesOrderID(@Param("soID") String salesOrderID);
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderLastKnownStatus in(com.eksad.masterdata.common.listEnum.SalesOrderStatus.COMPLETE, com.eksad.masterdata.common.listEnum.SalesOrderStatus.BO_COMPLETE) and so.salesOrderID=:salesOrderID")
SalesOrder findSObySOIDwithTypeBO(@Param("salesOrderID") String salesOrderID);
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderDate BETWEEN :from AND :to AND so.ahassCode=:ahassCode ")
List<SalesOrder> getSalesOrderByRangeAndDealerIDWithoutStatus(@Param("from") Date from, @Param("to") Date to, @Param("ahassCode") String ahassCode);
}
package com.eksad.masterdata.service;
import com.eksad.ddms.common.util.DateUtil;
import com.eksad.ddms.common.util.StringUtil;
import com.eksad.masterdata.common.dto.UnpaidDPHLOPullParamDTO;
import com.eksad.masterdata.common.dto.responseDto.UnpaidDPHLOPullHeaderResponseDTO;
import com.eksad.masterdata.common.dto.responseDto.UnpaidDPHLOPullPartResponseDTO;
import com.eksad.masterdata.common.dto.responseDto.UnpaidDPHLOPullResponseDTO;
import com.eksad.masterdata.domain.UnpaidHLODetail;
import com.eksad.masterdata.domain.UnpaidHLOHeader;
import com.eksad.masterdata.repository.UnpaidHLORepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* @author eksad
*/
@Service
public class UnpaidHLOHystrixService {
@Autowired
UnpaidHLORepository unpaidHLORepository;
public ResponseEntity<Object> getUnpaidHLO(UnpaidDPHLOPullParamDTO dto) {
try {
List<UnpaidDPHLOPullResponseDTO> listResponse = new ArrayList<>();
if (!StringUtil.hasValue(dto.getDealerId())) {
// return ResponseEntity.ok(new ResponsePullNJBNSCGetListDTO(0, "Mohon isi dealerId.", null));
}
if (StringUtil.hasValue(dto.getFromTime())) {
if (!StringUtil.hasValue(dto.getToTime())) {
dto.setToTime(getCurrentDate());
}
if (!checkToTimeIs7Days(dto.getFromTime(), dto.getToTime())) {
return ResponseEntity.status(HttpStatus.ACCEPTED).body(new UnpaidDPHLOPullHeaderResponseDTO("0", "Range waktu melebihi 7 hari.", null));
}
} else {
return ResponseEntity.status(HttpStatus.ACCEPTED).body(new UnpaidDPHLOPullHeaderResponseDTO("0", "Mohon isi Range Waktu mulai.", null));
}
UnpaidDPHLOPullResponseDTO res = null;
if (StringUtil.hasValue(dto.getIdHLODocument())) {
List<UnpaidHLOHeader> listHeader;
List<UnpaidHLODetail> listDetail;
if (StringUtil.hasValue(dto.getNoWorkOrder())) {
listHeader = unpaidHLORepository.getUnpaidHloByPoNumber(dto.getIdHLODocument(), dto.getNoWorkOrder());
listDetail = unpaidHLORepository.getDetailUnpaidHloByPoNumber(dto.getIdHLODocument(), dto.getNoWorkOrder());
} else {
listHeader = unpaidHLORepository.getUnpaidHloByPoNumber(dto.getIdHLODocument(), null);
listDetail = unpaidHLORepository.getDetailUnpaidHloByPoNumber(dto.getIdHLODocument(), null);
}
if (listHeader != null && !listHeader.isEmpty()) {
res = populateResponseUnpaidHLO(listHeader.get(0), listDetail);
listResponse.add(res);
}
} else if (StringUtil.hasValue(dto.getNoWorkOrder())) {
List<UnpaidHLOHeader> listHeader = unpaidHLORepository.getUnpaidHloBySoNumber(dto.getNoWorkOrder());
List<UnpaidHLODetail> listDetail = unpaidHLORepository.getDetailUnpaidHloBySoNumber(dto.getNoWorkOrder());
if (listHeader != null && !listHeader.isEmpty()) {
for (UnpaidHLOHeader head : listHeader) {
res = populateResponseUnpaidHLO(head, listDetail);
listResponse.add(res);
}
}
} else {
List<UnpaidHLOHeader> listHeader = new ArrayList<>();
List<UnpaidHLODetail> listDetail = new ArrayList<>();
if (StringUtil.hasValue(dto.getDealerId())) {
listHeader = unpaidHLORepository.getListUnpaidHloByRangeDate(dto.getFromTime(), dto.getToTime(), dto.getDealerId());
listDetail = unpaidHLORepository.getDetailListUnpaidHloByRangeDate(dto.getFromTime(), dto.getToTime(), dto.getDealerId());
} else {
listHeader = unpaidHLORepository.getListUnpaidHloByRangeDate(dto.getFromTime(), dto.getToTime(), null);
listDetail = unpaidHLORepository.getDetailListUnpaidHloByRangeDate(dto.getFromTime(), dto.getToTime(), null);
}
if (listHeader != null && !listHeader.isEmpty()) {
for (UnpaidHLOHeader head : listHeader) {
res = populateResponseUnpaidHLO(head, listDetail);
listResponse.add(res);
}
}
}
if (res == null) {
return ResponseEntity.status(HttpStatus.ACCEPTED).body(new UnpaidDPHLOPullHeaderResponseDTO("0", "Terdapat kesalahan, Data Tidak Dapat Ditemukan", null));
}
return ResponseEntity.status(HttpStatus.OK).body(new UnpaidDPHLOPullHeaderResponseDTO("1", null, listResponse));
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.ACCEPTED).body(new UnpaidDPHLOPullHeaderResponseDTO("0", "Terjadi kesalahan. " + e.getLocalizedMessage(), null));
}
}
public static String getCurrentDate() throws ParseException {
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(new Date());
}
private Boolean checkToTimeIs7Days(String fromTime, String toTime) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date from = dateFormat.parse(fromTime);
Date to = dateFormat.parse(toTime);
LocalDateTime fromLocal = from.toInstant().atZone(ZoneId.of("Asia/Jakarta")).toLocalDateTime();
LocalDateTime toLocal = to.toInstant().atZone(ZoneId.of("Asia/Jakarta")).toLocalDateTime();
Duration durasi = Duration.between(fromLocal, toLocal);
long dayDifference = Math.abs(durasi.toHours());
if (dayDifference > (7 * 24) + 1) { // if duration greater than 24*7 + 1 hours
return false;
}
return true;
}
private UnpaidDPHLOPullResponseDTO populateResponseUnpaidHLO(UnpaidHLOHeader head, List<UnpaidHLODetail> listDetail) {
UnpaidDPHLOPullResponseDTO res = new UnpaidDPHLOPullResponseDTO();
res.setIdHLODocument(head.getIdHLODocument());
res.setTanggalPemesananHLO(head.getTanggalPemesananHLO() == null ? "" : DateUtil.dateToString(head.getTanggalPemesananHLO(), "dd/MM/yyyy"));
res.setNoWorkOrder(head.getNoWorkOrder());
res.setNoBukuClaimC2(head.getNoBukuClaimC2() == null ? "" : head.getNoBukuClaimC2().toUpperCase());
res.setNoKTP(head.getNoKTP() == null ? "" : head.getNoKTP());
res.setNamaCustomer(head.getNamaCustomer() == null ? "" : head.getNamaCustomer().toUpperCase());
res.setAlamat(head.getAlamat() == null ? "" : head.getAlamat().toUpperCase());
res.setKodePropinsi(head.getKodePropinsi() == null ? "" : head.getKodePropinsi());
res.setKodeKota(head.getKodeKota() == null ? "" : head.getKodeKota());
res.setKodeKecamatan(head.getKodeKecamatan() == null ? "" : head.getKodeKecamatan());
res.setKodeKelurahan(head.getKodeKelurahan() == null ? "" : head.getKodeKelurahan());
res.setKodePos(head.getKodePos() == null ? "" : head.getKodePos());
res.setNoKontak(head.getNoKontak() == null ? "" : head.getNoKontak());
res.setKodeTipeUnit(head.getKodeTipeUnit());
res.setTahunMotor(head.getTahunMotor() == null ? "" : head.getTahunMotor());
res.setNoMesin(head.getNoMesin() == null ? "" : head.getNoMesin().replaceAll(" ", "").toUpperCase());
res.setNoRangka(head.getNoRangka() == null ? "" : head.getNoRangka().toUpperCase());
res.setFlagNumbering(head.getFlagNumbering() == null ? "" : head.getFlagNumbering());
res.setVehicleOffRoad(head.getVehicleOffRoad() == null ? "" : head.getVehicleOffRoad().equalsIgnoreCase("Y") ? "1" : "0");
res.setJobReturn(head.getJobReturn() == null ? "" : head.getJobReturn().equalsIgnoreCase("Y") ? "1" : "0");
res.setDealerId(head.getDealerId());
res.setCreatedTime(head.getCreatedTime());
res.setModifiedTime(head.getModifiedTime());
populateResponseDetail(res, head, listDetail);
return res;
}
private void populateResponseDetail(UnpaidDPHLOPullResponseDTO res, UnpaidHLOHeader head, List<UnpaidHLODetail> listDetail) {
List<UnpaidDPHLOPullPartResponseDTO> details = new ArrayList<>();
listDetail.stream().filter(p -> Objects.equals(p.getPoDealerID(), head.getPoDealerID())).forEach(par -> {
UnpaidDPHLOPullPartResponseDTO detail = new UnpaidDPHLOPullPartResponseDTO();
detail.setPartsNumber(par.getPartsNumber());
detail.setKuantitas(par.getKuantitas());
detail.setHargaParts(par.getHargaParts());
detail.setTotalHargaParts(par.getTotalHargaParts());
detail.setUangMuka(par.getUangMuka() == null ? 0 : getRoundingHalfDown(par.getUangMuka()).intValue());
detail.setSisaBayar(par.getSisaBayar() == null ? 0 : getRoundingHalfDown(par.getSisaBayar()).intValue());
detail.setCreatedTime(par.getCreatedTime());
detail.setModifiedTime(par.getModifiedTime());
details.add(detail);
});
res.setParts(details);
}
private static Double getRoundingHalfDown(Double num) {
BigDecimal bd = new BigDecimal(num).setScale(0, RoundingMode.HALF_DOWN);
return bd.doubleValue();
}
}
......@@ -33,4 +33,9 @@ ddms.auth.token=Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRht
#spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
#
## Kafka Topic Name
#kafka.topic.name=pipeline-topic
\ No newline at end of file
#kafka.topic.name=pipeline-topic
dam.gigr.h3 = ${DAM_GIGR_H3:https://api-uat-b.eksad.com/gigr-h3/}
dam.masterdata.h3 = ${DAM_MASTERDATA_H3:https://api-uat-b.eksad.com/masterdata-h3/}
dam.receipt.query = ${DAM_RECEIPT_QUERY_H3:https://api-uat-b.eksad.com/receipt-query/}
dam.receipt.command = ${DAM_RECEIPT_COMMAND_H3:https://api-uat-b.eksad.com/receipt-command/}
\ No newline at end of file
......@@ -33,4 +33,9 @@ ddms.auth.token=Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRht
#spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
#
## Kafka Topic Name
#kafka.topic.name=pipeline-topic
\ No newline at end of file
#kafka.topic.name=pipeline-topic
dam.gigr.h3 = ${DAM_GIGR_H3:https://api-uat-b.eksad.com/gigr-h3/}
dam.masterdata.h3 = ${DAM_MASTERDATA_H3:https://api-uat-b.eksad.com/masterdata-h3/}
dam.receipt.query = ${DAM_RECEIPT_QUERY_H3:https://api-uat-b.eksad.com/receipt-query/}
dam.receipt.command = ${DAM_RECEIPT_COMMAND_H3:https://api-uat-b.eksad.com/receipt-command/}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment