add created by params for sale and purchase
This commit is contained in:
parent
f77288369a
commit
8f78dd25cf
@ -5,12 +5,15 @@ import (
|
||||
"net/http"
|
||||
|
||||
db "git.nochill.in/nochill/naice_pos/db/sqlc"
|
||||
"git.nochill.in/nochill/naice_pos/util"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type CreatePurchaseOrderRequest struct {
|
||||
MerchantID uuid.UUID `json:"merchant_id" binding:"required"`
|
||||
MerchantIdx int64 `json:"merchant_index" binding:"required,number"`
|
||||
CreatedBy uuid.UUID `json:"created_by" binding:"required"`
|
||||
SupplierID uuid.UUID `json:"supplier_id" binding:"required"`
|
||||
Code string `json:"code"`
|
||||
IsPaid bool `json:"is_paid" binding:"required"`
|
||||
@ -22,6 +25,13 @@ type CreatePurchaseOrderRequest struct {
|
||||
|
||||
func (server Server) createPurchase(ctx *gin.Context) {
|
||||
var req CreatePurchaseOrderRequest
|
||||
var code sql.NullString
|
||||
|
||||
if len(req.Code) > 0 {
|
||||
code = sql.NullString{Valid: true, String: req.Code}
|
||||
} else {
|
||||
code = sql.NullString{Valid: true, String: util.RandomTransactionCode("P", req.MerchantIdx)}
|
||||
}
|
||||
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
ctx.JSON(http.StatusBadRequest, errorResponse(err))
|
||||
@ -30,8 +40,9 @@ func (server Server) createPurchase(ctx *gin.Context) {
|
||||
|
||||
arg := db.PurchasoOrderTxParams{
|
||||
MerchantID: req.MerchantID,
|
||||
CreatedBy: req.CreatedBy,
|
||||
SupplierID: req.SupplierID,
|
||||
Code: sql.NullString{String: req.Code, Valid: len(req.Code) > 0},
|
||||
Code: code,
|
||||
IsPaid: req.IsPaid,
|
||||
Total: req.Total,
|
||||
PaidNominal: req.PaidNominal,
|
||||
|
@ -16,7 +16,7 @@ type createUserMerchantRequest struct {
|
||||
Email string `json:"email" binding:"required,email"`
|
||||
Fullname string `json:"fullname" binding:"required,alphanum"`
|
||||
Password string `json:"password" binding:"required"`
|
||||
OutletName string `json:"outlet_name" binding:"required,alphanum"`
|
||||
OutletName string `json:"outlet_name" binding:"required"`
|
||||
}
|
||||
|
||||
type userMerchantResponse struct {
|
||||
|
@ -54,6 +54,7 @@ CREATE TABLE purchase_order (
|
||||
"supplier_id" uuid references "suppliers"("id") not null,
|
||||
"merchant_id" uuid references "merchants"("id") not null,
|
||||
"index_id" bigserial not null,
|
||||
"created_by" uuid references "users"("id") not null,
|
||||
"code" varchar(100),
|
||||
"is_paid" boolean not null,
|
||||
"total" double precision not null,
|
||||
@ -82,6 +83,7 @@ CREATE TABLE sale_order (
|
||||
"id" uuid default gen_random_uuid() primary key not null,
|
||||
"index_id" bigserial not null,
|
||||
"code" text,
|
||||
"created_by" uuid references "users"("id") not null,
|
||||
"merchant_id" uuid references "merchants"("id") not null,
|
||||
"customer_id" uuid references "customers"("id"),
|
||||
"is_paid" boolean,
|
||||
|
@ -126,6 +126,21 @@ func (mr *MockStoreMockRecorder) CreatePurchaseOrderDetail(arg0, arg1 interface{
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreatePurchaseOrderDetail", reflect.TypeOf((*MockStore)(nil).CreatePurchaseOrderDetail), arg0, arg1)
|
||||
}
|
||||
|
||||
// CreateSaleOrder mocks base method.
|
||||
func (m *MockStore) CreateSaleOrder(arg0 context.Context, arg1 db.CreateSaleOrderParams) (db.PurchaseOrder, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "CreateSaleOrder", arg0, arg1)
|
||||
ret0, _ := ret[0].(db.PurchaseOrder)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// CreateSaleOrder indicates an expected call of CreateSaleOrder.
|
||||
func (mr *MockStoreMockRecorder) CreateSaleOrder(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateSaleOrder", reflect.TypeOf((*MockStore)(nil).CreateSaleOrder), arg0, arg1)
|
||||
}
|
||||
|
||||
// CreateSession mocks base method.
|
||||
func (m *MockStore) CreateSession(arg0 context.Context, arg1 db.CreateSessionParams) (db.UserSession, error) {
|
||||
m.ctrl.T.Helper()
|
||||
|
@ -6,9 +6,10 @@ INSERT INTO purchase_order (
|
||||
is_paid,
|
||||
total,
|
||||
paid_nominal,
|
||||
note
|
||||
note,
|
||||
created_by
|
||||
) VALUES (
|
||||
$1, $2, $3, $4, $5, $6, $7
|
||||
$1, $2, $3, $4, $5, $6, $7, $8
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
|
@ -101,6 +101,7 @@ type PurchaseOrder struct {
|
||||
SupplierID uuid.UUID `json:"supplier_id"`
|
||||
MerchantID uuid.UUID `json:"merchant_id"`
|
||||
IndexID int64 `json:"index_id"`
|
||||
CreatedBy uuid.UUID `json:"created_by"`
|
||||
Code sql.NullString `json:"code"`
|
||||
IsPaid bool `json:"is_paid"`
|
||||
Total float64 `json:"total"`
|
||||
@ -128,6 +129,7 @@ type SaleOrder struct {
|
||||
ID uuid.UUID `json:"id"`
|
||||
IndexID int64 `json:"index_id"`
|
||||
Code sql.NullString `json:"code"`
|
||||
CreatedBy uuid.UUID `json:"created_by"`
|
||||
MerchantID uuid.UUID `json:"merchant_id"`
|
||||
CustomerID uuid.NullUUID `json:"customer_id"`
|
||||
IsPaid sql.NullBool `json:"is_paid"`
|
||||
|
@ -9,7 +9,7 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var merchantID = uuid.MustParse("a848090f-0409-4386-9caa-929ae6874dbb")
|
||||
var merchantID = uuid.MustParse("04a1b0a7-69b4-41da-a053-2f6b95c93195")
|
||||
|
||||
func createRandomProductCategory(t *testing.T) ProductCategory {
|
||||
arg := CreateProductCategoryParams{
|
||||
|
@ -19,7 +19,7 @@ func createRandomProduct(t *testing.T) (Product, CreateProductParams) {
|
||||
productCategory := createRandomProductCategory(t)
|
||||
|
||||
arg := CreateProductParams{
|
||||
MerchantID: uuid.MustParse("a848090f-0409-4386-9caa-929ae6874dbb"),
|
||||
MerchantID: uuid.MustParse("04a1b0a7-69b4-41da-a053-2f6b95c93195"),
|
||||
Name: util.RandomString(10),
|
||||
SellingPrice: sellingPrice,
|
||||
PurchasePrice: purchasePrice,
|
||||
|
@ -20,11 +20,12 @@ INSERT INTO purchase_order (
|
||||
is_paid,
|
||||
total,
|
||||
paid_nominal,
|
||||
note
|
||||
note,
|
||||
created_by
|
||||
) VALUES (
|
||||
$1, $2, $3, $4, $5, $6, $7
|
||||
$1, $2, $3, $4, $5, $6, $7, $8
|
||||
)
|
||||
RETURNING id, supplier_id, merchant_id, index_id, code, is_paid, total, paid_nominal, note, created_at, updated_at
|
||||
RETURNING id, supplier_id, merchant_id, index_id, created_by, code, is_paid, total, paid_nominal, note, created_at, updated_at
|
||||
`
|
||||
|
||||
type CreatePurchaseOrderParams struct {
|
||||
@ -35,6 +36,7 @@ type CreatePurchaseOrderParams struct {
|
||||
Total float64 `json:"total"`
|
||||
PaidNominal float64 `json:"paid_nominal"`
|
||||
Note sql.NullString `json:"note"`
|
||||
CreatedBy uuid.UUID `json:"created_by"`
|
||||
}
|
||||
|
||||
func (q *Queries) CreatePurchaseOrder(ctx context.Context, arg CreatePurchaseOrderParams) (PurchaseOrder, error) {
|
||||
@ -46,6 +48,7 @@ func (q *Queries) CreatePurchaseOrder(ctx context.Context, arg CreatePurchaseOrd
|
||||
arg.Total,
|
||||
arg.PaidNominal,
|
||||
arg.Note,
|
||||
arg.CreatedBy,
|
||||
)
|
||||
var i PurchaseOrder
|
||||
err := row.Scan(
|
||||
@ -53,6 +56,7 @@ func (q *Queries) CreatePurchaseOrder(ctx context.Context, arg CreatePurchaseOrd
|
||||
&i.SupplierID,
|
||||
&i.MerchantID,
|
||||
&i.IndexID,
|
||||
&i.CreatedBy,
|
||||
&i.Code,
|
||||
&i.IsPaid,
|
||||
&i.Total,
|
||||
@ -65,7 +69,7 @@ func (q *Queries) CreatePurchaseOrder(ctx context.Context, arg CreatePurchaseOrd
|
||||
}
|
||||
|
||||
const getPurchaseOrderById = `-- name: GetPurchaseOrderById :one
|
||||
SELECT id, supplier_id, merchant_id, index_id, code, is_paid, total, paid_nominal, note, created_at, updated_at
|
||||
SELECT id, supplier_id, merchant_id, index_id, created_by, code, is_paid, total, paid_nominal, note, created_at, updated_at
|
||||
FROM purchase_order
|
||||
WHERE id = $1
|
||||
`
|
||||
@ -78,6 +82,7 @@ func (q *Queries) GetPurchaseOrderById(ctx context.Context, id uuid.UUID) (Purch
|
||||
&i.SupplierID,
|
||||
&i.MerchantID,
|
||||
&i.IndexID,
|
||||
&i.CreatedBy,
|
||||
&i.Code,
|
||||
&i.IsPaid,
|
||||
&i.Total,
|
||||
@ -90,7 +95,7 @@ func (q *Queries) GetPurchaseOrderById(ctx context.Context, id uuid.UUID) (Purch
|
||||
}
|
||||
|
||||
const listPurchaseOrderByMerchantId = `-- name: ListPurchaseOrderByMerchantId :many
|
||||
SELECT id, supplier_id, merchant_id, index_id, code, is_paid, total, paid_nominal, note, created_at, updated_at
|
||||
SELECT id, supplier_id, merchant_id, index_id, created_by, code, is_paid, total, paid_nominal, note, created_at, updated_at
|
||||
FROM purchase_order
|
||||
WHERE merchant_id = $1
|
||||
`
|
||||
@ -109,6 +114,7 @@ func (q *Queries) ListPurchaseOrderByMerchantId(ctx context.Context, merchantID
|
||||
&i.SupplierID,
|
||||
&i.MerchantID,
|
||||
&i.IndexID,
|
||||
&i.CreatedBy,
|
||||
&i.Code,
|
||||
&i.IsPaid,
|
||||
&i.Total,
|
||||
|
@ -17,6 +17,7 @@ type Querier interface {
|
||||
CreateProductCategory(ctx context.Context, arg CreateProductCategoryParams) (ProductCategory, error)
|
||||
CreatePurchaseOrder(ctx context.Context, arg CreatePurchaseOrderParams) (PurchaseOrder, error)
|
||||
CreatePurchaseOrderDetail(ctx context.Context, arg CreatePurchaseOrderDetailParams) (PurchaseOrderDetail, error)
|
||||
CreateSaleOrder(ctx context.Context, arg CreateSaleOrderParams) (PurchaseOrder, error)
|
||||
CreateSession(ctx context.Context, arg CreateSessionParams) (UserSession, error)
|
||||
CreateStockLogs(ctx context.Context, arg CreateStockLogsParams) (StockLog, error)
|
||||
CreateSuppliers(ctx context.Context, arg CreateSuppliersParams) (Supplier, error)
|
||||
|
@ -81,6 +81,7 @@ func (store *SQLStore) PurchaseOrderTx(ctx context.Context, arg PurchasoOrderTxP
|
||||
MerchantID: arg.MerchantID,
|
||||
SupplierID: arg.SupplierID,
|
||||
Code: arg.Code,
|
||||
CreatedBy: arg.CreatedBy,
|
||||
IsPaid: arg.IsPaid,
|
||||
Total: arg.Total,
|
||||
PaidNominal: arg.PaidNominal,
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
|
||||
func createRandomSupplier(t *testing.T) (Supplier, CreateSuppliersParams) {
|
||||
arg := CreateSuppliersParams{
|
||||
MerchantID: uuid.MustParse("a848090f-0409-4386-9caa-929ae6874dbb"),
|
||||
MerchantID: uuid.MustParse("04a1b0a7-69b4-41da-a053-2f6b95c93195"),
|
||||
Name: util.RandomString(10),
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user