from ..cw_model import CWModel


class AccountingUnpostedInvoice(CWModel):

    def __init__(self, json_dict=None):
        self.id = None  # (Integer)
        self.billingLogId = None  # (Integer)
        self.locationId = None  # (Integer)
        self.departmentId = None  # (Integer)
        self.company = None  # (CompanyReference)
        self.accountNumber = None  # (String)
        self.billToCompany = None  # (CompanyReference)
        self.billToSite = None  # (SiteReference)
        self.shipToCompany = None  # (CompanyReference)
        self.shipToSite = None  # (SiteReference)
        self.invoiceNumber = None  # (String)
        self.invoiceDate = None  # (String)
        self.invoiceType = None  # (Enum)
        self.description = None  # (String)
        self.billingTerms = None  # (BillingTermsReference)
        self.dueDays = None  # (String)
        self.dueDate = None  # (String)
        self.currency = None  # (CurrencyReference)
        self.subTotal = None  # (Number)
        self.total = None  # (Number)
        self.invoiceTaxableFlag = None  # (Boolean)
        self.taxCode = None  # (TaxCodeReference)
        self.avalaraTaxFlag = None  # (Boolean)
        self.itemTaxableFlag = None  # (Boolean)
        self.salesTaxAmount = None  # (Number)
        self.stateTaxFlag = None  # (Boolean)
        self.stateTaxXref = None  # (String)
        self.stateTaxAmount = None  # (Number)
        self.countyTaxFlag = None  # (Boolean)
        self.countyTaxXref = None  # (String)
        self.countyTaxAmount = None  # (Number)
        self.cityTaxFlag = None  # (Boolean)
        self.cityTaxXref = None  # (String)
        self.cityTaxAmount = None  # (Number)
        self.countryTaxFlag = None  # (Boolean)
        self.countryTaxXref = None  # (String)
        self.countryTaxAmount = None  # (Number)
        self.compositeTaxFlag = None  # (Boolean)
        self.compositeTaxXref = None  # (String)
        self.compositeTaxAmount = None  # (Number)
        self.createdBy = None  # (String)
        self.dateClosed = None  # (String)
        self._info = None  # (Metadata)

        # initialize object with json dict
        super().__init__(json_dict)
