cmc-sales/go/sql/queries/line_items.sql

77 lines
1.8 KiB
SQL

-- name: GetLineItem :one
SELECT * FROM line_items
WHERE id = ? LIMIT 1;
-- name: ListLineItems :many
SELECT * FROM line_items
ORDER BY item_number ASC
LIMIT ? OFFSET ?;
-- name: ListLineItemsByDocument :many
SELECT * FROM line_items
WHERE document_id = ?
ORDER BY item_number ASC;
-- name: CreateLineItem :execresult
INSERT INTO line_items (
item_number, `option`, quantity, title, description,
document_id, product_id, has_text_prices, has_price,
unit_price_string, gross_price_string, costing_id,
gross_unit_price, net_unit_price, discount_percent,
discount_amount_unit, discount_amount_total,
gross_price, net_price
) VALUES (
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
);
-- name: UpdateLineItem :exec
UPDATE line_items
SET item_number = ?,
`option` = ?,
quantity = ?,
title = ?,
description = ?,
document_id = ?,
product_id = ?,
has_text_prices = ?,
has_price = ?,
unit_price_string = ?,
gross_price_string = ?,
costing_id = ?,
gross_unit_price = ?,
net_unit_price = ?,
discount_percent = ?,
discount_amount_unit = ?,
discount_amount_total = ?,
gross_price = ?,
net_price = ?
WHERE id = ?;
-- name: DeleteLineItem :exec
DELETE FROM line_items
WHERE id = ?;
-- name: GetLineItemsTable :many
SELECT li.*, p.title as product_title, p.model_number
FROM line_items li
LEFT JOIN products p ON li.product_id = p.id
WHERE li.document_id = ?
ORDER BY li.item_number ASC;
-- name: GetLineItemsByProduct :many
SELECT * FROM line_items
WHERE product_id = ?
ORDER BY item_number ASC;
-- name: GetMaxItemNumber :one
SELECT COALESCE(MAX(item_number), 0) as max_item_number
FROM line_items
WHERE document_id = ?;
-- name: UpdateLineItemPrices :exec
UPDATE line_items
SET gross_unit_price = ?,
net_unit_price = ?,
gross_price = ?,
net_price = ?
WHERE id = ?;