* Copyright (C) 2008 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/boutique/commande/class/boutiquecommande.class.php * \ingroup osc * \brief Fichier de la classe des commandes de la boutique online */ require_once DOL_DOCUMENT_ROOT .'/societe/class/address.class.php'; include_once DOL_DOCUMENT_ROOT.'/boutique/commande/class/boutiquecommande.class.php'; /** * Class to manage orders OSC */ class BoutiqueCommande { var $db; var $id; var $nom; /** * Constructor * * @param DoliDB $db Database handler */ function __construct($db) { $this->db = $db; $this->billing_adr = new Address(); $this->delivry_adr = new Address(); $this->total_ot_subtotal = 0; $this->total_ot_shipping = 0; } /** * Get object and lines from database * * @param int $id id of object to load * @param string $ref Ref of order * @return int >0 if OK, <0 if KO */ function fetch($id,$ref='') { global $conf; $sql = "SELECT orders_id, customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_telephone, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_zipcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_zipcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_expires, last_modified, date_purchased, orders_status, orders_date_finished, currency, currency_value"; $sql.= " FROM ".$conf->global->OSC_DB_NAME.".".$conf->global->OSC_DB_TABLE_PREFIX."orders"; $sql.= " WHERE orders_id = ".$id; $result = $this->db->query($sql); if ( $result ) { $array = $this->db->fetch_array($result); $this->id = $array["orders_id"]; $this->client_id = $array["customers_id"]; $this->client_name = $array["customers_name"]; $this->payment_method = $array["payment_method"]; $this->date = $this->db->jdate($array["date_purchased"]); $this->delivery_adr->name = $array["delivery_name"]; $this->delivery_adr->street = $array["delivery_street_address"]; $this->delivery_adr->zip = $array["delivery_zipcode"]; $this->delivery_adr->city = $array["delivery_city"]; $this->delivery_adr->country = $array["delivery_country"]; $this->billing_adr->name = $array["billing_name"]; $this->billing_adr->street = $array["billing_street_address"]; $this->billing_adr->zip = $array["billing_zipcode"]; $this->billing_adr->city = $array["billing_city"]; $this->billing_adr->country = $array["billing_country"]; $this->db->free(); /* * Totaux */ $sql = "SELECT value, class "; $sql .= " FROM ".$conf->global->OSC_DB_NAME.".".$conf->global->OSC_DB_TABLE_PREFIX."orders_total WHERE orders_id = $id"; $result = $this->db->query($sql); if ( $result ) { $num = $this->db->num_rows($result); $i=0; while ($i < $num) { $array = $this->db->fetch_array($result); if ($array["class"] == 'ot_total') { $this->total_ot_total = $array["value"]; } if ($array["class"] == 'ot_shipping') { $this->total_ot_shipping = $array["value"]; } $i++; } } else { print $this->db->error(); } } else { print $this->db->error(); } return $result; } } ?>