mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
Перевел на multi-tenant
Добавил поставщиков Накладные успешно создаются из фронта
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"rmser/internal/domain/invoices"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
@@ -17,9 +18,10 @@ func NewRepository(db *gorm.DB) invoices.Repository {
|
||||
return &pgRepository{db: db}
|
||||
}
|
||||
|
||||
func (r *pgRepository) GetLastInvoiceDate() (*time.Time, error) {
|
||||
func (r *pgRepository) GetLastInvoiceDate(serverID uuid.UUID) (*time.Time, error) {
|
||||
var inv invoices.Invoice
|
||||
err := r.db.Order("date_incoming DESC").First(&inv).Error
|
||||
// Ищем последнюю накладную только для этого сервера
|
||||
err := r.db.Where("rms_server_id = ?", serverID).Order("date_incoming DESC").First(&inv).Error
|
||||
if err != nil {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return nil, nil
|
||||
@@ -38,6 +40,7 @@ func (r *pgRepository) SaveInvoices(list []invoices.Invoice) error {
|
||||
}).Create(&inv).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
// Удаляем старые Items для этой накладной
|
||||
if err := tx.Where("invoice_id = ?", inv.ID).Delete(&invoices.InvoiceItem{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -50,3 +53,13 @@ func (r *pgRepository) SaveInvoices(list []invoices.Invoice) error {
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func (r *pgRepository) CountRecent(serverID uuid.UUID, days int) (int64, error) {
|
||||
var count int64
|
||||
dateFrom := time.Now().AddDate(0, 0, -days)
|
||||
|
||||
err := r.db.Model(&invoices.Invoice{}).
|
||||
Where("rms_server_id = ? AND date_incoming >= ?", serverID, dateFrom).
|
||||
Count(&count).Error
|
||||
return count, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user