117 lines
4.7 KiB
Go
117 lines
4.7 KiB
Go
package app
|
|
|
|
import "code.tnxs.net/taxnexus/lib/api/ops/ops_models"
|
|
|
|
// Invoice unMarshal does validation in the Ops microservice only
|
|
|
|
// MarshalToSwagger encodes first class object
|
|
func (obj *Invoice) MarshalToSwagger() *ops_models.Invoice { //nolint:funlen // big object
|
|
var items []*ops_models.InvoiceItem
|
|
if obj.Items != nil {
|
|
items = []*ops_models.InvoiceItem{}
|
|
for _, itm := range obj.Items {
|
|
items = append(items, itm.MarshalToSwagger())
|
|
}
|
|
}
|
|
var taxTransactions []*ops_models.TaxTransaction
|
|
if obj.TaxTransactions != nil {
|
|
taxTransactions = []*ops_models.TaxTransaction{}
|
|
for _, txn := range obj.TaxTransactions {
|
|
taxTransactions = append(taxTransactions, txn.MarshalToSwagger())
|
|
}
|
|
}
|
|
return &ops_models.Invoice{
|
|
ID: obj.ID,
|
|
AccountID: obj.AccountID,
|
|
Advance: obj.Advance,
|
|
Amount: obj.Amount,
|
|
AmountAdjustment: obj.AmountAdjustment,
|
|
AmountDue: obj.AmountDue,
|
|
AmountPaid: obj.AmountPaid,
|
|
AuditMessage: obj.AuditMessage,
|
|
BillingAddress: obj.BillingAddress.MarshalToOps(),
|
|
BillingContactID: obj.BillingContact,
|
|
BillingRunID: obj.BillingRunID,
|
|
BusinessAddress: obj.BusinessAddress.MarshalToOps(),
|
|
BusinessTax: obj.BusinessTax,
|
|
CannabisTax: obj.CannabisTax,
|
|
ContractID: obj.ContractID,
|
|
CoordinateID: obj.CoordinateID,
|
|
CreatedByID: obj.CreatedByID,
|
|
CreatedDate: obj.CreatedDate.Time.Format(dateTimeFormat),
|
|
CustomerID: obj.CustomerID,
|
|
DateIssued: obj.DateIssued.Time.Format(dateTimeFormat),
|
|
DaysDue: obj.DaysDue,
|
|
DepositAmount: obj.DepositAmount,
|
|
Description: obj.Description,
|
|
Discount: obj.Discount,
|
|
EstimatedAmount: obj.EstimatedAmount,
|
|
EstimatedBusinessTax: obj.EstimatedBusinessTax,
|
|
EstimatedCannabisTax: obj.EstimatedCannabisTax,
|
|
EstimatedCOGS: obj.EstimatedCOGS,
|
|
EstimatedDiscount: obj.EstimatedDiscount,
|
|
EstimatedSalesTax: obj.EstimatedSalesTax,
|
|
EstimatedSubtotal: obj.EstimatedSubtotal,
|
|
IngestID: obj.IngestID,
|
|
InvoiceDate: obj.InvoiceDate.Time.Format(dateFormat),
|
|
InvoiceNumber: obj.InvoiceNumber,
|
|
IsInternational: obj.IsInternational,
|
|
IssuedAccountBalance: obj.IssuedAccountBalance,
|
|
IssuedAmountDue: obj.IssuedAmountDue,
|
|
IssuedByID: obj.IssuedByID,
|
|
IsValid: obj.IsValid,
|
|
Items: items,
|
|
JobID: obj.JobID,
|
|
LastModifiedByID: obj.LastModifiedByID,
|
|
LastModifiedDate: obj.LastModifiedDate.Time.Format(dateTimeFormat),
|
|
MinimumPaymentDue: obj.MinimumPaymentDue,
|
|
MonthlyAmount: obj.MonthlyAmount,
|
|
OpportunityID: obj.OpportunityID,
|
|
OrderID: obj.OrderID,
|
|
OverDue0: obj.OverDue0,
|
|
OverDue120: obj.OverDue120,
|
|
OverDue30: obj.OverDue30,
|
|
OverDue45: obj.OverDue45,
|
|
OverDue60: obj.OverDue60,
|
|
OverDue90: obj.OverDue90,
|
|
ParentFK: obj.ParentFK,
|
|
PartnerAccountID: obj.PartnerAccountID,
|
|
PaymentDue: obj.PaymentDue.Time.Format(dateTimeFormat),
|
|
PaymentMethod: obj.PaymentMethodDescription,
|
|
PaymentMethodID: obj.PaymentMethodID,
|
|
PaymentTerms: obj.PaymentTerms,
|
|
PeriodID: obj.PeriodID,
|
|
PlaceGeocode: obj.PlaceGeoCode,
|
|
Posted: obj.Posted,
|
|
PriorAccountBalance: obj.PriorAccountBalance,
|
|
PriorAdjustments: obj.PriorAdjustments,
|
|
PriorInvoiceAmount: obj.PriorInvoiceAmount,
|
|
PriorInvoiceDate: obj.PriorInvoiceDate.Time.Format(dateFormat),
|
|
PriorInvoiceID: obj.PriorInvoiceID,
|
|
PriorPaymentAmount: obj.PriorPaymentAmount,
|
|
PriorPaymentDate: obj.PriorPaymentDate.Time.Format(dateFormat),
|
|
PriorPaymentID: obj.PriorPaymentID,
|
|
PriorPaymentMemo: obj.PriorPaymentMemo,
|
|
Prorated: obj.Prorated,
|
|
ProtratedDays: obj.ProratedDays,
|
|
PurchaseAmount: obj.PurchaseAmount,
|
|
QuoteID: obj.QuoteID,
|
|
RatingEngineID: obj.RatingEngineID,
|
|
Ref: obj.Ref,
|
|
Reference: obj.Reference,
|
|
SalesRegulation: obj.SalesRegulation,
|
|
SalesTax: obj.SalesTax,
|
|
ScheduledPaymentDate: obj.ScheduledPaymentDate.Time.Format(dateFormat),
|
|
ServiceTerm: obj.ServiceTerm,
|
|
ShippingAddress: obj.ShippingAddress.MarshalToOps(),
|
|
ShippingHandling: obj.ShippingHandling,
|
|
Status: obj.Status,
|
|
Subtotal: obj.Subtotal,
|
|
TaxTransactions: taxTransactions,
|
|
TelecomTax: obj.TelecomTax,
|
|
TemplateID: obj.TemplateID,
|
|
Total: obj.Total.MarshalToSwagger(),
|
|
Type: obj.Type,
|
|
}
|
|
}
|