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.ddms.common.dto.ResponseDTO;
import com.eksad.ddms.common.h3.uri.ConfigurationURI;
import com.eksad.masterdata.common.dto.*;
import com.eksad.masterdata.common.dto.responseDto.*;
import com.eksad.masterdata.common.listEnum.*;
import com.eksad.masterdata.domain.CreationalSpecification;
import com.eksad.masterdata.domain.ParamDPHLOJSON;
import com.eksad.masterdata.domain.SalesOrder;
import com.eksad.masterdata.domain.assembler.SalesOrderAssembler;
import com.eksad.masterdata.repository.ParamDPHLOJSONRepository;
import com.eksad.masterdata.repository.SalesOrderRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.OptimisticLockingFailureException;
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 DPHLORestController {
private 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/";
@Value("${dam.gigr.h3}")
public String GIGRH3_URL;
@Value("${dam.masterdata.h3}")
private String MD_URL;
@Value("${dam.receipt.command}")
private String RECEIPT_COMMAND_URL;
@Value("${dam.receipt.query}")
private String RECEIPT_QUERY_URL;
private ResponseDPHLOTempDTO responseDTO = new ResponseDPHLOTempDTO();
private ReceiptSOTunaiChangeCommandDTO receiptDTO = new ReceiptSOTunaiChangeCommandDTO();
private Integer sumDP = 0;
private String ahassCode;
@Autowired
SalesOrderRepository salesOrderRepository;
@Autowired
ParamDPHLOJSONRepository paramDPHLOJSONRepository;
@RequestMapping(value = "/dgi-api/v1/dphlo/add",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseDPHLODTO> postBillingProcess(@RequestBody ParamDPHLODTO dto) {
sumDP = 0;
ResponseDPHLODTO responseDPHLODTO = new ResponseDPHLODTO();
ResponseMessageDPHLODTO responseMessageDPHLODTO = new ResponseMessageDPHLODTO();
SalesOrderDTO salesOrderDTO = new SalesOrderDTO();
PODealerDTO poDealerDTO = new PODealerDTO();
try {
for (ParamDPHLODetailDTO loopDPHLODetailDTO : dto.getParts()) {
sumDP = sumDP + loopDPHLODetailDTO.getUangMuka();
}
Boolean isValidMinimumDP = false;
if ((responseDTO = isValidNotNull(dto)).getIsTrue()) {
poDealerDTO = getHotlineDatas(dto.getIdHLODocument());
if (poDealerDTO == null) {
responseDTO = new ResponseDPHLOTempDTO();
responseDTO.setMessage("Data PO tidak ada pada system DDMS");
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
ahassCode = poDealerDTO.getDealerID();
String configDP = getConfigDP(ahassCode);
if (poDealerDTO.getPoNumber() == null) {
responseMessageDPHLODTO.setConfirmation("Data PO tidak ada pada system DDMS");
responseDPHLODTO.setMessage(responseMessageDPHLODTO);
responseDPHLODTO.setStatus(0);
//responseDPHLODTO.setStatus("0");
return new ResponseEntity<>(responseDPHLODTO, HttpStatus.NOT_FOUND);
}
salesOrderDTO = getSOBySalesOrderID(poDealerDTO.getRefNumber());
if (salesOrderDTO == null) {
responseDTO = new ResponseDPHLOTempDTO();
responseDTO.setMessage("Data SO tidak ada pada system DDMS");
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
responseDTO = new ResponseDPHLOTempDTO();
if ((responseDTO = isValidData(dto, poDealerDTO, salesOrderDTO)).getIsTrue()) {
responseDTO = new ResponseDPHLOTempDTO();
if ((responseDTO = isValidPart(dto.getParts(), poDealerDTO)).getIsTrue()) {
responseDTO = new ResponseDPHLOTempDTO();
if ((responseDTO = isValidMinimumDPPart(Integer.valueOf(configDP), dto.getParts(), poDealerDTO)).getIsTrue()) {
responseDTO = new ResponseDPHLOTempDTO();
if ((responseDTO = checkReceipt(poDealerDTO.getPoNumber())).getIsTrue()) {
receiptDTO.setAhassCode(poDealerDTO.getDealerID());
receiptDTO.setSoID(salesOrderDTO.getSalesOrderID());
receiptDTO.setUpdatedBy("APIGATEWAY_SYSTEM_" + poDealerDTO.getDealerID());
receiptDTO.setUpdatedDate(new Date());
receiptDTO.setReceiptStatus(ReceiptStatus.COMPLETE);
receiptDTO.setReceiptPaidAmount(sumDP.doubleValue());
String response = postUpdateReceipt(poDealerDTO.getPoNumber());
if (response != null) {
paramDPHLOJSONRepository.save(DTOtoDomain(dto));
responseMessageDPHLODTO.setConfirmation("Data Berhasil disimpan");
responseDPHLODTO.setMessage(responseMessageDPHLODTO);
responseDPHLODTO.setStatus(1);
return new ResponseEntity<>(responseDPHLODTO, HttpStatus.OK);
}
} else {
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
} else {
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
} else {
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
} else {
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
} else {
return new ResponseEntity<>(returnCustom(responseDTO.getMessage()), HttpStatus.OK);
}
} catch (Exception e) {
responseDPHLODTO = return500Code();
}
return new ResponseEntity<>(responseDPHLODTO, HttpStatus.OK);
}
public ResponseDPHLOTempDTO isValidNotNull(ParamDPHLODTO dto) {
ResponseDPHLOTempDTO responseDTO = new ResponseDPHLOTempDTO();
responseDTO.setIsTrue(Boolean.TRUE);
if (dto.getIdCustomer().isEmpty()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data ID Customer tidak boleh kosong");
return responseDTO;
}
if (dto.getIdHLODocument().isEmpty()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data ID HLODocument tidak boleh kosong");
return responseDTO;
}
if (dto.getNoInvoiceUangJaminan().isEmpty()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data No Invoice Uang Jaminan tidak boleh kosong");
return responseDTO;
}
if (dto.getNoWorkOrder().isEmpty()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data No workOrder tidak boleh kosong");
return responseDTO;
}
if (dto.getTanggalPemesananHLO().isEmpty()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data Tanggal pemesanan HLO tidak boleh kosong");
return responseDTO;
}
for (ParamDPHLODetailDTO loopDetail : dto.getParts()) {
if (loopDetail.getPartsNumber().isEmpty()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data partNumber tidak boleh kosong");
return responseDTO;
}
if (loopDetail.getCreatedTime() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data partNumber tidak boleh kosong");
return responseDTO;
}
if (loopDetail.getHargaParts() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data harga part tidak boleh kosong");
return responseDTO;
}
if (loopDetail.getKuantitas() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data kuantitas tidak boleh kosong");
return responseDTO;
}
if (loopDetail.getSisaBayar() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data sisa bayar tidak boleh kosong");
return responseDTO;
}
if (loopDetail.getTotalHargaParts() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data total harga part tidak boleh kosong");
return responseDTO;
}
if (loopDetail.getUangMuka() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data uang muka tidak boleh kosong");
return responseDTO;
}
}
return responseDTO;
}
public PODealerDTO getHotlineDatas(String poNumber) {
Map<String, String> params = new HashMap<>();
String url = GIGRH3_URL + "/get.podealer.with.ponumber/{poNumber}";
RestTemplate restTemplate = new RestTemplate();
params.put("poNumber", poNumber);
ResponseEntity<ResponsePODealerGetDTO> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), ResponsePODealerGetDTO.class,
params);
return result.getBody().getData();
}
private HttpHeaders createHeaders() {
return new HttpHeaders() {
{
String TOKEN = "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRhtT8IkyoSy60kPg8HM9Vpvb0TdNew4";
set("Authorization", TOKEN);
}
};
}
public ResponseDPHLODTO returnCustom(String message) {
ResponseDPHLODTO responseDPHLODTO = new ResponseDPHLODTO();
ResponseMessageDPHLODTO responseMessageDPHLODTO = new ResponseMessageDPHLODTO();
responseMessageDPHLODTO.setConfirmation(message);
responseDPHLODTO.setStatus(0);
responseDPHLODTO.setMessage(responseMessageDPHLODTO);
return responseDPHLODTO;
}
public String getConfigDP(String ahassCode) {
Map<String, String> params = new HashMap<String, String>();
params.put("key", "DP");
params.put("ahassId", ahassCode);
String url = MD_URL + "/" + ConfigurationURI.GET_CONFIGURATION_BY_ID_AND_AHASSID.getUri();
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<ResponseConfigurationGetDTO> resConfig = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), ResponseConfigurationGetDTO.class,
params);
return resConfig.getBody().getConfigurationDTO().getValue();
}
public SalesOrderDTO getSOBySalesOrderID(String soID) {
SalesOrderDTO soDTO = new SalesOrderDTO();
SalesOrder data = salesOrderRepository.findOneBySalesOrderID(soID);
if (data == null) {
return soDTO;
} else {
soDTO = new SalesOrderAssembler().toDTO(data);
}
return soDTO;
}
public ResponseDPHLOTempDTO isValidData(ParamDPHLODTO dto, PODealerDTO poDealerDTO, SalesOrderDTO so) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ResponseDPHLOTempDTO responseDTO = new ResponseDPHLOTempDTO();
responseDTO.setIsTrue(Boolean.TRUE);
if (dto.getNoWorkOrder().contains("SO")) {
if (!dto.getNoWorkOrder().equalsIgnoreCase(so.getSalesOrderID())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data nomor SO tidak sama");
return responseDTO;
}
} else {
if (!dto.getNoWorkOrder().equalsIgnoreCase(so.getWorkOrderID())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data nomor WO tidak sama");
return responseDTO;
}
}
if (!ahassCode.equalsIgnoreCase(so.getAhassCode())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data kode ahass tidak sama");
return responseDTO;
}
if (!isCustomerHotlineTrue(dto.getIdCustomer())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data idCustomer tidak sama");
return responseDTO;
}
if (!dto.getTanggalPemesananHLO().equalsIgnoreCase(formatDateString(poDealerDTO.getPoDealerCreationalDTO().getCreatedAt()))) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data tanggal pemesanan tidak sama");
return responseDTO;
}
if (!compareDate(formatDate24Hour(dto.getCreatedTime()), poDealerDTO.getPoDealerCreationalDTO().getCreatedAt())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data created time tidak sama");
return responseDTO;
}
if (!compareDate(formatDate24Hour(dto.getModifiedTime()), poDealerDTO.getPoDealerCreationalDTO().getModifiedAt())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data modified time tidak sama");
return responseDTO;
}
return responseDTO;
}
public Boolean isCustomerHotlineTrue(String noktp) {
String url = GIGRH3_URL + "/istrue.hotlinecustomer/{noktp}";
RestTemplate restTemplate = new RestTemplate();
Map<String, String> params = new HashMap<String, String>();
params.put("noktp", noktp);
ResponseEntity<Boolean> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), Boolean.class,
params);
return result.getBody();
}
public String formatDateString(Date date) throws ParseException {
DateFormat outFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
// Date newDate = outFormat.parse(date);
String formatString = dateFormat.format(date);
return formatString;
}
private Boolean compareDate(Date paramDate, Date poDate) {
Boolean isTrue = Boolean.FALSE;
Calendar cl1 = Calendar.getInstance();
Calendar cl2 = Calendar.getInstance();
cl1.setTime(paramDate);
cl2.setTime(poDate);
if (cl1.get(Calendar.DAY_OF_WEEK) == (cl2.get(Calendar.DAY_OF_WEEK))) {
isTrue = Boolean.TRUE;
} else {
return isTrue = Boolean.FALSE;
}
if (cl1.get(Calendar.MONTH) == (cl2.get(Calendar.MONTH))) {
isTrue = Boolean.TRUE;
} else {
return isTrue = Boolean.FALSE;
}
if (cl1.get(Calendar.YEAR) == (cl2.get(Calendar.YEAR))) {
return isTrue = Boolean.TRUE;
} else {
return isTrue = Boolean.FALSE;
}
}
public Date formatDate24Hour(Date date) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
DateFormat outFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
String newDate = dateFormat.format(date);
Date newDate2 = dateFormat.parse(newDate);
return newDate2;
}
public ResponseDPHLOTempDTO isValidPart(List<ParamDPHLODetailDTO> paramDetails, PODealerDTO poDealerDTO) {
ResponseDPHLOTempDTO responseDTO = new ResponseDPHLOTempDTO();
responseDTO.setIsTrue(Boolean.TRUE);
if (paramDetails.size() != poDealerDTO.getPoDealerDetailDTOs().size()) {
responseDTO.setIsTrue(Boolean.TRUE);
responseDTO.setMessage("Data part kurang");
return responseDTO;
}
HashMap<String, String> partSearch = new HashMap<>();
for (PODealerDetailDTO loopDealerDetailDTO : poDealerDTO.getPoDealerDetailDTOs()) {
partSearch.put(loopDealerDetailDTO.getPartID(), loopDealerDetailDTO.getPartID());
}
for (ParamDPHLODetailDTO loopParamDetail : paramDetails) {
if (!partSearch.containsKey(loopParamDetail.getPartsNumber())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data part " + loopParamDetail.getPartsNumber() + " tidak ada");
return responseDTO;
}
}
return responseDTO;
}
public ResponseDPHLOTempDTO isValidMinimumDPPart(Integer configDP, List<ParamDPHLODetailDTO> paramDetails, PODealerDTO poDealerDTO) {
ResponseDPHLOTempDTO responseDTO = new ResponseDPHLOTempDTO();
Integer totalDisc = 0;
responseDTO.setIsTrue(Boolean.TRUE);
for (ParamDPHLODetailDTO loopParamDetail : paramDetails) {
for (PODealerDetailDTO loopDealerDetailDTO : poDealerDTO.getPoDealerDetailDTOs()) {
if (loopParamDetail.getPartsNumber().equalsIgnoreCase(loopDealerDetailDTO.getPartID())) {
if (loopDealerDetailDTO.getPrice() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data harga part " + loopParamDetail.getPartsNumber() + " null pada system");
return responseDTO;
}
if (loopDealerDetailDTO.getDiscount() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data Discount part " + loopParamDetail.getPartsNumber() + " null pada system");
return responseDTO;
}
totalDisc = 0;
totalDisc = loopDealerDetailDTO.getDiscount().intValue() * loopDealerDetailDTO.getQuantity();
if (!loopParamDetail.getKuantitas().equals(loopDealerDetailDTO.getQuantity())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Kuantitas Data part " + loopParamDetail.getPartsNumber() + " tidak sama");
return responseDTO;
}
if (!loopParamDetail.getTotalHargaParts().equals(loopDealerDetailDTO.getPrice().intValue() - totalDisc)) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Total harga Data part " + loopParamDetail.getPartsNumber() + " tidak sama");
return responseDTO;
}
Integer hargaPartTemp = 0;
hargaPartTemp = (loopDealerDetailDTO.getPrice().intValue() / loopDealerDetailDTO.getQuantity());
if (!loopParamDetail.getHargaParts().equals(hargaPartTemp)) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Harga Data part " + loopParamDetail.getPartsNumber() + " tidak sama");
return responseDTO;
}
Double DPPaidAmount = 0.0;
Double percentage = 0.0;
percentage = configDP.doubleValue() / 100;
DPPaidAmount = (percentage * (loopDealerDetailDTO.getPrice().intValue() - totalDisc));
if (loopParamDetail.getUangMuka() < DPPaidAmount.intValue() || loopParamDetail.getUangMuka() > loopDealerDetailDTO.getPrice().intValue()) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("DP Data part " + loopParamDetail.getPartsNumber() + " tidak sama");
return responseDTO;
}
Integer realSisaBayar = 0;
realSisaBayar = (loopDealerDetailDTO.getPrice().intValue() - totalDisc) - loopParamDetail.getUangMuka();
if (!realSisaBayar.equals(loopParamDetail.getSisaBayar())) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Sisa Bayar Data part " + loopParamDetail.getPartsNumber() + " tidak sama");
return responseDTO;
}
}
}
}
return responseDTO;
}
public ResponseDPHLOTempDTO checkReceipt(String poNumber) {
receiptDTO = new ReceiptSOTunaiChangeCommandDTO();
ReceiptSOTunaiChangeCommandDTO receiptSOTemp = new ReceiptSOTunaiChangeCommandDTO();
Map<String, Object> params = new HashMap<String, Object>();
ResponseDPHLOTempDTO responseDTO = new ResponseDPHLOTempDTO();
responseDTO.setIsTrue(Boolean.TRUE);
params.put("reffPONumber", poNumber);
params.put("receiptType", ReceiptType.SO_DP);
params.put("receiptStatus", ReceiptStatus.COMPLETE);
String url = RECEIPT_QUERY_URL + "/api/receipt/so/task/query/getReceiptSOTaskForApiGateway/{reffPONumber}/{receiptType}/{receiptStatus}";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<ReceiptSOTaskDTO> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), ReceiptSOTaskDTO.class,
params);
if (!(result.getBody() == null)) {
if (checkPushApigateway(poNumber)) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Pembayaran DP sudah dilakukan sebelumnya melalui API DP HLO.");
return responseDTO;
} else {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Pembayaran DP sudah dilakukan sebelumnya melalui sistem DDMS.");
return responseDTO;
}
} else {
params = new HashMap<String, Object>();
params.put("reffPONumber", poNumber);
params.put("receiptType", ReceiptType.SO_DP);
params.put("receiptStatus", ReceiptStatus.OUTSTANDING);
RestTemplate restTemplates = new RestTemplate();
ResponseEntity<ReceiptSOTaskDTO> results = restTemplates.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), ReceiptSOTaskDTO.class,
params);
if (results.getBody() == null) {
responseDTO.setIsTrue(Boolean.FALSE);
responseDTO.setMessage("Data Receipt tidak ditemukan");
return responseDTO;
} else {
receiptDTO = getReceipt(poNumber);
}
}
return responseDTO;
}
public Boolean checkPushApigateway(String poNumber) {
Boolean isTrue = Boolean.FALSE;
ParamDPHLOJSON dpJSON = paramDPHLOJSONRepository.findOneBypoNumber(poNumber);
if (dpJSON != null) {
isTrue = Boolean.TRUE;
}
return isTrue;
}
public ReceiptSOTunaiChangeCommandDTO getReceipt(String poNumber) {
ResponseReceiptSOTaskGetListDTO receiptSOTaskGetListDTOs = new ResponseReceiptSOTaskGetListDTO();
ReceiptSOTunaiChangeCommandDTO receiptSOTemp = new ReceiptSOTunaiChangeCommandDTO();
Map<String, Object> params = new HashMap<String, Object>();
params.put("reffPONumber", poNumber);
params.put("receiptType", ReceiptType.SO_DP);
params.put("receiptStatus", ReceiptStatus.OUTSTANDING);
String url = RECEIPT_QUERY_URL + "/api/receipt/so/task/query/getReceiptSOTaskForApiGateway/{reffPONumber}/{receiptType}/{receiptStatus}";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<ReceiptSOTaskDTO> result = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(createHeaders()), ReceiptSOTaskDTO.class,
params);
receiptSOTemp.setCreatedBy("APIGATEWAY_SYSTEM");
receiptSOTemp.setCreatedDate(new Date());
receiptSOTemp.setReceiptStatus(ReceiptStatus.COMPLETE);
receiptSOTemp.setReceiptAmount(result.getBody().getReceiptAmount());
receiptSOTemp.setReceiptCategory(ReceiptCategory.BANK);
receiptSOTemp.setReceiptKind(ReceiptKind.DP);
receiptSOTemp.setReceiptType(ReceiptType.SO_DP);
receiptSOTemp.setKembalian(0.0);
receiptSOTemp.setVersion(0L);
receiptSOTemp.setBiayaTambahan(0.0);
receiptSOTemp.setPaymentType(PaymentType.CASH);
receiptSOTemp.setReceiptID(result.getBody().getReceiptid());
return receiptSOTemp;
}
public ResponseDPHLODTO return500Code() {
ResponseDPHLODTO responseDPHLODTO = new ResponseDPHLODTO();
ResponseMessageDPHLODTO responseMessageDPHLODTO = new ResponseMessageDPHLODTO();
responseMessageDPHLODTO.setConfirmation("Terjadi kesalahan");
responseDPHLODTO.setStatus(0);
responseDPHLODTO.setMessage(responseMessageDPHLODTO);
return responseDPHLODTO;
}
public String postUpdateReceipt(String poNumber) {
String responses = "";
String url = RECEIPT_COMMAND_URL + "api/receiptsotunai/command/updateCriteriaReceipt";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<ResponseDTO> result = restTemplate.exchange(url, HttpMethod.PUT, new HttpEntity<ReceiptSOTunaiChangeCommandDTO>(receiptDTO, createHeaders()), ResponseDTO.class
);
Long response = result.getBody().getVersion();
if (result.getBody().getCode().equalsIgnoreCase("423")) {
throw new OptimisticLockingFailureException(result.getBody().getMessage());
} else if (result.getStatusCode().equals(HttpStatus.CREATED)) {
responses = postReceiptTUnaiPOST(poNumber);
}
return responses;
}
public String postReceiptTUnaiPOST(String poNUmber) {
double settlement = receiptDTO.getReceiptAmount() - receiptDTO.getReceiptPaidAmount();
ReceiptSOBankCreateCommandDTO receiptPostDTO = new ReceiptSOBankCreateCommandDTO();
String url = RECEIPT_COMMAND_URL + "/api/receiptsotunai/command/createReceipt";
receiptPostDTO = composeSOTunaiReceipt(poNUmber, receiptDTO.getSoID(), settlement, ahassCode);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(receiptPostDTO, createHeaders()), String.class
);
return result.getBody();
}
private ReceiptSOBankCreateCommandDTO composeSOTunaiReceipt(String poNumber, String salesOrderID, double total, String ahassCode) {
ReceiptSOBankCreateCommandDTO dto = new ReceiptSOBankCreateCommandDTO();
dto.setReceiptID(UUID.randomUUID().toString().substring(0, 8));
dto.setBiayaTambahan(0.0);
dto.setSoID(salesOrderID);
dto.setReceiptAmount(total);
dto.setReceiptType(ReceiptType.SO_SETTLEMENT);
dto.setReceiptStatus(ReceiptStatus.OUTSTANDING);
dto.setAhassCode(ahassCode);
dto.setReffPONumber(poNumber);
dto.setUpdatedBy("APIGATEWAY_SYSTEM_" + ahassCode);
dto.setUpdatedDate(new Date());
return dto;
}
public ParamDPHLOJSON DTOtoDomain(ParamDPHLODTO dto) {
ObjectMapper mapper = new ObjectMapper();
ParamDPHLOJSON paramDPHLOJSON = new ParamDPHLOJSON();
try {
paramDPHLOJSON.setJson(mapper.writeValueAsString(dto));
paramDPHLOJSON.setNoInvoice(dto.getNoInvoiceUangJaminan());
paramDPHLOJSON.setPoNumber(dto.getIdHLODocument());
CreationalSpecification creationalSpecification = new CreationalSpecification();
creationalSpecification.setCreatedAt(new Date());
creationalSpecification.setCreatedBy("SYSTEM");
paramDPHLOJSON.setCreationalSpecification(creationalSpecification);
} catch (Exception e) {
System.out.println("ERROR DPHLO karena" + e.getMessage());
}
return paramDPHLOJSON;
}
}
package com.eksad.masterdata.controller;
import com.eksad.masterdata.common.dto.*;
import com.eksad.masterdata.common.dto.responseDto.ResponseManagePartSalesDTO;
import com.eksad.masterdata.domain.CreationalSpecification;
import com.eksad.masterdata.domain.ParamManagePartSalesJSON;
import com.eksad.masterdata.domain.SalesOrder;
import com.eksad.masterdata.domain.assembler.CreationalSpecificationDTOAssembler;
import com.eksad.masterdata.domain.assembler.SalesOrderDetailAssembler;
import com.eksad.masterdata.repository.ManagePartSalesRepository;
import com.eksad.masterdata.repository.ParamManagePartSalesJSONRepository;
import com.eksad.masterdata.repository.SalesOrderRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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 ManagePartSalesRestController {
public String URL_AHM_GET_DEALER = "/get.dealer.by.ahm.dealer.code/{ahmDealerCode}";
@Autowired
ParamManagePartSalesJSONRepository paramManagePartSalesJSONRepository;
@Autowired
SalesOrderRepository salesOrderRepository;
@Autowired
ManagePartSalesRepository managePartSalesRepository;
@Value("http://api-cbr.daya-dms.id/masterdata")
private String md_h1_url;
@RequestMapping(value = "/dgi-api/v1/prsl/read",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseManagePartSalesDTO> getSO(@RequestBody ParamManageSalesDTO dto) {
log.info("ParamManagePartSales " + dto.getDealerId() + " noPO = " + dto.getNoSO());
System.out.println("ParamManagePartSales " + dto.getDealerId() + " noPO = " + dto.getNoSO());
ObjectMapper mapper = new ObjectMapper();
paramManagePartSalesJSONRepository.save(DTOtoDomain(dto));
SalesOrderDTO salesOrderDTO = new SalesOrderDTO();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String toDateString = "";
String fromDateString = "";
Date startDate = null;
Date toDate = null;
String ahassCode = null;
Integer totalDISC = 0;
CustomerDTO customerDTO = new CustomerDTO();
POCustomerDTO poCustomerDTO = new POCustomerDTO();
ResponseManagePartSalesDTO responseManagePartSalesDTO = new ResponseManagePartSalesDTO();
List<HeaderSOManagePartSalesDTO> headerSOManagePartSalesDTOs = new ArrayList<>();
List<DetailSOManagePartSalesDTO> detailSOManagePartSalesDTOs = new ArrayList<>();
HeaderSOManagePartSalesDTO headerSOManagePartSalesDTOTemp = new HeaderSOManagePartSalesDTO();
DetailSOManagePartSalesDTO detailSOManagePartSalesDTO = new DetailSOManagePartSalesDTO();
final Calendar calendarToTime = Calendar.getInstance();
final Calendar calendarFromTime = Calendar.getInstance();
if (dto.getNoSO() == null) {
dto.setNoSO("");
}
try {
if (!dto.getFromTime().isEmpty()) {
startDate = dateFormat.parse(dto.getFromTime());
fromDateString = dateFormat.format(startDate.getTime());
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)) {
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Rentang waktu hanya diperbolehkan 7 hari");
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.ACCEPTED);
}
if (dto.getDealerId().isEmpty() && dto.getNoSO().isEmpty()) {
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Tolong masukan dealerID");
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.ACCEPTED);
} else {
ahassCode = findAhassIDtoAhassCode(dto.getDealerId());
}
if (!dto.getNoSO().isEmpty() && !dto.getDealerId().isEmpty() && !dto.getFromTime().isEmpty()) {
salesOrderDTO = getSalesOrderByRangeAndSOID(toDate, toDate, dto.getNoSO());
if (salesOrderDTO == null) {
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Data tidak ditemukan");
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.ACCEPTED);
} else {
responseManagePartSalesDTO = new ResponseManagePartSalesDTO();
responseManagePartSalesDTO = managePartSalesRepository.getManagePartSalesByRangeDateSO(dto.getDealerId(), fromDateString, toDateString, dto.getNoSO(), ahassCode);
}
} else if (!dto.getDealerId().isEmpty() && !dto.getFromTime().isEmpty()) {
List<SalesOrderDTO> salesOrderDTOs = getSalesOrderByRangeAndDealerID(startDate, toDate, ahassCode);
if (salesOrderDTOs.isEmpty()) {
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Data tidak ditemukan");
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.ACCEPTED);
} else {
responseManagePartSalesDTO = managePartSalesRepository.getManagePartSalesByRangeDate(dto.getDealerId(), fromDateString, toDateString, ahassCode);
}
} else {
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Data tidak ditemukan");
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.OK);
}
} catch (Exception e) {
e.printStackTrace();
responseManagePartSalesDTO.setStatus("0");
responseManagePartSalesDTO.setMessage("Terjadi Kesalahan");
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.OK);
}
return new ResponseEntity<>(responseManagePartSalesDTO, HttpStatus.OK);
}
public ParamManagePartSalesJSON DTOtoDomain(ParamManageSalesDTO dto) {
ParamManagePartSalesJSON managePartSalesJSON = new ParamManagePartSalesJSON();
ObjectMapper mapper = new ObjectMapper();
try {
CreationalSpecification creationalSpecification = new CreationalSpecification();
creationalSpecification.setModifiedBy(creationalSpecification.getModifiedBy());
creationalSpecification.setModifiedAt(new Date());
managePartSalesJSON.setCreationalSpecification(creationalSpecification);
managePartSalesJSON.setJson(mapper.writeValueAsString(dto));
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
return managePartSalesJSON;
}
return managePartSalesJSON;
}
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_h1_url + URL_AHM_GET_DEALER;
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);
}
};
}
public SalesOrderDTO getSalesOrderByRangeAndSOID(Date from, Date to, String salesOrderID) {
SalesOrder data;
SalesOrderDTO dto = new SalesOrderDTO();
try {
data = salesOrderRepository.findSObySOIDwithTypeBO(salesOrderID);
if (data == null) {
return dto;
} else {
dto = salesOrdertoSalesOrderDTO(data);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("ERROR APIGATEWAY MANAGEPARTSALES ==> " + e.getMessage());
}
return dto;
}
public List<SalesOrderDTO> getSalesOrderByRangeAndDealerID(Date from, Date to, String ahassCode) {
List<SalesOrder> datas;
SalesOrderDTO dto = new SalesOrderDTO();
List<SalesOrderDTO> dtos = new ArrayList<>();
try {
datas = salesOrderRepository.getSalesOrderByRangeAndDealerIDWithoutStatus(from, to, ahassCode);
if (datas == null) {
return dtos;
} else {
for (SalesOrder loopSO : datas) {
dto = salesOrdertoSalesOrderDTO(loopSO);
dtos.add(dto);
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("ERROR APIGATEWAY MANAGEPARTSALES ==> " + e.getMessage());
}
return dtos;
}
public SalesOrderDTO salesOrdertoSalesOrderDTO(SalesOrder domainObject) {
SalesOrderDTO dto = new SalesOrderDTO();
dto.setSalesOrderCreational(domainObject.getSalesOrderCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getSalesOrderCreational()));
dto.setSalesOrderLastKnownState(domainObject.getSalesOrderLastKnownState());
dto.setSalesOrderLastKnownStatus(domainObject.getSalesOrderLastKnownStatus());
dto.setSalesOrderType(domainObject.getSalesOrderType());
dto.setTotal(domainObject.getTotal());
dto.setDp(domainObject.getDp());
dto.setPoCustomerID(domainObject.getPoCustomerID());
dto.setSalesOrderDate(domainObject.getSalesOrderDate());
dto.setSalesOrderDetailDTOs(domainObject.getSalesOrderDetails() == null ? new ArrayList<>() : new SalesOrderDetailAssembler().toDTOs(domainObject.getSalesOrderDetails()));
dto.setSalesOrderID(domainObject.getSalesOrderID());
dto.setSalesOrderStatus(domainObject.getSalesOrderStatus());
dto.setNoNotaPenjualan(domainObject.getNoNotaPenjualan());
dto.setAhassCode(domainObject.getAhassCode());
dto.setOrderSource(domainObject.getOrderSource());
dto.setWorkOrderID(domainObject.getWorkOrderID());
dto.setSalesPackage(domainObject.getSalesPackage() == null ? Boolean.TRUE : domainObject.getSalesPackage());
dto.setVersion(domainObject.getVersion());
return dto;
}
}
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.DPHLOPullDetailDTO;
import com.eksad.masterdata.common.dto.DPHLOPullHeaderDTO;
import com.eksad.masterdata.common.dto.DPHLOTempDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponseDPHLOPullDTO;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.transaction.Transactional;
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.*;
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;
@Transactional
@Repository
public class DPHLOPullRepositoryImpl implements DPHLOPullRespository {
ResponseDPHLOPullDTO responseDPHLOPullDTO = new ResponseDPHLOPullDTO();
DPHLOPullHeaderDTO headerDTO = new DPHLOPullHeaderDTO();
List<DPHLOPullHeaderDTO> headerDTOs = new ArrayList<>();
List<DPHLOPullHeaderDTO> headerDTOsTemp = new ArrayList<>();
List<DPHLOPullDetailDTO> detailDTOs = new ArrayList<>();
DPHLOPullDetailDTO detailDTO = new DPHLOPullDetailDTO();
DPHLOTempDTO dphloTempDTO = new DPHLOTempDTO();
List<DPHLOTempDTO> dphloTempDTOs = new ArrayList<>();
@PersistenceContext
private EntityManager entity;
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;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByWONumber(String woNumber) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbywoid (?) ");
statement.setString(1, woNumber);
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate(result.getString("createdTime")));
headerDTO.setDealerId(result.getString("dealerId"));
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(result.getString("tanggalpemesananhlo"));
dphloTempDTO.setCreatedTime(formatDate(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPUllByPONumber(String poNumber) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyponumber (?) ");
statement.setString(1, poNumber);
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate(result.getString("createdTime")));
headerDTO.setDealerId(result.getString("dealerId"));
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(result.getString("tanggalpemesananhlo"));
dphloTempDTO.setCreatedTime(formatDate(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
private DPHLOPullDetailDTO tempToDetail(DPHLOTempDTO dto) {
DPHLOPullDetailDTO detailPullDTO = new DPHLOPullDetailDTO();
detailPullDTO.setCreatedTime(dto.getCreatedTime());
detailPullDTO.setHargaParts(dto.getHargaParts());
detailPullDTO.setKuantitas(dto.getKuantitas());
detailPullDTO.setModifiedTime(dto.getModifiedTime());
detailPullDTO.setPartsNumber(dto.getPartsNumber());
detailPullDTO.setSisaBayar(dto.getSisaBayar());
detailPullDTO.setTotalHargaParts(dto.getTotalHargaParts());
detailPullDTO.setUangMuka(dto.getUangMuka());
return detailPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByRangeDate(String ahmCode, String fromTime, String toTime, String ahassCode) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyrangedate (? , ? , ?) ");
statement.setTimestamp(1, Timestamp.valueOf(fromTime));
statement.setTimestamp(2, Timestamp.valueOf(toTime));
statement.setString(3, ahassCode);
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(ahmCode);
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(formatDateString(result.getString("tanggalpemesananhlo")));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Terjadi Kesalahan");
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (headerDTOsTemp.isEmpty()) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Data tidak ditemukan");
} else {
responseDPHLOPullDTO.setStatus(1);
responseDPHLOPullDTO.setMessage(null);
}
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
//
public Date formatDate(String date) throws ParseException {
DateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date newDate = dateFormat.parse(date);
return newDate;
}
public String formatDateString(String date) throws ParseException {
DateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date newDate = outFormat.parse(date);
String formatString = dateFormat.format(newDate);
return formatString;
}
public Date formatDate24Hour(String date) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date newDate = dateFormat.parse(date);
return newDate;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByAll(String woNumber, String poNumber) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyall (?,?) ");
statement.setString(1, poNumber);
statement.setString(2, woNumber);
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(result.getString("dealerId"));
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(result.getString("tanggalpemesananhlo"));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByAllSO(String woNumber, String poNumber) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyallso (?,?) ");
statement.setString(1, poNumber);
statement.setString(2, woNumber);
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate(result.getString("createdTime")));
headerDTO.setDealerId(result.getString("dealerId"));
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(result.getString("tanggalpemesananhlo"));
dphloTempDTO.setCreatedTime(formatDate(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByRangeDateSO(String ahmCode, String woNumber, String fromTime, String toTime, String ahassCode) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyrangedateso (? , ? , ?) ");
statement.setString(1, woNumber);
statement.setTimestamp(2, Timestamp.valueOf(fromTime));
statement.setTimestamp(3, Timestamp.valueOf(toTime));
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(ahassCode);
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(formatDateString(result.getString("tanggalpemesananhlo")));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Terjadi Kesalahan");
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (headerDTOsTemp.isEmpty()) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Data tidak ditemukan");
} else {
responseDPHLOPullDTO.setStatus(1);
responseDPHLOPullDTO.setMessage(null);
}
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByRangeDateWO(String ahmCode, String woNumber, String fromTime, String toTime, String ahassCode) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyrangedatewo (? , ? , ?) ");
statement.setString(1, woNumber);
statement.setTimestamp(2, Timestamp.valueOf(fromTime));
statement.setTimestamp(3, Timestamp.valueOf(toTime));
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(ahmCode);
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(formatDateString(result.getString("tanggalpemesananhlo")));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Terjadi Kesalahan");
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (headerDTOsTemp.isEmpty()) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Data tidak ditemukan");
} else {
responseDPHLOPullDTO.setStatus(1);
responseDPHLOPullDTO.setMessage(null);
}
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByRangeDatePOWO(String ahmCode, String poNumber, String woNumber, String fromTime, String toTime, String ahassCode) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyrangedatepowo (? , ? , ? , ?) ");
statement.setString(1, woNumber);
statement.setString(2, poNumber);
statement.setTimestamp(3, Timestamp.valueOf(fromTime));
statement.setTimestamp(4, Timestamp.valueOf(toTime));
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(ahmCode);
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(formatDateString(result.getString("tanggalpemesananhlo")));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Terjadi Kesalahan");
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (headerDTOsTemp.isEmpty()) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Data tidak ditemukan");
} else {
responseDPHLOPullDTO.setStatus(1);
responseDPHLOPullDTO.setMessage(null);
}
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByRangeDatePOSO(String ahmCode, String poNumber, String woNumber, String fromTime, String toTime, String ahassCode) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyrangedateposo (? , ? , ? , ?) ");
statement.setString(1, woNumber);
statement.setString(2, poNumber);
statement.setTimestamp(3, Timestamp.valueOf(fromTime));
statement.setTimestamp(4, Timestamp.valueOf(toTime));
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(ahmCode);
headerDTO.setIdCustomer(result.getString("idcustomer"));
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(formatDateString(result.getString("tanggalpemesananhlo")));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Terjadi kesalahan");
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (headerDTOsTemp.isEmpty()) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Data tidak ditemukan");
} else {
responseDPHLOPullDTO.setStatus(1);
responseDPHLOPullDTO.setMessage(null);
}
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
@Override
public ResponseDPHLOPullDTO getDPHLOPullByRangeDatePO(String ahmCode, String poNumber, String fromTime, String toTime, String ahassCode) {
headerDTOs = new ArrayList<>();
headerDTOsTemp = new ArrayList<>();
detailDTOs = new ArrayList<>();
dphloTempDTOs = 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 dphlopullbyrangedatepo (? , ? , ?) ");
statement.setString(1, poNumber);
statement.setTimestamp(2, Timestamp.valueOf(fromTime));
statement.setTimestamp(3, Timestamp.valueOf(toTime));
ResultSet result = statement.executeQuery();
while (result.next()) {
try {
headerDTO = new DPHLOPullHeaderDTO();
dphloTempDTO = new DPHLOTempDTO();
headerDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
headerDTO.setDealerId(ahmCode);
headerDTO.setIdCustomer(result.getString("idcustomer").toUpperCase());
headerDTO.setIdHLODocument(result.getString("ponumber"));
headerDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
headerDTO.setNoInvoiceUangJaminan(result.getString("noinvoice"));
headerDTO.setNoWorkOrder(result.getString("nowo"));
headerDTO.setTanggalPemesananHLO(formatDateString(result.getString("tanggalpemesananhlo")));
dphloTempDTO.setCreatedTime(formatDate24Hour(result.getString("createdTime")));
dphloTempDTO.setHargaParts(result.getInt("hargapart"));
dphloTempDTO.setKuantitas(result.getInt("kuantitas"));
dphloTempDTO.setModifiedTime(formatDate24Hour(result.getString("modifiedtime")));
dphloTempDTO.setPartsNumber(result.getString("partid"));
dphloTempDTO.setPoNumber((result.getString("ponumber")));
dphloTempDTO.setTotalHargaParts(result.getInt("totalhargapart"));
dphloTempDTO.setSisaBayar(getRoundingHalfDown(result.getDouble("sisabayar")));
dphloTempDTO.setUangMuka(getRoundingHalfDown(result.getDouble("uangmuka")));
dphloTempDTOs.add(dphloTempDTO);
headerDTOsTemp.add(headerDTO);
} catch (ParseException ex) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Terjadi Kesalahan");
Logger.getLogger(DPHLOPullRepositoryImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
// statement.close();
// connection.close();
}
});
if (headerDTOsTemp.isEmpty()) {
responseDPHLOPullDTO.setStatus(0);
responseDPHLOPullDTO.setMessage("Data tidak ditemukan");
} else {
responseDPHLOPullDTO.setStatus(1);
responseDPHLOPullDTO.setMessage(null);
}
if (!headerDTOsTemp.isEmpty() && !dphloTempDTOs.isEmpty()) {
detailDTOs = new ArrayList<>();
headerDTOs = new ArrayList<>();
headerDTOs = headerDTOsTemp.stream().filter(distinctByKey(p -> p.getIdHLODocument())).collect(Collectors.toList());
for (DPHLOPullHeaderDTO loopHeader : headerDTOs) {
for (DPHLOTempDTO loopTempDTO : dphloTempDTOs) {
if (loopHeader.getIdHLODocument().equalsIgnoreCase(loopTempDTO.getPoNumber())) {
detailDTO = new DPHLOPullDetailDTO();
detailDTO = tempToDetail(loopTempDTO);
detailDTOs.add(detailDTO);
}
}
loopHeader.setParts(detailDTOs);
detailDTOs = new ArrayList<>();
}
}
// session.close();
// entity.close();
responseDPHLOPullDTO.setData(headerDTOs);
return responseDPHLOPullDTO;
}
private static Integer getRoundingHalfDown(Double num) {
if (num == null) return 0;
BigDecimal bd = new BigDecimal(num).setScale(0, RoundingMode.HALF_DOWN);
return bd.intValue();
}
}
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; ...@@ -4,8 +4,18 @@ import com.eksad.masterdata.domain.SalesOrder;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import java.util.Date;
import java.util.List;
public interface SalesOrderRepository extends GenericRepository<SalesOrder> { public interface SalesOrderRepository extends GenericRepository<SalesOrder> {
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderID=:soID") @Query("SELECT so FROM SalesOrder so WHERE so.salesOrderID=:soID")
SalesOrder findOneBySalesOrderID(@Param("soID") String salesOrderID); 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.repository;
import com.eksad.ddms.common.util.StringUtil;
import com.eksad.masterdata.domain.UnpaidHLODetail;
import com.eksad.masterdata.domain.UnpaidHLOHeader;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.transaction.Transactional;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.jdbc.Work;
import org.springframework.stereotype.Repository;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
@Repository
@Transactional
public class UnpaidHLORepository {
@PersistenceContext
EntityManager entityManager;
public List<UnpaidHLOHeader> getListUnpaidHloByRangeDate(String startDate, String endDate, String ahassID) {
try {
List<UnpaidHLOHeader> list = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection cnctn) throws SQLException {
String query = "SELECT * FROM get_unpaidhlo_by_range_createdat(?,?,?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setTimestamp(1, Timestamp.valueOf(startDate));
ps.setTimestamp(2, Timestamp.valueOf(endDate));
if (StringUtil.hasValue(ahassID)) {
ps.setString(3, ahassID);
} else {
ps.setString(3, null);
}
ResultSet rs = ps.executeQuery();
while (rs.next()) {
UnpaidHLOHeader data = new UnpaidHLOHeader();
data.setPoDealerID(rs.getInt("id"));
data.setIdHLODocument(rs.getString("ponumber"));
data.setTanggalPemesananHLO(rs.getTimestamp("podate"));
data.setNoWorkOrder(rs.getString("soid"));
data.setNoBukuClaimC2(rs.getString("nobukuc2"));
data.setNoKTP(rs.getString("noktp"));
data.setNamaCustomer(rs.getString("custname"));
data.setAlamat(rs.getString("customeraddress"));
data.setKodePos(rs.getString("customerpostalcode"));
data.setNoKontak(rs.getString("customerphone"));
data.setKodeTipeUnit(rs.getString("motortype"));
data.setTahunMotor(rs.getString("assemblyyear"));
data.setNoMesin(rs.getString("machinenumber"));
data.setVehicleOffRoad(rs.getString("isvor"));
data.setJobReturn(rs.getString("isjobreturn"));
data.setDealerId(rs.getString("dealerid"));
data.setCreatedTime(rs.getTimestamp("createdat"));
data.setModifiedTime(rs.getTimestamp("modifiedat"));
data.setKodePropinsi(rs.getString("provinceid"));
data.setKodeKota(rs.getString("kabkotid"));
data.setKodeKecamatan(rs.getString("kecamatanid"));
data.setKodeKelurahan(rs.getString("kelurahanid"));
data.setNoRangka(rs.getString("norangka"));
data.setFlagNumbering(rs.getBoolean("flagnumbering") ? "1" : "0");
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
public List<UnpaidHLOHeader> getUnpaidHloByPoNumber(String poNumber, String soNumber) {
try {
List<UnpaidHLOHeader> list = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection cnctn) throws SQLException {
String query = "SELECT * FROM get_unpaidhlo_by_ponumber(?, ?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setString(1, poNumber);
ps.setString(2, soNumber);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
UnpaidHLOHeader data = new UnpaidHLOHeader();
data.setPoDealerID(rs.getInt("id"));
data.setIdHLODocument(rs.getString("ponumber"));
data.setTanggalPemesananHLO(rs.getTimestamp("podate"));
data.setNoWorkOrder(rs.getString("soid"));
data.setNoBukuClaimC2(rs.getString("nobukuc2"));
data.setNoKTP(rs.getString("noktp"));
data.setNamaCustomer(rs.getString("custname"));
data.setAlamat(rs.getString("customeraddress"));
data.setKodePos(rs.getString("customerpostalcode"));
data.setNoKontak(rs.getString("customerphone"));
data.setKodeTipeUnit(rs.getString("motortype"));
data.setTahunMotor(rs.getString("assemblyyear"));
data.setNoMesin(rs.getString("machinenumber"));
data.setVehicleOffRoad(rs.getString("isvor"));
data.setJobReturn(rs.getString("isjobreturn"));
data.setDealerId(rs.getString("dealerid"));
data.setCreatedTime(rs.getTimestamp("createdat"));
data.setModifiedTime(rs.getTimestamp("modifiedat"));
data.setKodePropinsi(rs.getString("provinceid"));
data.setKodeKota(rs.getString("kabkotid"));
data.setKodeKecamatan(rs.getString("kecamatanid"));
data.setKodeKelurahan(rs.getString("kelurahanid"));
data.setNoRangka(rs.getString("norangka"));
data.setFlagNumbering(rs.getBoolean("flagnumbering") ? "1" : "0");
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
public List<UnpaidHLOHeader> getUnpaidHloBySoNumber(String soNumber) {
try {
List<UnpaidHLOHeader> list = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection cnctn) throws SQLException {
String query = "SELECT * FROM get_unpaidhlo_by_sonumber(?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setString(1, soNumber);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
UnpaidHLOHeader data = new UnpaidHLOHeader();
data.setPoDealerID(rs.getInt("id"));
data.setIdHLODocument(rs.getString("ponumber"));
data.setTanggalPemesananHLO(rs.getTimestamp("podate"));
data.setNoWorkOrder(rs.getString("soid"));
data.setNoBukuClaimC2(rs.getString("nobukuc2"));
data.setNoKTP(rs.getString("noktp"));
data.setNamaCustomer(rs.getString("custname"));
data.setAlamat(rs.getString("customeraddress"));
data.setKodePos(rs.getString("customerpostalcode"));
data.setNoKontak(rs.getString("customerphone"));
data.setKodeTipeUnit(rs.getString("motortype"));
data.setTahunMotor(rs.getString("assemblyyear"));
data.setNoMesin(rs.getString("machinenumber"));
data.setVehicleOffRoad(rs.getString("isvor"));
data.setJobReturn(rs.getString("isjobreturn"));
data.setDealerId(rs.getString("dealerid"));
data.setCreatedTime(rs.getTimestamp("createdat"));
data.setModifiedTime(rs.getTimestamp("modifiedat"));
data.setKodePropinsi(rs.getString("provinceid"));
data.setKodeKota(rs.getString("kabkotid"));
data.setKodeKecamatan(rs.getString("kecamatanid"));
data.setKodeKelurahan(rs.getString("kelurahanid"));
data.setNoRangka(rs.getString("norangka"));
data.setFlagNumbering(rs.getBoolean("flagnumbering") ? "1" : "0");
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
public List<UnpaidHLODetail> getDetailListUnpaidHloByRangeDate(String startDate, String endDate, String ahassID) {
try {
List<UnpaidHLODetail> list = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection cnctn) throws SQLException {
String query = "SELECT * FROM get_detail_unpaidhlo_by_range_createdat(?,?,?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setTimestamp(1, Timestamp.valueOf(startDate));
ps.setTimestamp(2, Timestamp.valueOf(endDate));
if (StringUtil.hasValue(ahassID)) {
ps.setString(3, ahassID);
} else {
ps.setString(3, null);
}
ResultSet rs = ps.executeQuery();
while (rs.next()) {
UnpaidHLODetail data = new UnpaidHLODetail();
data.setPartsNumber(rs.getString("partid"));
data.setKuantitas(rs.getInt("quantity"));
data.setHargaParts(rs.getBigDecimal("price") == null ? 0 : rs.getBigDecimal("price").intValue());
data.setTotalHargaParts(rs.getBigDecimal("total") == null ? 0 : rs.getBigDecimal("total").intValue());
data.setUangMuka(rs.getDouble("uangmuka"));
data.setSisaBayar(rs.getDouble("sisabayar"));
data.setPoDealerID(rs.getInt("podealerid"));
data.setCreatedTime(rs.getTimestamp("createdat"));
data.setModifiedTime(rs.getTimestamp("modifiedat"));
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
public List<UnpaidHLODetail> getDetailUnpaidHloByPoNumber(String poNumber, String soNumber) {
try {
List<UnpaidHLODetail> list = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection cnctn) throws SQLException {
String query = "SELECT * FROM get_detail_unpaidhlo_by_ponumber(?, ?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setString(1, poNumber);
ps.setString(2, soNumber);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
UnpaidHLODetail data = new UnpaidHLODetail();
data.setPartsNumber(rs.getString("partid"));
data.setKuantitas(rs.getInt("quantity"));
data.setHargaParts(rs.getBigDecimal("price") == null ? 0 : rs.getBigDecimal("price").intValue());
data.setTotalHargaParts(rs.getBigDecimal("total") == null ? 0 : rs.getBigDecimal("total").intValue());
data.setUangMuka(rs.getDouble("uangmuka"));
data.setSisaBayar(rs.getDouble("sisabayar"));
data.setPoDealerID(rs.getInt("podealerid"));
data.setCreatedTime(rs.getTimestamp("createdat"));
data.setModifiedTime(rs.getTimestamp("modifiedat"));
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
public List<UnpaidHLODetail> getDetailUnpaidHloBySoNumber(String soNumber) {
try {
List<UnpaidHLODetail> list = new ArrayList<>();
Session session = entityManager.unwrap(Session.class);
session.doWork(new Work() {
@Override
public void execute(Connection cnctn) throws SQLException {
String query = "SELECT * FROM get_detail_unpaidhlo_by_sonumber(?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setString(1, soNumber);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
UnpaidHLODetail data = new UnpaidHLODetail();
data.setPartsNumber(rs.getString("partid"));
data.setKuantitas(rs.getInt("quantity"));
data.setHargaParts(rs.getBigDecimal("price") == null ? 0 : rs.getBigDecimal("price").intValue());
data.setTotalHargaParts(rs.getBigDecimal("total") == null ? 0 : rs.getBigDecimal("total").intValue());
data.setUangMuka(rs.getDouble("uangmuka"));
data.setSisaBayar(rs.getDouble("sisabayar"));
data.setPoDealerID(rs.getInt("podealerid"));
data.setCreatedTime(rs.getTimestamp("createdat"));
data.setModifiedTime(rs.getTimestamp("modifiedat"));
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
}
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 ...@@ -33,4 +33,9 @@ ddms.auth.token=Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRht
#spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer #spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
# #
## Kafka Topic Name ## Kafka Topic Name
#kafka.topic.name=pipeline-topic #kafka.topic.name=pipeline-topic
\ No newline at end of file
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 ...@@ -33,4 +33,9 @@ ddms.auth.token=Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRht
#spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer #spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
# #
## Kafka Topic Name ## Kafka Topic Name
#kafka.topic.name=pipeline-topic #kafka.topic.name=pipeline-topic
\ No newline at end of file
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
com\eksad\masterdata\common\listEnum\SalesOrderSourceType.class com\eksad\masterdata\common\dto\ParamDPHLODetailDTO.class
com\eksad\masterdata\common\listEnum\SalesOrderStatus.class com\eksad\masterdata\repository\ManagePartSalesRepository.class
com\eksad\masterdata\domain\MstWo.class com\eksad\masterdata\common\dto\ParamManageSalesDTO.class
com\eksad\masterdata\domain\assembler\SalesOrderAssembler.class
com\eksad\masterdata\model\Role.class com\eksad\masterdata\model\Role.class
com\eksad\masterdata\repository\GenericRepository.class com\eksad\masterdata\controller\UnpaidHLORestController.class
com\eksad\masterdata\common\ResponseSalesOrderGetDTO.class com\eksad\masterdata\controller\DPHLORestController$1.class
com\eksad\masterdata\common\dto\SalesOrderDTO.class com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$7.class
com\eksad\masterdata\domain\SalesOrder.class com\eksad\masterdata\common\listEnum\PaymentType.class
com\eksad\masterdata\common\LogResponseDTO.class com\eksad\masterdata\common\LogResponseDTO.class
com\eksad\masterdata\domain\CreationalSpecification.class com\eksad\masterdata\repository\UnpaidHLORepository$5.class
com\eksad\masterdata\domain\UnpaidHLODetail.class
com\eksad\masterdata\common\dto\POCustomerDTO.class
com\eksad\masterdata\WebApplication.class com\eksad\masterdata\WebApplication.class
com\eksad\masterdata\common\listEnum\SalesOrderType.class com\eksad\masterdata\common\listEnum\SalesOrderType.class
com\eksad\masterdata\service\UserDetailsServiceImp.class com\eksad\masterdata\common\dto\ReceiptSOBankCreateCommandDTO.class
com\eksad\masterdata\event\KafkaEvent.class com\eksad\masterdata\common\dto\responseDto\ResponseDPHLOTempDTO.class
com\eksad\masterdata\common\LogOpsDTO.class com\eksad\masterdata\controller\DPHLOPullRestController$1.class
com\eksad\masterdata\common\dto\SalesOrderDetailDTO.class com\eksad\masterdata\common\dto\DPHLOPullParamDTO.class
com\eksad\masterdata\service\ProcessHelperService.class
com\eksad\masterdata\common\CreationalSpecificationBuilder.class
com\eksad\masterdata\domain\SalesOrderDetail.class com\eksad\masterdata\domain\SalesOrderDetail.class
com\eksad\masterdata\service\WOService.class
com\eksad\masterdata\domain\assembler\CreationalSpecificationDTOAssembler.class com\eksad\masterdata\domain\assembler\CreationalSpecificationDTOAssembler.class
com\eksad\masterdata\model\User.class com\eksad\masterdata\common\dto\responseDto\ResponsePODealerGetDTO.class
com\eksad\masterdata\common\ResponseStatus.class com\eksad\masterdata\repository\UnpaidHLORepository$2.class
com\eksad\masterdata\common\Constants$Login.class com\eksad\masterdata\common\Constants$Login.class
com\eksad\masterdata\common\dto\ReceiptSOTunaiChangeCommandDTO.class
com\eksad\masterdata\common\listEnum\ReceiptCategory.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$4.class
com\eksad\masterdata\common\LogOpsUtil.class
com\eksad\masterdata\controller\SalesOrderRESTController.class
com\eksad\masterdata\common\dto\DPHLOPullDetailDTO.class
com\eksad\masterdata\common\dto\ReceivingManagePartsInboundDTO.class
com\eksad\masterdata\common\listEnum\SalesOrderState.class
com\eksad\masterdata\domain\ParamDPHLOJSON.class
com\eksad\masterdata\repository\UnpaidHLORepository$3.class
com\eksad\masterdata\common\dto\DealerSiteCreationalDTO.class
com\eksad\masterdata\common\listEnum\SalesOrderStatus.class
com\eksad\masterdata\repository\GenericRepository.class
com\eksad\masterdata\controller\ManagePartsInboundRestController$1.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$10.class
com\eksad\masterdata\common\dto\HeaderSOManagePartSalesDTO.class
com\eksad\masterdata\domain\SalesOrder.class
com\eksad\masterdata\common\dto\ConfigurationDTO.class
com\eksad\masterdata\common\dto\PODealerDetailDTO.class
com\eksad\masterdata\domain\UnpaidHLOHeader.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$9.class
com\eksad\masterdata\domain\ParamManagePartSalesJSON.class
com\eksad\masterdata\common\dto\responseDto\ResponseManagePartsInboundDTO.class
com\eksad\masterdata\common\dto\ResponseReceiptSOTaskGetListDTO.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$1.class
com\eksad\masterdata\service\ProcessHelperService.class
com\eksad\masterdata\service\WOService.class
com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullHeaderResponseDTO.class
com\eksad\masterdata\common\dto\CreationalSpecificationDTO.class com\eksad\masterdata\common\dto\CreationalSpecificationDTO.class
com\eksad\masterdata\repository\ParamDPHLOJSONRepository.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$8.class
com\eksad\masterdata\repository\BizparRepository.class
com\eksad\masterdata\common\dto\UnpaidDPHLOPullParamDTO.class
com\eksad\masterdata\config\SecurityConfig.class
com\eksad\masterdata\common\listEnum\PurchaseOrderType.class
com\eksad\masterdata\common\GenericResponseDTO.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$2.class
com\eksad\masterdata\common\DateUtils.class
com\eksad\masterdata\common\listEnum\SalesOrderSourceType.class
com\eksad\masterdata\controller\ManagePartSalesRestController$1.class
com\eksad\masterdata\domain\MstWo.class
com\eksad\masterdata\controller\ManagePartsInboundRestController.class
com\eksad\masterdata\common\dto\DetailSOManagePartSalesDTO.class
com\eksad\masterdata\common\dto\PartsManageSalesDetailTempDTO.class
com\eksad\masterdata\repository\UnpaidHLORepository.class
com\eksad\masterdata\repository\UnpaidHLORepository$1.class
com\eksad\masterdata\common\dto\responseDto\ResponseManagePartSalesDTO.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$3.class
com\eksad\masterdata\common\dto\responseDto\ResponseConfigurationGetDTO.class
com\eksad\masterdata\event\KafkaEvent.class
com\eksad\masterdata\common\dto\SalesOrderDetailDTO.class
com\eksad\masterdata\repository\ParamManagePartSalesJSONRepository.class
com\eksad\masterdata\common\listEnum\ReceiptType.class
com\eksad\masterdata\common\dto\DPHLOTempDTO.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$6.class
com\eksad\masterdata\common\dto\responseDto\ResponseDPHLODTO.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl.class
com\eksad\masterdata\repository\UnpaidHLORepository$4.class
com\eksad\masterdata\common\StringUtil.class com\eksad\masterdata\common\StringUtil.class
com\eksad\masterdata\common\listEnum\ReceiptStatus.class
com\eksad\masterdata\controller\SampleMasterdataWoController.class com\eksad\masterdata\controller\SampleMasterdataWoController.class
com\eksad\masterdata\common\LogOpsUtil.class com\eksad\masterdata\common\dto\DealerCodeDTO.class
com\eksad\masterdata\repository\BizparRepository.class
com\eksad\masterdata\controller\SalesOrderRESTController.class
com\eksad\masterdata\domain\TrxBizpar.class com\eksad\masterdata\domain\TrxBizpar.class
com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullPartResponseDTO.class
com\eksad\masterdata\controller\DPHLOPullRestController.class
com\eksad\masterdata\common\dto\PartsManageInboundDetailTempDTO.class
com\eksad\masterdata\common\Constants.class
com\eksad\masterdata\common\dto\POCustomerDetailDTO.class
com\eksad\masterdata\controller\ManagePartSalesRestController.class
com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullResponseDTO.class
com\eksad\masterdata\common\dto\responseDto\ResponseDPHLOPullDTO.class
com\eksad\masterdata\domain\assembler\SalesOrderAssembler.class
com\eksad\masterdata\common\ResponseSalesOrderGetDTO.class
com\eksad\masterdata\common\dto\SalesOrderDTO.class
com\eksad\masterdata\common\dto\DPHLOPullHeaderDTO.class
com\eksad\masterdata\common\dto\ParamDPHLODTO.class
com\eksad\masterdata\common\dto\PartsManageInboundParamDTO.class
com\eksad\masterdata\domain\CreationalSpecification.class
com\eksad\masterdata\service\UserDetailsServiceImp.class
com\eksad\masterdata\repository\ManagePartsInbounRepositoryImpl$1.class
com\eksad\masterdata\common\LogOpsDTO.class
com\eksad\masterdata\common\dto\responseDto\ResponseMessageDPHLODTO.class
com\eksad\masterdata\repository\ManagePartSalesRepositoryImpl$1.class
com\eksad\masterdata\domain\PartManageInboundParamJSON.class
com\eksad\masterdata\common\CreationalSpecificationBuilder.class
com\eksad\masterdata\repository\DPHLOPullRespository.class
com\eksad\masterdata\service\UnpaidHLOHystrixService.class
com\eksad\masterdata\model\User.class
com\eksad\masterdata\common\ResponseStatus.class
com\eksad\masterdata\common\dto\CustomerDTO.class
com\eksad\masterdata\common\listEnum\LastKnownState.class
com\eksad\masterdata\common\dto\POManagePartsInboundDTO.class
com\eksad\masterdata\common\dto\ReceiptSOTaskDTO.class
com\eksad\masterdata\repository\UnpaidHLORepository$6.class
com\eksad\masterdata\controller\DPHLORestController.class
com\eksad\masterdata\common\listEnum\ReceiptKind.class
com\eksad\masterdata\common\ProjectType.class com\eksad\masterdata\common\ProjectType.class
com\eksad\masterdata\config\SecurityConfig.class com\eksad\masterdata\common\dto\PODealerDTO.class
com\eksad\masterdata\common\GenericResponseDTO.class com\eksad\masterdata\repository\ManagePartsInbounRepository.class
com\eksad\masterdata\repository\PartManageInboundRepository.class
com\eksad\masterdata\repository\WoRepository.class com\eksad\masterdata\repository\WoRepository.class
com\eksad\masterdata\common\Constants.class com\eksad\masterdata\repository\ManagePartSalesRepositoryImpl.class
com\eksad\masterdata\common\listEnum\SalesOrderState.class
com\eksad\masterdata\common\DateUtils.class
com\eksad\masterdata\config\JwtAuthenticationFilter.class com\eksad\masterdata\config\JwtAuthenticationFilter.class
com\eksad\masterdata\repository\SalesOrderRepository.class com\eksad\masterdata\repository\SalesOrderRepository.class
com\eksad\masterdata\domain\assembler\SalesOrderDetailAssembler.class com\eksad\masterdata\domain\assembler\SalesOrderDetailAssembler.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$5.class
com\eksad\masterdata\repository\ManagePartsInbounRepositoryImpl.class
com\eksad\masterdata\service\KafkaProducerService.class com\eksad\masterdata\service\KafkaProducerService.class
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\Constants.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\Constants.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\CreationalSpecificationBuilder.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\CreationalSpecificationBuilder.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\DateUtils.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\DateUtils.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ConfigurationDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\CreationalSpecificationDTO.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\CreationalSpecificationDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\CustomerDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DealerCodeDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DealerSiteCreationalDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DetailSOManagePartSalesDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DPHLOPullDetailDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DPHLOPullHeaderDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DPHLOPullParamDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\DPHLOTempDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\HeaderSOManagePartSalesDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ParamDPHLODetailDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ParamDPHLODTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ParamManageSalesDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PartsManageInboundDetailTempDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PartsManageInboundParamDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PartsManageSalesDetailTempDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\POCustomerDetailDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\POCustomerDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PODealerDetailDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PODealerDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\POManagePartsInboundDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ReceiptSOBankCreateCommandDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ReceiptSOTaskDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ReceiptSOTunaiChangeCommandDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ReceivingManagePartsInboundDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseConfigurationGetDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseDPHLODTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseDPHLOPullDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseDPHLOTempDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseManagePartSalesDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseManagePartsInboundDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponseMessageDPHLODTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponsePODealerGetDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullHeaderResponseDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullPartResponseDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullResponseDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\ResponseReceiptSOTaskGetListDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\SalesOrderDetailDTO.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\SalesOrderDetailDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\SalesOrderDTO.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\SalesOrderDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\UnpaidDPHLOPullParamDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\GenericResponseDTO.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\GenericResponseDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\LastKnownState.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\PaymentType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\PurchaseOrderType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\ReceiptCategory.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\ReceiptKind.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\ReceiptStatus.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\ReceiptType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\SalesOrderSourceType.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\SalesOrderSourceType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\SalesOrderState.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\SalesOrderState.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\SalesOrderStatus.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\SalesOrderStatus.java
...@@ -18,25 +63,46 @@ C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\c ...@@ -18,25 +63,46 @@ C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\c
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\StringUtil.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\StringUtil.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\config\JwtAuthenticationFilter.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\config\JwtAuthenticationFilter.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\config\SecurityConfig.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\config\SecurityConfig.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\DPHLOPullRestController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\DPHLORestController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\ManagePartSalesRestController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\ManagePartsInboundRestController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\SalesOrderRESTController.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\SalesOrderRESTController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\SampleMasterdataWoController.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\SampleMasterdataWoController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\UnpaidHLORestController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\CreationalSpecificationDTOAssembler.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\CreationalSpecificationDTOAssembler.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\SalesOrderAssembler.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\SalesOrderAssembler.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\SalesOrderDetailAssembler.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\SalesOrderDetailAssembler.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\CreationalSpecification.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\CreationalSpecification.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\MstWo.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\MstWo.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\ParamDPHLOJSON.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\ParamManagePartSalesJSON.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\PartManageInboundParamJSON.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\SalesOrder.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\SalesOrder.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\SalesOrderDetail.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\SalesOrderDetail.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\TrxBizpar.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\TrxBizpar.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\UnpaidHLODetail.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\UnpaidHLOHeader.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\event\KafkaEvent.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\event\KafkaEvent.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\model\Role.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\model\Role.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\model\User.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\model\User.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\BizparRepository.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\BizparRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\DPHLOPullRepositoryImpl.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\DPHLOPullRespository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\GenericRepository.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\GenericRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\ManagePartSalesRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\ManagePartSalesRepositoryImpl.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\ManagePartsInbounRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\ManagePartsInbounRepositoryImpl.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\ParamDPHLOJSONRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\ParamManagePartSalesJSONRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\PartManageInboundRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\SalesOrderRepository.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\SalesOrderRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\UnpaidHLORepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\WoRepository.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\WoRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\KafkaProducerService.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\KafkaProducerService.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\ProcessHelperService.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\ProcessHelperService.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\UnpaidHLOHystrixService.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\UserDetailsServiceImp.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\UserDetailsServiceImp.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\WOService.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\WOService.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\WebApplication.java C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\WebApplication.java
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