package com.flexicious.example.model.transactions
{
import com.flexicious.example.model.BaseEntity;
import com.flexicious.example.model.billing.Invoice;
import com.flexicious.example.model.common.ReferenceData;
import com.flexicious.example.model.organizations.CustomerOrganization;
import com.flexicious.example.model.organizations.ProviderOrganization;
import mx.collections.ArrayCollection;
[Bindable(public class Deal extends BaseEntity
{
public var customer:CustomerOrganization;
public var invoices:ArrayCollection=new ArrayCollection();;
public var dealDate:Date;
public var dealStatus:ReferenceData;
public var dealDescription:String;
public var finalized:Boolean=true;
public function get dealAmount():Number{
var total:Number=0;
for each(var inv:Invoice in invoices){
total+= inv.invoiceAmount;
}
return total;
}
public var provider:ProviderOrganization;
public var dealContacts:ArrayCollection;
public function get isBillable():Boolean{
return dealStatus.code!="Prospect";
}
public function Deal()
{
}
public override function createNew():BaseEntity{
return new Deal();
}
public function get name():String{
return this.dealDescription;
}
public function get children():*{
return invoices;
}
public function get parent():*{
return customer;
}
public function set parent(val:*):void{
customer=val as CustomerOrganization;
}
}
}