462 lines
14 KiB
Go
462 lines
14 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.29.0
|
|
// source: line_items.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
)
|
|
|
|
const createLineItem = `-- 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 (
|
|
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
)
|
|
`
|
|
|
|
type CreateLineItemParams struct {
|
|
ItemNumber string `json:"item_number"`
|
|
Option bool `json:"option"`
|
|
Quantity string `json:"quantity"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
DocumentID int32 `json:"document_id"`
|
|
ProductID sql.NullInt32 `json:"product_id"`
|
|
HasTextPrices bool `json:"has_text_prices"`
|
|
HasPrice int8 `json:"has_price"`
|
|
UnitPriceString sql.NullString `json:"unit_price_string"`
|
|
GrossPriceString sql.NullString `json:"gross_price_string"`
|
|
CostingID sql.NullInt32 `json:"costing_id"`
|
|
GrossUnitPrice sql.NullString `json:"gross_unit_price"`
|
|
NetUnitPrice sql.NullString `json:"net_unit_price"`
|
|
DiscountPercent sql.NullString `json:"discount_percent"`
|
|
DiscountAmountUnit sql.NullString `json:"discount_amount_unit"`
|
|
DiscountAmountTotal sql.NullString `json:"discount_amount_total"`
|
|
GrossPrice sql.NullString `json:"gross_price"`
|
|
NetPrice sql.NullString `json:"net_price"`
|
|
}
|
|
|
|
func (q *Queries) CreateLineItem(ctx context.Context, arg CreateLineItemParams) (sql.Result, error) {
|
|
return q.db.ExecContext(ctx, createLineItem,
|
|
arg.ItemNumber,
|
|
arg.Option,
|
|
arg.Quantity,
|
|
arg.Title,
|
|
arg.Description,
|
|
arg.DocumentID,
|
|
arg.ProductID,
|
|
arg.HasTextPrices,
|
|
arg.HasPrice,
|
|
arg.UnitPriceString,
|
|
arg.GrossPriceString,
|
|
arg.CostingID,
|
|
arg.GrossUnitPrice,
|
|
arg.NetUnitPrice,
|
|
arg.DiscountPercent,
|
|
arg.DiscountAmountUnit,
|
|
arg.DiscountAmountTotal,
|
|
arg.GrossPrice,
|
|
arg.NetPrice,
|
|
)
|
|
}
|
|
|
|
const deleteLineItem = `-- name: DeleteLineItem :exec
|
|
DELETE FROM line_items
|
|
WHERE id = ?
|
|
`
|
|
|
|
func (q *Queries) DeleteLineItem(ctx context.Context, id int32) error {
|
|
_, err := q.db.ExecContext(ctx, deleteLineItem, id)
|
|
return err
|
|
}
|
|
|
|
const getLineItem = `-- name: GetLineItem :one
|
|
SELECT id, 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 FROM line_items
|
|
WHERE id = ? LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetLineItem(ctx context.Context, id int32) (LineItem, error) {
|
|
row := q.db.QueryRowContext(ctx, getLineItem, id)
|
|
var i LineItem
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.ItemNumber,
|
|
&i.Option,
|
|
&i.Quantity,
|
|
&i.Title,
|
|
&i.Description,
|
|
&i.DocumentID,
|
|
&i.ProductID,
|
|
&i.HasTextPrices,
|
|
&i.HasPrice,
|
|
&i.UnitPriceString,
|
|
&i.GrossPriceString,
|
|
&i.CostingID,
|
|
&i.GrossUnitPrice,
|
|
&i.NetUnitPrice,
|
|
&i.DiscountPercent,
|
|
&i.DiscountAmountUnit,
|
|
&i.DiscountAmountTotal,
|
|
&i.GrossPrice,
|
|
&i.NetPrice,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getLineItemsByProduct = `-- name: GetLineItemsByProduct :many
|
|
SELECT id, 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 FROM line_items
|
|
WHERE product_id = ?
|
|
ORDER BY item_number ASC
|
|
`
|
|
|
|
func (q *Queries) GetLineItemsByProduct(ctx context.Context, productID sql.NullInt32) ([]LineItem, error) {
|
|
rows, err := q.db.QueryContext(ctx, getLineItemsByProduct, productID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []LineItem{}
|
|
for rows.Next() {
|
|
var i LineItem
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ItemNumber,
|
|
&i.Option,
|
|
&i.Quantity,
|
|
&i.Title,
|
|
&i.Description,
|
|
&i.DocumentID,
|
|
&i.ProductID,
|
|
&i.HasTextPrices,
|
|
&i.HasPrice,
|
|
&i.UnitPriceString,
|
|
&i.GrossPriceString,
|
|
&i.CostingID,
|
|
&i.GrossUnitPrice,
|
|
&i.NetUnitPrice,
|
|
&i.DiscountPercent,
|
|
&i.DiscountAmountUnit,
|
|
&i.DiscountAmountTotal,
|
|
&i.GrossPrice,
|
|
&i.NetPrice,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const getLineItemsTable = `-- name: GetLineItemsTable :many
|
|
SELECT li.id, li.item_number, li.` + "`" + `option` + "`" + `, li.quantity, li.title, li.description, li.document_id, li.product_id, li.has_text_prices, li.has_price, li.unit_price_string, li.gross_price_string, li.costing_id, li.gross_unit_price, li.net_unit_price, li.discount_percent, li.discount_amount_unit, li.discount_amount_total, li.gross_price, li.net_price, 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
|
|
`
|
|
|
|
type GetLineItemsTableRow struct {
|
|
ID int32 `json:"id"`
|
|
ItemNumber string `json:"item_number"`
|
|
Option bool `json:"option"`
|
|
Quantity string `json:"quantity"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
DocumentID int32 `json:"document_id"`
|
|
ProductID sql.NullInt32 `json:"product_id"`
|
|
HasTextPrices bool `json:"has_text_prices"`
|
|
HasPrice int8 `json:"has_price"`
|
|
UnitPriceString sql.NullString `json:"unit_price_string"`
|
|
GrossPriceString sql.NullString `json:"gross_price_string"`
|
|
CostingID sql.NullInt32 `json:"costing_id"`
|
|
GrossUnitPrice sql.NullString `json:"gross_unit_price"`
|
|
NetUnitPrice sql.NullString `json:"net_unit_price"`
|
|
DiscountPercent sql.NullString `json:"discount_percent"`
|
|
DiscountAmountUnit sql.NullString `json:"discount_amount_unit"`
|
|
DiscountAmountTotal sql.NullString `json:"discount_amount_total"`
|
|
GrossPrice sql.NullString `json:"gross_price"`
|
|
NetPrice sql.NullString `json:"net_price"`
|
|
ProductTitle sql.NullString `json:"product_title"`
|
|
ModelNumber sql.NullString `json:"model_number"`
|
|
}
|
|
|
|
func (q *Queries) GetLineItemsTable(ctx context.Context, documentID int32) ([]GetLineItemsTableRow, error) {
|
|
rows, err := q.db.QueryContext(ctx, getLineItemsTable, documentID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []GetLineItemsTableRow{}
|
|
for rows.Next() {
|
|
var i GetLineItemsTableRow
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ItemNumber,
|
|
&i.Option,
|
|
&i.Quantity,
|
|
&i.Title,
|
|
&i.Description,
|
|
&i.DocumentID,
|
|
&i.ProductID,
|
|
&i.HasTextPrices,
|
|
&i.HasPrice,
|
|
&i.UnitPriceString,
|
|
&i.GrossPriceString,
|
|
&i.CostingID,
|
|
&i.GrossUnitPrice,
|
|
&i.NetUnitPrice,
|
|
&i.DiscountPercent,
|
|
&i.DiscountAmountUnit,
|
|
&i.DiscountAmountTotal,
|
|
&i.GrossPrice,
|
|
&i.NetPrice,
|
|
&i.ProductTitle,
|
|
&i.ModelNumber,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const getMaxItemNumber = `-- name: GetMaxItemNumber :one
|
|
SELECT COALESCE(MAX(item_number), 0) as max_item_number
|
|
FROM line_items
|
|
WHERE document_id = ?
|
|
`
|
|
|
|
func (q *Queries) GetMaxItemNumber(ctx context.Context, documentID int32) (interface{}, error) {
|
|
row := q.db.QueryRowContext(ctx, getMaxItemNumber, documentID)
|
|
var max_item_number interface{}
|
|
err := row.Scan(&max_item_number)
|
|
return max_item_number, err
|
|
}
|
|
|
|
const listLineItems = `-- name: ListLineItems :many
|
|
SELECT id, 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 FROM line_items
|
|
ORDER BY item_number ASC
|
|
LIMIT ? OFFSET ?
|
|
`
|
|
|
|
type ListLineItemsParams struct {
|
|
Limit int32 `json:"limit"`
|
|
Offset int32 `json:"offset"`
|
|
}
|
|
|
|
func (q *Queries) ListLineItems(ctx context.Context, arg ListLineItemsParams) ([]LineItem, error) {
|
|
rows, err := q.db.QueryContext(ctx, listLineItems, arg.Limit, arg.Offset)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []LineItem{}
|
|
for rows.Next() {
|
|
var i LineItem
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ItemNumber,
|
|
&i.Option,
|
|
&i.Quantity,
|
|
&i.Title,
|
|
&i.Description,
|
|
&i.DocumentID,
|
|
&i.ProductID,
|
|
&i.HasTextPrices,
|
|
&i.HasPrice,
|
|
&i.UnitPriceString,
|
|
&i.GrossPriceString,
|
|
&i.CostingID,
|
|
&i.GrossUnitPrice,
|
|
&i.NetUnitPrice,
|
|
&i.DiscountPercent,
|
|
&i.DiscountAmountUnit,
|
|
&i.DiscountAmountTotal,
|
|
&i.GrossPrice,
|
|
&i.NetPrice,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const listLineItemsByDocument = `-- name: ListLineItemsByDocument :many
|
|
SELECT id, 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 FROM line_items
|
|
WHERE document_id = ?
|
|
ORDER BY item_number ASC
|
|
`
|
|
|
|
func (q *Queries) ListLineItemsByDocument(ctx context.Context, documentID int32) ([]LineItem, error) {
|
|
rows, err := q.db.QueryContext(ctx, listLineItemsByDocument, documentID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []LineItem{}
|
|
for rows.Next() {
|
|
var i LineItem
|
|
if err := rows.Scan(
|
|
&i.ID,
|
|
&i.ItemNumber,
|
|
&i.Option,
|
|
&i.Quantity,
|
|
&i.Title,
|
|
&i.Description,
|
|
&i.DocumentID,
|
|
&i.ProductID,
|
|
&i.HasTextPrices,
|
|
&i.HasPrice,
|
|
&i.UnitPriceString,
|
|
&i.GrossPriceString,
|
|
&i.CostingID,
|
|
&i.GrossUnitPrice,
|
|
&i.NetUnitPrice,
|
|
&i.DiscountPercent,
|
|
&i.DiscountAmountUnit,
|
|
&i.DiscountAmountTotal,
|
|
&i.GrossPrice,
|
|
&i.NetPrice,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, i)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const updateLineItem = `-- 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 = ?
|
|
`
|
|
|
|
type UpdateLineItemParams struct {
|
|
ItemNumber string `json:"item_number"`
|
|
Option bool `json:"option"`
|
|
Quantity string `json:"quantity"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
DocumentID int32 `json:"document_id"`
|
|
ProductID sql.NullInt32 `json:"product_id"`
|
|
HasTextPrices bool `json:"has_text_prices"`
|
|
HasPrice int8 `json:"has_price"`
|
|
UnitPriceString sql.NullString `json:"unit_price_string"`
|
|
GrossPriceString sql.NullString `json:"gross_price_string"`
|
|
CostingID sql.NullInt32 `json:"costing_id"`
|
|
GrossUnitPrice sql.NullString `json:"gross_unit_price"`
|
|
NetUnitPrice sql.NullString `json:"net_unit_price"`
|
|
DiscountPercent sql.NullString `json:"discount_percent"`
|
|
DiscountAmountUnit sql.NullString `json:"discount_amount_unit"`
|
|
DiscountAmountTotal sql.NullString `json:"discount_amount_total"`
|
|
GrossPrice sql.NullString `json:"gross_price"`
|
|
NetPrice sql.NullString `json:"net_price"`
|
|
ID int32 `json:"id"`
|
|
}
|
|
|
|
func (q *Queries) UpdateLineItem(ctx context.Context, arg UpdateLineItemParams) error {
|
|
_, err := q.db.ExecContext(ctx, updateLineItem,
|
|
arg.ItemNumber,
|
|
arg.Option,
|
|
arg.Quantity,
|
|
arg.Title,
|
|
arg.Description,
|
|
arg.DocumentID,
|
|
arg.ProductID,
|
|
arg.HasTextPrices,
|
|
arg.HasPrice,
|
|
arg.UnitPriceString,
|
|
arg.GrossPriceString,
|
|
arg.CostingID,
|
|
arg.GrossUnitPrice,
|
|
arg.NetUnitPrice,
|
|
arg.DiscountPercent,
|
|
arg.DiscountAmountUnit,
|
|
arg.DiscountAmountTotal,
|
|
arg.GrossPrice,
|
|
arg.NetPrice,
|
|
arg.ID,
|
|
)
|
|
return err
|
|
}
|
|
|
|
const updateLineItemPrices = `-- name: UpdateLineItemPrices :exec
|
|
UPDATE line_items
|
|
SET gross_unit_price = ?,
|
|
net_unit_price = ?,
|
|
gross_price = ?,
|
|
net_price = ?
|
|
WHERE id = ?
|
|
`
|
|
|
|
type UpdateLineItemPricesParams struct {
|
|
GrossUnitPrice sql.NullString `json:"gross_unit_price"`
|
|
NetUnitPrice sql.NullString `json:"net_unit_price"`
|
|
GrossPrice sql.NullString `json:"gross_price"`
|
|
NetPrice sql.NullString `json:"net_price"`
|
|
ID int32 `json:"id"`
|
|
}
|
|
|
|
func (q *Queries) UpdateLineItemPrices(ctx context.Context, arg UpdateLineItemPricesParams) error {
|
|
_, err := q.db.ExecContext(ctx, updateLineItemPrices,
|
|
arg.GrossUnitPrice,
|
|
arg.NetUnitPrice,
|
|
arg.GrossPrice,
|
|
arg.NetPrice,
|
|
arg.ID,
|
|
)
|
|
return err
|
|
}
|