Leitgedanken/msd2/myoos/includes/functions/function_address.php
2023-01-23 11:03:31 +01:00

219 lines
6.4 KiB
PHP

<?php
/* ----------------------------------------------------------------------
MyOOS [Shopsystem]
https://www.oos-shop.de
Copyright (c) 2003 - 2019 by the MyOOS Development Team.
----------------------------------------------------------------------
Based on:
File: general.php,v 1.212 2003/02/17 07:55:54 hpdl
----------------------------------------------------------------------
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
----------------------------------------------------------------------
Released under the GNU General Public License
---------------------------------------------------------------------- */
/**
* address
*
* @link https://www.oos-shop.de
* @package oos_address
* @version $Revision: 1.1 $ - changed by $Author: r23 $ on $Date: 2007/06/12 16:49:27 $
*/
/** ensure this file is being included by a parent file */
defined( 'OOS_VALID_MOD' ) OR die( 'Direct Access to this location is not allowed.' );
/**
* Returns the zone (State/Province) code
*
* @param $country_id
* @param $zone_id
* @param $default_zone
* @return string
*/
function oos_get_zone_code($country_id, $zone_id, $default_zone) {
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
$zonestable = $oostable['zones'];
$zone = $dbconn->Execute("SELECT zone_code FROM $zonestable WHERE zone_country_id = '" . intval($country_id) . "' AND zone_id = '" . intval($zone_id) . "'");
if ($zone->RecordCount() > 0) {
return $zone->fields['zone_code'];
} else {
return $default_zone;
}
}
/**
* Returns the address_format_id for the given country
*
* @param $country_id
* @return string
*/
function oos_get_address_format_id($country_id) {
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
$countriestable = $oostable['countries'];
$address_format = $dbconn->Execute("SELECT address_format_id AS format_id FROM $countriestable WHERE countries_id = '" . intval($country_id) . "'");
if ($address_format->RecordCount() > 0) {
return $address_format->fields['format_id'];
} else {
return '1';
}
}
/**
* Return a formatted address
*
* @param $address_format_id
* @param $address
* @param $html
* @param $boln
* @param $eoln
* @return string
*/
function oos_address_format($address_format_id, $address, $html, $boln, $eoln) {
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
$address_formattable = $oostable['address_format'];
$address_format_result = $dbconn->Execute("SELECT address_format AS format FROM $address_formattable WHERE address_format_id = '" . intval($address_format_id) . "'");
$address_format = $address_format_result->fields;
$company = addslashes($address['company']);
$firstname = addslashes($address['firstname']);
$lastname = addslashes($address['lastname']);
$street = addslashes($address['street_address']);
$city = addslashes($address['city']);
$state = addslashes($address['state']);
$country_id = $address['country_id'];
$zone_id = $address['zone_id'];
$postcode = addslashes($address['postcode']);
$zip = $postcode;
$country = oos_get_country_name($country_id);
$state = oos_get_zone_code($country_id, $zone_id, $state);
if ($html) {
// HTML Mode
$HR = '<hr>';
$hr = '<hr>';
if ( ($boln == '') && ($eoln == "\n") ) { // Values not specified, use rational defaults
$CR = '<br />';
$cr = '<br />';
$eoln = $cr;
} else { // Use values supplied
$CR = $eoln . $boln;
$cr = $CR;
}
} else {
// Text Mode
$CR = $eoln;
$cr = $CR;
$HR = '----------------------------------------';
$hr = '----------------------------------------';
}
$statecomma = '';
$streets = $street;
if ($firstname == '') $firstname = addslashes($address['name']);
if ($country == '') $country = addslashes($address['country']);
if ($state != '') $statecomma = $state . ', ';
$fmt = $address_format['format'];
eval("\$address = \"$fmt\";");
$address = stripslashes($address);
if ( (ACCOUNT_COMPANY == 'true') && (oos_is_not_null($company)) ) {
$address = $company . $cr . $address;
}
return $boln . $address . $eoln;
}
/**
* Return a formatted address
*
* @param $customers_id
* @param $address_id
* @param $html
* @param $boln
* @param $eoln
* @param $address
* @param $html
* @param $boln
* @param $eoln
*/
function oos_address_label($customers_id, $address_id = 1, $html = FALSE, $boln = '', $eoln = "\n") {
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
$address_booktable = $oostable['address_book'];
$query = "SELECT entry_firstname AS firstname, entry_lastname AS lastname, entry_company AS company,
entry_street_address AS street_address, entry_city AS city,
entry_postcode AS postcode, entry_state AS state, entry_zone_id AS zone_id,
entry_country_id AS country_id
FROM $address_booktable
WHERE customers_id = '" . intval($customers_id) . "' AND
address_book_id = '" . intval($address_id) . "'";
$address = $dbconn->GetRow($query);
$format_id = oos_get_address_format_id($address['country_id']);
return oos_address_format($format_id, $address, $html, $boln, $eoln);
}
/**
* Counts the customer address book entries
*
* @param string $id
* @param bool $check_session
* @return int
*/
function oos_count_customer_address_book_entries($id = '', $check_session = TRUE) {
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
if (is_numeric($id) == FALSE) {
if ($_SESSION['customer_id']) {
$id = $_SESSION['customer_id'];
} else {
return 0;
}
}
if ($check_session == TRUE) {
if ( ($_SESSION['customer_id'] == FALSE) || ($id != $_SESSION['customer_id']) ) {
return 0;
}
}
$address_booktable = $oostable['address_book'];
$addresses_query = "SELECT COUNT(*) AS total
FROM $address_booktable
WHERE customers_id = " . intval($id);
$addresses = $dbconn->Execute($addresses_query);
return $addresses->fields['total'];
}