@@ -0,0 +1,42 @@ | |||||
package com.ffii.fpsms.modules.purchaseOrder.entity | |||||
import com.ffii.core.entity.BaseEntity | |||||
import com.ffii.fpsms.modules.master.entity.Shop | |||||
import com.ffii.fpsms.modules.stock.entity.M18DataLog | |||||
import jakarta.persistence.* | |||||
import jakarta.validation.constraints.NotNull | |||||
import jakarta.validation.constraints.Size | |||||
import java.time.LocalDate | |||||
import java.time.LocalDateTime | |||||
@Entity | |||||
@Table(name = "purchase_order") | |||||
open class PurchaseOrder : BaseEntity<Long>() { | |||||
@Size(max = 30) | |||||
@NotNull | |||||
@Column(name = "code", nullable = false, length = 30) | |||||
open var code: String? = null | |||||
@ManyToOne(fetch = FetchType.LAZY) | |||||
@JoinColumn(name = "supplierId") | |||||
open var supplier: Shop? = null | |||||
@Column(name = "orderDate") | |||||
open var orderDate: LocalDateTime? = null | |||||
@Column(name = "estimatedCompleteDate") | |||||
open var estimatedCompleteDate: LocalDate? = null | |||||
@Column(name = "completeDate") | |||||
open var completeDate: LocalDateTime? = null | |||||
@Size(max = 10) | |||||
@NotNull | |||||
@Column(name = "status", nullable = false, length = 10) | |||||
open var status: String? = null | |||||
@NotNull | |||||
@ManyToOne(fetch = FetchType.LAZY, optional = false) | |||||
@JoinColumn(name = "m18DataLogId", nullable = false) | |||||
open var m18DataLog: M18DataLog? = null | |||||
} |
@@ -0,0 +1,48 @@ | |||||
package com.ffii.fpsms.modules.purchaseOrder.entity | |||||
import com.ffii.core.entity.BaseEntity | |||||
import com.ffii.fpsms.modules.master.entity.Items | |||||
import com.ffii.fpsms.modules.stock.entity.M18DataLog | |||||
import jakarta.persistence.* | |||||
import jakarta.validation.constraints.NotNull | |||||
import jakarta.validation.constraints.Size | |||||
import java.math.BigDecimal | |||||
@Entity | |||||
@Table(name = "purchase_order_item") | |||||
class PurchaseOrderItem : BaseEntity<Long>(){ | |||||
@NotNull | |||||
@ManyToOne(fetch = FetchType.LAZY, optional = false) | |||||
@JoinColumn(name = "itemId", nullable = false) | |||||
open var item: Items? = null | |||||
@Size(max = 20) | |||||
@NotNull | |||||
@Column(name = "itemNo", nullable = false, length = 20) | |||||
open var itemNo: String? = null | |||||
@NotNull | |||||
@ManyToOne(fetch = FetchType.LAZY, optional = false) | |||||
@JoinColumn(name = "purchaseOrderId", nullable = false) | |||||
open var purchaseOrder: PurchaseOrder? = null | |||||
@Column(name = "qty", precision = 14, scale = 2) | |||||
open var qty: BigDecimal? = null | |||||
@Column(name = "price", precision = 14, scale = 2) | |||||
open var price: BigDecimal? = null | |||||
@Size(max = 5) | |||||
@Column(name = "priceUnit", length = 5) | |||||
open var priceUnit: String? = null | |||||
@Size(max = 10) | |||||
@NotNull | |||||
@Column(name = "status", nullable = false, length = 10) | |||||
open var status: String? = null | |||||
@NotNull | |||||
@ManyToOne(fetch = FetchType.LAZY, optional = false) | |||||
@JoinColumn(name = "m18DataLogId", nullable = false) | |||||
open var m18DataLog: M18DataLog? = null | |||||
} |
@@ -0,0 +1,8 @@ | |||||
package com.ffii.fpsms.modules.purchaseOrder.entity | |||||
import com.ffii.core.support.AbstractRepository | |||||
import org.springframework.stereotype.Repository | |||||
@Repository | |||||
interface PurchaseOrderItemRepository : AbstractRepository<PurchaseOrderItem, Long> { | |||||
} |
@@ -0,0 +1,8 @@ | |||||
package com.ffii.fpsms.modules.purchaseOrder.entity | |||||
import com.ffii.core.support.AbstractRepository | |||||
import org.springframework.stereotype.Repository | |||||
@Repository | |||||
interface PurchaseOrderRepository : AbstractRepository<PurchaseOrder, Long> { | |||||
} |
@@ -0,0 +1,14 @@ | |||||
package com.ffii.fpsms.modules.purchaseOrder.service | |||||
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrder | |||||
import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository | |||||
import org.springframework.stereotype.Service | |||||
@Service | |||||
open class PurchaseOrderService( | |||||
val purchaseOrderRepository: PurchaseOrderRepository | |||||
) { | |||||
open fun allPurchaseOrder(): List<PurchaseOrder> { | |||||
return purchaseOrderRepository.findAll() | |||||
} | |||||
} |
@@ -0,0 +1,46 @@ | |||||
--liquibase formatted sql | |||||
--changeset cyril:purchase order | |||||
CREATE TABLE `purchase_order` | |||||
( | |||||
`id` INT NOT NULL AUTO_INCREMENT, | |||||
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, | |||||
`createdBy` VARCHAR(30) NULL DEFAULT NULL, | |||||
`version` INT NOT NULL DEFAULT '0', | |||||
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, | |||||
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL, | |||||
`deleted` TINYINT(1) NOT NULL DEFAULT '0', | |||||
`code` VARCHAR(30) NOT NULL, | |||||
`supplierId` INT NULL, | |||||
`orderDate` DATETIME NULL, | |||||
`estimatedCompleteDate` DATETIME NULL, | |||||
`completeDate` DATETIME NULL, | |||||
`status` VARCHAR(10) NOT NULL DEFAULT 'pending', | |||||
`m18DataLogId` INT NOT NULL, | |||||
CONSTRAINT pk_purchase_order PRIMARY KEY (id), | |||||
CONSTRAINT FK_PURCHASE_ORDER_ON_SUPPLIERID FOREIGN KEY (supplierId) REFERENCES shop (id), | |||||
CONSTRAINT FK_PURCHASE_ORDER_ON_M18DATALOGID FOREIGN KEY (m18DataLogId) REFERENCES m18_data_log (id) | |||||
); | |||||
CREATE TABLE `purchase_order_item` | |||||
( | |||||
`id` INT NOT NULL AUTO_INCREMENT, | |||||
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, | |||||
`createdBy` VARCHAR(30) NULL DEFAULT NULL, | |||||
`version` INT NOT NULL DEFAULT '0', | |||||
`modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, | |||||
`modifiedBy` VARCHAR(30) NULL DEFAULT NULL, | |||||
`deleted` TINYINT(1) NOT NULL DEFAULT '0', | |||||
`itemId` INT NOT NULL, | |||||
`itemNo` VARCHAR(20) NOT NULL, | |||||
`purchaseOrderId` INT NOT NULL, | |||||
`qty` DECIMAL(14, 2) NULL, | |||||
`price` DECIMAL(14, 2) NULL, | |||||
`priceUnit` VARCHAR(5) NULL, | |||||
`status` VARCHAR(10) NOT NULL DEFAULT 'pending', | |||||
`m18DataLogId` INT NOT NULL, | |||||
CONSTRAINT pk_purchase_order_line PRIMARY KEY (id), | |||||
CONSTRAINT FK_PURCHASE_ORDER_LINE_ON_ITEMID FOREIGN KEY (itemId) REFERENCES items (id), | |||||
CONSTRAINT FK_PURCHASE_ORDER_LINE_ON_PURCHASEORDERID FOREIGN KEY (purchaseOrderId) REFERENCES purchase_order (id), | |||||
CONSTRAINT FK_PURCHASE_ORDER_LINE_ON_M18DATALOGID FOREIGN KEY (m18DataLogId) REFERENCES m18_data_log (id) | |||||
); |