ExpiryDatesManager/server/model/reportposition.go
2019-01-13 21:09:49 +01:00

41 lines
1.0 KiB
Go

package model
import (
"time"
)
type ReportPosition struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
PositionNumber int
Quantity int
ProductExpiryPosition ProductExpiryPosition
ProductExpiryPositionID uint
ReportID uint
}
func (reportPosition *ReportPosition) CreateOrUpdate() (*ReportPosition) {
GetDB().Save(reportPosition)
return reportPosition;
}
func GetReportPositionsForReport(reportID uint) ([]*ReportPosition) {
reportsPositions := make([]*ReportPosition, 0)
if GetDB().
Joins("JOIN reports on reports.id = report_positions.report_id").
Joins("JOIN product_expiry_positions on product_expiry_positions.id = report_positions.product_expiry_position_id").
Joins("JOIN products on products.id = product_expiry_positions.product_id").
Joins("JOIN companies on companies.id = products.company_id").
Where("reports.id = ?", reportID).
Group("product_expiry_positions.id").
Find(&reportsPositions).RecordNotFound() {
return nil
}
return reportsPositions
}