public function genReport($sender, $param) { $results = $errors = array(); try { Dao::beginTransaction(); if (isset($param->CallbackParameter->type) && ($type = trim($param->CallbackParameter->type)) === '') { throw new Exception('SYSTEM ERROR: invalid type passed in.'); } $asset = null; switch (strtolower($type)) { case 'sales_daily': SalesExport_Xero::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = SalesExport_Xero::run(false, false); break; case 'creditnotes_daily': CreditNoteExport_Xero::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = CreditNoteExport_Xero::run(false, false); break; case 'supplier_bill_daily': BillExport_Xero::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = BillExport_Xero::run(false, false); break; case 'manual_journal': ManualJournalExport_Xero::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = ManualJournalExport_Xero::run(false, false); break; case 'payments_daily': PaymentExport_Xero::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = PaymentExport_Xero::run(false, false); break; case 'inventory_list': ItemExport_Xero::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = ItemExport_Xero::run(false, true); break; case 'magento_price': ItemExport_Magento::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = ItemExport_Magento::run(false, false); break; case 'accounting_code': AccoutingCodeExport::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = AccoutingCodeExport::run(false, false); break; case 'open_inv': OpenInvoiceExport::setStartNEndDate(new UDate(trim($param->CallbackParameter->date_from)), new UDate(trim($param->CallbackParameter->date_to))); $asset = OpenInvoiceExport::run(false, false); break; default: throw new Exception('SYSTEM ERROR: invalid type passed in: ' . $type); } if ($asset instanceof Asset) { $results['item'] = $asset->getJson(); } Dao::commitTransaction(); } catch (Exception $ex) { Dao::rollbackTransaction(); $error[] = $ex->getMessage(); } $param->ResponseData = StringUtilsAbstract::getJson($results, $errors); }