Add account balance
This commit is contained in:
@@ -19,6 +19,7 @@ type AnalyticsRepository interface {
|
||||
GetDashboardOverview(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID, dateFrom, dateTo time.Time) (*entities.DashboardOverview, error)
|
||||
GetProfitLossAnalytics(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID, dateFrom, dateTo time.Time, groupBy string) (*entities.ProfitLossAnalytics, error)
|
||||
GetExclusiveSummaryAnalytics(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID, dateFrom, dateTo time.Time) (*entities.ExclusiveSummaryAnalytics, error)
|
||||
GetExclusiveSummaryBankBalances(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID) ([]entities.ExclusiveSummaryBankBalance, error)
|
||||
}
|
||||
|
||||
type AnalyticsRepositoryImpl struct {
|
||||
@@ -853,3 +854,30 @@ func (r *AnalyticsRepositoryImpl) exclusiveSummaryPurchaseOrderItemsQuery(organi
|
||||
|
||||
return query, args
|
||||
}
|
||||
|
||||
func (r *AnalyticsRepositoryImpl) GetExclusiveSummaryBankBalances(ctx context.Context, organizationID uuid.UUID, outletID *uuid.UUID) ([]entities.ExclusiveSummaryBankBalance, error) {
|
||||
var results []entities.ExclusiveSummaryBankBalance
|
||||
|
||||
query := r.db.WithContext(ctx).
|
||||
Table("accounts").
|
||||
Select(`
|
||||
name as bank,
|
||||
account_type,
|
||||
opening_balance,
|
||||
current_balance as closing_balance,
|
||||
description
|
||||
`).
|
||||
Where("organization_id = ?", organizationID).
|
||||
Where("is_active = ?", true).
|
||||
Where("account_type IN ?", []entities.AccountType{entities.AccountTypeBank, entities.AccountTypeWallet, entities.AccountTypeCash})
|
||||
|
||||
if outletID != nil {
|
||||
query = query.Where("outlet_id = ? OR outlet_id IS NULL", *outletID)
|
||||
}
|
||||
|
||||
err := query.
|
||||
Order("CASE account_type WHEN 'bank' THEN 1 WHEN 'wallet' THEN 2 WHEN 'cash' THEN 3 ELSE 4 END, number ASC, name ASC").
|
||||
Scan(&results).Error
|
||||
|
||||
return results, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user