85 lines
2.6 KiB
SQL
85 lines
2.6 KiB
SQL
-- name: GetDocument :one
|
|
SELECT * FROM documents WHERE id = ?;
|
|
|
|
-- name: ListDocuments :many
|
|
SELECT * FROM documents ORDER BY created DESC LIMIT ? OFFSET ?;
|
|
|
|
-- name: ListDocumentsByType :many
|
|
SELECT * FROM documents WHERE type = ? ORDER BY created DESC LIMIT ? OFFSET ?;
|
|
|
|
-- name: CreateDocument :execresult
|
|
INSERT INTO documents (
|
|
type, created, user_id, doc_page_count, cmc_reference,
|
|
pdf_filename, pdf_created_at, pdf_created_by_user_id,
|
|
shipping_details, revision, bill_to, ship_to,
|
|
email_sent_at, email_sent_by_user_id
|
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
|
|
|
|
-- name: UpdateDocument :exec
|
|
UPDATE documents SET
|
|
type = ?, user_id = ?, doc_page_count = ?, cmc_reference = ?,
|
|
pdf_filename = ?, pdf_created_at = ?, pdf_created_by_user_id = ?,
|
|
shipping_details = ?, revision = ?, bill_to = ?, ship_to = ?,
|
|
email_sent_at = ?, email_sent_by_user_id = ?
|
|
WHERE id = ?;
|
|
|
|
-- name: DeleteDocument :exec
|
|
DELETE FROM documents WHERE id = ?;
|
|
|
|
-- name: GetRecentDocuments :many
|
|
SELECT
|
|
d.id,
|
|
d.type,
|
|
d.created,
|
|
d.cmc_reference,
|
|
d.pdf_filename,
|
|
d.revision,
|
|
u.username as created_by_username,
|
|
CASE
|
|
WHEN d.type = 'quote' THEN CONCAT('Quote ', d.cmc_reference)
|
|
WHEN d.type = 'invoice' THEN CONCAT('Invoice ', d.cmc_reference)
|
|
WHEN d.type = 'purchaseOrder' THEN CONCAT('Purchase Order ', d.cmc_reference)
|
|
WHEN d.type = 'orderAck' THEN CONCAT('Order Ack ', d.cmc_reference)
|
|
WHEN d.type = 'packingList' THEN CONCAT('Packing List ', d.cmc_reference)
|
|
ELSE CONCAT(d.type, ' ', d.cmc_reference)
|
|
END as display_name
|
|
FROM documents d
|
|
LEFT JOIN users u ON d.user_id = u.id
|
|
ORDER BY d.created DESC
|
|
LIMIT ?;
|
|
|
|
-- name: CountDocuments :one
|
|
SELECT COUNT(*) FROM documents;
|
|
|
|
-- name: CountDocumentsByType :one
|
|
SELECT COUNT(*) FROM documents WHERE type = ?;
|
|
|
|
-- name: GetDocumentWithUser :one
|
|
SELECT
|
|
d.id,
|
|
d.type,
|
|
d.created,
|
|
d.user_id,
|
|
d.doc_page_count,
|
|
d.cmc_reference,
|
|
d.pdf_filename,
|
|
d.pdf_created_at,
|
|
d.pdf_created_by_user_id,
|
|
d.shipping_details,
|
|
d.revision,
|
|
d.bill_to,
|
|
d.ship_to,
|
|
d.email_sent_at,
|
|
d.email_sent_by_user_id,
|
|
u.username as user_username,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
u.email as user_email,
|
|
pu.username as pdf_creator_username,
|
|
pu.first_name as pdf_creator_first_name,
|
|
pu.last_name as pdf_creator_last_name,
|
|
pu.email as pdf_creator_email
|
|
FROM documents d
|
|
LEFT JOIN users u ON d.user_id = u.id
|
|
LEFT JOIN users pu ON d.pdf_created_by_user_id = pu.id
|
|
WHERE d.id = ?; |