2
0
forked from Wavyzz/dolibarr
Files
dolibarr-fork/htdocs/oscommerce_ws/clients/osc_customer.class.php
2007-02-01 22:23:29 +00:00

190 lines
5.1 KiB
PHP

<?php
/* Copyright (C) 2006 Jean Heimburger <jean@tiaris.info>
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
/**
\file htdocs/oscommerce_ws/clients/osc_customer.class.php
\ingroup oscommerce_ws/clients
\brief Fichier de la classe des clients issus de OsCommerce
\version $Revision$
*/
/**
\class Osc_customer
\brief Classe permettant la gestion des clients/prospects issus d'une base OSC
*/
class Osc_customer
{
var $db;
var $osc_custid;
var $osc_custsoc;
var $osc_custfirstname;
var $osc_custlastname;
var $osc_custstreet;
var $osc_custpostcode;
var $osc_custcity;
var $osc_custtel;
var $osc_custfax;
var $osc_custmail;
var $osc_custidcountry;
var $osc_custcodecountry;
var $osc_custcountry;
var $error;
/**
* \brief Constructeur de la classe
* \param id Id client (0 par defaut)
*/
function Osc_customer($DB, $id=0) {
global $langs;
global $conf;
$this->osc_custid = $id ;
/* les initialisations nécessaires */
$this->db = $DB;
}
/**
* \brief Charge le client OsC en mémoire
* \param id Id du client dans OsC
* \return int <0 si ko, >0 si ok
*/
function fetch($id='')
{
global $langs;
global $conf;
$this->error = '';
dolibarr_syslog("Osc_customer::fetch $id=$id ref=$ref");
// Verification parametres
if (! $id )
{
$this->error=$langs->trans('ErrorWrongParameters');
return -1;
}
set_magic_quotes_runtime(0);
//WebService Client.
require_once(NUSOAP_PATH."/nusoap.php");
require_once("../includes/configure.php");
// Set the parameters to send to the WebService
$parameters = array("custid"=>$id);
// Set the WebService URL
$client = new soapclient(OSCWS_DIR."/ws_customers.php");
// Call the WebSeclient->fault)rvice and store its result in $obj
$obj = $client->call("get_Client",$parameters );
// Attention c'est un tableau !!
if ($client->fault) {
$this->error="Fault detected ".$client->getError();
return -1;
}
elseif (!($err=$client->getError()) ) {
$this->osc_custid = $obj[0][customers_id];
$this->osc_custsoc = $obj[0][entry_company];
$this->osc_custfirstname = $obj[0][entry_firstname];
$this->osc_custlastname = $obj[0][entry_lastname];
$this->osc_custstreet = $obj[0][entry_street_address];
$this->osc_custpostcode = $obj[0][entry_postcode];
$this->osc_custcity = $obj[0][entry_city];
$this->osc_custtel = $obj[0][customers_telephone];
$this->osc_custfax = $obj[0][customers_fax];
$this->osc_custmail = $obj[0][customers_email_address];
$this->osc_custidcountry = $obj[0][entry_country_id];
$this->osc_custcodecountry = $obj[0][countries_iso_code_2];
$this->osc_custcountry = $obj[0][countries_name];
}
else {
$this->error = 'Erreur '.$err ;
return -1;
}
return 0;
}
/**
* \brief Mise à jour de la table de transition
* \param oscid Id du client dans OsC
* \param socid champ société.idp
* \return int <0 si ko, >0 si ok
*/
function transcode($oscid, $socid)
{
/* suppression et insertion */
$sql = "DELETE FROM ".MAIN_DB_PREFIX."osc_customer WHERE osc_custid = ".$oscid.";";
$result=$this->db->query($sql);
if ($result)
{
// print "suppression ok ".$sql." * ".$result;
}
else
{
// print "suppression rate ".$sql." * ".$result;
dolibarr_syslog("osc_customer::transcode echec suppression");
// $this->db->rollback();
// return -1;
}
$sql = "INSERT INTO ".MAIN_DB_PREFIX."osc_customer VALUES (".$oscid." , now() , ".$socid.") ;";
$result=$this->db->query($sql);
if ($result)
{
// print "insertion ok ". $sql." ". $result;
}
else
{
// print "insertion rate ".$sql." , ".$result;
dolibarr_syslog("osc_customer::transcode echec insert");
// $this->db->rollback();
// return -1;
}
return 0;
}
// converti le client osc en client dolibarr
function get_clientid($osc_client)
{
$sql = "SELECT doli_socidp";
$sql.= " FROM ".MAIN_DB_PREFIX."osc_customer";
$sql.= " WHERE osc_custid = ".$osc_client;
$result=$this->db->query($sql);
$row = $this->db->fetch_row($resql);
// test d'erreurs
if ($row) return $row[0];
else return '';
}
}
?>