descriptor = $descriptor; $this->duration = $duration; $this->authorization_options = $authorization_options; $this->include_order_header = 'No'; $this->include_full_order = 'No'; $this->include_pii = 'No'; $this->trigger_payout = 'No'; // Future $this->trigger_charge_when_complete = 'No'; // Future $this->additional_fields = $additional_fields; } } class AuthorizationDeliverable extends Deliverable { public function __construct($name, $description, $deliverable_code, Authorization_Fields $fields,DeliverySchedule $sched) { $this->name = $name; $this->deliverable_code = $deliverable_code; $this->description = $description; $this->delivery_type = 'authorization'; $this->schedule = $sched; $this->type_details = $fields; } // Data Array: name,description,deliverable_code,required_payment_status ,first_delivery, delivery_cycle, maximum_deliveries, duration public static function FromData($data) { $sched = new DeliverySchedule(); $sched->first_delivery = $data['first_delivery']; $sched->required_payment_status = $data['required_payment_status']; PaymentStatus::clearCache(); // "Hack" if (! PaymentStatus::isValidValue($sched->required_payment_status)) return "Invalid Required Payment Status: {$sched->required_payment_status}"; $sched->delivery_cycle = trim($data['delivery_cycle']); DeliveryCycle::clearCache(); // "Hack" if (! DeliveryCycle::isValidValue($sched->delivery_cycle)) return "Invalid Delivery Cycle: {$sched->delivery_cycle}"; $sched->maximum_deliveries = $data['maximum_deliveries']; if (! empty($data['start_time'])) $sched->start_time = $data['start_time']; else $sched->start_time = 0; $auth_flds = $data['auth_flds']; $obj = new AuthorizationDeliverable($data['name'],$data['description'],$data['deliverable_code'],$auth_flds,$sched); return $obj; } } ?>