/** * Prepare the indexer client */ public function _on_reindex($topic, $config, &$indexer) { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $schemadb = midcom_helper_datamanager2_schema::load_database($config->get('schemadb')); $indexer = new org_openpsa_invoices_midcom_indexer($topic, $indexer); $indexer->add_query('invoices', $qb, $schemadb); return $indexer; }
public static function get_by_number($number) { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_constraint('number', '=', $number); $result = $qb->execute(); if (count($result) == 1) { return $result[0]; } return false; }
private function _get_deliverable_invoices($id) { $mc = org_openpsa_invoices_invoice_item_dba::new_collector('deliverable', $id); $ids = $mc->get_values('invoice'); if (sizeof($ids) < 1) { return array(); } $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_constraint('id', 'IN', $ids); $qb->add_constraint('sent', '>=', $this->_request_data['start']); $qb->add_constraint('sent', '<=', $this->_request_data['end']); return $qb->execute(); }
public function testGenerate_invoice_number() { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_order('number', 'DESC'); $qb->set_limit(1); midcom::get('auth')->request_sudo('org.openpsa.invoices'); $last_invoice = $qb->execute_unchecked(); midcom::get('auth')->drop_sudo(); if (count($last_invoice) == 0) { $previous = 0; } else { $previous = $last_invoice[0]->number; } $calculator = new org_openpsa_sales_calculator_default(); $exp = $previous + 1; $stat = $calculator->generate_invoice_number(); $this->assertEquals($exp, $stat); }
public function add_next_previous($object, $toolbar, $urlprefix) { if ($object->number > 1) { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_constraint('number', '<', $object->number); $qb->set_limit(1); $qb->add_order('number', 'DESC'); $results = $qb->execute(); if (sizeof($results) == 1) { $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $urlprefix . $results[0]->guid . '/', MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('previous'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/back.png', MIDCOM_TOOLBAR_ACCESSKEY => 'p')); } } if ($object->number + 1 < $object->generate_invoice_number()) { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_constraint('number', '>', $object->number); $qb->set_limit(1); $qb->add_order('number', 'ASC'); $results = $qb->execute(); if (sizeof($results) == 1) { $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $urlprefix . $results[0]->guid . '/', MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('next'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/next.png', MIDCOM_TOOLBAR_ACCESSKEY => 'n')); } } }
/** * Returns identifier number for next invoice * * @return int invoice number */ public function generate_invoice_number() { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_order('number', 'DESC'); $qb->set_limit(1); midcom::get('auth')->request_sudo('org.openpsa.invoices'); $last_invoice = $qb->execute_unchecked(); midcom::get('auth')->drop_sudo(); if (count($last_invoice) == 0) { $previous = 0; } else { $previous = $last_invoice[0]->number; } return $previous + 1; }
private function _load_invoices($status) { if ($status == 'scheduled') { $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_sales_url = $siteconfig->get_node_full_url('org.openpsa.sales'); return $this->_get_scheduled_invoices(); } $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); if ($status != 'unsent') { $qb->begin_group('AND'); $qb->add_constraint($this->_request_data['date_field'], '>=', $this->_request_data['start']); $qb->add_constraint($this->_request_data['date_field'], '<', $this->_request_data['end']); $qb->end_group(); } if ($this->_request_data['query_data']['resource'] != 'all') { $this->_request_data['query_data']['resource_expanded'] = $this->_expand_resource($this->_request_data['query_data']['resource']); $qb->add_constraint('owner', 'IN', $this->_request_data['query_data']['resource_expanded']); } switch ($status) { case 'unsent': $qb->add_constraint('sent', '=', 0); $qb->add_constraint('paid', '=', 0); break; case 'paid': $qb->add_constraint('paid', '>', 0); break; case 'overdue': $qb->add_constraint('sent', '>', 0); $qb->add_constraint('due', '<', mktime(0, 0, 0, date('n'), date('j') - 1, date('Y'))); $qb->add_constraint('paid', '=', 0); break; case 'open': $qb->add_constraint('sent', '>', 0); $qb->add_constraint('paid', '=', 0); $qb->add_constraint('due', '>', mktime(0, 0, 0, date('n'), date('j') - 1, date('Y'))); break; } $qb->add_order($this->_request_data['date_field'], 'DESC'); $invoices = $qb->execute(); return $invoices; }
} ?> </div> <div class="main"> <?php $data['datamanager']->display_view(true); //add tabs $tabs = array(); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $invoices_url = $siteconfig->get_node_relative_url('org.openpsa.invoices'); $sales_url = $siteconfig->get_node_relative_url('org.openpsa.sales'); //TODO: Check for privileges somehow $invoices_url = $siteconfig->get_node_relative_url('org.openpsa.invoices'); if ($invoices_url) { $qb = org_openpsa_invoices_invoice_dba::new_query_builder(); $qb->add_constraint('customerContact', '=', $data['person']->id); $qb->set_limit(1); if ($qb->count() > 0) { $tabs[] = array('url' => $invoices_url . "list/customer/all/{$data['person']->guid}/", 'title' => midcom::get('i18n')->get_string('invoices', 'org.openpsa.invoices')); } } if ($sales_url) { $qb = org_openpsa_sales_salesproject_dba::new_query_builder(); $qb->add_constraint('customerContact', '=', $data['person']->id); $qb->set_limit(1); if ($qb->count() > 0) { $tabs[] = array('url' => $sales_url . "list/customer/{$data['person']->guid}/", 'title' => midcom::get('i18n')->get_string('salesprojects', 'org.openpsa.sales')); } } org_openpsa_widgets_ui::render_tabs($data['person']->guid, $tabs);