191 lines
6.4 KiB
SQL
191 lines
6.4 KiB
SQL
-- name: GetEnquiry :one
|
|
SELECT e.*,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
c.name as customer_name,
|
|
contact.first_name as contact_first_name,
|
|
contact.last_name as contact_last_name,
|
|
contact.email as contact_email,
|
|
contact.mobile as contact_mobile,
|
|
contact.direct_phone as contact_direct_phone,
|
|
contact.phone as contact_phone,
|
|
contact.phone_extension as contact_phone_extension,
|
|
s.name as status_name,
|
|
p.name as principle_name,
|
|
p.short_name as principle_short_name,
|
|
st.name as state_name,
|
|
st.shortform as state_shortform,
|
|
co.name as country_name
|
|
FROM enquiries e
|
|
LEFT JOIN users u ON e.user_id = u.id
|
|
LEFT JOIN customers c ON e.customer_id = c.id
|
|
LEFT JOIN users contact ON e.contact_user_id = contact.id
|
|
LEFT JOIN statuses s ON e.status_id = s.id
|
|
LEFT JOIN principles p ON e.principle_id = p.id
|
|
LEFT JOIN states st ON e.state_id = st.id
|
|
LEFT JOIN countries co ON e.country_id = co.id
|
|
WHERE e.id = ?;
|
|
|
|
-- name: ListEnquiries :many
|
|
SELECT e.*,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
c.name as customer_name,
|
|
contact.first_name as contact_first_name,
|
|
contact.last_name as contact_last_name,
|
|
contact.email as contact_email,
|
|
contact.mobile as contact_mobile,
|
|
contact.direct_phone as contact_direct_phone,
|
|
contact.phone as contact_phone,
|
|
contact.phone_extension as contact_phone_extension,
|
|
s.name as status_name,
|
|
p.name as principle_name,
|
|
p.short_name as principle_short_name
|
|
FROM enquiries e
|
|
LEFT JOIN users u ON e.user_id = u.id
|
|
LEFT JOIN customers c ON e.customer_id = c.id
|
|
LEFT JOIN users contact ON e.contact_user_id = contact.id
|
|
LEFT JOIN statuses s ON e.status_id = s.id
|
|
LEFT JOIN principles p ON e.principle_id = p.id
|
|
WHERE e.archived = 0
|
|
ORDER BY e.id DESC
|
|
LIMIT ? OFFSET ?;
|
|
|
|
-- name: ListArchivedEnquiries :many
|
|
SELECT e.*,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
c.name as customer_name,
|
|
contact.first_name as contact_first_name,
|
|
contact.last_name as contact_last_name,
|
|
s.name as status_name,
|
|
p.name as principle_name,
|
|
p.short_name as principle_short_name
|
|
FROM enquiries e
|
|
LEFT JOIN users u ON e.user_id = u.id
|
|
LEFT JOIN customers c ON e.customer_id = c.id
|
|
LEFT JOIN users contact ON e.contact_user_id = contact.id
|
|
LEFT JOIN statuses s ON e.status_id = s.id
|
|
LEFT JOIN principles p ON e.principle_id = p.id
|
|
WHERE e.archived = 1
|
|
ORDER BY e.id DESC
|
|
LIMIT ? OFFSET ?;
|
|
|
|
-- name: CreateEnquiry :execresult
|
|
INSERT INTO enquiries (
|
|
created, title, user_id, customer_id, contact_id, contact_user_id,
|
|
state_id, country_id, principle_id, status_id, comments,
|
|
principle_code, gst, billing_address_id, shipping_address_id,
|
|
posted, archived
|
|
) VALUES (
|
|
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
);
|
|
|
|
-- name: UpdateEnquiry :exec
|
|
UPDATE enquiries
|
|
SET title = ?, user_id = ?, customer_id = ?, contact_id = ?, contact_user_id = ?,
|
|
state_id = ?, country_id = ?, principle_id = ?, status_id = ?, comments = ?,
|
|
principle_code = ?, gst = ?, billing_address_id = ?, shipping_address_id = ?,
|
|
posted = ?, submitted = ?
|
|
WHERE id = ?;
|
|
|
|
-- name: UpdateEnquiryStatus :exec
|
|
UPDATE enquiries SET status_id = ? WHERE id = ?;
|
|
|
|
-- name: ArchiveEnquiry :exec
|
|
UPDATE enquiries SET archived = 1 WHERE id = ?;
|
|
|
|
-- name: UnarchiveEnquiry :exec
|
|
UPDATE enquiries SET archived = 0 WHERE id = ?;
|
|
|
|
-- name: MarkEnquirySubmitted :exec
|
|
UPDATE enquiries SET submitted = ? WHERE id = ?;
|
|
|
|
-- name: SearchEnquiries :many
|
|
SELECT e.*,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
c.name as customer_name,
|
|
contact.first_name as contact_first_name,
|
|
contact.last_name as contact_last_name,
|
|
s.name as status_name,
|
|
p.name as principle_name,
|
|
p.short_name as principle_short_name
|
|
FROM enquiries e
|
|
LEFT JOIN users u ON e.user_id = u.id
|
|
LEFT JOIN customers c ON e.customer_id = c.id
|
|
LEFT JOIN users contact ON e.contact_user_id = contact.id
|
|
LEFT JOIN statuses s ON e.status_id = s.id
|
|
LEFT JOIN principles p ON e.principle_id = p.id
|
|
WHERE e.archived = 0
|
|
AND (
|
|
e.title LIKE CONCAT('%', ?, '%') OR
|
|
c.name LIKE CONCAT('%', ?, '%') OR
|
|
CONCAT(contact.first_name, ' ', contact.last_name) LIKE CONCAT('%', ?, '%')
|
|
)
|
|
ORDER BY e.id DESC
|
|
LIMIT ? OFFSET ?;
|
|
|
|
-- name: GetEnquiriesByUser :many
|
|
SELECT e.*,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
c.name as customer_name,
|
|
contact.first_name as contact_first_name,
|
|
contact.last_name as contact_last_name,
|
|
s.name as status_name,
|
|
p.name as principle_name,
|
|
p.short_name as principle_short_name
|
|
FROM enquiries e
|
|
LEFT JOIN users u ON e.user_id = u.id
|
|
LEFT JOIN customers c ON e.customer_id = c.id
|
|
LEFT JOIN users contact ON e.contact_user_id = contact.id
|
|
LEFT JOIN statuses s ON e.status_id = s.id
|
|
LEFT JOIN principles p ON e.principle_id = p.id
|
|
WHERE e.user_id = ? AND e.archived = 0
|
|
ORDER BY e.id DESC
|
|
LIMIT ? OFFSET ?;
|
|
|
|
-- name: GetEnquiriesByCustomer :many
|
|
SELECT e.*,
|
|
u.first_name as user_first_name,
|
|
u.last_name as user_last_name,
|
|
c.name as customer_name,
|
|
contact.first_name as contact_first_name,
|
|
contact.last_name as contact_last_name,
|
|
s.name as status_name,
|
|
p.name as principle_name,
|
|
p.short_name as principle_short_name
|
|
FROM enquiries e
|
|
LEFT JOIN users u ON e.user_id = u.id
|
|
LEFT JOIN customers c ON e.customer_id = c.id
|
|
LEFT JOIN users contact ON e.contact_user_id = contact.id
|
|
LEFT JOIN statuses s ON e.status_id = s.id
|
|
LEFT JOIN principles p ON e.principle_id = p.id
|
|
WHERE e.customer_id = ? AND e.archived = 0
|
|
ORDER BY e.id DESC
|
|
LIMIT ? OFFSET ?;
|
|
|
|
-- name: CountEnquiries :one
|
|
SELECT COUNT(*) FROM enquiries WHERE archived = 0;
|
|
|
|
-- name: CountEnquiriesByStatus :one
|
|
SELECT COUNT(*) FROM enquiries WHERE status_id = ? AND archived = 0;
|
|
|
|
-- name: CountEnquiriesByPrinciple :one
|
|
SELECT COUNT(*) FROM enquiries WHERE principle_code = ?;
|
|
|
|
-- name: CountEnquiriesByPrincipleAndState :one
|
|
SELECT COUNT(*) FROM enquiries WHERE principle_code = ? AND state_id = ?;
|
|
|
|
-- name: GetAllStatuses :many
|
|
SELECT id, name FROM statuses ORDER BY name;
|
|
|
|
-- name: GetAllPrinciples :many
|
|
SELECT id, name, short_name, code FROM principles ORDER BY name;
|
|
|
|
-- name: GetAllStates :many
|
|
SELECT id, name, shortform, enqform FROM states ORDER BY name;
|
|
|
|
-- name: GetAllCountries :many
|
|
SELECT id, name FROM countries ORDER BY name; |