// Code generated by go-swagger; DO NOT EDIT.

// All Code Copyright(c) 2018-2020 by Taxnexus, Inc.
// All rights reserved worldwide.
// Proprietary product; unlicensed use is not allowed

package sf_gate_models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// TaxTransaction tax transaction
//
// swagger:model TaxTransaction
type TaxTransaction struct {

	// Account
	Accountid string `json:"accountid,omitempty"`

	// Amount
	Amount float64 `json:"amount,omitempty"`

	// Effective Rate
	Effectiverate float64 `json:"effectiverate,omitempty"`

	// Filing
	Filingid string `json:"filingid,omitempty"`

	// Taxnexus Record Id
	ID string `json:"id,omitempty"`

	// Invoice
	Invoiceid string `json:"invoiceid,omitempty"`

	// Invoice Item
	Invoiceitemid string `json:"invoiceitemid,omitempty"`

	// isSummary
	Issummary bool `json:"issummary,omitempty"`

	// The Id of the GL Journal Item, part of a Journal Entry
	Journalitemid string `json:"journalitemid,omitempty"`

	// Order
	Orderid string `json:"orderid,omitempty"`

	// Order Product
	Orderitemid string `json:"orderitemid,omitempty"`

	// Percent Taxable
	Percenttaxable float64 `json:"percenttaxable,omitempty"`

	// Period
	Periodid string `json:"periodid,omitempty"`

	// Place
	Placeid string `json:"placeid,omitempty"`

	// Posted
	Posted bool `json:"posted,omitempty"`

	// Quote
	Quoteid string `json:"quoteid,omitempty"`

	// Quote Line Item
	Quoteitemid string `json:"quoteitemid,omitempty"`

	// Rating Ingest
	Ratingingestid string `json:"ratingingestid,omitempty"`

	// Rating Type
	Ratingtype string `json:"ratingtype,omitempty"`

	// Revenue Base
	Revenuebase float64 `json:"revenuebase,omitempty"`

	// Revenue Net
	Revenuenet float64 `json:"revenuenet,omitempty"`

	// Revenue Not Taxable
	Revenuenottaxable float64 `json:"revenuenottaxable,omitempty"`

	// Tax Exempt Revenue
	Taxexemptrevenue float64 `json:"taxexemptrevenue,omitempty"`

	// Tax Rate
	Taxrate float64 `json:"taxrate,omitempty"`

	// Tax Type
	Taxtypeid string `json:"taxtypeid,omitempty"`

	// tenant identifier
	Tenantid string `json:"tenantid,omitempty"`

	// Unit Base
	Unitbase float64 `json:"unitbase,omitempty"`

	// Unit Fee Rate
	Unitfeerate float64 `json:"unitfeerate,omitempty"`
}

// Validate validates this tax transaction
func (m *TaxTransaction) Validate(formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *TaxTransaction) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *TaxTransaction) UnmarshalBinary(b []byte) error {
	var res TaxTransaction
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
