invoice

package
v0.0.0-...-d22e7c3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2020 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Detail

type Detail struct {
	// ID is PRIMARY_KEY
	ID string `db:"id"`
	// InvoiceID is INDEXED
	InvoiceID string `db:"invoice_id"`
	Amount    int64  `db:"amount"`
	Discount  int64  `db:"discount"`
	// total = amount - discount
	ItemName     string    `db:"item_name"`
	ItemQuantity int64     `db:"item_quantity"`
	Description  string    `db:"description"`
	CreatedAt    time.Time `db:"created_at"`
	CreatedBy    string    `db:"created_by"`
	UpdatedAt    time.Time `db:"updated_at"`
	IsTest       bool      `db:"is_test"`
	IsDeleted    bool      `db:"is_deleted"`
}

Detail for invoice detail

type Invoice

type Invoice struct {
	// ID is PRIMARY_KEY
	ID string `db:"id"`
	// Number/invoice_number might be indexed
	Number        string `db:"invoice_number"`
	OrderID       string `db:"order_id"`
	InvoiceFrom   string `db:"invoice_from"`
	InvoiceTo     string `db:"invoice_to"`
	Type          int    `db:"invoice_type"`
	Total         int64  `db:"total"`
	DiscountTotal int64  `db:"discount_total"`
	// grand total = total - discount_total
	GrandTotal  int64                `db:"grand_total"`
	Details     []string             `db:"invoice_details"`
	Status      invoiceentity.Status `db:"invoice_status"`
	Description string               `db:"description"`
	DueDate     time.Time            `db:"due_date"`
	PaidAt      pq.NullTime          `db:"paid_at"`
	CreatedAt   time.Time            `db:"created_at"`
	UpdatedAt   pq.NullTime          `db:"updated_at"`
	CreatedBy   int64                `db:"created_by"`
	IsTest      bool                 `db:"is_test"`
	IsDeleted   bool                 `db:"is_deleted"`
}

Invoice struct

type PaidInvoice

type PaidInvoice struct {
	// InvoiceID is PRIMARY_KEY
	InvoiceID     string    `db:"invoice_id"`
	InvoiceNumber string    `db:"invoice_number"`
	PaymentID     string    `db:"payment_id"`
	OrderID       string    `db:"order_id"`
	InvoiceFrom   int64     `db:"invoice_from"`
	InvoiceTo     int64     `db:"invoice_to"`
	CreatedAt     time.Time `db:"created_at"`
	CreatedBy     int64     `db:"created_by"`
	PaidAt        time.Time `db:"paid_at"`
	IsTest        bool      `db:"is_test"`
	IsDeleted     bool      `db:"is_deleted"`
}

PaidInvoice struct store all data of paid invoice

type Repository

type Repository struct {
	// contains filtered or unexported fields
}

Repository of invoice

func New

func New(db *sqldb.DB) *Repository

New invoice repo

func (*Repository) Create

func (r *Repository) Create(ctx context.Context, invoice *invoiceentity.Invoice) error

Create a new invoice

func (Repository) CreatePaid

func (r Repository) CreatePaid(ctx context.Context, paidInvoice invoiceentity.PaidInvoice) error

CreatePaid to create a new paid invoice

func (Repository) Get

func (r Repository) Get(ctx context.Context, invoiceID string, withDetails bool) (invoiceentity.Invoice, error)

Get invoice

func (Repository) UpdatePaidAt

func (r Repository) UpdatePaidAt(ctx context.Context, invoiceID string, paidAt time.Time) error

UpdatePaidAt to paid

func (Repository) UpdateStatus

func (r Repository) UpdateStatus(ctx context.Context, invoiceID string, status invoiceentity.Status) error

UpdateStatus to update the status of invoice

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL