cmc-sales/go/internal/cmc/db/line_items.sql.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
}