Source: order/LineItem.js

/**
 * Autogenerated by Avro
 * 
 * DO NOT EDIT DIRECTLY
 */

var order_Modification = require("../order/Modification");
var inventory_TaxRate = require("../inventory/TaxRate");
var payments_LineItemPayment = require("../payments/LineItemPayment");
var order_Discount = require("../order/Discount");
var base_Reference = require("../base/Reference");

/**
* @constructor
* @memberof order
*/
var LineItem = function() {
  this._class_ = LineItem;
  this.id = undefined;
  this.orderRef = undefined;
  this.item = undefined;
  this.name = undefined;
  this.alternateName = undefined;
  this.price = undefined;
  this.unitQty = undefined;
  this.unitName = undefined;
  this.itemCode = undefined;
  this.note = undefined;
  this.printed = false;
  this.exchangedLineItem = undefined;
  this.binName = undefined;
  this.userData = undefined;
  this.createdTime = undefined;
  this.orderClientCreatedTime = undefined;
  this.discounts = undefined;
  this.discountAmount = undefined;
  this.exchanged = false;
  this.modifications = undefined;
  this.refunded = false;
  this.isRevenue = false;
  this.taxRates = undefined;
  this.payments = undefined;
  this.revenueAmount = undefined;
  this.quantitySold = undefined;
};


/**
* Set the field value
* Unique identifier.
*
* @memberof order.LineItem
* @param {String} id 
*/
LineItem.prototype.setId = function(id) {
  this.id = id;
};

/**
* Get the field value
* Unique identifier.
* @memberof order.LineItem
* @return {String} 
*/
LineItem.prototype.getId = function() {
  return this.id;
};

/**
* Set the field value
* Reference to the order with which the line item is associated.
*
* @memberof order.LineItem
* @param {base.Reference} orderRef 
*/
LineItem.prototype.setOrderRef = function(orderRef) {
  this.orderRef = orderRef;
};

/**
* Get the field value
* Reference to the order with which the line item is associated.
* @memberof order.LineItem
* @return {base.Reference} 
*/
LineItem.prototype.getOrderRef = function() {
  return this.orderRef;
};

/**
* Set the field value
* A reference to the inventory item that was used to create this line item.
*
* @memberof order.LineItem
* @param {Null|base.Reference} item 
*/
LineItem.prototype.setItem = function(item) {
  this.item = item;
};

/**
* Get the field value
* A reference to the inventory item that was used to create this line item.
* @memberof order.LineItem
* @return {Null|base.Reference} 
*/
LineItem.prototype.getItem = function() {
  return this.item;
};

/**
* Set the field value
* Line item name
*
* @memberof order.LineItem
* @param {Null|String} name 
*/
LineItem.prototype.setName = function(name) {
  this.name = name;
};

/**
* Get the field value
* Line item name
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getName = function() {
  return this.name;
};

/**
* Set the field value
* Alternate name of the line item.
*
* @memberof order.LineItem
* @param {Null|String} alternateName 
*/
LineItem.prototype.setAlternateName = function(alternateName) {
  this.alternateName = alternateName;
};

/**
* Get the field value
* Alternate name of the line item.
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getAlternateName = function() {
  return this.alternateName;
};

/**
* Set the field value
* Price of the item, typically in cents; use priceType and merchant currency to determine actual item price.
*
* @memberof order.LineItem
* @param {Number} price must be a long integer
*/
LineItem.prototype.setPrice = function(price) {
  this.price = price;
};

/**
* Get the field value
* Price of the item, typically in cents; use priceType and merchant currency to determine actual item price.
* @memberof order.LineItem
* @return {Number} must be a long integer
*/
LineItem.prototype.getPrice = function() {
  return this.price;
};

/**
* Set the field value
* Unit quantity if this line item is priced by quantity instead of having a fixed price.
*
* @memberof order.LineItem
* @param {Null|Number} unitQty must be an integer
*/
LineItem.prototype.setUnitQty = function(unitQty) {
  this.unitQty = unitQty;
};

