0% found this document useful (0 votes)
7 views6 pages

Java Entities for Purchase Management

The document defines a series of Java entity classes for a purchase management system, including PurchaseItem, Purchase, Brand, Customer, OpeningStock, Product, PurchaseOrder, PurchaseOrderItem, SubContacts, Supplier, SuppliersContact, Users, and Warehouse. Each class is annotated with JPA annotations to map them to corresponding database tables and includes various fields and relationships between entities. The structure supports functionalities like managing purchases, products, suppliers, and customer contacts.

Uploaded by

lnvdigital41
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

Java Entities for Purchase Management

The document defines a series of Java entity classes for a purchase management system, including PurchaseItem, Purchase, Brand, Customer, OpeningStock, Product, PurchaseOrder, PurchaseOrderItem, SubContacts, Supplier, SuppliersContact, Users, and Warehouse. Each class is annotated with JPA annotations to map them to corresponding database tables and includes various fields and relationships between entities. The structure supports functionalities like managing purchases, products, suppliers, and customer contacts.

Uploaded by

lnvdigital41
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

@Data

@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "purchaseItem")
public class PurchaseItem {

@Id
@GeneratedValue(strategy = [Link])
private Long id;

private Long quantity;


private double unitPrice;
private String uom;
private int taxPercent;
private double lineTotal;

@ManyToOne
@JoinColumn(name = "productId", unique = false)
private Product product;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "purchase")
public class Purchase {

@Id
@GeneratedValue(strategy = [Link])
@Column(name = "purchaseId")
private Long id;

@Column(name = "purchaseDate")
private LocalDate date;

private String status; // (Draft / Posted / Paid / Cancelled)


private double totalAmount;
private double taxAmount;
private double grandTotal;

@OneToMany(cascade = [Link])
@JoinColumn(name = "purchaseId", nullable= true)
private List<PurchaseItem> purchaseItem;

@ManyToOne(cascade = [Link])
@JoinColumn(name = "supplierId")
private Supplier supplier;

@ManyToOne(cascade = [Link])
@JoinColumn(name = "warehouseId")
private Warehouse warehouse;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "brand")
public class Brand {

@Id
@GeneratedValue(strategy = [Link])
@Column(name = "brandId")
private Long id;

@Column(name = "brandName", nullable = false)


private String name;

@Column(name = "description", nullable = true)


private String desc;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "customer")
public class Customer {

@Id
@GeneratedValue(strategy = [Link])
@Column(name = "customerId")
private Long id;

@Column(name = "customerName")
private String name;

private String email;


private long phone;
private String city;
private String state;
private String country;

@OneToMany(cascade = [Link])
@JoinColumn(name = "customerId", nullable = true)
private List<SubContacts> contacts;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "opening_stock")
public class OpeningStock {

@Id
@GeneratedValue(strategy = [Link])
@Column(name = "openingStockId")
private Long id;

@OneToOne
@JoinColumn(name = "warehouseId")
private Warehouse warehouse;

@OneToOne
@JoinColumn(name = "productId")
private Product product;

@Column(nullable = false)
private long quantity;

@Column(name = "openingDate")
private LocalDate date;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "product")
public class Product {

@Id
@Column(name = "productID")
@GeneratedValue(strategy = [Link])
private Long id;

@Column(name = "productName", nullable = false)


private String name;

@ManyToOne
private Brand brand;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "purchase_order")
public class PurchaseOrder {

public List<PurchaseOrderItem> getPurchaseOrderItem() {


return purchaseOrderItem;
}

public void setPurchaseOrderItem(List<PurchaseOrderItem> purchaseOrderItem) {


[Link] = purchaseOrderItem;
}

@Id
@GeneratedValue(strategy = [Link])
@Column(name = "purchaseOrderId")
private Long id;

@Column(name = "orderDate")
private LocalDate date;

@OneToOne
@JoinColumn(name = "supplierId")
private Supplier supplier;

@OneToOne
@JoinColumn(name = "warehouseId")
private Warehouse warehouse;
private String status;

@OneToMany(cascade = [Link])
@JoinColumn(name = "purchaseOrderId")
private List<PurchaseOrderItem> purchaseOrderItem;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "purchaseOrderItem")
public class PurchaseOrderItem {
@Id
@GeneratedValue(strategy = [Link])
@Column(name = "purchaseOrderItemId")
private Long id;

@Column(name = "unitPrice")
private Long price;

private Long quantity;


private String uom;

@OneToOne(cascade = [Link])
@JoinColumn(name = "productId")
private Product product;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "subContacts")
public class SubContacts {

@Id
@GeneratedValue(strategy = [Link])
@Column(name="subContactId")
private Long id;

@Column(name = "contactPersonName")
private String name;

@Column(name = "contactPhone")
private long phone;

@Column(name = "contactEmail")
private String email;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "supplier")
public class Supplier {
@Id
@GeneratedValue(strategy = [Link])
@Column(name = "supplierId")
private Long id;

@Column(name = "supplierName", nullable = false)


private String name;

private String email;


private long phone;
private String city;
private String state;
private String country;

@OneToMany(cascade= [Link])
@JoinColumn(name = "spplierId", nullable = true)
private List<SuppliersContact> suppliersContact;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "suppliersContact")
public class SuppliersContact {

@Id
@GeneratedValue(strategy = [Link])
@Column(name = "subContactId")
private Long id;

@Column(name = "contactPersonName")
private String name;

@Column(name = "contactEmail")
private String email;

@Column(name = "contactPhone")
private long phone;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "users")
public class Users {

@Id
@GeneratedValue(strategy = [Link])
private Long id;

@Column(name = "username")
private String username;

@Column(name = "userPassword" )
private String password;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Entity
@Table(name = "warehouse")
public class Warehouse {

@Id
@GeneratedValue(strategy = [Link])
private Long id;

@Column(unique = true)
private String name;
}

You might also like