feat: add invoice and alternative_componen management functionality
This commit is contained in:
35
db/queries/alternative_component.sql
Normal file
35
db/queries/alternative_component.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- name: GetAlternativeComponentByID :one
|
||||
SELECT * FROM alternative_components
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListAlternativeComponents :many
|
||||
SELECT * FROM alternative_components;
|
||||
|
||||
-- name: CreateAlternativeComponent :one
|
||||
INSERT INTO alternative_components (invoice_config_item_id, alternative_component_id, conversion_ratio, priority, note, metadata)
|
||||
VALUES (
|
||||
sqlc.arg(invoice_config_item_id),
|
||||
sqlc.arg(alternative_component_id),
|
||||
sqlc.arg(conversion_ratio),
|
||||
sqlc.arg(priority),
|
||||
sqlc.arg(note),
|
||||
sqlc.arg(metadata)
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateAlternativeComponent :one
|
||||
UPDATE alternative_components
|
||||
SET invoice_config_item_id = coalesce(sqlc.arg(invoice_config_item_id), invoice_config_item_id),
|
||||
alternative_component_id = coalesce(sqlc.arg(alternative_component_id), alternative_component_id),
|
||||
conversion_ratio = coalesce(sqlc.arg(conversion_ratio), conversion_ratio),
|
||||
priority = coalesce(sqlc.arg(priority), priority),
|
||||
note = coalesce(sqlc.arg(note), note),
|
||||
metadata = coalesce(sqlc.arg(metadata), metadata)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteAlternativeComponent :execrows
|
||||
DELETE FROM alternative_components
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
|
||||
40
db/queries/invoice.sql
Normal file
40
db/queries/invoice.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- name: GetInvoiceByID :one
|
||||
SELECT * FROM invoices
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListInvoices :many
|
||||
SELECT * FROM invoices
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: CreateInvoice :one
|
||||
INSERT INTO invoices (type, status, invoice_config_id, total_items, note, created_by, approved_by, created_at, metadata)
|
||||
VALUES (
|
||||
sqlc.arg(type),
|
||||
sqlc.arg(status),
|
||||
sqlc.arg(invoice_config_id),
|
||||
sqlc.arg(total_items),
|
||||
sqlc.arg(note),
|
||||
sqlc.arg(created_by),
|
||||
sqlc.arg(approved_by),
|
||||
sqlc.arg(created_at),
|
||||
sqlc.arg(metadata)
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateInvoice :one
|
||||
UPDATE invoices
|
||||
SET type = coalesce(sqlc.arg(type), type),
|
||||
status = coalesce(sqlc.arg(status), status),
|
||||
invoice_config_id = coalesce(sqlc.arg(invoice_config_id), invoice_config_id),
|
||||
total_items = coalesce(sqlc.arg(total_items), total_items),
|
||||
note = coalesce(sqlc.arg(note), note),
|
||||
metadata = coalesce(sqlc.arg(metadata), metadata),
|
||||
updated_at = sqlc.arg(updated_at)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteInvoice :execrows
|
||||
DELETE FROM invoices
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
|
||||
38
db/queries/invoice_item.sql
Normal file
38
db/queries/invoice_item.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
-- name: GetInvoiceItemByID :one
|
||||
SELECT * FROM invoice_items
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListInvoiceItems :many
|
||||
SELECT * FROM invoice_items;
|
||||
|
||||
-- name: CreateInvoiceItem :one
|
||||
INSERT INTO invoice_items (invoice_id,component_id,original_component_id, required_quantity,actual_quantity, is_substituted, is_short, shortage_quantity, note, metadata)
|
||||
VALUES (
|
||||
sqlc.arg(invoice_id),
|
||||
sqlc.arg(component_id),
|
||||
sqlc.arg(original_component_id),
|
||||
sqlc.arg(required_quantity),
|
||||
sqlc.arg(actual_quantity),
|
||||
sqlc.arg(is_substituted),
|
||||
sqlc.arg(is_short),
|
||||
sqlc.arg(shortage_quantity),
|
||||
sqlc.arg(note),
|
||||
sqlc.arg(metadata)
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateInvoiceItem :one
|
||||
UPDATE invoice_items
|
||||
SET required_quantity = coalesce(sqlc.arg(required_quantity), required_quantity),
|
||||
actual_quantity = coalesce(sqlc.arg(actual_quantity), actual_quantity),
|
||||
is_substituted = coalesce(sqlc.arg(is_substituted), is_substituted),
|
||||
is_short = coalesce(sqlc.arg(is_short), is_short),
|
||||
shortage_quantity = coalesce(sqlc.arg(shortage_quantity), shortage_quantity),
|
||||
note = coalesce(sqlc.arg(note), note),
|
||||
metadata = coalesce(sqlc.arg(metadata), metadata)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteInvoiceItem :execrows
|
||||
DELETE FROM invoice_items
|
||||
WHERE id = sqlc.arg(id);
|
||||
Reference in New Issue
Block a user