Commit a2191649 authored by Arie Valdano's avatar Arie Valdano

Merge branch 'DEV/Akbar/master-h3-slave' into 'master'

Dev/akbar/master h3 slave

See merge request !1
parents 49bdff81 5288becb
*.class
*/target/**
*.swp
application.properties
/target/
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="dataSourceStorageLocal" created-in="IU-211.7628.21" />
</project>
\ No newline at end of file
<component name="libraryTable">
<library name="ddms-cust-purch-domain-1.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/eksad/ddms/ddms-cust-purch-domain/1.0-SNAPSHOT/ddms-cust-purch-domain-1.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
\ No newline at end of file
<component name="libraryTable">
<library name="ddms-cust-purch-dto-1.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/eksad/ddms/ddms-cust-purch-dto/1.0-SNAPSHOT/ddms-cust-purch-dto-1.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>
\ No newline at end of file
......@@ -19,5 +19,5 @@
</profile-state>
</entry>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="temurin-17" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="17" project-jdk-type="JavaSDK" />
</project>
\ No newline at end of file
<?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
......@@ -80,6 +80,46 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-javanica</artifactId>
<version>1.5.12</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.eksad.ddms</groupId>
<artifactId>ddms-common</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.eksad.ddms</groupId>
<artifactId>ddms-common-util</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.eksad.ddms</groupId>
<artifactId>ddms-cust-purch-domain</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.eksad.ddms</groupId>
<artifactId>ddms-cust-purch-dto</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
......
package com.eksad.masterdata.common;
import com.eksad.masterdata.domain.CreationalSpecification;
import java.util.Date;
public class CreationalSpecificationBuilder {
private Date createdAt;
private String createdBy;
private Date modifiedAt;
private String modifiedBy;
public CreationalSpecificationBuilder() {
}
public CreationalSpecificationBuilder setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
return this;
}
public CreationalSpecificationBuilder setCreatedBy(String createdBy) {
this.createdBy = createdBy;
return this;
}
public CreationalSpecificationBuilder setModifiedAt(Date modifiedAt) {
this.modifiedAt = modifiedAt;
return this;
}
public CreationalSpecificationBuilder setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
return this;
}
public CreationalSpecification createCreationalSpecification() {
return new CreationalSpecification(createdAt, createdBy, modifiedAt, modifiedBy);
}
}
package com.eksad.masterdata.common;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.SalesOrderDTO;
import java.beans.ConstructorProperties;
public class ResponseSalesOrderGetDTO {
ResponseDTO response;
private SalesOrderDTO data;
public ResponseDTO getResponse() {
return this.response;
}
public SalesOrderDTO getData() {
return this.data;
}
public void setResponse(ResponseDTO response) {
this.response = response;
}
public void setData(SalesOrderDTO data) {
this.data = data;
}
public ResponseSalesOrderGetDTO() {
}
@ConstructorProperties({"response", "data"})
public ResponseSalesOrderGetDTO(ResponseDTO response, SalesOrderDTO data) {
this.response = response;
this.data = data;
}
}
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.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
import java.util.Date;
public class CreationalSpecificationDTO implements Serializable {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date createdAt;
private String createdBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date modifiedAt;
private String modifiedBy;
public CreationalSpecificationDTO() {
}
public CreationalSpecificationDTO(Date createdAt, String createdBy, Date modifiedAt, String modifiedBy) {
this.createdAt = createdAt;
this.createdBy = createdBy;
this.modifiedAt = modifiedAt;
this.modifiedBy = modifiedBy;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getModifiedAt() {
return modifiedAt;
}
public void setModifiedAt(Date modifiedAt) {
this.modifiedAt = modifiedAt;
}
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
@JsonIgnore
public CreationalSpecificationDTO getInstance() {
CreationalSpecificationDTO creationalSpecificationDTO = new CreationalSpecificationDTO();
creationalSpecificationDTO.setCreatedAt(new Date());
creationalSpecificationDTO.setCreatedBy("SYSTEM");
return creationalSpecificationDTO;
}
}
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.eksad.ddms.common.util.status.DataStatus;
import com.eksad.ddms.common.util.status.DataStatusMD;
import com.eksad.masterdata.common.listEnum.PartLocalSaleable;
import com.eksad.masterdata.common.listEnum.PartLocalType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PartDTO {
private String partID;
private String partNumber;
private String partDescription;
private Double het;
private Double basicPrice;
private String supplierCode;
private String partGroup;
private String partReference;
private DataStatus status;
private String superseed;
private Integer minOrderSmallDealer;
private Integer minOrderMiddleDealer;
private Integer minOrderBigDealer;
private String pnt;
private String partStockType;
private String partOrigin;
private String rank;
private String currentType;
private String partType; // attribut important/safety/additional
private String lifeTimeType;
private String partCategory; // attribut engine/frame/electrical
private String largePartGroup;
private String partPhotoURL;
private DataStatusMD statusMD;
private String hgpType;
private boolean hotlinePart;
private String hotlinePartDeliveryCost;
private Integer maxQtyHotline;
private String itemSimiliar;
private DataStatus partStatus;
private CreationalSpecificationDTO partCreationalDTO;
private List<PartTypeMotorsDTO> partTypeMotorDTOs;
private PartLocalType partLocalType;
private String partMainDealerID;
private PartLocalSaleable partLocalSaleable;
private String dealerID;
private byte[] imageByte;
@JsonIgnore
public PartDTO getInstance() {
return new PartDTO(
UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
"Dummy Description Part",
0.0,
0.0,
"Dummy Supplier Code",
"Dummy Part Group",
"Dummy Part Reference",
DataStatus.ACTIVE,
"Dummy Superseed",
0,
0,
0,
"Dummy PNT",
"Dummy PartStockType",
"Dummy PartOrigin",
"Dummy Rank",
"Dummy CurrentType",
"Dummy PartType",
"Dummy LifeTimeType",
"Dummy PartCategory",
"Dummy LargePartGroup",
"Dummy PartPhotoURL",
DataStatusMD.A,
"Dummy HgpType",
false,
"",
0,
"Dummy ItemSimiliar",
DataStatus.ACTIVE,
new CreationalSpecificationDTO().getInstance(),
new ArrayList<>(Arrays.asList(new PartTypeMotorsDTO().getInstance())),
PartLocalType.LOCAL,
"Dummy Part Main Dealer ID",
PartLocalSaleable.SALEABLE,
"Dummy dealerID",
new byte[10]
);
}
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
import java.util.UUID;
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class PartTypeMotorsDTO {
private String idPtm;
private String marketingType;
private String productionType;
private String deskripsi;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
private Date lastEffectiveDate;
private DataStatus partTypeMotorStatus;
private CreationalSpecificationDTO partTypeMotorCreationalDTO;
@JsonIgnore
public PartTypeMotorsDTO getInstance() {
return new PartTypeMotorsDTO(
UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
"Dummy MarketingType",
"Dummy ProductionType",
"Dummy Deskripsi",
new Date(),
DataStatus.ACTIVE,
new CreationalSpecificationDTO().getInstance());
}
}
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.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.PickSlipStatusType;
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 PickSlipDTO {
private String pickSlipNumber;
private String salesOrderID;
private String ahassCode;
private String pickerID;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
private Date pickSlipDate;
private DataStatus pickSlipStatus;
private PickSlipStatusType pickSlipStatusType;
private CreationalSpecificationDTO pickSlipCreational;
private List<PickSlipDetailDTO> pickSlipDetailDTOs;
private List<PickSlipDetailEVDTO> pickSlipDetailEVDTOs;
private Long version;
private String posServiceID;
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.PickSlipDetailStatusType;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PickSlipDetailDTO {
private String pickSlipDetailID;
private String partID;
private Integer qty;
private String locatorDescription;
private Integer locatorID;
private String subinventoryDescription;
private String warehouseDescription;
private PickSlipDetailStatusType pickSlipDetailStatusType;
private DataStatus pickSlipDetailDataStatus;
private Integer actualQty;
private CreationalSpecificationDTO pickSlipDetailCreationalDTO;
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.PickSlipDetailStatusType;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PickSlipDetailEVDTO {
private String pickSlipDetailID;
private String partID;
private Integer qty;
private String locatorDescription;
private Integer locatorID;
private String subinventoryDescription;
private String warehouseDescription;
private PickSlipDetailStatusType pickSlipDetailStatusType;
private DataStatus pickSlipDetailDataStatus;
private Integer actualQty;
private String serialNumber;
private CreationalSpecificationDTO pickSlipDetailCreationalDTO;
}
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 com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderSourceType;
import com.eksad.masterdata.common.listEnum.SalesOrderState;
import com.eksad.masterdata.common.listEnum.SalesOrderStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.*;
/**
* @author amy
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SalesOrderDTO {
private String salesOrderID;
private String poCustomerID;
private String ahassCode;
private String noNotaPenjualan;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date salesOrderDate;
private Double dp;
private Double total;
private SalesOrderType salesOrderType;
private SalesOrderStatus salesOrderLastKnownStatus;
private SalesOrderState salesOrderLastKnownState;
private DataStatus salesOrderStatus;
private CreationalSpecificationDTO salesOrderCreational;
private List<SalesOrderDetailDTO> salesOrderDetailDTOs;
private SalesOrderSourceType orderSource;
private String workOrderID;
private Boolean salesPackage;
private Long version;
private Integer countPrint;
private String appsOrderNumber;
@JsonIgnore
public SalesOrderDTO getInstance() {
return new SalesOrderDTO(
UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
"dummy poCustomerID",
"dummy ahasscode",
"dummy noNotaPenjualan",
new Date(),
0.0,
0.0,
SalesOrderType.REGULAR,
SalesOrderStatus.DRAFT,
SalesOrderState.INITIAL_ORDER,
DataStatus.ACTIVE,
new CreationalSpecificationDTO().getInstance(),
new ArrayList<>(Arrays.asList(new SalesOrderDetailDTO().getInstance())),
SalesOrderSourceType.SO,
UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
Boolean.FALSE, 0L, 0,
"dummy AppsOrderNumber"
);
}
@Override
public String toString() {
return "SalesOrderDTO{" + "salesOrderID=" + salesOrderID + ", poCustomerID=" + poCustomerID + ", ahassCode=" + ahassCode + ", noNotaPenjualan=" + noNotaPenjualan + ", salesOrderDate=" + salesOrderDate + ", dp=" + dp + ", total=" + total + ", salesOrderType=" + salesOrderType + ", salesOrderLastKnownStatus=" + salesOrderLastKnownStatus + ", salesOrderLastKnownState=" + salesOrderLastKnownState + ", salesOrderStatus=" + salesOrderStatus + ", salesOrderCreational=" + salesOrderCreational + ", salesOrderDetailDTOs=" + salesOrderDetailDTOs + ", orderSource=" + orderSource + ", workOrderID=" + workOrderID + ", salesPackage=" + salesPackage + ", version=" + version + '}';
}
}
package com.eksad.masterdata.common.dto;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderStatus;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.UUID;
/**
* @author amy
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SalesOrderDetailDTO {
private String salesOrderDetailID;
private String partID;
private String partNumber;
private String partDescription;
private String partGroup;
private String largePartGroup;
private Integer qty;
private Double price;
private Double discount;
private Double totalPrice;
private String keterangan;
private Boolean hoFlag;
private String salesPackageID;
private Double ppnRate;
private Double ppnAmount;
private DataStatus salesOrderDetailStatus;
private CreationalSpecificationDTO salesOrderDetailCreationalSpecificationDTO;
private SalesOrderStatus salesorderdetaillastknownstatus;
private String promoID;
@JsonIgnore
public SalesOrderDetailDTO getInstance() {
return new SalesOrderDetailDTO(
UUID.randomUUID().toString().substring(0, 8).toUpperCase(),
"dummy partID",
"dummy partNumber",
"dummy partDescription",
"dummy partGroup",
"dummy largePartGroup",
1,
0.0,
0.0,
0.0,
"dummy keterangan",
Boolean.FALSE,
"dummy salesPackageID",
0.0,
0.0,
DataStatus.ACTIVE,
new CreationalSpecificationDTO().getInstance(),
SalesOrderStatus.DRAFT,
"dummy promoID"
);
}
}
package com.eksad.masterdata.common.dto;
import com.eksad.masterdata.common.listEnum.StockFlowModuleType;
import com.eksad.masterdata.common.listEnum.StockFlowType;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
public class StockFlowDTO implements Serializable {
private Date startDate;
private Date endDate;
private String partNumber;
private String partDescription;
private Integer locationCode;
private StockFlowType flowType;
private Integer startQuantity;
private Integer adjustmentQuantity;
private Integer finalQuantity;
private StockFlowModuleType source;
private String referenceNumber;
private Date docDate;
private String dealerID;
private Date waktu;
private Double startValue;
private Double adjustValue;
private Double finalValue;
private Double finalTotalValue;
private String user;
private String posServiceID;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "Asia/Jakarta")
private Date createdAt;
}
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;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class WorkOrderSOHotlineDTO {
private String soID;
private Boolean hotlineFlag;
}
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 com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.PartDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponsePartGetDTO {
ResponseDTO response;
private PartDTO data;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.PickSlipDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ResponsePickSlipGetDTO {
ResponseDTO response;
private PickSlipDTO data;
}
package com.eksad.masterdata.common.dto.responseDto;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.SalesOrderDTO;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class ResponseSalesOrderGetListDTO {
ResponseDTO response;
private List<SalesOrderDTO> datas;
private Long totalElements;
private Integer totalPage;
}
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 PartLocalSaleable {
SALEABLE("SALEABLE", "Salesable"),
SELFCONSUMED("SELFCONSUMED", "SelfConsumed");
private String code;
private String name;
private PartLocalSaleable(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}
package com.eksad.masterdata.common.listEnum;
public enum PartLocalType {
LOCAL("LOCAL", "Local"),
ORIGINAL("ORIGINAL", "Original"),
IMPORT("IMPORT", "Import");
private String code;
private String name;
private PartLocalType(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}
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 PickSlipDetailStatusType {
OPEN, CLOSE, CANCEL;
}
package com.eksad.masterdata.common.listEnum;
public enum PickSlipStatusType {
ALL, OPEN, PRINT, REPRINT, COMPLETED, CANCEL, CANCEL_WO;
}
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.common.listEnum;
public enum SalesOrderSourceType {
SO,
WO,
SPK
}
package com.eksad.masterdata.common.listEnum;
public enum SalesOrderState {
INITIAL_ORDER,
ORDER_CONFIRM;
}
package com.eksad.masterdata.common.listEnum;
public enum SalesOrderStatus {
ALL,
CANCEL,
DRAFT,
BOOK,
PENDING_LP,
PENDING_HO,
BO_SUBMITED,
COMPLETE,
BO,
BO_COMPLETE,
PICKED,
NOT_FOUND;
}
\ No newline at end of file
package com.eksad.masterdata.common.listEnum;
public enum SalesOrderType {
HO,
LOCAL_PURCHASE,
REGULAR,
BO,
CLAIM_CUSTOMER;
}
\ No newline at end of file
package com.eksad.masterdata.common.listEnum;
public enum StockFlowModuleType {
ALL(0),
SO(1),
MISC_IN(2),
MISC_OUT(3),
MOVING(4),
RECEIVING(5),
STOCK_OPNAME(6),
RETURN_CUSTOMER(7),
CLAIM_CUSTOMER(8),
RETURN_MD(9),
AVERAGE_COST_UPDATE(10),
RECEIVING_OLI(11),
MOVING_KPB(12),
MISC_IN_EV(13),
MISC_OUT_EV(14),
MOVING_EV(15);
int value;
StockFlowModuleType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
package com.eksad.masterdata.common.listEnum;
public enum StockFlowType {
ALL(0), IN(1), OUT(2);
int value;
StockFlowType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
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.responseDto.ResponsePartGetDTO;
import com.eksad.masterdata.service.PartHystrixService;
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.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
public class PartRESTController {
@Autowired
PartHystrixService partHystrixService;
@RequestMapping(value = "/get.part.by.id/{partID}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponsePartGetDTO> getPartByPartID(@PathVariable("partID") String partID) {
return partHystrixService.getPartByPartID(partID);
}
}
package com.eksad.masterdata.controller;
import com.eksad.masterdata.common.dto.responseDto.ResponsePickSlipGetDTO;
import com.eksad.masterdata.service.PickSlipService;
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.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
public class PickSlipRestController {
@Autowired
private PickSlipService pickSlipService;
@RequestMapping(value = "/get.pickslip.by.salesorderid/{salesOrderID}/{ahassID}",
method = RequestMethod.GET,
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponsePickSlipGetDTO> getPickSlipBySalesOrderIDAndAhassID(
@PathVariable("salesOrderID") String salesOrderID,
@PathVariable("ahassID") String ahassID) {
return pickSlipService.getPickSlipBySalesOrderID(salesOrderID, ahassID);
}
}
package com.eksad.masterdata.controller;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.ResponseSalesOrderGetDTO;
import com.eksad.masterdata.common.dto.SalesOrderDTO;
import com.eksad.masterdata.common.dto.StockFlowDTO;
import com.eksad.masterdata.common.dto.WorkOrderSOHotlineDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponseSalesOrderGetListDTO;
import com.eksad.masterdata.common.listEnum.SalesOrderStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderType;
import com.eksad.masterdata.domain.SalesOrder;
import com.eksad.masterdata.domain.assembler.SalesOrderAssembler;
import com.eksad.masterdata.repository.PartWOHotlineRepository;
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.context.annotation.PropertySource;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
@Slf4j
@PropertySource("classpath:error-message.properties")
public class SalesOrderRESTController {
@Autowired
SalesOrderRepository salesOrderRepository;
@Autowired
PartWOHotlineRepository partWOHotlineRepository;
// final static Logger logger = Logger.getLogger(SalesOrderRESTController.class);
@RequestMapping(value = "/get.sales.order.by.id/{salesOrderID}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseSalesOrderGetDTO> getSalesOrderByID(@PathVariable("salesOrderID") String salesOrderID) {
SalesOrder data;
try {
data = salesOrderRepository.findOneBySalesOrderID(salesOrderID);
if (data == null) {
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponseSalesOrderGetDTO(new ResponseDTO().noDataFoundResponse(), null));
}
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponseSalesOrderGetDTO(new ResponseDTO().defaultResponse(), new SalesOrderAssembler().toDTO(data)));
} catch (Exception e) {
// logger.info("This is info from sales order rest controller: " + e.getMessage());
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponseSalesOrderGetDTO(new ResponseDTO().failedRespose(String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value()), e.getMessage()), null));
}
}
@RequestMapping(value = "/sales.order.complete/{salesOrderID}/{ahassCode}",
method = RequestMethod.PUT,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> SOComplete(
@PathVariable("salesOrderID") String salesOrderID,
@PathVariable("ahassCode") String ahassCode) {
return ResponseEntity.status(HttpStatus.OK).body(complateSO(salesOrderID, ahassCode));
}
private String complateSO(String salesOrderID, String ahassCode) {
List<StockFlowDTO> listStockFlowDTO = new ArrayList<>();
SalesOrder dataSO;
try {
dataSO = salesOrderRepository.findOneBySalesOrderIDAndAhassCode(salesOrderID, ahassCode);
ObjectMapper omTiga = new ObjectMapper();
String json = omTiga.writeValueAsString(dataSO);
// logger.info("String JSON SalesOrder : " + json);
if (dataSO.getSalesOrderType().equals(SalesOrderType.BO)) {
dataSO.setSalesOrderLastKnownStatus(SalesOrderStatus.BO_COMPLETE);
} else {
dataSO.setSalesOrderLastKnownStatus(SalesOrderStatus.COMPLETE);
}
dataSO.getSalesOrderCreational().setModifiedAt(new Date());
salesOrderRepository.save(dataSO);
return salesOrderID;
} catch (Exception e) {
// logger.info("This is info from sales order rest controller: " + e.getMessage());
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String exceptionAsString = sw.toString();
// logger.info("Exception Complete SO controller: " + exceptionAsString);
return e.getMessage();
}
}
@RequestMapping(value = "/get.sales.order.by.woid/{woID}/{ahassCode}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<ResponseSalesOrderGetListDTO> getSalesOrderByWoIDAndAhassCode(@PathVariable("woID") String woID, @PathVariable("ahassCode") String ahassCode) {
try {
List<SalesOrder> datas = salesOrderRepository.findAllSOByWOIDAndAhassCode(woID, ahassCode);
List<SalesOrderDTO> list = new ArrayList<>();
if (datas != null && !datas.isEmpty()) {
list = new SalesOrderAssembler().toDTOs(datas);
return ResponseEntity.status(HttpStatus.OK).body(new ResponseSalesOrderGetListDTO(new ResponseDTO().defaultResponse(), list, 0L, 0));
} else {
return ResponseEntity.status(HttpStatus.OK).body(new ResponseSalesOrderGetListDTO(new ResponseDTO().noDataFoundResponse(), list, 0L, 0));
}
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.OK).body(new ResponseSalesOrderGetListDTO(new ResponseDTO().failedRespose(String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value()), e.getLocalizedMessage()), null, 0L, 0));
}
}
@RequestMapping(value = "/get.so.hotline.by.woid/{woID}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<WorkOrderSOHotlineDTO>> getSOHotlineByWoID(@PathVariable("woID") String woID) {
try {
List<WorkOrderSOHotlineDTO> datas = partWOHotlineRepository.getSOHotline(woID);
if (datas != null && !datas.isEmpty()) {
return ResponseEntity.status(HttpStatus.CREATED).body(datas);
} else {
return ResponseEntity.status(HttpStatus.OK).body(null);
}
} catch (Exception e) {
// logger.info("getPartWOHotlineByWoID = " + e.getMessage());
return ResponseEntity.status(HttpStatus.OK).body(null);
}
}
@RequestMapping(value = "/sales.order.complete.by.wo.id/{workOrderID}/{ahassCode}",
method = RequestMethod.PUT,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> SOCompleteByWOID(
@PathVariable("workOrderID") String workOrderID,
@PathVariable("ahassCode") String ahassCode) {
List<SalesOrder> dataSO = salesOrderRepository.findAllSOByWOIDAndAhassCode(workOrderID, ahassCode);
for (SalesOrder salesOrder : dataSO) {
if (!salesOrder.getSalesOrderLastKnownStatus().equals(SalesOrderStatus.CANCEL) && !salesOrder.getSalesOrderLastKnownStatus().equals(SalesOrderStatus.COMPLETE) && !salesOrder.getSalesOrderLastKnownStatus().equals(SalesOrderStatus.BO_COMPLETE)) {
complateSO(salesOrder.getSalesOrderID(), salesOrder.getAhassCode());
}
}
return ResponseEntity.status(HttpStatus.OK).body("SUCCESS");
}
}
package com.eksad.masterdata.controller;
import com.eksad.masterdata.service.SequenceGeneratorHystrixService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SequenceGeneratorRestController {
@Autowired
SequenceGeneratorHystrixService sequenceGeneratorHystrixService;
@RequestMapping(value = "update.trx.number/{dealerCode}/{trxCode}/{userID}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> updateTransactionNumber(
@PathVariable("dealerCode") String dealerCode,
@PathVariable("trxCode") String trxCode,
@PathVariable("userID") String userID) {
try {
return sequenceGeneratorHystrixService.updateTransactionNumber(dealerCode, trxCode, userID);
} catch (Exception e) {
// logger.info("Error when generete sequence: " + e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
}
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.ValueObject;
import com.eksad.masterdata.common.CreationalSpecificationBuilder;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.Embeddable;
import jakarta.persistence.Temporal;
import jakarta.persistence.TemporalType;
import java.util.Date;
import java.util.Objects;
@Embeddable
public class CreationalSpecification implements ValueObject<CreationalSpecification> {
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
private Date createdAt;
private String createdBy;
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
private Date modifiedAt;
private String modifiedBy;
public CreationalSpecification() {
}
public CreationalSpecification(Date createdAt, String createdBy, Date modifiedAt, String modifiedBy) {
this.createdAt = createdAt;
this.createdBy = createdBy;
this.modifiedAt = modifiedAt;
this.modifiedBy = modifiedBy;
}
public void assignNewCreationalSpecification(CreationalSpecification creationalSpecification) {
this.modifiedAt = creationalSpecification.getModifiedAt();
this.modifiedBy = creationalSpecification.getModifiedBy();
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getModifiedAt() {
return modifiedAt;
}
public void setModifiedAt(Date modifiedAt) {
this.modifiedAt = modifiedAt;
}
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.createdAt);
hash = 23 * hash + Objects.hashCode(this.createdBy);
hash = 23 * hash + Objects.hashCode(this.modifiedAt);
hash = 23 * hash + Objects.hashCode(this.modifiedBy);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final CreationalSpecification other = (CreationalSpecification) obj;
if (!Objects.equals(this.createdAt, other.createdAt)) {
return false;
}
if (!Objects.equals(this.createdBy, other.createdBy)) {
return false;
}
if (!Objects.equals(this.modifiedAt, other.modifiedAt)) {
return false;
}
if (!Objects.equals(this.modifiedBy, other.modifiedBy)) {
return false;
}
return true;
}
@Override
public boolean sameValueAs(CreationalSpecification other) {
return this.equals(other);
}
@Override
public String toString() {
return "CreationalSpecification{" + "createdAt=" + createdAt + ", createdBy=" + createdBy + ", modifiedAt=" + modifiedAt + ", modifiedBy=" + modifiedBy + '}';
}
public void updateModifiedAt() {
this.modifiedAt = new Date();
}
public void updateModified(CreationalSpecification creationalSpecification) {
this.modifiedAt = creationalSpecification.getModifiedAt();
this.modifiedBy = creationalSpecification.getModifiedBy();
}
public static CreationalSpecification getInstance() {
CreationalSpecification cs = new CreationalSpecificationBuilder()
.setCreatedAt(new Date())
.setCreatedBy("USER")
.createCreationalSpecification();
return cs;
}
public static CreationalSpecification getInstance(String nik) {
CreationalSpecification cs = new CreationalSpecificationBuilder()
.setCreatedAt(new Date())
.setCreatedBy(nik)
.createCreationalSpecification();
return cs;
}
}
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 com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.ddms.common.util.status.DataStatusMD;
import com.eksad.masterdata.common.listEnum.PartLocalSaleable;
import com.eksad.masterdata.common.listEnum.PartLocalType;
import jakarta.persistence.*;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@Entity
@Table(name = "MST_PART")
public class Part implements EntityObject<Part> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mst_part_gen")
@SequenceGenerator(name = "mst_part_gen", sequenceName = "mst_part_seq", allocationSize = 1)
Integer id;
private String code;
// private String partNumber;
private String description;
private Double het;
private Double basicPrice;
private String supplierCode;
private String partGroup;
private String partReference;
@Enumerated(EnumType.STRING)
private DataStatus status;
private String superseed;
private Integer minOrderSmallDealer;
private Integer minOrderMiddleDealer;
private Integer minOrderBigDealer;
private String pnt;
private String partStockType;
private String partOrigin;
private String rank;
private String currentType;
private String partType; // attribut important/safety/additional
private String lifeTimeType;
private String partCategory; // attribut engine/frame/electrical
private String largePartGroup;
private String partPhotoURL;
@Enumerated(EnumType.STRING)
private DataStatusMD statusMD;
private String hgpType;
private boolean hotlinePart;
private String hotlinePartDeliveryCost;
private Integer maxQtyHotline;
private String itemSimilar;
@Enumerated(EnumType.STRING)
private DataStatus partStatus;
@Enumerated(EnumType.STRING)
private PartLocalType partLocalType;
private String partMainDealerID;
private PartLocalSaleable partLocalSaleable;
private String dealerID;
@Embedded
private CreationalSpecification partCreational;
/**
* Collections unidirectional * to *
*/
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "JT_PART_PARTTYPEMOTOR", joinColumns = {
@JoinColumn(name = "id_pdmp", referencedColumnName = "code")}, inverseJoinColumns = {
@JoinColumn(name = "id_ptm", referencedColumnName = "idPtm")})
private Set<PartTypeMotor> partTypeMotors = new HashSet<>();
public Part() {
}
public Part(String partID, String partDescription, Double het, Double basicPrice, String supplierCode, String partGroup, String partReference, DataStatus status, String superseed, Integer minOrderSmallDealer, Integer minOrderMiddleDealer, Integer minOrderBigDealer, String pnt, String partStockType, String partOrigin, String rank, String currentType, String partType, String lifeTimeType, String partCategory, String largePartGroup, String partPhotoURL, DataStatusMD statusMD, String hgpType, boolean hotlinePart, String hotlinePartDeliveryCost, Integer maxQtyHotline, String itemSimilar, DataStatus partStatus, CreationalSpecification partCreational, PartLocalType partLocalType, String partMainDealerID, PartLocalSaleable partLocalSaleable, String dealerID) {
this.code = partID;
this.description = partDescription;
this.het = het;
this.basicPrice = basicPrice;
this.supplierCode = supplierCode;
this.partGroup = partGroup;
this.partReference = partReference;
this.status = status;
this.superseed = superseed;
this.minOrderSmallDealer = minOrderSmallDealer;
this.minOrderMiddleDealer = minOrderMiddleDealer;
this.minOrderBigDealer = minOrderBigDealer;
this.pnt = pnt;
this.partStockType = partStockType;
this.partOrigin = partOrigin;
this.rank = rank;
this.currentType = currentType;
this.partType = partType;
this.lifeTimeType = lifeTimeType;
this.partCategory = partCategory;
this.largePartGroup = largePartGroup;
this.partPhotoURL = partPhotoURL;
this.statusMD = statusMD;
this.hgpType = hgpType;
this.hotlinePart = hotlinePart;
this.hotlinePartDeliveryCost = hotlinePartDeliveryCost;
this.maxQtyHotline = maxQtyHotline;
this.itemSimilar = itemSimilar;
this.partStatus = partStatus;
this.partCreational = partCreational;
this.partLocalType = partLocalType;
this.partMainDealerID = partMainDealerID;
this.partLocalSaleable = partLocalSaleable;
this.dealerID = dealerID;
}
public String getItemSimilar() {
return itemSimilar;
}
public void setItemSimilar(String itemSimilar) {
this.itemSimilar = itemSimilar;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPartDescription() {
return description;
}
public void setPartDescription(String description) {
this.description = description;
}
public Double getHet() {
return het;
}
public void setHet(Double het) {
this.het = het;
}
public Double getBasicPrice() {
return basicPrice;
}
public void setBasicPrice(Double basicPrice) {
this.basicPrice = basicPrice;
}
public String getPartStockType() {
return partStockType;
}
public void setPartStockType(String partStockType) {
this.partStockType = partStockType;
}
public String getPartOrigin() {
return partOrigin;
}
public void setPartOrigin(String partOrigin) {
this.partOrigin = partOrigin;
}
public String getLargePartGroup() {
return largePartGroup;
}
public void setLargePartGroup(String largePartGroup) {
this.largePartGroup = largePartGroup;
}
public DataStatusMD getStatusMD() {
return statusMD;
}
public void setStatusMD(DataStatusMD statusMD) {
this.statusMD = statusMD;
}
public DataStatus getStatus() {
return status;
}
public void setStatus(DataStatus status) {
this.status = status;
}
public String getSupplierCode() {
return supplierCode;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
}
public String getPartGroup() {
return partGroup;
}
public void setPartGroup(String partGroup) {
this.partGroup = partGroup;
}
public String getPartReference() {
return partReference;
}
public void setPartReference(String partReference) {
this.partReference = partReference;
}
public String getSuperseed() {
return superseed;
}
public void setSuperseed(String superseed) {
this.superseed = superseed;
}
public Integer getMinOrderSmallDealer() {
return minOrderSmallDealer;
}
public void setMinOrderSmallDealer(Integer minOrderSmallDealer) {
this.minOrderSmallDealer = minOrderSmallDealer;
}
public Integer getMinOrderMiddleDealer() {
return minOrderMiddleDealer;
}
public void setMinOrderMiddleDealer(Integer minOrderMiddleDealer) {
this.minOrderMiddleDealer = minOrderMiddleDealer;
}
public Integer getMinOrderBigDealer() {
return minOrderBigDealer;
}
public void setMinOrderBigDealer(Integer minOrderBigDealer) {
this.minOrderBigDealer = minOrderBigDealer;
}
public String getPnt() {
return pnt;
}
public void setPnt(String pnt) {
this.pnt = pnt;
}
public String getRank() {
return rank;
}
public void setRank(String rank) {
this.rank = rank;
}
public String getCurrentType() {
return currentType;
}
public void setCurrentType(String currentType) {
this.currentType = currentType;
}
public String getLifeTimeType() {
return lifeTimeType;
}
public void setLifeTimeType(String lifeTimeType) {
this.lifeTimeType = lifeTimeType;
}
public String getPartPhotoURL() {
return partPhotoURL;
}
public void setPartPhotoURL(String partPhotoURL) {
this.partPhotoURL = partPhotoURL;
}
public String getHgpType() {
return hgpType;
}
public void setHgpType(String hgpType) {
this.hgpType = hgpType;
}
public boolean isHotlinePart() {
return hotlinePart;
}
public void setHotlinePart(boolean hotlinePart) {
this.hotlinePart = hotlinePart;
}
public String getHotlinePartDeliveryCost() {
return hotlinePartDeliveryCost;
}
public void setHotlinePartDeliveryCost(String hotlinePartDeliveryCost) {
this.hotlinePartDeliveryCost = hotlinePartDeliveryCost;
}
public Integer getMaxQtyHotline() {
return maxQtyHotline;
}
public void setMaxQtyHotline(Integer maxQtyHotline) {
this.maxQtyHotline = maxQtyHotline;
}
public DataStatus getPartStatus() {
return partStatus;
}
public void setPartStatus(DataStatus partStatus) {
this.partStatus = partStatus;
}
public CreationalSpecification getPartCreational() {
return partCreational;
}
public void setPartCreational(CreationalSpecification partCreational) {
this.partCreational = partCreational;
}
public String getPartType() {
return partType;
}
public void setPartType(String partType) {
this.partType = partType;
}
public String getPartCategory() {
return partCategory;
}
public void setPartCategory(String partCategory) {
this.partCategory = partCategory;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Set<PartTypeMotor> getPartTypeMotors() {
return partTypeMotors;
}
public void setPartTypeMotors(Set<PartTypeMotor> partTypeMotors) {
this.partTypeMotors = partTypeMotors;
}
public PartLocalType getPartLocalType() {
return partLocalType;
}
public void setPartLocalType(PartLocalType partLocalType) {
this.partLocalType = partLocalType;
}
public String getPartMainDealerID() {
return partMainDealerID;
}
public void setPartMainDealerID(String partMainDealerID) {
this.partMainDealerID = partMainDealerID;
}
public PartLocalSaleable getPartLocalSaleable() {
return partLocalSaleable;
}
public void setPartLocalSaleable(PartLocalSaleable partLocalSaleable) {
this.partLocalSaleable = partLocalSaleable;
}
public String getDealerID() {
return dealerID;
}
public void setDealerID(String dealerID) {
this.dealerID = dealerID;
}
@Override
public int hashCode() {
int hash = 7;
hash = 59 * hash + Objects.hashCode(this.code);
hash = 59 * hash + Objects.hashCode(this.description);
hash = 59 * hash + Objects.hashCode(this.het);
hash = 59 * hash + Objects.hashCode(this.basicPrice);
hash = 59 * hash + Objects.hashCode(this.supplierCode);
hash = 59 * hash + Objects.hashCode(this.partGroup);
hash = 59 * hash + Objects.hashCode(this.partReference);
hash = 59 * hash + Objects.hashCode(this.status);
hash = 59 * hash + Objects.hashCode(this.superseed);
hash = 59 * hash + Objects.hashCode(this.minOrderSmallDealer);
hash = 59 * hash + Objects.hashCode(this.minOrderMiddleDealer);
hash = 59 * hash + Objects.hashCode(this.minOrderBigDealer);
hash = 59 * hash + Objects.hashCode(this.pnt);
hash = 59 * hash + Objects.hashCode(this.partStockType);
hash = 59 * hash + Objects.hashCode(this.partOrigin);
hash = 59 * hash + Objects.hashCode(this.rank);
hash = 59 * hash + Objects.hashCode(this.currentType);
hash = 59 * hash + Objects.hashCode(this.partType);
hash = 59 * hash + Objects.hashCode(this.lifeTimeType);
hash = 59 * hash + Objects.hashCode(this.partCategory);
hash = 59 * hash + Objects.hashCode(this.largePartGroup);
hash = 59 * hash + Objects.hashCode(this.partPhotoURL);
hash = 59 * hash + Objects.hashCode(this.statusMD);
hash = 59 * hash + Objects.hashCode(this.hgpType);
hash = 59 * hash + Objects.hashCode(this.hotlinePart);
hash = 59 * hash + Objects.hashCode(this.hotlinePartDeliveryCost);
hash = 59 * hash + Objects.hashCode(this.maxQtyHotline);
hash = 59 * hash + Objects.hashCode(this.itemSimilar);
hash = 59 * hash + Objects.hashCode(this.partStatus);
hash = 59 * hash + Objects.hashCode(this.partCreational);
hash = 59 * hash + Objects.hashCode(this.partTypeMotors);
hash = 59 * hash + Objects.hashCode(this.partLocalType);
hash = 59 * hash + Objects.hashCode(this.partMainDealerID);
hash = 59 * hash + Objects.hashCode(this.partLocalSaleable);
hash = 59 * hash + Objects.hashCode(this.dealerID);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Part other = (Part) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(Part other) {
return this.equals(other);
}
}
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.eksad.ddms.common.util.object.EntityObject;
import com.eksad.ddms.common.util.status.DataStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.*;
import java.util.Date;
import java.util.Objects;
@Entity
@Table(name = "MST_PARTTYPEMOTOR")
public class PartTypeMotor implements EntityObject<PartTypeMotor> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mst_part_type_motor_gen")
@SequenceGenerator(name = "mst_part_type_motor_gen", sequenceName = "mst_part_type_motor_seq", allocationSize = 1)
Integer id;
private String idPtm;
private String marketingType;
private String productionType;
private String deskripsi;
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
private Date lastEffectiveDate;
private DataStatus partTypeMotorStatus;
@Embedded
private CreationalSpecification partTypeMotorCreational;
public PartTypeMotor() {
}
public PartTypeMotor(String idPtm, String marketingType, String productionType, String deskripsi, Date lastEffectiveDate, DataStatus partTypeMotorStatus, CreationalSpecification partTypeMotorCreational) {
this.idPtm = idPtm;
this.marketingType = marketingType;
this.productionType = productionType;
this.deskripsi = deskripsi;
this.lastEffectiveDate = lastEffectiveDate;
this.partTypeMotorStatus = partTypeMotorStatus;
this.partTypeMotorCreational = partTypeMotorCreational;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getIdPtm() {
return idPtm;
}
public void setIdPtm(String idPtm) {
this.idPtm = idPtm;
}
public String getMarketingType() {
return marketingType;
}
public void setMarketingType(String marketingType) {
this.marketingType = marketingType;
}
public String getProductionType() {
return productionType;
}
public void setProductionType(String productionType) {
this.productionType = productionType;
}
public String getDeskripsi() {
return deskripsi;
}
public void setDeskripsi(String deskripsi) {
this.deskripsi = deskripsi;
}
public Date getLastEffectiveDate() {
return lastEffectiveDate;
}
public void setLastEffectiveDate(Date lastEffectiveDate) {
this.lastEffectiveDate = lastEffectiveDate;
}
public CreationalSpecification getPartTypeMotorCreational() {
return partTypeMotorCreational;
}
public void setPartTypeMotorCreational(CreationalSpecification partTypeMotorCreational) {
this.partTypeMotorCreational = partTypeMotorCreational;
}
public DataStatus getPartTypeMotorStatus() {
return partTypeMotorStatus;
}
public void setPartTypeMotorStatus(DataStatus partTypeMotorStatus) {
this.partTypeMotorStatus = partTypeMotorStatus;
}
@Override
public int hashCode() {
int hash = 5;
hash = 89 * hash + Objects.hashCode(this.idPtm);
hash = 89 * hash + Objects.hashCode(this.marketingType);
hash = 89 * hash + Objects.hashCode(this.productionType);
hash = 89 * hash + Objects.hashCode(this.deskripsi);
hash = 89 * hash + Objects.hashCode(this.lastEffectiveDate);
hash = 89 * hash + Objects.hashCode(this.partTypeMotorStatus);
hash = 89 * hash + Objects.hashCode(this.partTypeMotorCreational);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final PartTypeMotor other = (PartTypeMotor) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(PartTypeMotor other) {
return this.equals(other);
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.PickSlipStatusType;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.Objects;
import java.util.Set;
@NamedStoredProcedureQuery(
name = "PickSlip.generatePickSlipNumber",
procedureName = "generate_pickslip_number",
parameters = {
@StoredProcedureParameter(name = "dealercode", type = String.class, mode = ParameterMode.IN),
@StoredProcedureParameter(name = "soid", type = String.class, mode = ParameterMode.IN)
}
)
@Entity
@Table(name = "TRX_PICKSLIP")
public class PickSlip implements EntityObject<PickSlip> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_pickslip_gen")
@SequenceGenerator(name = "trx_pickslip_gen", sequenceName = "trx_pickslip_seq", allocationSize = 1)
Integer id;
@Version
private Long version;
@NotNull
private String pickSlipNumber;
private String salesOrderID;
private String ahassID;
private String pickerID;
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
private Date pickSlipDate;
@Enumerated(EnumType.STRING)
private PickSlipStatusType pickSlipStatusType;
@Enumerated(EnumType.STRING)
private DataStatus pickSlipStatus;
@Embedded
private CreationalSpecification pickSlipCreational;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "pickSlipNumber", referencedColumnName = "id")
private Set<PickSlipDetail> pickSlipDetails;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "pickSlipNumber", referencedColumnName = "id")
private Set<PickSlipDetailEV> pickSlipDetailsEV;
private String posServiceID;
public PickSlip() {
}
public PickSlip(Integer id, String pickSlipNumber, String salesOrderID, String ahassID, String pickerID, Date pickSlipDate, PickSlipStatusType pickSlipStatusType, DataStatus pickSlipStatus, CreationalSpecification pickSlipCreational, Set<PickSlipDetail> pickSlipDetails, Set<PickSlipDetailEV> pickSlipDetailsEV, Long version, String posServiceID) {
this.id = id;
this.pickSlipNumber = pickSlipNumber;
this.salesOrderID = salesOrderID;
this.ahassID = ahassID;
this.pickerID = pickerID;
this.pickSlipDate = pickSlipDate;
this.pickSlipStatusType = pickSlipStatusType;
this.pickSlipStatus = pickSlipStatus;
this.pickSlipCreational = pickSlipCreational;
this.pickSlipDetails = pickSlipDetails;
this.pickSlipDetailsEV = pickSlipDetailsEV;
this.version = version;
this.posServiceID = posServiceID;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public PickSlipStatusType getPickSlipStatusType() {
return pickSlipStatusType;
}
public void setPickSlipStatusType(PickSlipStatusType pickSlipStatusType) {
this.pickSlipStatusType = pickSlipStatusType;
}
public String getPickerID() {
return pickerID;
}
public void setPickerID(String pickerID) {
this.pickerID = pickerID;
}
public Date getPickSlipDate() {
return pickSlipDate;
}
public void setPickSlipDate(Date pickSlipDate) {
this.pickSlipDate = pickSlipDate;
}
public DataStatus getPickSlipStatus() {
return pickSlipStatus;
}
public void setPickSlipStatus(DataStatus pickSlipStatus) {
this.pickSlipStatus = pickSlipStatus;
}
public String getPickSlipNumber() {
return pickSlipNumber;
}
public void setPickSlipNumber(String pickSlipNumber) {
this.pickSlipNumber = pickSlipNumber;
}
public String getSalesOrderID() {
return salesOrderID;
}
public void setSalesOrderID(String salesOrderID) {
this.salesOrderID = salesOrderID;
}
public CreationalSpecification getPickSlipCreational() {
return pickSlipCreational;
}
public void setPickSlipCreational(CreationalSpecification pickSlipCreational) {
this.pickSlipCreational = pickSlipCreational;
}
public Set<PickSlipDetail> getPickSlipDetails() {
return pickSlipDetails;
}
public void setPickSlipDetails(Set<PickSlipDetail> pickSlipDetails) {
this.pickSlipDetails = pickSlipDetails;
}
public Set<PickSlipDetailEV> getPickSlipDetailsEV() {
return pickSlipDetailsEV;
}
public void setPickSlipDetailsEV(Set<PickSlipDetailEV> pickSlipDetailsEV) {
this.pickSlipDetailsEV = pickSlipDetailsEV;
}
public String getAhassID() {
return ahassID;
}
public void setAhassID(String ahassID) {
this.ahassID = ahassID;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public String getPosServiceID() {
return posServiceID;
}
public void setPosServiceID(String posServiceID) {
this.posServiceID = posServiceID;
}
@Override
public int hashCode() {
int hash = 3;
hash = 89 * hash + Objects.hashCode(this.id);
hash = 89 * hash + Objects.hashCode(this.pickSlipNumber);
hash = 89 * hash + Objects.hashCode(this.salesOrderID);
hash = 89 * hash + Objects.hashCode(this.ahassID);
hash = 89 * hash + Objects.hashCode(this.pickerID);
hash = 89 * hash + Objects.hashCode(this.pickSlipDate);
hash = 89 * hash + Objects.hashCode(this.pickSlipStatusType);
hash = 89 * hash + Objects.hashCode(this.pickSlipStatus);
hash = 89 * hash + Objects.hashCode(this.pickSlipCreational);
hash = 89 * hash + Objects.hashCode(this.pickSlipDetails);
hash = 89 * hash + Objects.hashCode(this.pickSlipDetailsEV);
hash = 89 * hash + Objects.hashCode(this.version);
hash = 89 * hash + Objects.hashCode(this.posServiceID);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final PickSlip other = (PickSlip) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(PickSlip other) {
return this.equals(other);
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.PickSlipDetailStatusType;
import jakarta.persistence.*;
import java.util.Objects;
@Entity
@Table(name = "TRX_PICKSLIPDETAIL")
public class PickSlipDetail implements EntityObject<PickSlipDetail> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_pickslipdetail_gen")
@SequenceGenerator(name = "trx_pickslipdetail_gen", sequenceName = "trx_pickslipdetail_seq", allocationSize = 1)
Integer id;
private String code;
private String partID;
private Integer locatorID;
private Integer qty;
private Integer actualQty;
@Enumerated(EnumType.STRING)
private PickSlipDetailStatusType pickSlipDetailStatusType;
@Enumerated(EnumType.STRING)
private DataStatus pickSlipDetailDataStatus;
@Embedded
private CreationalSpecification pickSlipDetailCreational;
private Integer pickSlipNumber;
public PickSlipDetail() {
}
public PickSlipDetail(String code, String partID, Integer locatorID, Integer qty, Integer actualQty, PickSlipDetailStatusType pickSlipDetailStatusType, DataStatus pickSlipDetailDataStatus, CreationalSpecification pickSlipDetailCreational) {
this.code = code;
this.partID = partID;
this.locatorID = locatorID;
this.qty = qty;
this.actualQty = actualQty;
this.pickSlipDetailStatusType = pickSlipDetailStatusType;
this.pickSlipDetailDataStatus = pickSlipDetailDataStatus;
this.pickSlipDetailCreational = pickSlipDetailCreational;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPartID() {
return partID;
}
public void setPartID(String partID) {
this.partID = partID;
}
public Integer getLocatorID() {
return locatorID;
}
public void setLocatorID(Integer locatorID) {
this.locatorID = locatorID;
}
public Integer getActualQty() {
return actualQty;
}
public void setActualQty(Integer actualQty) {
this.actualQty = actualQty;
}
public DataStatus getPickSlipDetailDataStatus() {
return pickSlipDetailDataStatus;
}
public void setPickSlipDetailDataStatus(DataStatus pickSlipDetailDataStatus) {
this.pickSlipDetailDataStatus = pickSlipDetailDataStatus;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getQty() {
return qty;
}
public void setQty(Integer qty) {
this.qty = qty;
}
public CreationalSpecification getPickSlipDetailCreational() {
return pickSlipDetailCreational;
}
public void setPickSlipDetailCreational(CreationalSpecification pickSlipDetailCreational) {
this.pickSlipDetailCreational = pickSlipDetailCreational;
}
public PickSlipDetailStatusType getPickSlipDetailStatusType() {
return pickSlipDetailStatusType;
}
public void setPickSlipDetailStatusType(PickSlipDetailStatusType pickSlipDetailStatusType) {
this.pickSlipDetailStatusType = pickSlipDetailStatusType;
}
public Integer getPickSlipNumber() {
return pickSlipNumber;
}
public void setPickSlipNumber(Integer pickSlipNumber) {
this.pickSlipNumber = pickSlipNumber;
}
@Override
public int hashCode() {
int hash = 7;
hash = 37 * hash + Objects.hashCode(this.code);
hash = 37 * hash + Objects.hashCode(this.partID);
hash = 37 * hash + Objects.hashCode(this.locatorID);
hash = 37 * hash + Objects.hashCode(this.qty);
hash = 37 * hash + Objects.hashCode(this.actualQty);
hash = 37 * hash + Objects.hashCode(this.pickSlipDetailStatusType);
hash = 37 * hash + Objects.hashCode(this.pickSlipDetailDataStatus);
hash = 37 * hash + Objects.hashCode(this.pickSlipDetailCreational);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final PickSlipDetail other = (PickSlipDetail) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(PickSlipDetail other) {
return this.equals(other);
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.PickSlipDetailStatusType;
import jakarta.persistence.*;
import java.util.Objects;
@Entity
@Table(name = "TRX_PICKSLIPDETAILEV")
public class PickSlipDetailEV implements EntityObject<PickSlipDetailEV> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_pickslipdetail_gen")
@SequenceGenerator(name = "trx_pickslipdetail_gen", sequenceName = "trx_pickslipdetail_seq", allocationSize = 1)
Integer id;
private String code;
private String partID;
private Integer locatorID;
private Integer qty;
private Integer actualQty;
@Enumerated(EnumType.STRING)
private PickSlipDetailStatusType pickSlipDetailStatusType;
@Enumerated(EnumType.STRING)
private DataStatus pickSlipDetailDataStatus;
@Embedded
private CreationalSpecification pickSlipDetailCreational;
private Integer pickSlipNumber;
private String serialNumber;
public PickSlipDetailEV() {
}
public PickSlipDetailEV(String code, String partID, Integer locatorID, Integer qty, Integer actualQty, String serialNumber, PickSlipDetailStatusType pickSlipDetailStatusType, DataStatus pickSlipDetailDataStatus, CreationalSpecification pickSlipDetailCreational) {
this.code = code;
this.partID = partID;
this.locatorID = locatorID;
this.qty = qty;
this.actualQty = actualQty;
this.serialNumber = serialNumber;
this.pickSlipDetailStatusType = pickSlipDetailStatusType;
this.pickSlipDetailDataStatus = pickSlipDetailDataStatus;
this.pickSlipDetailCreational = pickSlipDetailCreational;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPartID() {
return partID;
}
public void setPartID(String partID) {
this.partID = partID;
}
public Integer getLocatorID() {
return locatorID;
}
public void setLocatorID(Integer locatorID) {
this.locatorID = locatorID;
}
public Integer getActualQty() {
return actualQty;
}
public void setActualQty(Integer actualQty) {
this.actualQty = actualQty;
}
public DataStatus getPickSlipDetailDataStatus() {
return pickSlipDetailDataStatus;
}
public void setPickSlipDetailDataStatus(DataStatus pickSlipDetailDataStatus) {
this.pickSlipDetailDataStatus = pickSlipDetailDataStatus;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getQty() {
return qty;
}
public void setQty(Integer qty) {
this.qty = qty;
}
public CreationalSpecification getPickSlipDetailCreational() {
return pickSlipDetailCreational;
}
public void setPickSlipDetailCreational(CreationalSpecification pickSlipDetailCreational) {
this.pickSlipDetailCreational = pickSlipDetailCreational;
}
public PickSlipDetailStatusType getPickSlipDetailStatusType() {
return pickSlipDetailStatusType;
}
public void setPickSlipDetailStatusType(PickSlipDetailStatusType pickSlipDetailStatusType) {
this.pickSlipDetailStatusType = pickSlipDetailStatusType;
}
public Integer getPickSlipNumber() {
return pickSlipNumber;
}
public void setPickSlipNumber(Integer pickSlipNumber) {
this.pickSlipNumber = pickSlipNumber;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
@Override
public int hashCode() {
int hash = 7;
hash = 37 * hash + Objects.hashCode(this.code);
hash = 37 * hash + Objects.hashCode(this.partID);
hash = 37 * hash + Objects.hashCode(this.locatorID);
hash = 37 * hash + Objects.hashCode(this.qty);
hash = 37 * hash + Objects.hashCode(this.actualQty);
hash = 37 * hash + Objects.hashCode(this.serialNumber);
hash = 37 * hash + Objects.hashCode(this.pickSlipDetailStatusType);
hash = 37 * hash + Objects.hashCode(this.pickSlipDetailDataStatus);
hash = 37 * hash + Objects.hashCode(this.pickSlipDetailCreational);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final PickSlipDetailEV other = (PickSlipDetailEV) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(PickSlipDetailEV other) {
return this.equals(other);
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderSourceType;
import com.eksad.masterdata.common.listEnum.SalesOrderState;
import com.eksad.masterdata.common.listEnum.SalesOrderStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderType;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.*;
import java.util.Date;
import java.util.Objects;
import java.util.Set;
@NamedStoredProcedureQuery(
name = "SalesOrder.generateSONumber",
procedureName = "generate_so_number",
parameters = {
@StoredProcedureParameter(name = "dealercode", type = String.class, mode = ParameterMode.IN)
}
)
@Entity
@Table(name = "TRX_SALESORDER")
public class SalesOrder implements EntityObject<SalesOrder> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "trx_so_gen")
@SequenceGenerator(name = "trx_so_gen", sequenceName = "trx_salesorder_seq", allocationSize = 1)
Integer id;
@Version
private Long version;
private String salesOrderID;
private String poCustomerID;
private String ahassCode;
private String noNotaPenjualan;
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy HH:mm:ss")
private Date salesOrderDate;
private Double dp;
private Double total;
@Enumerated(EnumType.STRING)
private SalesOrderType salesOrderType;
@Enumerated(EnumType.STRING)
private SalesOrderStatus salesOrderLastKnownStatus;
@Enumerated(EnumType.STRING)
private SalesOrderState salesOrderLastKnownState;
@Enumerated(EnumType.STRING)
private DataStatus salesOrderStatus;
@Embedded
private CreationalSpecification salesOrderCreational;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "salesOrderID", referencedColumnName = "salesOrderID")
private Set<SalesOrderDetail> salesOrderDetails;
private SalesOrderSourceType orderSource;
private String workOrderID;
private Boolean salesPackage;
private Integer countPrint;
private String appsOrderNumber;
public SalesOrder() {
}
public SalesOrder(String salesOrderID, String poCustomerID, String ahassCode, String noNotaPenjualan, Date salesOrderDate, Double dp, Double total, SalesOrderType salesOrderType, SalesOrderStatus salesOrderLastKnownStatus, SalesOrderState salesOrderLastKnownState, DataStatus salesOrderStatus, CreationalSpecification salesOrderCreational, Set<SalesOrderDetail> salesOrderDetails, SalesOrderSourceType orderSource, String workOrderID, Boolean salesPackage, Integer countPrint) {
this.salesOrderID = salesOrderID;
this.poCustomerID = poCustomerID;
this.ahassCode = ahassCode;
this.noNotaPenjualan = noNotaPenjualan;
this.salesOrderDate = salesOrderDate;
this.dp = dp;
this.total = total;
this.salesOrderType = salesOrderType;
this.salesOrderLastKnownStatus = salesOrderLastKnownStatus;
this.salesOrderLastKnownState = salesOrderLastKnownState;
this.salesOrderStatus = salesOrderStatus;
this.salesOrderCreational = salesOrderCreational;
this.salesOrderDetails = salesOrderDetails;
this.orderSource = orderSource;
this.workOrderID = workOrderID;
this.salesPackage = salesPackage;
this.countPrint = countPrint;
}
public String getAhassCode() {
return ahassCode;
}
public void setAhassCode(String ahassCode) {
this.ahassCode = ahassCode;
}
public String getNoNotaPenjualan() {
return noNotaPenjualan;
}
public void setNoNotaPenjualan(String noNotaPenjualan) {
this.noNotaPenjualan = noNotaPenjualan;
}
public Double getTotal() {
return total;
}
public void setTotal(Double total) {
this.total = total;
}
public SalesOrderType getSalesOrderType() {
return salesOrderType;
}
public void setSalesOrderType(SalesOrderType salesOrderType) {
this.salesOrderType = salesOrderType;
}
public SalesOrderStatus getSalesOrderLastKnownStatus() {
return salesOrderLastKnownStatus;
}
public void setSalesOrderLastKnownStatus(SalesOrderStatus salesOrderLastKnownStatus) {
this.salesOrderLastKnownStatus = salesOrderLastKnownStatus;
}
public SalesOrderState getSalesOrderLastKnownState() {
return salesOrderLastKnownState;
}
public void setSalesOrderLastKnownState(SalesOrderState salesOrderLastKnownState) {
this.salesOrderLastKnownState = salesOrderLastKnownState;
}
public Date getSalesOrderDate() {
return salesOrderDate;
}
public void setSalesOrderDate(Date salesOrderDate) {
this.salesOrderDate = salesOrderDate;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSalesOrderID() {
return salesOrderID;
}
public void setSalesOrderID(String salesOrderID) {
this.salesOrderID = salesOrderID;
}
public String getPoCustomerID() {
return poCustomerID;
}
public void setPoCustomerID(String poCustomerID) {
this.poCustomerID = poCustomerID;
}
public Double getDp() {
return dp;
}
public void setDp(Double dp) {
this.dp = dp;
}
public DataStatus getSalesOrderStatus() {
return salesOrderStatus;
}
public void setSalesOrderStatus(DataStatus salesOrderStatus) {
this.salesOrderStatus = salesOrderStatus;
}
public CreationalSpecification getSalesOrderCreational() {
return salesOrderCreational;
}
public void setSalesOrderCreational(CreationalSpecification salesOrderCreational) {
this.salesOrderCreational = salesOrderCreational;
}
public Set<SalesOrderDetail> getSalesOrderDetails() {
return salesOrderDetails;
}
public void setSalesOrderDetails(Set<SalesOrderDetail> salesOrderDetails) {
this.salesOrderDetails = salesOrderDetails;
}
public SalesOrderSourceType getOrderSource() {
return orderSource;
}
public void setOrderSource(SalesOrderSourceType orderSource) {
this.orderSource = orderSource;
}
public String getWorkOrderID() {
return workOrderID;
}
public void setWorkOrderID(String workOrderID) {
this.workOrderID = workOrderID;
}
public Boolean getSalesPackage() {
return salesPackage;
}
public void setSalesPackage(Boolean salesPackage) {
this.salesPackage = salesPackage;
}
public Long getVersion() {
return version;
}
public void setVersion(Long version) {
this.version = version;
}
public Integer getCountPrint() {
return countPrint;
}
public void setCountPrint(Integer countPrint) {
this.countPrint = countPrint;
}
public String getAppsOrderNumber() {
return appsOrderNumber;
}
public void setAppsOrderNumber(String appsOrderNumber) {
this.appsOrderNumber = appsOrderNumber;
}
@Override
public int hashCode() {
int hash = 7;
hash = 29 * hash + Objects.hashCode(this.salesOrderID);
hash = 29 * hash + Objects.hashCode(this.poCustomerID);
hash = 29 * hash + Objects.hashCode(this.noNotaPenjualan);
hash = 29 * hash + Objects.hashCode(this.salesOrderDate);
hash = 29 * hash + Objects.hashCode(this.dp);
hash = 29 * hash + Objects.hashCode(this.total);
hash = 29 * hash + Objects.hashCode(this.salesOrderType);
hash = 29 * hash + Objects.hashCode(this.salesOrderLastKnownStatus);
hash = 29 * hash + Objects.hashCode(this.salesOrderLastKnownState);
hash = 29 * hash + Objects.hashCode(this.salesOrderStatus);
hash = 29 * hash + Objects.hashCode(this.salesOrderCreational);
hash = 29 * hash + Objects.hashCode(this.salesOrderDetails);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final SalesOrder other = (SalesOrder) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(SalesOrder other) {
return this.equals(other);
}
}
package com.eksad.masterdata.domain;
import com.eksad.ddms.common.util.object.EntityObject;
import com.eksad.ddms.common.util.status.DataStatus;
import com.eksad.masterdata.common.listEnum.SalesOrderStatus;
import jakarta.persistence.*;
import java.util.Objects;
@Entity
@Table(name = "TRX_SALESORDERDETAIL")
public class SalesOrderDetail implements EntityObject<SalesOrderDetail> {
/**
* Hibernate purpose
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
Integer id;
private String salesOrderDetailID;
private String partID;
private String partNumber;
private String partDescription;
private String partGroup;
private String largePartGroup;
private Integer qty;
private Double price;
private Double discount;
private Double totalPrice;
private String keterangan;
private Boolean hoFlag;
private String salesPackageID;
private Double ppnRate;
private Double ppnAmount;
@Enumerated(EnumType.STRING)
private DataStatus salesOrderDetailStatus;
@Embedded
private CreationalSpecification salesOrderDetailCreational;
@Enumerated(EnumType.STRING)
private SalesOrderStatus salesorderdetaillastknownstatus;
private String promoID;
public SalesOrderDetail() {
}
public SalesOrderDetail(String salesOrderDetailID, String partID, String partNumber, String partDescription, String partGroup, String largePartGroup, Integer qty, Double price, Double discount, Double totalPrice, String keterangan, Boolean hoFlag, String salesPackageID, Double ppnRate, Double ppnAmount, DataStatus salesOrderDetailStatus, CreationalSpecification salesOrderDetailCreational, SalesOrderStatus salesorderdetaillastknownstatus) {
this.salesOrderDetailID = salesOrderDetailID;
this.partID = partID;
this.partNumber = partNumber;
this.partDescription = partDescription;
this.partGroup = partGroup;
this.largePartGroup = largePartGroup;
this.qty = qty;
this.price = price;
this.discount = discount;
this.totalPrice = totalPrice;
this.keterangan = keterangan;
this.hoFlag = hoFlag;
this.salesPackageID = salesPackageID;
this.ppnRate = ppnRate;
this.ppnAmount = ppnAmount;
this.salesOrderDetailStatus = salesOrderDetailStatus;
this.salesOrderDetailCreational = salesOrderDetailCreational;
this.salesorderdetaillastknownstatus = salesorderdetaillastknownstatus;
this.promoID = promoID;
}
public String getSalesOrderDetailID() {
return salesOrderDetailID;
}
public void setSalesOrderDetailID(String salesOrderDetailID) {
this.salesOrderDetailID = salesOrderDetailID;
}
public String getPartID() {
return partID;
}
public void setPartID(String partID) {
this.partID = partID;
}
public String getPartNumber() {
return partNumber;
}
public void setPartNumber(String partNumber) {
this.partNumber = partNumber;
}
public String getPartDescription() {
return partDescription;
}
public void setPartDescription(String partDescription) {
this.partDescription = partDescription;
}
public String getPartGroup() {
return partGroup;
}
public void setPartGroup(String partGroup) {
this.partGroup = partGroup;
}
public String getLargePartGroup() {
return largePartGroup;
}
public void setLargePartGroup(String largePartGroup) {
this.largePartGroup = largePartGroup;
}
public Integer getQty() {
return qty;
}
public void setQty(Integer qty) {
this.qty = qty;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Double getDiscount() {
return discount;
}
public void setDiscount(Double discount) {
this.discount = discount;
}
public Double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(Double totalPrice) {
this.totalPrice = totalPrice;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
public Boolean getHoFlag() {
return hoFlag;
}
public void setHoFlag(Boolean hoFlag) {
this.hoFlag = hoFlag;
}
public String getSalesPackageID() {
return salesPackageID;
}
public void setSalesPackageID(String salesPackageID) {
this.salesPackageID = salesPackageID;
}
public Double getPpnRate() {
return ppnRate;
}
public void setPpnRate(Double ppnRate) {
this.ppnRate = ppnRate;
}
public Double getPpnAmount() {
return ppnAmount;
}
public void setPpnAmount(Double ppnAmount) {
this.ppnAmount = ppnAmount;
}
public DataStatus getSalesOrderDetailStatus() {
return salesOrderDetailStatus;
}
public void setSalesOrderDetailStatus(DataStatus salesOrderDetailStatus) {
this.salesOrderDetailStatus = salesOrderDetailStatus;
}
public CreationalSpecification getSalesOrderDetailCreational() {
return salesOrderDetailCreational;
}
public void setSalesOrderDetailCreational(CreationalSpecification salesOrderDetailCreational) {
this.salesOrderDetailCreational = salesOrderDetailCreational;
}
public SalesOrderStatus getSalesorderdetaillastknownstatus() {
return salesorderdetaillastknownstatus;
}
public void setSalesorderdetaillastknownstatus(SalesOrderStatus salesorderdetaillastknownstatus) {
this.salesorderdetaillastknownstatus = salesorderdetaillastknownstatus;
}
public String getPromoID() {
return promoID;
}
public void setPromoID(String promoID) {
this.promoID = promoID;
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.salesOrderDetailID);
hash = 23 * hash + Objects.hashCode(this.partID);
hash = 23 * hash + Objects.hashCode(this.partNumber);
hash = 23 * hash + Objects.hashCode(this.partDescription);
hash = 23 * hash + Objects.hashCode(this.partGroup);
hash = 23 * hash + Objects.hashCode(this.largePartGroup);
hash = 23 * hash + Objects.hashCode(this.qty);
hash = 23 * hash + Objects.hashCode(this.price);
hash = 23 * hash + Objects.hashCode(this.discount);
hash = 23 * hash + Objects.hashCode(this.totalPrice);
hash = 23 * hash + Objects.hashCode(this.keterangan);
hash = 23 * hash + Objects.hashCode(this.hoFlag);
hash = 23 * hash + Objects.hashCode(this.salesPackageID);
hash = 23 * hash + Objects.hashCode(this.salesOrderDetailStatus);
hash = 23 * hash + Objects.hashCode(this.salesOrderDetailCreational);
hash = 23 * hash + Objects.hashCode(this.salesorderdetaillastknownstatus);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final SalesOrderDetail other = (SalesOrderDetail) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public boolean sameIdentityAs(SalesOrderDetail 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.domain.assembler;
import com.eksad.ddms.common.util.object.IObjectAssembler;
import com.eksad.masterdata.common.dto.CreationalSpecificationDTO;
import com.eksad.masterdata.domain.CreationalSpecification;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class CreationalSpecificationDTOAssembler implements IObjectAssembler<CreationalSpecification, CreationalSpecificationDTO> {
@Override
public CreationalSpecificationDTO toDTO(CreationalSpecification domainObject) {
CreationalSpecificationDTO dto = new CreationalSpecificationDTO();
dto.setCreatedAt(domainObject.getCreatedAt());
dto.setCreatedBy(domainObject.getCreatedBy());
dto.setModifiedAt(domainObject.getModifiedAt());
dto.setModifiedBy(domainObject.getModifiedBy());
return dto;
}
@Override
public CreationalSpecification toDomain(CreationalSpecificationDTO dtoObject) {
CreationalSpecification dto = new CreationalSpecification();
dto.setCreatedAt(dtoObject.getCreatedAt() == null ? new Date() : dtoObject.getCreatedAt());
dto.setCreatedBy(dtoObject.getCreatedBy());
dto.setModifiedAt(dtoObject.getModifiedAt() == null ? new Date() : dtoObject.getCreatedAt());
dto.setModifiedBy(dtoObject.getModifiedBy());
return dto;
}
public Set<CreationalSpecificationDTO> toDTOs(Set<CreationalSpecification> arg0) {
Set<CreationalSpecificationDTO> res = new HashSet<>();
arg0.forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public Set<CreationalSpecification> toDomains(Set<CreationalSpecificationDTO> arg0) {
Set<CreationalSpecification> res = new HashSet<>();
arg0.forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
}
package com.eksad.masterdata.domain.assembler;
import com.eksad.ddms.common.util.ConverterImageByte;
import com.eksad.ddms.common.util.object.IObjectAssembler;
import com.eksad.masterdata.common.dto.CreationalSpecificationDTO;
import com.eksad.masterdata.common.dto.PartDTO;
import com.eksad.masterdata.domain.Part;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class PartAssembler implements IObjectAssembler<Part, PartDTO> {
@Override
public PartDTO toDTO(Part domainObject) {
PartDTO dto = new PartDTO();
dto.setPartID(domainObject.getCode());
dto.setLargePartGroup(domainObject.getLargePartGroup());
dto.setCurrentType(domainObject.getCurrentType());
dto.setPartType(domainObject.getPartType());
dto.setPartCategory(domainObject.getPartCategory());
dto.setPartDescription(domainObject.getPartDescription());
dto.setHet(domainObject.getHet());
dto.setHgpType(domainObject.getHgpType());
dto.setHotlinePart(domainObject.isHotlinePart());
dto.setHotlinePartDeliveryCost(domainObject.getHotlinePartDeliveryCost());
dto.setLifeTimeType(domainObject.getLifeTimeType());
dto.setMaxQtyHotline(domainObject.getMaxQtyHotline());
dto.setMinOrderBigDealer(domainObject.getMinOrderBigDealer());
dto.setMinOrderMiddleDealer(domainObject.getMinOrderMiddleDealer());
dto.setMinOrderSmallDealer(domainObject.getMinOrderSmallDealer());
dto.setPartOrigin(domainObject.getPartOrigin());
dto.setPartGroup(domainObject.getPartGroup());
dto.setPartNumber(domainObject.getCode());
dto.setPartPhotoURL(domainObject.getPartPhotoURL());
dto.setPartReference(domainObject.getPartReference());
dto.setPnt(domainObject.getPnt());
dto.setRank(domainObject.getRank());
dto.setBasicPrice(domainObject.getBasicPrice());
dto.setPartStockType(domainObject.getPartStockType());
dto.setStatus(domainObject.getStatus());
dto.setStatusMD(domainObject.getStatusMD());
dto.setSuperseed(domainObject.getSuperseed());
dto.setSupplierCode(domainObject.getSupplierCode());
dto.setItemSimiliar(domainObject.getItemSimilar());
dto.setPartStatus(domainObject.getPartStatus());
dto.setPartCreationalDTO(domainObject.getPartCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getPartCreational()));
dto.setPartTypeMotorDTOs(domainObject.getPartTypeMotors() == null ? new ArrayList<>() : new PartTypeMotorAssembler().toDTOs(domainObject.getPartTypeMotors()));
dto.setPartLocalType(domainObject.getPartLocalType());
dto.setPartMainDealerID(domainObject.getPartMainDealerID());
dto.setPartLocalSaleable(domainObject.getPartLocalSaleable());
dto.setDealerID(domainObject.getDealerID());
dto.setImageByte(domainObject.getPartPhotoURL() == null ? new byte[10] : ConverterImageByte.readBytesFromFile(dto.getPartPhotoURL()));
return dto;
}
@Override
public Part toDomain(PartDTO dtoObject) {
Part data = new Part();
data.setCode(dtoObject.getPartID());
data.setLargePartGroup(dtoObject.getLargePartGroup());
data.setCurrentType(dtoObject.getCurrentType());
data.setPartType(dtoObject.getPartType());
data.setPartCategory(dtoObject.getPartCategory());
data.setPartDescription(dtoObject.getPartDescription());
data.setHet(dtoObject.getHet());
data.setHgpType(dtoObject.getHgpType());
data.setHotlinePart(dtoObject.isHotlinePart());
data.setHotlinePartDeliveryCost(dtoObject.getHotlinePartDeliveryCost());
data.setLifeTimeType(dtoObject.getLifeTimeType());
data.setMaxQtyHotline(dtoObject.getMaxQtyHotline());
data.setMinOrderBigDealer(dtoObject.getMinOrderBigDealer());
data.setMinOrderMiddleDealer(dtoObject.getMinOrderMiddleDealer());
data.setMinOrderSmallDealer(dtoObject.getMinOrderSmallDealer());
data.setPartOrigin(dtoObject.getPartOrigin());
data.setPartGroup(dtoObject.getPartGroup());
data.setCode(dtoObject.getPartNumber());
data.setPartPhotoURL(dtoObject.getPartPhotoURL());
data.setPartReference(dtoObject.getPartReference());
data.setPnt(dtoObject.getPnt());
data.setRank(dtoObject.getRank());
data.setBasicPrice(dtoObject.getBasicPrice());
data.setPartStockType(dtoObject.getPartStockType());
data.setStatus(dtoObject.getStatus());
data.setStatusMD(dtoObject.getStatusMD());
data.setSuperseed(dtoObject.getSuperseed());
data.setSupplierCode(dtoObject.getSupplierCode());
data.setItemSimilar(dtoObject.getItemSimiliar());
data.setPartStatus(dtoObject.getPartStatus());
data.setPartCreational(dtoObject.getPartCreationalDTO() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getPartCreationalDTO()));
data.setPartTypeMotors(dtoObject.getPartTypeMotorDTOs() == null ? new HashSet<>() : new PartTypeMotorAssembler().toDomains(dtoObject.getPartTypeMotorDTOs()));
data.setPartMainDealerID(dtoObject.getPartMainDealerID());
data.setPartLocalType(dtoObject.getPartLocalType());
data.setPartLocalSaleable(dtoObject.getPartLocalSaleable());
data.setDealerID(dtoObject.getDealerID());
return data;
}
public List<PartDTO> toDTOs(Set<Part> arg0) {
List<PartDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<PartDTO> toDTOs(List<Part> arg0) {
List<PartDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public Set<Part> toDomains(List<PartDTO> arg0) {
Set<Part> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
}
package com.eksad.masterdata.domain.assembler;
import com.eksad.ddms.common.util.object.IObjectAssembler;
import com.eksad.masterdata.common.dto.CreationalSpecificationDTO;
import com.eksad.masterdata.common.dto.PartTypeMotorsDTO;
import com.eksad.masterdata.domain.PartTypeMotor;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class PartTypeMotorAssembler implements IObjectAssembler<PartTypeMotor, PartTypeMotorsDTO> {
@Override
public PartTypeMotorsDTO toDTO(PartTypeMotor domainObject) {
PartTypeMotorsDTO dto = new PartTypeMotorsDTO();
dto.setDeskripsi(domainObject.getDeskripsi());
dto.setLastEffectiveDate(domainObject.getLastEffectiveDate());
dto.setMarketingType(domainObject.getMarketingType());
dto.setPartTypeMotorCreationalDTO(domainObject.getPartTypeMotorCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getPartTypeMotorCreational()));
dto.setIdPtm(domainObject.getIdPtm());
dto.setPartTypeMotorStatus(domainObject.getPartTypeMotorStatus());
dto.setProductionType(domainObject.getProductionType());
return dto;
}
@Override
public PartTypeMotor toDomain(PartTypeMotorsDTO dtoObject) {
PartTypeMotor data = new PartTypeMotor();
data.setDeskripsi(dtoObject.getDeskripsi());
data.setLastEffectiveDate(dtoObject.getLastEffectiveDate());
data.setMarketingType(dtoObject.getMarketingType());
data.setPartTypeMotorCreational(dtoObject.getPartTypeMotorCreationalDTO() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getPartTypeMotorCreationalDTO()));
data.setIdPtm(dtoObject.getIdPtm());
data.setPartTypeMotorStatus(dtoObject.getPartTypeMotorStatus());
data.setProductionType(dtoObject.getProductionType());
return data;
}
public List<PartTypeMotorsDTO> toDTOs(Set<PartTypeMotor> arg0) {
List<PartTypeMotorsDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<PartTypeMotorsDTO> toDTOs(List<PartTypeMotor> arg0) {
List<PartTypeMotorsDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public Set<PartTypeMotor> toDomains(List<PartTypeMotorsDTO> arg0) {
Set<PartTypeMotor> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
}
package com.eksad.masterdata.domain.assembler;
import com.eksad.ddms.common.util.object.IObjectAssembler;
import com.eksad.masterdata.common.dto.CreationalSpecificationDTO;
import com.eksad.masterdata.common.dto.PickSlipDTO;
import com.eksad.masterdata.common.dto.PickSlipDetailDTO;
import com.eksad.masterdata.common.dto.PickSlipDetailEVDTO;
import com.eksad.masterdata.domain.PickSlip;
import com.eksad.masterdata.domain.PickSlipDetail;
import com.eksad.masterdata.domain.PickSlipDetailEV;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class PickSlipAssembler implements IObjectAssembler<PickSlip, PickSlipDTO> {
@Override
public PickSlipDTO toDTO(PickSlip domainObject) {
PickSlipDTO pickSlipDTO = new PickSlipDTO();
pickSlipDTO.setPickSlipDate(domainObject.getPickSlipDate());
pickSlipDTO.setPickerID(domainObject.getPickerID());
pickSlipDTO.setPickSlipCreational(
domainObject.getPickSlipCreational() == null
? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getPickSlipCreational()));
pickSlipDTO.setPickSlipDetailDTOs(new ArrayList(toDetailDTOs(domainObject.getPickSlipDetails())));
pickSlipDTO.setPickSlipDetailEVDTOs(new ArrayList(toDetailEVDTOs(domainObject.getPickSlipDetailsEV())));
pickSlipDTO.setPickSlipNumber(domainObject.getPickSlipNumber());
pickSlipDTO.setSalesOrderID(domainObject.getSalesOrderID());
pickSlipDTO.setPickSlipStatusType(domainObject.getPickSlipStatusType());
pickSlipDTO.setPickSlipStatus(domainObject.getPickSlipStatus());
pickSlipDTO.setAhassCode(domainObject.getAhassID());
pickSlipDTO.setPosServiceID(domainObject.getPosServiceID());
pickSlipDTO.setVersion(domainObject.getVersion());
return pickSlipDTO;
}
@Override
public PickSlip toDomain(PickSlipDTO dtoObject) {
PickSlip data = new PickSlip();
data.setPickSlipNumber(dtoObject.getPickSlipNumber());
data.setSalesOrderID(dtoObject.getSalesOrderID());
data.setAhassID(dtoObject.getAhassCode());
data.setPickerID(dtoObject.getPickerID());
data.setPickSlipDate(dtoObject.getPickSlipDate());
data.setPickSlipStatusType(dtoObject.getPickSlipStatusType());
data.setPickSlipStatus(dtoObject.getPickSlipStatus());
data.setPosServiceID(dtoObject.getPosServiceID());
data.setPickSlipCreational(dtoObject.getPickSlipCreational() == null
? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getPickSlipCreational()));
data.setVersion(dtoObject.getVersion());
return data;
}
private PickSlipDetailDTO toDTO(PickSlipDetail domain) {
PickSlipDetailDTO dto = new PickSlipDetailDTO();
dto.setPartID(domain.getPartID());
dto.setPickSlipDetailID(domain.getCode());
dto.setPickSlipDetailCreationalDTO(domain.getPickSlipDetailCreational() == null
? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domain.getPickSlipDetailCreational()));
dto.setPickSlipDetailDataStatus(domain.getPickSlipDetailDataStatus());
dto.setQty(domain.getQty());
dto.setActualQty(domain.getActualQty());
dto.setLocatorID(domain.getLocatorID());
return dto;
}
private PickSlipDetail toDomain(PickSlipDetailDTO dto) {
PickSlipDetail data = new PickSlipDetail();
data.setCode(dto.getPickSlipDetailID());
data.setPartID(dto.getPartID());
data.setLocatorID(dto.getLocatorID());
data.setQty(dto.getQty());
data.setActualQty(dto.getActualQty());
data.setPickSlipDetailStatusType(dto.getPickSlipDetailStatusType());
data.setPickSlipDetailDataStatus(dto.getPickSlipDetailDataStatus());
data.setPickSlipDetailCreational(dto.getPickSlipDetailCreationalDTO() == null
? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dto.getPickSlipDetailCreationalDTO()));
return data;
}
private PickSlipDetailEVDTO toDTOEV(PickSlipDetailEV domain) {
PickSlipDetailEVDTO dto = new PickSlipDetailEVDTO();
dto.setPartID(domain.getPartID());
dto.setPickSlipDetailID(domain.getCode());
dto.setPickSlipDetailCreationalDTO(domain.getPickSlipDetailCreational() == null
? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domain.getPickSlipDetailCreational()));
dto.setPickSlipDetailDataStatus(domain.getPickSlipDetailDataStatus());
dto.setQty(domain.getQty());
dto.setActualQty(domain.getActualQty());
dto.setLocatorID(domain.getLocatorID());
dto.setSerialNumber(domain.getSerialNumber());
return dto;
}
private PickSlipDetailEV toDomainEV(PickSlipDetailEVDTO dto) {
PickSlipDetailEV data = new PickSlipDetailEV();
data.setCode(dto.getPickSlipDetailID());
data.setPartID(dto.getPartID());
data.setLocatorID(dto.getLocatorID());
data.setQty(dto.getQty());
data.setActualQty(dto.getActualQty());
data.setSerialNumber(dto.getSerialNumber());
data.setPickSlipDetailStatusType(dto.getPickSlipDetailStatusType());
data.setPickSlipDetailDataStatus(dto.getPickSlipDetailDataStatus());
data.setPickSlipDetailCreational(dto.getPickSlipDetailCreationalDTO() == null
? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dto.getPickSlipDetailCreationalDTO()));
return data;
}
public List<PickSlipDTO> toDTOs(Set<PickSlip> arg0) {
List<PickSlipDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<PickSlipDTO> toDTOs(List<PickSlip> arg0) {
List<PickSlipDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<PickSlipDetailDTO> toDetailDTOs(Set<PickSlipDetail> arg0) {
List<PickSlipDetailDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<PickSlipDetailEVDTO> toDetailEVDTOs(Set<PickSlipDetailEV> arg0) {
List<PickSlipDetailEVDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTOEV(o));
});
return res;
}
public Set<PickSlip> toDomains(List<PickSlipDTO> arg0) {
Set<PickSlip> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
public Set<PickSlipDetail> toDetailDomains(List<PickSlipDetailDTO> arg0) {
Set<PickSlipDetail> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
public Set<PickSlipDetailEV> toDetailEVDomains(List<PickSlipDetailEVDTO> arg0) {
Set<PickSlipDetailEV> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomainEV(o));
});
return res;
}
}
package com.eksad.masterdata.domain.assembler;
import com.eksad.ddms.common.util.object.IObjectAssembler;
import com.eksad.masterdata.common.dto.CreationalSpecificationDTO;
import com.eksad.masterdata.common.dto.SalesOrderDTO;
import com.eksad.masterdata.domain.SalesOrder;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class SalesOrderAssembler implements IObjectAssembler<SalesOrder, SalesOrderDTO> {
@Override
public SalesOrderDTO toDTO(SalesOrder domainObject) {
SalesOrderDTO dto = new SalesOrderDTO();
dto.setSalesOrderCreational(domainObject.getSalesOrderCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getSalesOrderCreational()));
dto.setSalesOrderLastKnownState(domainObject.getSalesOrderLastKnownState());
dto.setSalesOrderLastKnownStatus(domainObject.getSalesOrderLastKnownStatus());
dto.setSalesOrderType(domainObject.getSalesOrderType());
dto.setTotal(domainObject.getTotal());
dto.setDp(domainObject.getDp());
dto.setPoCustomerID(domainObject.getPoCustomerID());
dto.setSalesOrderDate(domainObject.getSalesOrderDate());
dto.setSalesOrderDetailDTOs(domainObject.getSalesOrderDetails() == null ? new ArrayList<>() : new SalesOrderDetailAssembler().toDTOs(domainObject.getSalesOrderDetails()));
dto.setSalesOrderID(domainObject.getSalesOrderID());
dto.setSalesOrderStatus(domainObject.getSalesOrderStatus());
dto.setNoNotaPenjualan(domainObject.getNoNotaPenjualan());
dto.setAhassCode(domainObject.getAhassCode());
dto.setOrderSource(domainObject.getOrderSource());
dto.setWorkOrderID(domainObject.getWorkOrderID());
dto.setSalesPackage(domainObject.getSalesPackage() == null ? Boolean.FALSE : domainObject.getSalesPackage());
dto.setVersion(domainObject.getVersion());
dto.setCountPrint(domainObject.getCountPrint());
dto.setAppsOrderNumber(domainObject.getAppsOrderNumber());
return dto;
}
@Override
public SalesOrder toDomain(SalesOrderDTO dtoObject) {
SalesOrder data = new SalesOrder();
data.setDp(dtoObject.getDp());
data.setPoCustomerID(dtoObject.getPoCustomerID());
data.setSalesOrderCreational(dtoObject.getSalesOrderCreational() == null ? new CreationalSpecificationDTOAssembler().toDomain(new CreationalSpecificationDTO().getInstance()) : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getSalesOrderCreational()));
data.setSalesOrderLastKnownState(dtoObject.getSalesOrderLastKnownState());
data.setSalesOrderLastKnownStatus(dtoObject.getSalesOrderLastKnownStatus());
data.setSalesOrderType(dtoObject.getSalesOrderType());
data.setTotal(dtoObject.getTotal());
data.setSalesOrderDate(dtoObject.getSalesOrderDate());
data.setSalesOrderDetails(dtoObject.getSalesOrderDetailDTOs() == null ? new HashSet<>() : new SalesOrderDetailAssembler().toDomains(dtoObject.getSalesOrderDetailDTOs()));
data.setSalesOrderID(dtoObject.getSalesOrderID());
data.setSalesOrderStatus(dtoObject.getSalesOrderStatus());
data.setNoNotaPenjualan(dtoObject.getNoNotaPenjualan());
data.setAhassCode(dtoObject.getAhassCode());
data.setOrderSource(dtoObject.getOrderSource());
data.setWorkOrderID(dtoObject.getWorkOrderID());
data.setSalesPackage(dtoObject.getSalesPackage());
data.setVersion(dtoObject.getVersion());
data.setCountPrint(dtoObject.getCountPrint());
data.setAppsOrderNumber(dtoObject.getAppsOrderNumber());
return data;
}
public List<SalesOrderDTO> toDTOs(Set<SalesOrder> arg0) {
List<SalesOrderDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<SalesOrderDTO> toDTOs(List<SalesOrder> arg0) {
List<SalesOrderDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public Set<SalesOrder> toDomains(List<SalesOrderDTO> arg0) {
Set<SalesOrder> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
}
package com.eksad.masterdata.domain.assembler;
import com.eksad.ddms.common.util.object.IObjectAssembler;
import com.eksad.masterdata.common.dto.CreationalSpecificationDTO;
import com.eksad.masterdata.common.dto.SalesOrderDetailDTO;
import com.eksad.masterdata.domain.CreationalSpecification;
import com.eksad.masterdata.domain.SalesOrderDetail;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
*
* @author amy
*/
public class SalesOrderDetailAssembler implements IObjectAssembler<SalesOrderDetail, SalesOrderDetailDTO> {
@Override
public SalesOrderDetailDTO toDTO(SalesOrderDetail domainObject) {
SalesOrderDetailDTO dto = new SalesOrderDetailDTO();
dto.setPartID(domainObject.getPartID());
dto.setSalesOrderDetailID(domainObject.getSalesOrderDetailID());
dto.setPrice(domainObject.getPrice());
dto.setQty(domainObject.getQty());
dto.setDiscount(domainObject.getDiscount());
dto.setHoFlag(domainObject.getHoFlag());
dto.setKeterangan(domainObject.getKeterangan());
dto.setLargePartGroup(domainObject.getLargePartGroup());
dto.setPartDescription(domainObject.getPartDescription());
dto.setPartGroup(domainObject.getPartGroup());
dto.setPartNumber(domainObject.getPartNumber());
dto.setSalesPackageID(domainObject.getSalesPackageID());
dto.setSalesOrderDetailCreationalSpecificationDTO(domainObject.getSalesOrderDetailCreational() == null ? new CreationalSpecificationDTO() : new CreationalSpecificationDTOAssembler().toDTO(domainObject.getSalesOrderDetailCreational()));
dto.setSalesOrderDetailStatus(domainObject.getSalesOrderDetailStatus());
dto.setTotalPrice(domainObject.getTotalPrice());
dto.setSalesorderdetaillastknownstatus(domainObject.getSalesorderdetaillastknownstatus());
dto.setPromoID(domainObject.getPromoID());
dto.setPpnRate(domainObject.getPpnRate());
dto.setPpnAmount(domainObject.getPpnAmount());
return dto;
}
@Override
public SalesOrderDetail toDomain(SalesOrderDetailDTO dtoObject) {
SalesOrderDetail data = new SalesOrderDetail();
data.setPartID(dtoObject.getPartID());
data.setSalesOrderDetailID(dtoObject.getSalesOrderDetailID());
data.setPrice(dtoObject.getPrice());
data.setQty(dtoObject.getQty());
data.setDiscount(dtoObject.getDiscount());
data.setHoFlag(dtoObject.getHoFlag());
data.setKeterangan(dtoObject.getKeterangan());
data.setLargePartGroup(dtoObject.getLargePartGroup());
data.setPartDescription(dtoObject.getPartDescription());
data.setPartGroup(dtoObject.getPartGroup());
data.setPartNumber(dtoObject.getPartNumber());
data.setSalesPackageID(dtoObject.getSalesPackageID());
data.setSalesOrderDetailCreational(dtoObject.getSalesOrderDetailCreationalSpecificationDTO()== null ? new CreationalSpecification() : new CreationalSpecificationDTOAssembler().toDomain(dtoObject.getSalesOrderDetailCreationalSpecificationDTO()));
data.setSalesOrderDetailStatus(dtoObject.getSalesOrderDetailStatus());
data.setTotalPrice(dtoObject.getTotalPrice());
data.setSalesorderdetaillastknownstatus(dtoObject.getSalesorderdetaillastknownstatus());
data.setPromoID(dtoObject.getPromoID() == null ? "" :dtoObject.getPromoID());
return data;
}
public List<SalesOrderDetailDTO> toDTOs(Set<SalesOrderDetail> arg0) {
List<SalesOrderDetailDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public List<SalesOrderDetailDTO> toDTOs(List<SalesOrderDetail> arg0) {
List<SalesOrderDetailDTO> res = new ArrayList<>();
arg0.stream().forEach((o) -> {
res.add(toDTO(o));
});
return res;
}
public Set<SalesOrderDetail> toDomains(List<SalesOrderDetailDTO> arg0) {
Set<SalesOrderDetail> res = new HashSet<>();
arg0.stream().forEach((o) -> {
res.add(toDomain(o));
});
return res;
}
}
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 org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;
@NoRepositoryBean
public interface GenericRepository<T> extends PagingAndSortingRepository<T, Long> {
<S extends T> S save(S entity);
}
package com.eksad.masterdata.repository;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.persistence.Query;
import org.springframework.stereotype.Repository;
import java.util.logging.Level;
import java.util.logging.Logger;
@Repository
public class ImplementSequenceGeneratorRepository implements InterfaceSequenceGeneratorRepository {
private static final Logger LOG = Logger.getLogger(ImplementSequenceGeneratorRepository.class.getName());
@PersistenceContext
private EntityManager entityManager;
@Override
public String getTransactionNumber(String dealerCode, String trxCode, String userID) {
try {
Query query = entityManager.createNativeQuery("select * FROM public.f_generate_number(:arg0, :arg1, :arg2)");
query.setParameter("arg0", dealerCode);
query.setParameter("arg1", trxCode);
query.setParameter("arg2", userID);
return (String) query.getSingleResult();
} catch (Exception e) {
LOG.log(Level.INFO, "Error get / update sequence ==> ", e.getMessage());
return null;
}
}
@Override
public String updateTransactionNumber(String dealerCode, String trxCode, String userID) {
try {
Query query = entityManager.createNativeQuery("select * FROM public.f_generate_number(:arg0, :arg1, :arg2)");
query.setParameter("arg0", dealerCode);
query.setParameter("arg1", trxCode);
query.setParameter("arg2", userID);
return (String) query.getSingleResult();
} catch (Exception e) {
LOG.log(Level.INFO, "Error get / update sequence ==> ", e.getMessage());
return null;
}
}
}
package com.eksad.masterdata.repository;
public interface InterfaceSequenceGeneratorRepository {
String getTransactionNumber(String dealerCode, String trxCode, String userID);
String updateTransactionNumber(String dealerCode, String trxCode, String userID);
}
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> {
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.domain.Part;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@Transactional
public interface PartRepository extends GenericRepository<Part> {
List<Part> findAllByCode(String code);
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.common.dto.WorkOrderSOHotlineDTO;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.jdbc.Work;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Repository
@Transactional
public class PartWOHotlineRepository {
@PersistenceContext
EntityManager entityManager;
public List<WorkOrderSOHotlineDTO> getSOHotline(String woID) {
try {
List<WorkOrderSOHotlineDTO> 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_soid_and_hotlineflag_by_woid(?)";
PreparedStatement ps = cnctn.prepareStatement(query);
ps.setString(1, woID);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
WorkOrderSOHotlineDTO data = new WorkOrderSOHotlineDTO();
data.setSoID(rs.getString("soid"));
data.setHotlineFlag(rs.getBoolean("hotlineflag"));
list.add(data);
}
}
});
return list;
} catch (HibernateException e) {
e.printStackTrace();
return new ArrayList<>();
}
}
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.domain.PickSlip;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Repository;
@Repository
@Transactional
public interface PickSlipRepository extends GenericRepository<PickSlip> {
public PickSlip findOneBySalesOrderIDAndAhassID(String salesOrderID, String ahassID);
}
package com.eksad.masterdata.repository;
import com.eksad.masterdata.domain.SalesOrder;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Date;
import java.util.List;
public interface SalesOrderRepository extends GenericRepository<SalesOrder> {
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderID=:soID")
SalesOrder findOneBySalesOrderID(@Param("soID") String salesOrderID);
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderLastKnownStatus in(com.eksad.masterdata.common.listEnum.SalesOrderStatus.COMPLETE, com.eksad.masterdata.common.listEnum.SalesOrderStatus.BO_COMPLETE) and so.salesOrderID=:salesOrderID")
SalesOrder findSObySOIDwithTypeBO(@Param("salesOrderID") String salesOrderID);
@Query("SELECT so FROM SalesOrder so WHERE so.salesOrderDate BETWEEN :from AND :to AND so.ahassCode=:ahassCode ")
List<SalesOrder> getSalesOrderByRangeAndDealerIDWithoutStatus(@Param("from") Date from, @Param("to") Date to, @Param("ahassCode") String ahassCode);
SalesOrder findOneBySalesOrderIDAndAhassCode(String salesOrderID, String ahassCode);
@Query("SELECT so FROM SalesOrder so WHERE so.workOrderID =:workOrderID AND so.ahassCode =:ahassCode ")
List<SalesOrder> findAllSOByWOIDAndAhassCode(@Param("workOrderID") String workOrderID, @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.response.ResponseDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponsePartGetDTO;
import com.eksad.masterdata.domain.Part;
import com.eksad.masterdata.domain.assembler.PartAssembler;
import com.eksad.masterdata.repository.PartRepository;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.PropertySource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@PropertySource("classpath:error-message.properties")
@Slf4j
public class PartHystrixService {
@Autowired
PartRepository partRepository;
@HystrixCommand(fallbackMethod = "defaultGetFallback")
public ResponseEntity<ResponsePartGetDTO> getPartByPartID(String partID) {
List<Part> datas;
Part data = new Part();
try {
datas = partRepository.findAllByCode(partID);
if (datas == null) {
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponsePartGetDTO(new ResponseDTO().noDataFoundResponse(), null));
}
data = datas.get(0);
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponsePartGetDTO(new ResponseDTO().defaultResponse(), new PartAssembler().toDTO(data)));
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponsePartGetDTO(new ResponseDTO().failedRespose(String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value()), e.getMessage()), null));
}
}
}
package com.eksad.masterdata.service;
import com.eksad.ddms.common.util.response.ResponseDTO;
import com.eksad.masterdata.common.dto.responseDto.ResponsePickSlipGetDTO;
import com.eksad.masterdata.domain.PickSlip;
import com.eksad.masterdata.domain.assembler.PickSlipAssembler;
import com.eksad.masterdata.repository.PickSlipRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.PropertySource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@Service
@PropertySource("classpath:error-message.properties")
public class PickSlipService {
@Autowired
private PickSlipRepository pickSlipRepository;
public ResponseEntity<ResponsePickSlipGetDTO> getPickSlipBySalesOrderID(String salesOrderID, String ahassID) {
PickSlip data;
try {
data = pickSlipRepository.findOneBySalesOrderIDAndAhassID(salesOrderID, ahassID);
if (data == null) {
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponsePickSlipGetDTO(new ResponseDTO().noDataFoundResponse(), null));
}
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponsePickSlipGetDTO(new ResponseDTO().defaultResponse(), new PickSlipAssembler().toDTO(data)));
} catch (Exception e) {
// logger.info("This is info from pickslip services: " + e.getMessage());
return ResponseEntity.status(HttpStatus.FOUND).body(
new ResponsePickSlipGetDTO(new ResponseDTO().failedRespose(String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value()), e.getMessage()), null));
}
}
}
package com.eksad.masterdata.service;
import com.eksad.masterdata.repository.InterfaceSequenceGeneratorRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@Service
public class SequenceGeneratorHystrixService {
@Autowired
InterfaceSequenceGeneratorRepository sequenceGeneratorRepository;
public ResponseEntity<String> updateTransactionNumber(String dealerCode, String trxCode, String userID) {
try {
String noTrx = sequenceGeneratorRepository.updateTransactionNumber(dealerCode, trxCode, userID);
if (noTrx == null) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body("");
}
return ResponseEntity.status(HttpStatus.FOUND).body(noTrx);
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
}
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();
}
}
# DATABASE - POSTGRE
#-----------------------------------------------------------------------------------------------------------------------
## Host, Username and Password Setup
spring.datasource.url = jdbc:postgresql://localhost:5432/postgres
spring.datasource.username = postgres
spring.datasource.password = password.1
spring.datasource.url = ${DATASOURCE_URL:jdbc:postgresql://149.129.246.61:1832/ddmsh2_cbr}
spring.datasource.username = ${DATASOURCE_USERNAME:ddmsh2app}
spring.datasource.password = ${DATASOURCE_PASSWORD:bandungh1h2h3}
## System Config
spring.jpa.generate-ddl=false
......@@ -13,12 +13,10 @@ spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
# SERVICE - SPRINGBOOT
#-----------------------------------------------------------------------------------------------------------------------
## POINTING
##
##
##
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/}
# KAFKA
#-----------------------------------------------------------------------------------------------------------------------
......@@ -37,3 +35,5 @@ spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.S
# Kafka Topic Name
kafka.topic.name=pipeline-topic
spring.main.allow-circular-references=true
\ No newline at end of file
# DATABASE - POSTGRE
#-----------------------------------------------------------------------------------------------------------------------
## Host, Username and Password Setup
spring.datasource.url = jdbc:postgresql://localhost:5432/postgres
spring.datasource.username = postgres
spring.datasource.password = password.1
spring.datasource.url = ${DATASOURCE_URL:jdbc:postgresql://149.129.246.61:1832/ddmsh2_cbr}
spring.datasource.username = ${DATASOURCE_USERNAME:ddmsh2app}
spring.datasource.password = ${DATASOURCE_PASSWORD:bandungh1h2h3}
## System Config
spring.jpa.generate-ddl=false
......@@ -13,12 +13,10 @@ spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
# SERVICE - SPRINGBOOT
#-----------------------------------------------------------------------------------------------------------------------
## POINTING
##
##
##
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/}
# KAFKA
#-----------------------------------------------------------------------------------------------------------------------
......@@ -37,3 +35,5 @@ spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.S
# Kafka Topic Name
kafka.topic.name=pipeline-topic
spring.main.allow-circular-references=true
\ No newline at end of file
# DATABASE - POSTGRE
#-----------------------------------------------------------------------------------------------------------------------
## Host, Username and Password Setup
spring.datasource.url = ${DATASOURCE_URL:jdbc:postgresql://149.129.246.61:1832/ddmsh2_cbr}
spring.datasource.username = ${DATASOURCE_USERNAME:ddmsh2app}
spring.datasource.password = ${DATASOURCE_PASSWORD:bandungh1h2h3}
## System Config
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto = none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
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/}
# KAFKA
#-----------------------------------------------------------------------------------------------------------------------
# Kafka Bootstrap Server
spring.kafka.bootstrap-servers=localhost:9092
# Kafka Producer Configuration
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
# Kafka Consumer Configuration
spring.kafka.consumer.group-id=my-group
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
# Kafka Topic Name
kafka.topic.name=pipeline-topic
spring.main.allow-circular-references=true
\ No newline at end of file
# DATABASE - POSTGRE
#-----------------------------------------------------------------------------------------------------------------------
## Host, Username and Password Setup
spring.datasource.url = ${DATASOURCE_URL:jdbc:postgresql://149.129.246.61:1832/ddmsh2_cbr}
spring.datasource.username = ${DATASOURCE_USERNAME:ddmsh2app}
spring.datasource.password = ${DATASOURCE_PASSWORD:bandungh1h2h3}
## System Config
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto = none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
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/}
# KAFKA
#-----------------------------------------------------------------------------------------------------------------------
# Kafka Bootstrap Server
spring.kafka.bootstrap-servers=localhost:9092
# Kafka Producer Configuration
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
# Kafka Consumer Configuration
spring.kafka.consumer.group-id=my-group
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
# Kafka Topic Name
kafka.topic.name=pipeline-topic
spring.main.allow-circular-references=true
\ No newline at end of file
#please define with dev-prod for profiles below
spring.profiles.active=dev
server.port=8081
ddms.auth.token=Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.5BG9SEVOGo_xRhtT8IkyoSy60kPg8HM9Vpvb0TdNew4
\ No newline at end of file
artifactId=ddms-h3-service-slave
groupId=com.eksad
version=0.0.1-SNAPSHOT
com\eksad\masterdata\service\PartHystrixService.class
com\eksad\masterdata\common\dto\ParamDPHLODetailDTO.class
com\eksad\masterdata\repository\ManagePartSalesRepository.class
com\eksad\masterdata\common\dto\ParamManageSalesDTO.class
com\eksad\masterdata\model\Role.class
com\eksad\masterdata\controller\UnpaidHLORestController.class
com\eksad\masterdata\controller\DPHLORestController$1.class
com\eksad\masterdata\repository\DPHLOPullRepositoryImpl$7.class
com\eksad\masterdata\common\listEnum\PaymentType.class
com\eksad\masterdata\common\LogResponseDTO.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\common\listEnum\SalesOrderType.class
com\eksad\masterdata\common\dto\ReceiptSOBankCreateCommandDTO.class
com\eksad\masterdata\common\dto\responseDto\ResponseDPHLOTempDTO.class
com\eksad\masterdata\controller\DPHLOPullRestController$1.class
com\eksad\masterdata\common\dto\DPHLOPullParamDTO.class
com\eksad\masterdata\repository\PartWOHotlineRepository$1.class
com\eksad\masterdata\domain\PartTypeMotor.class
com\eksad\masterdata\domain\SalesOrderDetail.class
com\eksad\masterdata\domain\assembler\CreationalSpecificationDTOAssembler.class
com\eksad\masterdata\common\listEnum\PickSlipDetailStatusType.class
com\eksad\masterdata\common\listEnum\StockFlowType.class
com\eksad\masterdata\common\dto\responseDto\ResponsePODealerGetDTO.class
com\eksad\masterdata\repository\UnpaidHLORepository$2.class
com\eksad\masterdata\common\Constants$Login.class
com\eksad\masterdata\common\dto\PartTypeMotorsDTO.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\PickSlipRestController.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\dto\WorkOrderSOHotlineDTO.class
com\eksad\masterdata\common\listEnum\SalesOrderState.class
com\eksad\masterdata\repository\PartRepository.class
com\eksad\masterdata\repository\PickSlipRepository.class
com\eksad\masterdata\common\dto\PickSlipDetailDTO.class
com\eksad\masterdata\domain\assembler\PartAssembler.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\common\dto\responseDto\ResponseSalesOrderGetListDTO.class
com\eksad\masterdata\repository\PartWOHotlineRepository.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\PickSlipDetailEV.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\controller\PartRESTController.class
com\eksad\masterdata\service\WOService.class
com\eksad\masterdata\common\dto\responseDto\UnpaidDPHLOPullHeaderResponseDTO.class
com\eksad\masterdata\common\dto\PickSlipDTO.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\repository\InterfaceSequenceGeneratorRepository.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\common\listEnum\PartLocalSaleable.class
com\eksad\masterdata\controller\ManagePartSalesRestController$1.class
com\eksad\masterdata\domain\MstWo.class
com\eksad\masterdata\common\dto\PartDTO.class
com\eksad\masterdata\common\dto\StockFlowDTO.class
com\eksad\masterdata\repository\ImplementSequenceGeneratorRepository.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\domain\PickSlipDetail.class
com\eksad\masterdata\common\dto\DPHLOTempDTO.class
com\eksad\masterdata\common\dto\PickSlipDetailEVDTO.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\listEnum\ReceiptStatus.class
com\eksad\masterdata\controller\SampleMasterdataWoController.class
com\eksad\masterdata\common\dto\responseDto\ResponsePickSlipGetDTO.class
com\eksad\masterdata\common\dto\DealerCodeDTO.class
com\eksad\masterdata\domain\TrxBizpar.class
com\eksad\masterdata\domain\PickSlip.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\domain\assembler\PickSlipAssembler.class
com\eksad\masterdata\common\Constants.class
com\eksad\masterdata\common\dto\POCustomerDetailDTO.class
com\eksad\masterdata\common\listEnum\PartLocalType.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\listEnum\PickSlipStatusType.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\service\SequenceGeneratorHystrixService.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\dto\responseDto\ResponsePartGetDTO.class
com\eksad\masterdata\common\ResponseStatus.class
com\eksad\masterdata\common\dto\CustomerDTO.class
com\eksad\masterdata\controller\SequenceGeneratorRestController.class
com\eksad\masterdata\common\listEnum\LastKnownState.class
com\eksad\masterdata\common\listEnum\StockFlowModuleType.class
com\eksad\masterdata\common\dto\POManagePartsInboundDTO.class
com\eksad\masterdata\domain\Part.class
com\eksad\masterdata\service\PickSlipService.class
com\eksad\masterdata\common\dto\ReceiptSOTaskDTO.class
com\eksad\masterdata\domain\assembler\PartTypeMotorAssembler.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\dto\PODealerDTO.class
com\eksad\masterdata\repository\ManagePartsInbounRepository.class
com\eksad\masterdata\repository\PartManageInboundRepository.class
com\eksad\masterdata\repository\WoRepository.class
com\eksad\masterdata\repository\ManagePartSalesRepositoryImpl.class
com\eksad\masterdata\config\JwtAuthenticationFilter.class
com\eksad\masterdata\repository\SalesOrderRepository.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
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\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\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\PartDTO.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\PartTypeMotorsDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PickSlipDetailDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PickSlipDetailEVDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\PickSlipDTO.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\ResponsePartGetDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\responseDto\ResponsePickSlipGetDTO.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\ResponseSalesOrderGetListDTO.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\SalesOrderDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\dto\StockFlowDTO.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\dto\WorkOrderSOHotlineDTO.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\PartLocalSaleable.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\PartLocalType.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\PickSlipDetailStatusType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\PickSlipStatusType.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\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\SalesOrderType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\StockFlowModuleType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\listEnum\StockFlowType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\LogOpsDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\LogOpsUtil.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\LogResponseDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\ProjectType.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\ResponseSalesOrderGetDTO.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\common\ResponseStatus.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\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\PartRESTController.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\controller\PickSlipRestController.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\SequenceGeneratorRestController.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\PartAssembler.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\PartTypeMotorAssembler.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\assembler\PickSlipAssembler.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\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\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\Part.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\PartTypeMotor.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\PickSlip.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\PickSlipDetail.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\domain\PickSlipDetailEV.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\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\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\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\ImplementSequenceGeneratorRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\InterfaceSequenceGeneratorRepository.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\PartRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\PartWOHotlineRepository.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\repository\PickSlipRepository.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\service\KafkaProducerService.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\PartHystrixService.java
C:\Users\eksad\Documents\kantor\DDMS SLAVE\ddms-h3-service-slave\src\main\java\com\eksad\masterdata\service\PickSlipService.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\SequenceGeneratorHystrixService.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\WOService.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