/**
* Get the field value
* Unit quantity if this line item is priced by quantity instead of having a fixed price.
* @memberof order.LineItem
* @return {Null|Number} must be an integer
*/
LineItem.prototype.getUnitQty = function() {
  return this.unitQty;
};

/**
* Set the field value
* Unit name (e.g. oz, lb, etc.)
*
* @memberof order.LineItem
* @param {Null|String} unitName 
*/
LineItem.prototype.setUnitName = function(unitName) {
  this.unitName = unitName;
};

/**
* Get the field value
* Unit name (e.g. oz, lb, etc.)
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getUnitName = function() {
  return this.unitName;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Null|String} itemCode 
*/
LineItem.prototype.setItemCode = function(itemCode) {
  this.itemCode = itemCode;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getItemCode = function() {
  return this.itemCode;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Null|String} note 
*/
LineItem.prototype.setNote = function(note) {
  this.note = note;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getNote = function() {
  return this.note;
};

/**
* Set the field value
* True if this line item has been printed out on an order printer at least once already.
*
* @memberof order.LineItem
* @param {Boolean} printed 
*/
LineItem.prototype.setPrinted = function(printed) {
  this.printed = printed;
};

/**
* Get the field value
* True if this line item has been printed out on an order printer at least once already.
* @memberof order.LineItem
* @return {Boolean} 
*/
LineItem.prototype.getPrinted = function() {
  return this.printed;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Null|base.Reference} exchangedLineItem 
*/
LineItem.prototype.setExchangedLineItem = function(exchangedLineItem) {
  this.exchangedLineItem = exchangedLineItem;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Null|base.Reference} 
*/
LineItem.prototype.getExchangedLineItem = function() {
  return this.exchangedLineItem;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Null|String} binName 
*/
LineItem.prototype.setBinName = function(binName) {
  this.binName = binName;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getBinName = function() {
  return this.binName;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Null|String} userData 
*/
LineItem.prototype.setUserData = function(userData) {
  this.userData = userData;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Null|String} 
*/
LineItem.prototype.getUserData = function() {
  return this.userData;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Number} createdTime must be a long integer
*/
LineItem.prototype.setCreatedTime = function(createdTime) {
  this.createdTime = createdTime;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Number} must be a long integer
*/
LineItem.prototype.getCreatedTime = function() {
  return this.createdTime;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Number} orderClientCreatedTime must be a long integer
*/
LineItem.prototype.setOrderClientCreatedTime = function(orderClientCreatedTime) {
  this.orderClientCreatedTime = orderClientCreatedTime;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Number} must be a long integer
*/
LineItem.prototype.getOrderClientCreatedTime = function() {
  return this.orderClientCreatedTime;
};

/**
* Set the field value
* List of references to of Order discounts.
*
* @memberof order.LineItem
* @param {Array.<order.Discount>} discounts An array of 
*/
LineItem.prototype.setDiscounts = function(discounts) {
  this.discounts = discounts;
};

/**
* Get the field value
* List of references to of Order discounts.
* @memberof order.LineItem
* @return {Array.<order.Discount>} An array of 
*/
LineItem.prototype.getDiscounts = function() {
  return this.discounts;
};

/**
* Set the field value
* Unnamed fixed discount amount in cents.
*
* @memberof order.LineItem
* @param {Null|Number} discountAmount must be a long integer
*/
LineItem.prototype.setDiscountAmount = function(discountAmount) {
  this.discountAmount = discountAmount;
};

/**
* Get the field value
* Unnamed fixed discount amount in cents.
* @memberof order.LineItem
* @return {Null|Number} must be a long integer
*/
LineItem.prototype.getDiscountAmount = function() {
  return this.discountAmount;
};

/**
* Set the field value
* @memberof order.LineItem
* @param {Boolean} exchanged 
*/
LineItem.prototype.setExchanged = function(exchanged) {
  this.exchanged = exchanged;
};

/**
* Get the field value
* @memberof order.LineItem
* @return {Boolean} 
*/
LineItem.prototype.getExchanged = function() {
  return this.exchanged;
};

/**
* Set the field value
* List of references to modifications applied to this line item.
*
* @memberof order.LineItem
* @param {Array.<order.Modification>} modifications An array of 
*/
LineItem.prototype.setModifications = function(modifications) {
  this.modifications = modifications;
};

/**
* Get the field value
* List of references to modifications applied to this line item.
* @memberof order.LineItem
* @return {Array.<order.Modification>} An array of 
*/
LineItem.prototype.getModifications = function() {
  return this.modifications;
};

/**
* Set the field value
* True if this line item has been refunded
*
* @memberof order.LineItem
* @param {Boolean} refunded 
*/
LineItem.prototype.setRefunded = function(refunded) {
  this.refunded = refunded;
};

/**
* Get the field value
* True if this line item has been refunded
* @memberof order.LineItem
* @return {Boolean} 
*/
LineItem.prototype.getRefunded = function() {
  return this.refunded;
};

/**
* Set the field value
* True if this item should be counted as revenue, for example gift cards and donations would not.
*
* @memberof order.LineItem
* @param {Boolean} isRevenue 
*/
LineItem.prototype.setIsRevenue = function(isRevenue) {
  this.isRevenue = isRevenue;
};

/**
* Get the field value
* True if this item should be counted as revenue, for example gift cards and donations would not.
* @memberof order.LineItem
* @return {Boolean} 
*/
LineItem.prototype.getIsRevenue = function() {
  return this.isRevenue;
};

/**
* Set the field value
* Tax rates that apply to this line item
*
* @memberof order.LineItem
* @param {Array.<inventory.TaxRate>} taxRates An array of 
*/
LineItem.prototype.setTaxRates = function(taxRates) {
  this.taxRates = taxRates;
};

/**
* Get the field value
* Tax rates that apply to this line item
* @memberof order.LineItem
* @return {Array.<inventory.TaxRate>} An array of 
*/
LineItem.prototype.getTaxRates = function() {
  return this.taxRates;
};

/**
* Set the field value
* Payments that apply to this line item
*
* @memberof order.LineItem
* @param {Array.<payments.LineItemPayment>} payments An array of 
*/
LineItem.prototype.setPayments = function(payments) {
  this.payments = payments;
};

/**
* Get the field value
* Payments that apply to this line item
* @memberof order.LineItem
* @return {Array.<payments.LineItemPayment>} An array of 
*/
LineItem.prototype.getPayments = function() {
  return this.payments;
};

/**
* Set the field value
* Revenue collected for this. This field is only used in reporting.
*
* @memberof order.LineItem
* @param {Number} revenueAmount must be a long integer
*/
LineItem.prototype.setRevenueAmount = function(revenueAmount) {
  this.revenueAmount = revenueAmount;
};

/**
* Get the field value
* Revenue collected for this. This field is only used in reporting.
* @memberof order.LineItem
* @return {Number} must be a long integer
*/
LineItem.prototype.getRevenueAmount = function() {
  return this.revenueAmount;
};

/**
* Set the field value
* Quantity sold for this line item. This field is only used in reporting
*
* @memberof order.LineItem
* @param {Number} quantitySold must be a double
*/
LineItem.prototype.setQuantitySold = function(quantitySold) {
  this.quantitySold = quantitySold;
};

/**
* Get the field value
* Quantity sold for this line item. This field is only used in reporting
* @memberof order.LineItem
* @return {Number} must be a double
*/
LineItem.prototype.getQuantitySold = function() {
  return this.quantitySold;
};

/**
* @memberof order.LineItem
* @private
*/
LineItem.prototype.getMetaInfo = function(fieldName) {
  var curclass = this._class_;
  do {
    var fieldMetaInfo = curclass._meta_.fields[fieldName];
    if(fieldMetaInfo) {
      return fieldMetaInfo;
    }
    if(curclass._meta_._superMeta_) {
      curclass = curclass._meta_._superMeta_._class_;
    } else {
      curclass = null;
    }
  } while(curclass);
  return null;
};

LineItem.prototype.toString = function() {
  return JSON.stringify(this);
};

LineItem._meta_ =  {fields:  {}};
LineItem._meta_._class_ =  LineItem;
LineItem._meta_.fields["id"] = {};
LineItem._meta_.fields["id"].type = String;
LineItem._meta_.fields["orderRef"] = {};
LineItem._meta_.fields["orderRef"].type = base_Reference;
LineItem._meta_.fields["item"] = {};
LineItem._meta_.fields["item"].type = base_Reference;
LineItem._meta_.fields["name"] = {};
LineItem._meta_.fields["name"].type = String;
LineItem._meta_.fields["alternateName"] = {};
LineItem._meta_.fields["alternateName"].type = String;
LineItem._meta_.fields["price"] = {};
LineItem._meta_.fields["price"].type = Number;
LineItem._meta_.fields["unitQty"] = {};
LineItem._meta_.fields["unitQty"].type = Number;
LineItem._meta_.fields["unitName"] = {};
LineItem._meta_.fields["unitName"].type = String;
LineItem._meta_.fields["itemCode"] = {};
LineItem._meta_.fields["itemCode"].type = String;
LineItem._meta_.fields["note"] = {};
LineItem._meta_.fields["note"].type = String;
LineItem._meta_.fields["printed"] = {};
LineItem._meta_.fields["printed"].type = Boolean;
LineItem._meta_.fields["exchangedLineItem"] = {};
LineItem._meta_.fields["exchangedLineItem"].type = base_Reference;
LineItem._meta_.fields["binName"] = {};
LineItem._meta_.fields["binName"].type = String;
LineItem._meta_.fields["userData"] = {};
LineItem._meta_.fields["userData"].type = String;
LineItem._meta_.fields["createdTime"] = {};
LineItem._meta_.fields["createdTime"].type = Number;
LineItem._meta_.fields["orderClientCreatedTime"] = {};
LineItem._meta_.fields["orderClientCreatedTime"].type = Number;
LineItem._meta_.fields["discounts"] = {};
LineItem._meta_.fields["discounts"].type = Array;
LineItem._meta_.fields["discounts"].elementType = order_Discount;
LineItem._meta_.fields["discountAmount"] = {};
LineItem._meta_.fields["discountAmount"].type = Number;
LineItem._meta_.fields["exchanged"] = {};
LineItem._meta_.fields["exchanged"].type = Boolean;
LineItem._meta_.fields["modifications"] = {};
LineItem._meta_.fields["modifications"].type = Array;
LineItem._meta_.fields["modifications"].elementType = order_Modification;
LineItem._meta_.fields["refunded"] = {};
LineItem._meta_.fields["refunded"].type = Boolean;
LineItem._meta_.fields["isRevenue"] = {};
LineItem._meta_.fields["isRevenue"].type = Boolean;
LineItem._meta_.fields["taxRates"] = {};
LineItem._meta_.fields["taxRates"].type = Array;
LineItem._meta_.fields["taxRates"].elementType = inventory_TaxRate;
LineItem._meta_.fields["payments"] = {};
LineItem._meta_.fields["payments"].type = Array;
LineItem._meta_.fields["payments"].elementType = payments_LineItemPayment;
LineItem._meta_.fields["revenueAmount"] = {};
LineItem._meta_.fields["revenueAmount"].type = Number;
LineItem._meta_.fields["quantitySold"] = {};
LineItem._meta_.fields["quantitySold"].type = Number;

//
// Expose the module.
//
if ('undefined' !== typeof module) {
module.exports = LineItem;
}