// 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 ops_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"
)

// CashReceipt cash receipt
//
// swagger:model CashReceipt
type CashReceipt struct {

	// Account Name
	AccountID string `json:"AccountID,omitempty"`

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

	// Applied Amount
	AppliedAmount float64 `json:"AppliedAmount,omitempty"`

	// Attempt Number
	AttemptNumber float64 `json:"AttemptNumber,omitempty"`

	// Audit Trail Message
	AuditMessage string `json:"AuditMessage,omitempty"`

	// Autopay?
	AutoPay bool `json:"AutoPay,omitempty"`

	// Billing Contact
	BillingContactID string `json:"BillingContactID,omitempty"`

	// Journal Date
	CashReceiptDate string `json:"CashReceiptDate,omitempty"`

	// Journal Date
	CashReceiptNumber string `json:"CashReceiptNumber,omitempty"`

	// Created By User ID
	CreatedByID string `json:"CreatedByID,omitempty"`

	// Created Date
	CreatedDate string `json:"CreatedDate,omitempty"`

	// Memo
	Description string `json:"Description,omitempty"`

	// Gateway
	Gateway string `json:"Gateway,omitempty"`

	// Gateway Key
	GatewayKey string `json:"GatewayKey,omitempty"`

	// Gateway Message
	GatewayMessage string `json:"GatewayMessage,omitempty"`

	// GatewayTxn?
	GatewayTransaction bool `json:"GatewayTransaction,omitempty"`

	// Salesforce Record Id
	ID string `json:"ID,omitempty"`

	// Is Valid?
	IsValid bool `json:"IsValid,omitempty"`

	// Last Modified By User ID
	LastModifiedByID string `json:"LastModifiedByID,omitempty"`

	// Last Modified Date
	LastModifiedDate string `json:"LastModifiedDate,omitempty"`

	// Partner Account
	PartnerAccountID string `json:"PartnerAccountID,omitempty"`

	// Payment Method
	PaymentMethodID string `json:"PaymentMethodID,omitempty"`

	// Payment Number
	PaymentNumber string `json:"PaymentNumber,omitempty"`

	// Pending?
	Pending bool `json:"Pending,omitempty"`

	// Period
	PeriodID string `json:"PeriodID,omitempty"`

	// Posted to external system?
	Posted bool `json:"Posted,omitempty"`

	// Processed
	Processed bool `json:"Processed,omitempty"`

	// Processing
	Processing bool `json:"Processing,omitempty"`

	// Record Type
	RecordTypeID string `json:"RecordTypeID,omitempty"`

	// Reference
	Ref string `json:"Ref,omitempty"`

	// Reference Number
	ReferenceNumber string `json:"ReferenceNumber,omitempty"`

	// Rejected?
	Rejected bool `json:"Rejected,omitempty"`

	// Source Payment Method
	Source string `json:"Source,omitempty"`

	// Payment Status
	Status string `json:"Status,omitempty"`

	// ID of the Tenant that owns this object
	TenantID string `json:"TenantID,omitempty"`

	// Type
	Type string `json:"Type,omitempty"`

	// Unapplied Amount
	UnappliedAmount float64 `json:"UnappliedAmount,omitempty"`

	// Valid Payment?
	ValidPayment bool `json:"ValidPayment,omitempty"`

	// Xero Credit Note Id
	XeroID string `json:"XeroID,omitempty"`
}

// Validate validates this cash receipt
func (m *CashReceipt) Validate(formats strfmt.Registry) error {
	return nil
}

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

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