store wise orders change
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"nearle/models"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
@@ -599,39 +598,47 @@ func (r *orderRepository) GetAllOrders(stat, fdate, tdate string, pageno, pagesi
|
||||
|
||||
func (r *orderRepository) GetOrderSummary(tid, pid, cid, lid int, fdate, tdate string) ([]models.Ordersummarydaily, error) {
|
||||
var data []models.Ordersummarydaily
|
||||
var q1 string
|
||||
|
||||
// Base SELECT
|
||||
const base = `
|
||||
SELECT
|
||||
SELECT
|
||||
COUNT(*) AS total,
|
||||
SUM(CASE WHEN o.orderstatus = 'created' THEN 1 ELSE 0 END) AS created,
|
||||
SUM(CASE WHEN o.orderstatus = 'pending' THEN 1 ELSE 0 END) AS pending,
|
||||
SUM(CASE WHEN o.orderstatus = 'processing' THEN 1 ELSE 0 END) AS processing,
|
||||
SUM(CASE WHEN o.orderstatus = 'delivered' THEN 1 ELSE 0 END) AS delivered,
|
||||
SUM(CASE WHEN o.orderstatus = 'cancelled' THEN 1 ELSE 0 END) AS cancelled,
|
||||
t.tenantid,
|
||||
t.tenantid,
|
||||
t.tenantname
|
||||
FROM orders o
|
||||
INNER JOIN tenants t ON o.tenantid = t.tenantid
|
||||
`
|
||||
|
||||
// Apply filters
|
||||
if tid != 0 {
|
||||
q1 = base + " WHERE o.configid = 1 AND o.tenantid = " + strconv.Itoa(tid)
|
||||
} else if pid != 0 {
|
||||
q1 = base + " WHERE o.configid = 1 AND o.partnerid = " + strconv.Itoa(pid)
|
||||
} else if cid != 0 {
|
||||
q1 = base + " WHERE o.configid = 1 AND o.customerid = " + strconv.Itoa(cid)
|
||||
} else if lid != 0 {
|
||||
q1 = base + " WHERE o.configid = 1 AND o.locationid = " + strconv.Itoa(lid)
|
||||
} else {
|
||||
q1 = base + " WHERE o.configid = 1"
|
||||
var params []interface{}
|
||||
var q1 string
|
||||
|
||||
// Apply filters (at least one scoping id is required — enforced by the caller)
|
||||
switch {
|
||||
case tid != 0:
|
||||
q1 = base + " WHERE o.configid = 1 AND o.tenantid = ?"
|
||||
params = append(params, tid)
|
||||
case pid != 0:
|
||||
q1 = base + " WHERE o.configid = 1 AND o.partnerid = ?"
|
||||
params = append(params, pid)
|
||||
case cid != 0:
|
||||
q1 = base + " WHERE o.configid = 1 AND o.customerid = ?"
|
||||
params = append(params, cid)
|
||||
case lid != 0:
|
||||
q1 = base + " WHERE o.configid = 1 AND o.locationid = ?"
|
||||
params = append(params, lid)
|
||||
default:
|
||||
return nil, fmt.Errorf("at least one of tenantid, partnerid, customerid or locationid is required")
|
||||
}
|
||||
|
||||
// Date filter
|
||||
if fdate != "" && tdate != "" {
|
||||
q1 += " AND o.orderdate::date BETWEEN '" + fdate + "' AND '" + tdate + "'"
|
||||
q1 += " AND o.orderdate::date BETWEEN ? AND ?"
|
||||
params = append(params, fdate, tdate)
|
||||
}
|
||||
|
||||
// Group by tenant
|
||||
@@ -640,7 +647,7 @@ func (r *orderRepository) GetOrderSummary(tid, pid, cid, lid int, fdate, tdate s
|
||||
// Debug
|
||||
fmt.Println("Executing GetOrderSummary query:", q1)
|
||||
|
||||
if err := r.db.Raw(q1).Scan(&data).Error; err != nil {
|
||||
if err := r.db.Raw(q1, params...).Scan(&data).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user