Add coa purchase and vendors
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package mappers
|
||||
|
||||
import (
|
||||
"apskel-pos-be/internal/entities"
|
||||
"apskel-pos-be/internal/models"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func AccountEntityToResponse(entity *entities.Account) *models.AccountResponse {
|
||||
response := &models.AccountResponse{
|
||||
ID: entity.ID,
|
||||
OrganizationID: entity.OrganizationID,
|
||||
OutletID: entity.OutletID,
|
||||
ChartOfAccountID: entity.ChartOfAccountID,
|
||||
Name: entity.Name,
|
||||
Number: entity.Number,
|
||||
AccountType: string(entity.AccountType),
|
||||
OpeningBalance: entity.OpeningBalance,
|
||||
CurrentBalance: entity.CurrentBalance,
|
||||
Description: entity.Description,
|
||||
IsActive: entity.IsActive,
|
||||
IsSystem: entity.IsSystem,
|
||||
CreatedAt: entity.CreatedAt,
|
||||
UpdatedAt: entity.UpdatedAt,
|
||||
}
|
||||
|
||||
if entity.ChartOfAccount.ID != uuid.Nil {
|
||||
response.ChartOfAccount = ChartOfAccountEntityToResponse(&entity.ChartOfAccount)
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
func AccountCreateRequestToEntity(req *models.CreateAccountRequest, organizationID uuid.UUID, outletID *uuid.UUID) *entities.Account {
|
||||
return &entities.Account{
|
||||
OrganizationID: organizationID,
|
||||
OutletID: outletID,
|
||||
ChartOfAccountID: req.ChartOfAccountID,
|
||||
Name: req.Name,
|
||||
Number: req.Number,
|
||||
AccountType: entities.AccountType(req.AccountType),
|
||||
OpeningBalance: req.OpeningBalance,
|
||||
CurrentBalance: req.OpeningBalance, // Initialize current balance with opening balance
|
||||
Description: req.Description,
|
||||
IsActive: true,
|
||||
IsSystem: false,
|
||||
}
|
||||
}
|
||||
|
||||
func AccountUpdateRequestToEntity(entity *entities.Account, req *models.UpdateAccountRequest) {
|
||||
if req.ChartOfAccountID != nil {
|
||||
entity.ChartOfAccountID = *req.ChartOfAccountID
|
||||
}
|
||||
if req.Name != nil {
|
||||
entity.Name = *req.Name
|
||||
}
|
||||
if req.Number != nil {
|
||||
entity.Number = *req.Number
|
||||
}
|
||||
if req.AccountType != nil {
|
||||
entity.AccountType = entities.AccountType(*req.AccountType)
|
||||
}
|
||||
if req.OpeningBalance != nil {
|
||||
entity.OpeningBalance = *req.OpeningBalance
|
||||
}
|
||||
if req.Description != nil {
|
||||
entity.Description = req.Description
|
||||
}
|
||||
if req.IsActive != nil {
|
||||
entity.IsActive = *req.IsActive
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user