phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] phpgwapi/inc/class.contact_addr.inc.php, 1.2


From: nomail
Subject: [Phpgroupware-cvs] phpgwapi/inc/class.contact_addr.inc.php, 1.2
Date: Thu, 30 Dec 2004 07:47:30 +0100

Update of /phpgwapi/inc
Added Files:
        Branch: 
          class.contact_addr.inc.php

date: 2004/12/30 06:47:30;  author: skwashd;  state: Exp;  lines: +414 -0

Log Message:
new HEAD
=====================================================================
<?php
        /**
        * Query statements for "addr" table
        * @author Edgar Antonio Luna <address@hidden>
        * @copyright Copyright (C) 2003,2004 Free Software Foundation, Inc. 
http://www.fsf.org/
        * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General 
Public License
        * @package phpgwapi
        * @subpackage contacts
        * @version $Id: class.contact_addr.inc.php,v 1.2 2004/12/30 06:47:30 
skwashd Exp $
        */

        /**
        * Use SQL criteria
        */
        include_once(PHPGW_API_INC . '/class.sql_criteria.inc.php');
        /**
        * Use SQL entity
        */
        include_once(PHPGW_API_INC . '/class.sql_entity.inc.php');

        /**
        * Query statements for "addr" table
        *
        * @package phpgwapi
        * @subpackage contacts
        */
        class contact_addr extends sql_entity
        {
                var $map = array('key_addr_id'          => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'contact_addr_id',
                                                                 'type'         
=> 'integer'),
                                 'addr_contact_id'      => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'contact_id',
                                                                 'type'         
=> 'integer'),
                                 'addr_type'            => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'addr_type_id',
                                                                 'type'         
=> 'integer'),
                                 'addr_add1'            => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'add1',
                                                                 'type'         
=> 'string'),
                                 'addr_add2'            => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'add2',
                                                                 'type'         
=> 'string'),
                                 'addr_add3'            => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'add3',
                                                                 'type'         
=> 'string'),
                                 'addr_city'            => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'city',
                                                                 'type'         
=> 'string'),
                                 'addr_state'           => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'state',
                                                                 'type'         
=> 'string'),
                                 'addr_postal_code'     => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'postal_code',
                                                                 'type'         
=> 'string'),
                                 'addr_country'         => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'country',
                                                                 'type'         
=> 'string'),
                                 'addr_preferred'       => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'preferred',
                                                                 'type'         
=> 'string'),
                                 'addr_creaton'         => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'created_on',
                                                                 'type'         
=> 'integer'),
                                 'addr_creatby'         => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'created_by',
                                                                 'type'         
=> 'integer'),
                                 'addr_modon'           => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'modified_on',
                                                                 'type'         
=> 'integer'),
                                 'addr_modby'           => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'modified_by',
                                                                 'type'         
