126 lines
3.1 KiB
Go
126 lines
3.1 KiB
Go
package mappers
|
|
|
|
import (
|
|
"apskel-pos-be/internal/entities"
|
|
"apskel-pos-be/internal/models"
|
|
)
|
|
|
|
func ExpenseEntityToModel(entity *entities.Expense) *models.Expense {
|
|
if entity == nil {
|
|
return nil
|
|
}
|
|
|
|
return &models.Expense{
|
|
ID: entity.ID,
|
|
OrganizationID: entity.OrganizationID,
|
|
OutletID: entity.OutletID,
|
|
Receiver: entity.Receiver,
|
|
TransactionDate: entity.TransactionDate,
|
|
CodeNumber: entity.CodeNumber,
|
|
Description: entity.Description,
|
|
Tax: entity.Tax,
|
|
Total: entity.Total,
|
|
Reserved1: entity.Reserved1,
|
|
CreatedAt: entity.CreatedAt,
|
|
UpdatedAt: entity.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func ExpenseModelToEntity(model *models.Expense) *entities.Expense {
|
|
if model == nil {
|
|
return nil
|
|
}
|
|
|
|
return &entities.Expense{
|
|
ID: model.ID,
|
|
OrganizationID: model.OrganizationID,
|
|
OutletID: model.OutletID,
|
|
Receiver: model.Receiver,
|
|
TransactionDate: model.TransactionDate,
|
|
CodeNumber: model.CodeNumber,
|
|
Description: model.Description,
|
|
Tax: model.Tax,
|
|
Total: model.Total,
|
|
Reserved1: model.Reserved1,
|
|
CreatedAt: model.CreatedAt,
|
|
UpdatedAt: model.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func ExpenseEntityToResponse(entity *entities.Expense) *models.ExpenseResponse {
|
|
if entity == nil {
|
|
return nil
|
|
}
|
|
|
|
resp := &models.ExpenseResponse{
|
|
ID: entity.ID,
|
|
OrganizationID: entity.OrganizationID,
|
|
OutletID: entity.OutletID,
|
|
Receiver: entity.Receiver,
|
|
TransactionDate: entity.TransactionDate,
|
|
CodeNumber: entity.CodeNumber,
|
|
Description: entity.Description,
|
|
Tax: entity.Tax,
|
|
Total: entity.Total,
|
|
Reserved1: entity.Reserved1,
|
|
CreatedAt: entity.CreatedAt,
|
|
UpdatedAt: entity.UpdatedAt,
|
|
}
|
|
|
|
if entity.Items != nil {
|
|
resp.Items = ExpenseItemEntitiesToResponses(entity.Items)
|
|
}
|
|
|
|
return resp
|
|
}
|
|
|
|
func ExpenseEntitiesToResponses(entities []*entities.Expense) []*models.ExpenseResponse {
|
|
if entities == nil {
|
|
return nil
|
|
}
|
|
|
|
responses := make([]*models.ExpenseResponse, len(entities))
|
|
for i, entity := range entities {
|
|
responses[i] = ExpenseEntityToResponse(entity)
|
|
}
|
|
return responses
|
|
}
|
|
|
|
func ExpenseItemEntityToResponse(entity *entities.ExpenseItem) *models.ExpenseItemResponse {
|
|
if entity == nil {
|
|
return nil
|
|
}
|
|
|
|
response := &models.ExpenseItemResponse{
|
|
ID: entity.ID,
|
|
ExpenseID: entity.ExpenseID,
|
|
ChartOfAccountID: entity.ChartOfAccountID,
|
|
Item: entity.Item,
|
|
Description: entity.Description,
|
|
Amount: entity.Amount,
|
|
CreatedAt: entity.CreatedAt,
|
|
UpdatedAt: entity.UpdatedAt,
|
|
}
|
|
|
|
if entity.ChartOfAccount != nil {
|
|
response.ChartOfAccountName = entity.ChartOfAccount.Name
|
|
}
|
|
|
|
return response
|
|
}
|
|
|
|
func ExpenseItemEntitiesToResponses(entities []entities.ExpenseItem) []models.ExpenseItemResponse {
|
|
if entities == nil {
|
|
return nil
|
|
}
|
|
|
|
responses := make([]models.ExpenseItemResponse, len(entities))
|
|
for i, entity := range entities {
|
|
response := ExpenseItemEntityToResponse(&entity)
|
|
if response != nil {
|
|
responses[i] = *response
|
|
}
|
|
}
|
|
return responses
|
|
}
|