defaults),parent::keys()); } protected function vals() { return array_merge(array_values($this->defaults),parent::vals()); } public function addInvoice(Quicken_Invoice $item) { array_push($this->_items,$item); } public function export() { $export = ''; foreach ($this->_items as $inv) { # Invoices $export .= "!TRNS\t"; $export .= implode("\t",$inv->keys())."\n"; $export .= "TRNS\t"; $export .= implode("\t",$inv->vals())."\n"; # Invoice Items $spl = 0; foreach ($inv->_items as $invitem) { if (! $spl) { $export .= "!SPL\tSPLID\t"; $export .= implode("\t",$invitem->keys())."\n"; } $export .= sprintf("SPL\t%s\t%s",$spl++,implode("\t",$invitem->vals()))."\n"; } $export .= "ENDTRNS\n"; # Payments foreach ($inv->_payments as $payitem) { if (! $payitem->AMOUNT) continue; $export .= "!TRNS\t"; $export .= implode("\t",$payitem->keys())."\n"; $export .= "TRNS\t"; $export .= implode("\t",$payitem->vals())."\n"; $export .= sprintf("!SPL\t%s\t%s\t%s\t%s\t%s\t",'SPLID','TRANSTYPE','CLEAR','ACCNT','AMOUNT')."\n"; $export .= sprintf("SPL\t%s\t%s\t%s\t%s\t%s\t",0,'PAYMENT','N','Accounts Receivable',$payitem->AMOUNT)."\n"; $export .= "ENDTRNS\n"; } } return $export; } } ?>