22 lines
982 B
Go
22 lines
982 B
Go
package models
|
|
|
|
import "time"
|
|
|
|
type Invoice struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
SalesOrderID uint `json:"sales_order_id"`
|
|
InvoiceNumber string `gorm:"not null;unique" json:"invoice_number"`
|
|
InvoiceDate time.Time `json:"invoice_date"`
|
|
DueDate time.Time `json:"due_date"`
|
|
TotalAmount float64 `json:"total_amount"`
|
|
Status string `json:"status"` // contoh: unpaid, partial, paid
|
|
Note string `json:"note"`
|
|
IsDpInvoice bool `json:"is_dp_invoice"` // Apakah ini invoice DP (Down Payment)
|
|
Amount float64 `json:"amount"` // Jumlah DP jika ada
|
|
ParentInvoiceID uint `json:"parent_invoice_id,omitempty"` // ID invoice induk jika ini adalah invoice lanjutan
|
|
ParentInvoice *Invoice `gorm:"foreignKey:ParentInvoiceID" json:"parent_invoice,omitempty"`
|
|
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|