Example #1
0
 /**
  * @param mixed $handler_id The ID of the handler.
  * @param Array $args The argument list.
  * @param Array &$data The local request data.
  */
 public function _handler_list($handler_id, array $args, array &$data)
 {
     midcom::get('auth')->require_valid_user();
     // Locate Contacts node for linking
     $siteconfig = org_openpsa_core_siteconfig::get_instance();
     $data['contacts_url'] = $siteconfig->get_node_full_url('org.openpsa.contacts');
     $data['reports_url'] = $siteconfig->get_node_full_url('org.openpsa.reports');
     $qb = org_openpsa_sales_salesproject_dba::new_query_builder();
     if ($handler_id == 'list_status') {
         $qb = $this->_add_status_constraint($args[0], $qb);
         $data['mode'] = $args[0];
         $data['list_title'] = $this->_l10n->get('salesprojects ' . $args[0]);
     } else {
         $qb = $this->_add_customer_constraint($args[0], $qb);
         $data['mode'] = 'customer';
         $data['list_title'] = sprintf($this->_l10n->get('salesprojects with %s'), $data['customer']->get_label());
         if ($data['contacts_url']) {
             $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $data['contacts_url'] . (is_a($data['customer'], 'org_openpsa_contacts_group_dba') ? 'group' : 'person') . "/{$data['customer']->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('go to customer'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/jump-to.png'));
         }
     }
     $this->_salesprojects = $qb->execute();
     foreach ($this->_salesprojects as $key => $salesproject) {
         // Populate previous/next actions in the project
         $salesproject->get_actions();
     }
     // TODO: Filtering
     $data['grid'] = new org_openpsa_widgets_grid($data['mode'] . '_salesprojects_grid', 'local');
     midcom::get('head')->add_jsfile(MIDCOM_STATIC_URL . '/org.openpsa.core/table2csv.js');
     $this->add_breadcrumb("", $data['list_title']);
 }
Example #2
0
 public static function generate_salesproject_number()
 {
     // TODO: Make configurable
     $year = date('Y', time());
     $qb = org_openpsa_sales_salesproject_dba::new_query_builder();
     $qb->add_order('metadata.created', 'DESC');
     $qb->add_constraint('start', '>=', mktime(0, 0, 1, 1, 1, $year));
     $previous = $qb->count_unchecked();
     return sprintf('%d-%04d', $year, $previous + 1);
 }
Example #3
0
 /**
  * Used by org_openpsa_relatedto_find_suspects to in case the given object is a person
  */
 private function _org_openpsa_relatedto_find_suspects_person(&$object, &$defaults, &$links_array)
 {
     $seen_sp = array();
     $mc = org_openpsa_contacts_role_dba::new_collector('role', ORG_OPENPSA_OBTYPE_SALESPROJECT_MEMBER);
     $mc->add_constraint('person', '=', array_keys($object->id));
     $guids = $mc->get_values('objectGuid');
     if (!empty($guids)) {
         $qb = org_openpsa_sales_salesproject_dba::new_query_builder();
         $qb->add_constraint('status', '=', org_openpsa_sales_salesproject_dba::STATUS_ACTIVE);
         $qb->add_constraint('guid', 'IN', $guids);
         $qbret = @$qb->execute();
         if (is_array($qbret)) {
             foreach ($qbret as $salesproject) {
                 if (isset($seen_sp[$salesproject->id])) {
                     //Only process one salesproject once (someone might be both resource and contact for example)
                     continue;
                 }
                 $seen_sp[$salesproject->id] = true;
                 $to_array = array('other_obj' => false, 'link' => false);
                 $link = new org_openpsa_relatedto_dba();
                 org_openpsa_relatedto_suspect::defaults_helper($link, $defaults, $this->_component, $salesproject);
                 $to_array['other_obj'] = $salesproject;
                 $to_array['link'] = $link;
                 $links_array[] = $to_array;
             }
         }
     }
     $qb2 = org_openpsa_sales_salesproject_dba::new_query_builder();
     $qb2->add_constraint('owner', '=', $object->id);
     $qb2->add_constraint('status', '=', org_openpsa_sales_salesproject_dba::STATUS_ACTIVE);
     $qb2ret = @$qb2->execute();
     if (is_array($qb2ret)) {
         foreach ($qb2ret as $sp) {
             if (isset($seen_sp[$sp->id])) {
                 //Only process one task once (someone might be both resource and contact for example)
                 continue;
             }
             $seen_sp[$sp->id] = true;
             $to_array = array('other_obj' => false, 'link' => false);
             $link = new org_openpsa_relatedto_dba();
             org_openpsa_relatedto_suspect::defaults_helper($link, $defaults, $this->_component, $sp);
             $to_array['other_obj'] = $sp;
             $to_array['link'] = $link;
             $links_array[] = $to_array;
         }
     }
 }
Example #4
0
</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);
?>
</div>