Fix HPP
This commit is contained in:
@@ -155,16 +155,22 @@ func ProductAnalyticsModelToContract(resp *models.ProductAnalyticsResponse) *con
|
||||
var data []contract.ProductAnalyticsData
|
||||
for _, item := range resp.Data {
|
||||
data = append(data, contract.ProductAnalyticsData{
|
||||
ProductID: item.ProductID,
|
||||
ProductName: item.ProductName,
|
||||
ProductSku: item.ProductSku,
|
||||
CategoryID: item.CategoryID,
|
||||
CategoryName: item.CategoryName,
|
||||
CategoryOrder: item.CategoryOrder,
|
||||
QuantitySold: item.QuantitySold,
|
||||
Revenue: item.Revenue,
|
||||
AveragePrice: item.AveragePrice,
|
||||
OrderCount: item.OrderCount,
|
||||
ProductID: item.ProductID,
|
||||
ProductName: item.ProductName,
|
||||
ProductSku: item.ProductSku,
|
||||
CategoryID: item.CategoryID,
|
||||
CategoryName: item.CategoryName,
|
||||
CategoryOrder: item.CategoryOrder,
|
||||
QuantitySold: item.QuantitySold,
|
||||
Revenue: item.Revenue,
|
||||
AveragePrice: item.AveragePrice,
|
||||
OrderCount: item.OrderCount,
|
||||
StandardHppPerUnit: item.StandardHppPerUnit,
|
||||
StandardHppTotal: item.StandardHppTotal,
|
||||
FifoHppPerUnit: item.FifoHppPerUnit,
|
||||
FifoHppTotal: item.FifoHppTotal,
|
||||
MovingAverageHppPerUnit: item.MovingAverageHppPerUnit,
|
||||
MovingAverageHppTotal: item.MovingAverageHppTotal,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -208,12 +214,15 @@ func ProductAnalyticsPerCategoryModelToContract(resp *models.ProductAnalyticsPer
|
||||
var data []contract.ProductAnalyticsPerCategoryData
|
||||
for _, item := range resp.Data {
|
||||
data = append(data, contract.ProductAnalyticsPerCategoryData{
|
||||
CategoryID: item.CategoryID,
|
||||
CategoryName: item.CategoryName,
|
||||
TotalRevenue: item.TotalRevenue,
|
||||
TotalQuantity: item.TotalQuantity,
|
||||
ProductCount: item.ProductCount,
|
||||
OrderCount: item.OrderCount,
|
||||
CategoryID: item.CategoryID,
|
||||
CategoryName: item.CategoryName,
|
||||
TotalRevenue: item.TotalRevenue,
|
||||
TotalQuantity: item.TotalQuantity,
|
||||
ProductCount: item.ProductCount,
|
||||
OrderCount: item.OrderCount,
|
||||
TotalStandardHpp: item.TotalStandardHpp,
|
||||
TotalFifoHpp: item.TotalFifoHpp,
|
||||
TotalMovingAverageHpp: item.TotalMovingAverageHpp,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -257,14 +266,20 @@ func DashboardAnalyticsModelToContract(resp *models.DashboardAnalyticsResponse)
|
||||
var topProducts []contract.ProductAnalyticsData
|
||||
for _, item := range resp.TopProducts {
|
||||
topProducts = append(topProducts, contract.ProductAnalyticsData{
|
||||
ProductID: item.ProductID,
|
||||
ProductName: item.ProductName,
|
||||
CategoryID: item.CategoryID,
|
||||
CategoryName: item.CategoryName,
|
||||
QuantitySold: item.QuantitySold,
|
||||
Revenue: item.Revenue,
|
||||
AveragePrice: item.AveragePrice,
|
||||
OrderCount: item.OrderCount,
|
||||
ProductID: item.ProductID,
|
||||
ProductName: item.ProductName,
|
||||
CategoryID: item.CategoryID,
|
||||
CategoryName: item.CategoryName,
|
||||
QuantitySold: item.QuantitySold,
|
||||
Revenue: item.Revenue,
|
||||
AveragePrice: item.AveragePrice,
|
||||
OrderCount: item.OrderCount,
|
||||
StandardHppPerUnit: item.StandardHppPerUnit,
|
||||
StandardHppTotal: item.StandardHppTotal,
|
||||
FifoHppPerUnit: item.FifoHppPerUnit,
|
||||
FifoHppTotal: item.FifoHppTotal,
|
||||
MovingAverageHppPerUnit: item.MovingAverageHppPerUnit,
|
||||
MovingAverageHppTotal: item.MovingAverageHppTotal,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -1,136 +0,0 @@
|
||||
package transformer
|
||||
|
||||
import (
|
||||
"apskel-pos-be/internal/contract"
|
||||
"apskel-pos-be/internal/models"
|
||||
"apskel-pos-be/internal/util"
|
||||
"time"
|
||||
)
|
||||
|
||||
func StandardHPPContractToModel(req *contract.StandardHPPRequest) *models.StandardHPPRequest {
|
||||
return &models.StandardHPPRequest{
|
||||
OrganizationID: req.OrganizationID,
|
||||
ProductID: req.ProductID,
|
||||
CategoryID: req.CategoryID,
|
||||
}
|
||||
}
|
||||
|
||||
func StandardHPPModelToContract(resp *models.StandardHPPResponse) *contract.StandardHPPResponse {
|
||||
if resp == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
products := make([]contract.StandardHPPProductData, len(resp.Products))
|
||||
for i, p := range resp.Products {
|
||||
products[i] = contract.StandardHPPProductData{
|
||||
ProductID: p.ProductID,
|
||||
ProductName: p.ProductName,
|
||||
ProductSku: p.ProductSku,
|
||||
CategoryID: p.CategoryID,
|
||||
CategoryName: p.CategoryName,
|
||||
SellingPrice: p.SellingPrice,
|
||||
ProductCost: p.ProductCost,
|
||||
StandardCost: p.StandardCost,
|
||||
StandardHPPPercentage: p.StandardHPPPercentage,
|
||||
HasRecipe: p.HasRecipe,
|
||||
}
|
||||
}
|
||||
|
||||
ingredients := make([]contract.StandardHPPIngredientData, len(resp.Ingredients))
|
||||
for i, ing := range resp.Ingredients {
|
||||
ingredients[i] = contract.StandardHPPIngredientData{
|
||||
ProductID: ing.ProductID,
|
||||
IngredientID: ing.IngredientID,
|
||||
IngredientName: ing.IngredientName,
|
||||
Quantity: ing.Quantity,
|
||||
UnitName: ing.UnitName,
|
||||
CostPerUnit: ing.CostPerUnit,
|
||||
WastePercentage: ing.WastePercentage,
|
||||
TotalCost: ing.TotalCost,
|
||||
}
|
||||
}
|
||||
|
||||
return &contract.StandardHPPResponse{
|
||||
OrganizationID: resp.OrganizationID,
|
||||
Summary: hppSummaryModelToContract(resp.Summary),
|
||||
Products: products,
|
||||
Ingredients: ingredients,
|
||||
}
|
||||
}
|
||||
|
||||
func RealHPPContractToModel(req *contract.RealHPPRequest) *models.RealHPPRequest {
|
||||
var dateFrom, dateTo time.Time
|
||||
|
||||
if fromTime, toTime, err := util.ParseDateRangeToJakartaTime(req.DateFrom, req.DateTo); err == nil {
|
||||
if fromTime != nil {
|
||||
dateFrom = *fromTime
|
||||
}
|
||||
if toTime != nil {
|
||||
dateTo = *toTime
|
||||
}
|
||||
}
|
||||
|
||||
return &models.RealHPPRequest{
|
||||
OrganizationID: req.OrganizationID,
|
||||
OutletID: req.OutletID,
|
||||
ProductID: req.ProductID,
|
||||
CategoryID: req.CategoryID,
|
||||
DateFrom: dateFrom,
|
||||
DateTo: dateTo,
|
||||
GroupBy: req.GroupBy,
|
||||
}
|
||||
}
|
||||
|
||||
func RealHPPModelToContract(resp *models.RealHPPResponse) *contract.RealHPPResponse {
|
||||
if resp == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
products := make([]contract.RealHPPProductData, len(resp.Products))
|
||||
for i, p := range resp.Products {
|
||||
products[i] = contract.RealHPPProductData{
|
||||
ProductID: p.ProductID,
|
||||
ProductName: p.ProductName,
|
||||
ProductSku: p.ProductSku,
|
||||
CategoryID: p.CategoryID,
|
||||
CategoryName: p.CategoryName,
|
||||
SellingPrice: p.SellingPrice,
|
||||
RealTotalCost: p.RealTotalCost,
|
||||
RealTotalRevenue: p.RealTotalRevenue,
|
||||
RealHPPPercentage: p.RealHPPPercentage,
|
||||
TotalQuantitySold: p.TotalQuantitySold,
|
||||
TotalOrders: p.TotalOrders,
|
||||
}
|
||||
}
|
||||
|
||||
timeSeries := make([]contract.RealHPPTimeSeriesData, len(resp.TimeSeries))
|
||||
for i, ts := range resp.TimeSeries {
|
||||
timeSeries[i] = contract.RealHPPTimeSeriesData{
|
||||
Date: ts.Date,
|
||||
RealTotalCost: ts.RealTotalCost,
|
||||
RealTotalRevenue: ts.RealTotalRevenue,
|
||||
RealHPPPercentage: ts.RealHPPPercentage,
|
||||
TotalOrders: ts.TotalOrders,
|
||||
}
|
||||
}
|
||||
|
||||
return &contract.RealHPPResponse{
|
||||
OrganizationID: resp.OrganizationID,
|
||||
OutletID: resp.OutletID,
|
||||
DateFrom: resp.DateFrom,
|
||||
DateTo: resp.DateTo,
|
||||
GroupBy: resp.GroupBy,
|
||||
Summary: hppSummaryModelToContract(resp.Summary),
|
||||
Products: products,
|
||||
TimeSeries: timeSeries,
|
||||
}
|
||||
}
|
||||
|
||||
func hppSummaryModelToContract(s models.HPPSummary) contract.HPPSummary {
|
||||
return contract.HPPSummary{
|
||||
AverageStandardHPP: s.AverageStandardHPP,
|
||||
AverageRealHPP: s.AverageRealHPP,
|
||||
HPPVariance: s.HPPVariance,
|
||||
TotalProducts: s.TotalProducts,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user