109 lines
3.7 KiB
Go
109 lines
3.7 KiB
Go
|
package app
|
||
|
|
||
|
import (
|
||
|
"database/sql"
|
||
|
"time"
|
||
|
|
||
|
"code.tnxs.net/taxnexus/lib/api/crm/crm_models"
|
||
|
"github.com/google/uuid"
|
||
|
)
|
||
|
|
||
|
// UnMarshalCompany decodes swagger to first class object
|
||
|
func UnMarshalCompany(s *crm_models.Company) *Company {
|
||
|
if s.ID == "" {
|
||
|
s.ID = uuid.New().String()
|
||
|
}
|
||
|
createdDate, e0 := time.Parse(dateTimeFormat, s.CreatedDate)
|
||
|
lastModfiedDate, e1 := time.Parse(dateTimeFormat, s.LastModifiedDate)
|
||
|
dateClosed, e2 := time.Parse(dateTimeFormat, s.DateClosed)
|
||
|
return &Company{
|
||
|
ID: s.ID,
|
||
|
AccountID: s.AccountID,
|
||
|
AccountNumberPrefix: s.AccountNumberPrefix,
|
||
|
BillingAddress: UnMarshalCrmAddress(s.BillingAddress),
|
||
|
BillingAdvice: s.BillingAdvice,
|
||
|
BillingContactID: s.BillingContactID,
|
||
|
BillingEmail: s.BillingEmail,
|
||
|
BillingPhone: s.BillingPhone,
|
||
|
BillingWebsite: s.BillingWebsite,
|
||
|
CoaTemplateID: s.COATemplateID,
|
||
|
ColorAccent1: s.ColorAccent1,
|
||
|
ColorAccent2: s.ColorAccent2,
|
||
|
ColorPrimary: s.ColorPrimary,
|
||
|
CreatedByID: s.CreatedByID,
|
||
|
CustomerSuccessID: s.CustomerSuccessID,
|
||
|
DefaultAddress: UnMarshalCrmAddress(s.DefaultAddress),
|
||
|
DefaultCompany: s.DefaultCompany,
|
||
|
FontBody: s.FontBody,
|
||
|
FontHeading: s.FontBody,
|
||
|
FontHeadingNarrow: s.FontHeadingNarrow,
|
||
|
FontLink: s.FontLink,
|
||
|
FontMono: s.FontMono,
|
||
|
International: s.International,
|
||
|
LastAccountNumber: s.LastAccountNumber,
|
||
|
LastModifiedByID: s.LastModifiedByID,
|
||
|
LastTaxtypeNumber: s.LastTaxTypeNumber,
|
||
|
Logo: s.Logo,
|
||
|
Name: s.Name,
|
||
|
OwnerID: s.OwnerID,
|
||
|
PreparerID: s.PreparerID,
|
||
|
PricebookID: s.PricebookID,
|
||
|
TenantID: s.TenantID,
|
||
|
UserTechLeadID: s.UserTechLeadID,
|
||
|
CreatedDate: sql.NullTime{
|
||
|
Time: createdDate,
|
||
|
Valid: e0 == nil,
|
||
|
},
|
||
|
LastModifiedDate: sql.NullTime{
|
||
|
Time: lastModfiedDate,
|
||
|
Valid: e1 == nil,
|
||
|
},
|
||
|
DateClosed: sql.NullTime{
|
||
|
Time: dateClosed,
|
||
|
Valid: e2 == nil,
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// MarshalToSwagger encodes a first class object to swagger
|
||
|
func (obj *Company) MarshalToSwagger() *crm_models.Company {
|
||
|
return &crm_models.Company{
|
||
|
ID: obj.ID,
|
||
|
AccountID: obj.AccountID,
|
||
|
AccountNumberPrefix: obj.AccountNumberPrefix,
|
||
|
BillingAddress: obj.BillingAddress.MarshalToCrm(),
|
||
|
BillingAdvice: obj.BillingAdvice,
|
||
|
BillingContactID: obj.BillingContactID,
|
||
|
BillingEmail: obj.BillingEmail,
|
||
|
BillingPhone: obj.BillingPhone,
|
||
|
BillingWebsite: obj.BillingWebsite,
|
||
|
COATemplateID: obj.CoaTemplateID,
|
||
|
ColorAccent1: obj.ColorAccent1,
|
||
|
ColorAccent2: obj.ColorAccent2,
|
||
|
ColorPrimary: obj.ColorPrimary,
|
||
|
CreatedByID: obj.CreatedByID,
|
||
|
CreatedDate: obj.CreatedDate.Time.Format(dateTimeFormat),
|
||
|
CustomerSuccessID: obj.CustomerSuccessID,
|
||
|
DateClosed: obj.DateClosed.Time.Format(dateTimeFormat),
|
||
|
DefaultAddress: obj.DefaultAddress.MarshalToCrm(),
|
||
|
DefaultCompany: obj.DefaultCompany,
|
||
|
FontBody: obj.FontBody,
|
||
|
FontHeading: obj.FontHeading,
|
||
|
FontHeadingNarrow: obj.FontHeadingNarrow,
|
||
|
FontLink: obj.FontLink,
|
||
|
FontMono: obj.FontMono,
|
||
|
International: obj.International,
|
||
|
LastAccountNumber: obj.LastAccountNumber,
|
||
|
LastModifiedByID: obj.LastModifiedByID,
|
||
|
LastModifiedDate: obj.LastModifiedDate.Time.Format(dateTimeFormat),
|
||
|
LastTaxTypeNumber: obj.LastTaxtypeNumber,
|
||
|
Logo: obj.Logo,
|
||
|
Name: obj.Name,
|
||
|
OwnerID: obj.OwnerID,
|
||
|
PreparerID: obj.PreparerID,
|
||
|
PricebookID: obj.PricebookID,
|
||
|
TenantID: obj.TenantID,
|
||
|
UserTechLeadID: obj.UserTechLeadID,
|
||
|
}
|
||
|
}
|