=> 'integer'),
                                 'addr_precedence'      => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'precedence'),
                                 'addr_address'         => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> ''),
                                 'adr_one_street'       => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'add1'),
                                 'adr_one_locality'     => array('select'       
=> 'select_primary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'city'),
                                 'adr_one_region'       => array('select'       
=> 'select_primary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'state'),
                                 'adr_one_postalcode'   => array('select'       
=> 'select_primary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'postal_code'),
                                 'adr_one_countryname'  => array('select'       
=> 'select_primary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'country'),
                                 'adr_two_street'       => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> ''),
                                 'adr_two_locality'     => array('select'       
=> 'select_secondary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'city'),
                                 'adr_two_region'       => array('select'       
=> 'select_secondary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'state'),
                                 'adr_two_postalcode'   => array('select'       
=> 'select_secondary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'postal_code'),
                                 'adr_two_countryname'  => array('select'       
=> 'select_secondary',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'country'),
                                 'addr_pref_val'        => array('select'       
=> '',
                                                                 'criteria'     
=> '',
                                                                 'insert'       
=> '',
                                                                 'update'       
=> '',
                                                                 'delete'       
=> '',
                                                                 'sort'         
=> '',
                                                                 'field'        
=> 'preferred'));
                var $primary_set;
                var $secondary_set;


                function contact_addr ($ali = '', $field = '', $criteria = '')
                {
                        $this->_constructor('phpgw_contact_addr', 
'contact_addr');
                        if($field)
                        {
                                $this->add_select($field);

                        }
                        if($criteria)
                        {
                                $this->add_criteria($criteria);
                        }
                        $this->set_ilinks('addr_contact_id', 
'phpgwapi.contact_central','contact_id');
                        $this->set_elinks('addr_type', 
'phpgwapi.contact_addr_type','addr_type_id');
                }

                /**
                * Get address fields 1-3 from database
                *
                * @param mixed $element Unused
                * @internal addr_address false field is a concatenation of add1 
and add2 therefore, we use the || standard concatenation operator for select
                */
                function select_addr_address($element)
                {
                        $this->field_list['addr_address'] = 
sql::concat_null(array($this->put_alias('add1'), $this->put_alias('add2'), 
$this->put_alias('add3')));
                }

                /**
                * Get address fields 1-3 for primary address from database
                *
                * @param mixed $element
                * @internal addr_address false field is a concatenation of add1 
and add2 therefore, we use the || standard concatenation operator for select
                */
                function select_adr_one_street($element)
                {
                        $this->set_primary_address($element);
                        
$this->field_list['adr_one_street']=sql::concat_null(array($this->put_alias('add1'),
 $this->put_alias('add2'), $this->put_alias('add3')));

                }

                /**
                * Write primary address to database
                *
                * @param mixed $element Unused
                * @internal Generic select builder for adr_one fields that need 
to be limited to criteria precedence=1 but map 1 to 1 to real fields 
(city,country,postalcode)
                */
                function select_primary($element)
                {
                        $this->set_primary_address($element);
                        $this->field_list[$element['field']] = 
$this->put_alias($element['real_field']);
                }

                /**
                * Get address fields 1-3 for secondary address from database
                *
                * @param mixed $element
                * @internal Street address as asked for by the adr_*_street 
false fields are actually concatenations of add1 and add2, therefore that needs 
its own handler
                */
                function select_adr_two_street($element)
                {
                        $this->set_secondary_address($element);
                        
$this->field_list['adr_one_street']=sql_criteria::concat_null(array($this->put_alias('add1'),
 $this->put_alias('add2'), $this->put_alias('add3')));
                }

                /**
                * Write secondary address to database
                *
                * @param mixed $element
                * @internal Generic select builder for adr_two fields that need 
to be limited to criteria precedence=2 but map 1 to 1 to real fields 
(city,country,postalcode)
                */
                function select_secondary($element)
                {
                                $this->set_secondary_address($element);
                                $this->field_list[$element['field']] = 
$this->put_alias(sql::string($element['real_field']));
                }

                /**
                * Get address fields 1-2 for primary address from database
                *
                * @param mixed $element
                * @internal Backwards compatibility for adr_one adr_two when 
asked to SEARCH CRITERIA (where clause)
                * @internal In this case, searching in the adr_one_street false 
field should look for the value in add1 and add2 since adr_one_street is 
defined to be the concatenation of this two fields
                */
                function criteria_adr_one_street($element)
                {
                        $this->set_primary_address($element);
                        
$criteria=sql_criteria::or_(sql_criteria::has($this->put_alias('add1'),$element['value']),
                                                    
sql_criteria::has($this->put_alias('add2'),$element['value']));
                        $this->_add_criteria($criteria);
                }

                /**
                * Get primary address from database
                *
                * @param mixed $element
                * @internal Generic criteria builder for adr_one type fields. 
They need an extra precedence and then are a LIKE clause which is given by 
sql_criteria::has(). So, if the user asks for adr_one_country, the resulting 
query will be tablename.country = %%value%%
                */
                function criteria_primary($element)
                {
                        $this->set_primary_address($element);
                        
$criteria=sql_criteria::has($this->put_alias($element['real_field']),sql::string($element['value']));
                        $this->add_criteria($criteria);
                }

                /**
                * Get address fields 1-2 for secondary address from database
                *
                * @param mixed $element
                * @internal Same as criteria_adr_one_street but with precedence 
2
                */
                function criteria_adr_two_street($element)
                {
                        $this->set_secondary_address($element);
                        
$criteria=sql_criteria::or_(sql_criteria::has($this->put_alias('add1'),sql::string($element['value'])),
                                                    
sql_criteria::has($this->put_alias('add2'),sql::string($element['value'])));
                        $this->_add_criteria($criteria);

                }

                function criteria_secondary($element)
                {
                        $this->set_secondary_address($element);
                        
$criteria=sql_criteria::has($this->put_alias($element['real_field']),sql::string($element['value']));
                        $this->_add_criteria($criteria);
                }

                function set_primary_address($element)
                {
                        if($this->primary_set != 'primary')
                        {
                                
$criteria=sql_criteria::equal($this->put_alias('precedence'),'1');
                                $this->_add_criteria($criteria);
                                $this->primary_set='primary';
                        }

                }

                function set_secondary_address($element)
                {
                        if($this->secondary_set != 'secondary')
                        {
                                
$criteria=sql_criteria::equal($this->put_alias('precedence'),'2');
                                $this->_add_criteria($criteria);
                                $this->secondary_set='secondary';
                        }

                }

                function criteria_addr_pref_val($element)
                {
                        $field = $this->put_alias($element['real_field']);
                        $criteria = 
sql_criteria::or_(sql_criteria::equal($field, sql::string($element['value'])),
                                                      
sql_criteria::is_null($field));
                        $this->_add_criteria($criteria);
                        return $criteria;
                }

                function criteria_addr_contact_id($element)
                {
                        $field = $this->put_alias($element['real_field']);
                        if(is_array($element['value']))
                        {
                                $this->_add_criteria(sql_criteria::in($field, 
$element['value']));
                        }
                        else
                        {
                                
$this->_add_criteria(sql_criteria::equal($field, $element['value']));
                        }
                }
        }
?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]