From 10ec151fe4d06e22971790c04dda62e553624239 Mon Sep 17 00:00:00 2001
From: "vincent@cubedesigners.com"
Date: Thu, 10 Feb 2011 10:43:03 +0000
Subject: [PATCH]
---
inc/commons/class.common.url.php | 18 +-
inc/extranet/Controlleur/_common.php | 2 -
.../Controlleur/class.extranet.ajax.php | 105 +-
.../Controlleur/class.extranet.url.php | 1499 +++++++++++++++++
inc/extranet/Controlleur/url/_common.php | 10 -
.../url/class.extranet.url.client.php | 277 ---
.../url/class.extranet.url.devis.php | 335 ----
.../url/class.extranet.url.facture.php | 427 -----
.../url/class.extranet.url.projet.php | 353 ----
.../url/class.extranet.url.timereport.php | 133 --
inc/ws/Controlleur/_common.php | 1 -
inc/ws/Controlleur/class.ws.ajax.php | 82 +-
inc/ws/Controlleur/class.ws.url.php | 950 +++++++++++
inc/ws/Controlleur/url/_common.php | 9 -
inc/ws/Controlleur/url/class.ws.url.book.php | 440 -----
.../Controlleur/url/class.ws.url.client.php | 209 ---
.../Controlleur/url/class.ws.url.demande.php | 207 ---
.../url/class.ws.url.traduction.php | 115 --
inc/ws/DAO/class.ws.dao.demande.php | 15 +-
19 files changed, 2553 insertions(+), 2634 deletions(-)
delete mode 100644 inc/extranet/Controlleur/url/_common.php
delete mode 100644 inc/extranet/Controlleur/url/class.extranet.url.client.php
delete mode 100644 inc/extranet/Controlleur/url/class.extranet.url.devis.php
delete mode 100644 inc/extranet/Controlleur/url/class.extranet.url.facture.php
delete mode 100644 inc/extranet/Controlleur/url/class.extranet.url.projet.php
delete mode 100644 inc/extranet/Controlleur/url/class.extranet.url.timereport.php
delete mode 100644 inc/ws/Controlleur/url/_common.php
delete mode 100644 inc/ws/Controlleur/url/class.ws.url.book.php
delete mode 100644 inc/ws/Controlleur/url/class.ws.url.client.php
delete mode 100644 inc/ws/Controlleur/url/class.ws.url.demande.php
delete mode 100644 inc/ws/Controlleur/url/class.ws.url.traduction.php
diff --git a/inc/commons/class.common.url.php b/inc/commons/class.common.url.php
index 423b55ac7..d4330f27c 100644
--- a/inc/commons/class.common.url.php
+++ b/inc/commons/class.common.url.php
@@ -3,8 +3,6 @@ class commonUrl {
public static function hub($args)
{
global $core;
- global $urlClasses;
-
$args = cubePage::getArgs($args);
// Si l'utilisateur n'est pas connecté, on affiche le formulaire
// de login
@@ -30,22 +28,18 @@ class commonUrl {
$f = $args[0];
- echo commonPage::header($args);
- echo self::execStaticMethod($f,$args);
- echo commonPage::footer();
- }
+ $classes = array(MODE . 'Url', 'commonUrl');
- public static function execStaticMethod($method,$args)
- {
- global $urlClasses;
- $classes = array_merge(array(MODE . 'Url', 'commonUrl'), array_keys($urlClasses));
+ echo commonPage::header($args);
foreach($classes as $class) {
- $cb = array($class, $method);
+ $cb = array($class, $f);
if (is_callable($cb)) {
- return call_user_func($cb, $args);
+ echo call_user_func($cb, $args);
+ break;
}
}
+ echo commonPage::footer();
}
public static function login($args)
diff --git a/inc/extranet/Controlleur/_common.php b/inc/extranet/Controlleur/_common.php
index b82118f0a..33ca12152 100644
--- a/inc/extranet/Controlleur/_common.php
+++ b/inc/extranet/Controlleur/_common.php
@@ -5,6 +5,4 @@ $__autoload['extranetUrl'] = dirname(__FILE__) . '/class.extranet.url.php';
$__autoload['extranetDroits'] = dirname(__FILE__) . '/class.extranet.droits.php';
$__autoload['extranetPageChiffres'] = dirname(__FILE__) . '/class.extranet.page.chiffres.php';
-include(dirname(__FILE__) . '/url/_common.php');
-
?>
\ No newline at end of file
diff --git a/inc/extranet/Controlleur/class.extranet.ajax.php b/inc/extranet/Controlleur/class.extranet.ajax.php
index a8d2b2d03..a663a748a 100644
--- a/inc/extranet/Controlleur/class.extranet.ajax.php
+++ b/inc/extranet/Controlleur/class.extranet.ajax.php
@@ -7,11 +7,11 @@ class extranetAjax {
if ($args[1] == 'new') {
$extra = '';
} else {
- $extra = '
' . extranetUrlClient::listeContacts($args[1]) . '
';
+ $extra = '
' . extranetUrl::listeContacts($args[1]) . '
';
}
$extra .= '
' . $core->typo->BoutonOK(__('Enregistrer')) . '
';
- commonAjax::form('saveClient', __("Edition d'un client"), extranetUrlClient::formClient($args[1]), false, 2, '', $extra);
+ commonAjax::form('saveClient', __("Edition d'un client"), extranetUrl::formClient($args[1]), false, 2, '', $extra);
}
public static function formContact($args, &$x)
@@ -19,13 +19,13 @@ class extranetAjax {
if (!isset($args[2])) {
$args[2] = null;
}
- commonAjax::form('saveContact', __("Edition d'un contact"), extranetUrlClient::formContact($args[1], $args[2]));
+ commonAjax::form('saveContact', __("Edition d'un contact"), extranetUrl::formContact($args[1], $args[2]));
}
public static function formNotes($args, &$x)
{
global $core;
- commonAjax::form('saveNotes', __('Edition des notes'), extranetUrlClient::formNotes($args[1]));
+ commonAjax::form('saveNotes', __('Edition des notes'), extranetUrl::formNotes($args[1]));
}
public static function saveClient($args, &$x)
@@ -53,7 +53,7 @@ class extranetAjax {
}
}
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
$x->addClosePopup();
}
@@ -71,9 +71,9 @@ class extranetAjax {
$dao = new commonDAOClient($core->con);
$client = $dao->sauve($_POST);
$x->addClosePopup();
- $x->addContent('devisAdresseDisplay', extranetUrlClient::adresse($client->utilisateur_id, null, 'devis'));
- $x->addContent('factureAdresseDisplay', extranetUrlClient::adresse($client->utilisateur_id, null, 'facture'));
- $x->addContent('listeContacts', extranetUrlClient::listeContacts($client->entreprise));
+ $x->addContent('devisAdresseDisplay', extranetUrl::adresse($client->utilisateur_id, null, 'devis'));
+ $x->addContent('factureAdresseDisplay', extranetUrl::adresse($client->utilisateur_id, null, 'facture'));
+ $x->addContent('listeContacts', extranetUrl::listeContacts($client->entreprise));
$contacts = array();
$client_contacts = $dao->getContactsOfEntreprise($client->entreprise);
foreach($client_contacts as $c) {
@@ -90,18 +90,18 @@ class extranetAjax {
$dao = new commonDAOEntreprise($core->con);
$dao->supprime($args[1]);
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
}
public static function searchClients($args, &$x)
{
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
}
public static function sortClient($args, &$x)
{
commonAjax::sort('clients', $args[1]);
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
}
public static function sortEquipier($args, &$x)
{
@@ -112,13 +112,13 @@ class extranetAjax {
public static function pageClient($args, &$x)
{
commonAjax::page('clients', $args[1]);
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
}
public static function parPageClient($args, &$x)
{
commonAjax::parPage('clients', $_POST['par_page']);
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
}
public static function filtreClients($args, &$x)
@@ -129,7 +129,7 @@ class extranetAjax {
return;
} else {
commonAjax::filtre('clients', $_POST);
- $x->addContent('listeClients', extranetUrlClient::listeClients());
+ $x->addContent('listeClients', extranetUrl::listeClients());
}
}
@@ -138,7 +138,7 @@ class extranetAjax {
global $core;
$dao = new commonDAOEntreprise($core->con);
$client = $dao->selectById($args[1]);
- return commonAjax::form('', __("Détail du chiffre d'affaire de") . ' ' . $client->nom, extranetUrlClient::clientDetailCa($args[1]), false);
+ return commonAjax::form('', __("Détail du chiffre d'affaire de") . ' ' . $client->nom, extranetUrl::clientDetailCa($args[1]), false);
}
public static function clientDetailImpaye($args, &$x)
@@ -146,12 +146,12 @@ class extranetAjax {
global $core;
$dao = new commonDAOEntreprise($core->con);
$client = $dao->selectById($args[1]);
- return commonAjax::form('', __("Détail des impayés de") . ' ' . $client->nom, extranetUrlClient::clientDetailImpaye($args[1]), false, 4);
+ return commonAjax::form('', __("Détail des impayés de") . ' ' . $client->nom, extranetUrl::clientDetailImpaye($args[1]), false, 4);
}
public static function formProjet($args, &$x)
{
- commonAjax::form('saveProjet', __("Edition d'un projet"), extranetUrlProjet::formProjet($args[1]));
+ commonAjax::form('saveProjet', __("Edition d'un projet"), extranetUrl::formProjet($args[1]));
}
public static function saveProjet($args, &$x)
@@ -160,7 +160,7 @@ class extranetAjax {
$dao = new extranetDAOProjet($core->con);
$id = $dao->sauve($_POST);
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets());
+ $x->addContent('listeProjets', extranetUrl::listeProjets());
$x->addRedirection(SITE_PATH . 'projet/' . $id);
}
@@ -170,7 +170,7 @@ class extranetAjax {
$dao = new extranetDAOProjet($core->con);
$dao->changeStatus($args[1]);
- $x->addContent('listeProjet', extranetUrlProjet::listeProjet($args[1]));
+ $x->addContent('listeProjet', extranetUrl::listeProjet($args[1]));
}
public static function changeProjetsStatus($args, &$x)
@@ -179,7 +179,7 @@ class extranetAjax {
$dao = new extranetDAOProjet($core->con);
$dao->changeStatus($args[1]);
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets($args[1]));
+ $x->addContent('listeProjets', extranetUrl::listeProjets($args[1]));
}
public static function supprimeProjet($args, &$x)
@@ -193,24 +193,24 @@ class extranetAjax {
public static function searchProjets($args, &$x)
{
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets());
+ $x->addContent('listeProjets', extranetUrl::listeProjets());
}
public static function pageProjet($args, &$x)
{
commonAjax::page('projets', $args[1]);
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets());
+ $x->addContent('listeProjets', extranetUrl::listeProjets());
}
public static function parPageProjet($args, &$x)
{
commonAjax::parPage('projets', $_POST['par_page']);
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets());
+ $x->addContent('listeProjets', extranetUrl::listeProjets());
}
public static function sortProjet($args, &$x)
{
commonAjax::sort('projets', $args[1]);
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets());
+ $x->addContent('listeProjets', extranetUrl::listeProjets());
}
public static function filtreProjet($args, &$x)
@@ -221,20 +221,20 @@ class extranetAjax {
return;
} else {
commonAjax::filtre('projets', $_POST);
- $x->addContent('listeProjets', extranetUrlProjet::listeProjets());
+ $x->addContent('listeProjets', extranetUrl::listeProjets());
}
}
public static function formTacheNormale($args, &$x)
{
$projet = isset($args[2])?$args[2]:null;
- commonAjax::form('saveTache', __("Edition d'un tâche"), extranetUrlProjet::formTacheNormale($args[1], $projet));
+ commonAjax::form('saveTache', __("Edition d'un tâche"), extranetUrl::formTacheNormale($args[1], $projet));
}
public static function formTacheSousTraitee($args, &$x)
{
$projet = isset($args[2])?$args[2]:null;
- commonAjax::form('saveTache', __("Edition d'un tâche sous-traitée"), extranetUrlProjet::formTacheSousTraitee($args[1], $projet));
+ commonAjax::form('saveTache', __("Edition d'un tâche sous-traitée"), extranetUrl::formTacheSousTraitee($args[1], $projet));
}
public static function saveTache($args, &$x)
@@ -243,7 +243,7 @@ class extranetAjax {
$dao = new extranetDAOTache($core->con);
$dao->sauve($_POST);
- $x->addContent('listeProjet', extranetUrlProjet::listeProjet($_POST['projet']));
+ $x->addContent('listeProjet', extranetUrl::listeProjet($_POST['projet']));
$x->addClosePopup();
}
@@ -254,7 +254,7 @@ class extranetAjax {
$tache = $dao->selectById($args[1]);
$dao->supprime($args[1]);
- $x->addContent('listeProjet', extranetUrlProjet::listeProjet($tache->projet));
+ $x->addContent('listeProjet', extranetUrl::listeProjet($tache->projet));
}
public static function saveTimereport($args, &$x)
@@ -290,24 +290,24 @@ class extranetAjax {
public static function sortTimereport($args, &$x)
{
commonAjax::sort('timereport', $args[1]);
- $x->addContent('listeTimereport', extranetUrlTimereport::listeTimereport());
+ $x->addContent('listeTimereport', extranetUrl::listeTimereport());
}
public static function pageTimereport($args, &$x)
{
commonAjax::page('timereport', $args[1]);
- $x->addContent('listeTimereport', extranetUrlTimereport::listeTimereport());
+ $x->addContent('listeTimereport', extranetUrl::listeTimereport());
}
public static function searchTimereport($args, &$x)
{
- $x->addContent('listeTimereport', extranetUrlTimereport::listeTimereport());
+ $x->addContent('listeTimereport', extranetUrl::listeTimereport());
}
public static function parPageTimereport($args, &$x)
{
commonAjax::parPage('timereport', $_POST['par_page']);
- $x->addContent('listeTimereport', extranetUrlTimereport::listeTimereport());
+ $x->addContent('listeTimereport', extranetUrl::listeTimereport());
}
public static function filtreTimereport($args, &$x)
@@ -318,7 +318,7 @@ class extranetAjax {
return;
} else {
commonAjax::filtre('timereport', $_POST);
- $x->addContent('listeTimereport', extranetUrlTimereport::listeTimereport());
+ $x->addContent('listeTimereport', extranetUrl::listeTimereport());
}
}
@@ -333,7 +333,7 @@ class extranetAjax {
$projet_id = $daoProjet->createFromDevis($args[1], $core->user->utilisateur_id);
$x->addRedirection(SITE_PATH . 'projet/' . $projet_id);
} else {
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
}
@@ -344,30 +344,31 @@ class extranetAjax {
$dao->supprime($args[1]);
@unlink(ROOT . '/devis/' . $args[1] . '.pdf');
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
public static function searchDevis($args, &$x)
{
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
public static function pageDevis($args, &$x)
{
commonAjax::page('devis', $args[1]);
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
public static function parPageDevis($args, &$x)
{
commonAjax::parPage('devis', $_POST['par_page']);
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
public static function sortDevis($args, &$x)
{
commonAjax::sort('devis', $args[1]);
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
public static function filtreDevis($args, &$x)
@@ -378,14 +379,14 @@ class extranetAjax {
return;
} else {
commonAjax::filtre('devis', $_POST);
- $x->addContent('listeDevis', extranetUrlDevis::listeDevis());
+ $x->addContent('listeDevis', extranetUrl::listeDevis());
}
}
public static function sortDevisClient($args, &$x)
{
commonAjax::sort('devis', $args[1]);
- $x->addContent('listeDevis', extranetUrlDevis::listeDevisClient());
+ $x->addContent('listeDevis', extranetUrl::listeDevisClient());
}
public static function expedieDevis($args, &$x)
@@ -429,12 +430,12 @@ class extranetAjax {
$dao = new extranetDAOFacture($core->con);
$dao->changeStatus($args[1], $args[2]);
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function changeFacturePaiement($args, &$x)
{
- return commonAjax::form('saveFacturePaiement', __('Informations relatives au paiement de la facture'), extranetUrlFacture::formFacturePaiement($args[1]));
+ return commonAjax::form('saveFacturePaiement', __('Informations relatives au paiement de la facture'), extranetUrl::formFacturePaiement($args[1]));
}
public static function saveFacturePaiement($args, &$x)
@@ -443,7 +444,7 @@ class extranetAjax {
$dao = new extranetDAOFacture($core->con);
$dao->savePaiement($_POST);
$x->addClosePopup();
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function supprimeFacture($args, &$x)
@@ -453,7 +454,7 @@ class extranetAjax {
$dao->supprime($args[1]);
@unlink(ROOT . '/facture/' . $args[1] . '.pdf');
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function valideFacture($args, &$x)
@@ -467,25 +468,25 @@ class extranetAjax {
public static function searchFactures($args, &$x)
{
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function pageFacture($args, &$x)
{
commonAjax::page('factures', $args[1]);
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function parPageFacture($args, &$x)
{
commonAjax::parPage('factures', $_POST['par_page']);
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function sortFacture($args, &$x)
{
commonAjax::sort('factures', $args[1]);
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
public static function filtreFactures($args, &$x)
@@ -496,7 +497,7 @@ class extranetAjax {
return;
} else {
commonAjax::filtre('factures', $_POST);
- $x->addContent('listeFactures', extranetUrlFacture::listeFactures());
+ $x->addContent('listeFactures', extranetUrl::listeFactures());
}
}
@@ -521,7 +522,7 @@ class extranetAjax {
public static function formPrintFactures($args, &$x)
{
- commonAjax::form('printFactures', __('Imprimer des factures'), extranetUrlFacture::formPrintFactures(), __("Lancer l'impression"));
+ commonAjax::form('printFactures', __('Imprimer des factures'), extranetUrl::formPrintFactures(), __("Lancer l'impression"));
}
public static function printFactures($args, &$x)
diff --git a/inc/extranet/Controlleur/class.extranet.url.php b/inc/extranet/Controlleur/class.extranet.url.php
index 49d9eddb8..be5941cf7 100644
--- a/inc/extranet/Controlleur/class.extranet.url.php
+++ b/inc/extranet/Controlleur/class.extranet.url.php
@@ -1,5 +1,1504 @@
user->getSettings('clients');
+
+ $shortcuts = array();
+ $shortcuts[] = '';
+ $filtres = array();
+ $filtres[] = new commonFiltre(__('Ayant un projet'), 'status_client_projet', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Ayant des impayés'), 'impaye', $settings['filtres']);
+ $res = commonPage::barre($filtres, 'filtreClients', 'clients', $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeClients();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeClients($dashboard = null, $settings = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ $settings = is_null($settings)?$core->user->getSettings('clients'):$settings;
+ $change = is_null($dashboard)?'Client':'Dashboard/' . $dashboard;
+ $dao = new commonDAOEntreprise($core->con);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $dao->setFiltres($settings['filtres']);
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
+
+ $res = '';
+ $res .= '| ' . commonUrl::orderby('#', 'entreprise_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Raison sociale'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . __('Contacts') . ' | ';
+ $res .= '' . __('Notes') . ' | ';
+ $res .= '' . commonUrl::orderby('CA', 'ca', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby('Impayés', 'impaye', $settings, 'sort' . $change) . ' | ';
+ $res .= ' | |
';
+ $i = 0;
+ foreach($liste as $id => $client) {
+ if (!is_array($client->contacts)) {
+ fb($client);
+ continue;
+ }
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $client->entreprise_id . ' | ';
+ $res .= '' . $client->nom . ' | ';
+ $contacts = array();
+
+ foreach($client->contacts as $c) {
+ $contacts[] = '';
+ }
+
+ $res .= '' . implode(', ', $contacts) . ' | ';
+ $res .= ' | ';
+ $res .= '';
+ if ($client->ca) {
+ $res .= '';
+ }
+
+ $res .= ' | ';
+ if ($client->impaye) {
+ $res .= ' | ';
+ } else {
+ $res .= ' | ';
+ }
+
+ $res .= ' | ';
+ if (is_null($client->ca)) {
+ $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function clientDetailCa($entreprise_id)
+ {
+ global $core;
+ $dao = new commonDAOEntreprise($core->con);
+ $annees = $dao->getCaDetails($entreprise_id);
+ $res = '';
+ $i = 0;
+ foreach($annees as $annee => $ca) {
+ $class = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ' . $annee . ' | ' . number_format($ca, 0, ',', ' ') . ' ⬠|
';
+ $i++;
+ }
+ return $res;
+ }
+
+ public static function clientDetailImpaye($entreprise_id)
+ {
+ global $core;
+ $dao = new extranetDAOFacture($core->con);
+ $daoClient = new commonDAOEntreprise($core->con);
+ $factures = $dao->getImpayesOfClient($entreprise_id);
+ $client = $daoClient->selectById($entreprise_id);
+ $res = '';
+ $i = 0;
+ foreach($factures as $facture) {
+ $class = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $facture->facture_id . ' | ';
+ $res .= '';
+ if ($facture->facture_id > 0) {
+ $res .= '';
+ } else {
+ $res .= $facture->nom ;
+ }
+ $res .= ' | ';
+ $tva = cubeTaxes::tva($client->pays);
+ $res .= '' . number_format($facture->total_ht, 0, ',', '') . ' â¬';
+ if ($tva > 0 && $tva != 'UE') {
+ $res .= ' HT | ' . number_format(cubePrices::HTtoTTC($facture->total_ht, $tva), 2, ',', '') . ' ⬠TTC';
+ } else {
+ $res .= ' | | ';
+ }
+ $res .= '
';
+ $i++;
+ }
+ return $res;
+ }
+
+ public static function formClient($entreprise_id = 'new')
+ {
+ global $core;
+ commonDroits::min(1);
+ $dao = new commonDAOEntreprise($core->con);
+ $daoUtilisateur = new commonDAOUtilisateur($core->con);
+ if ($entreprise_id == 'new') {
+ $client = $dao->cree();
+ } else {
+ $client = $dao->selectById($entreprise_id);
+ }
+
+ $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('entreprise_id', $client->entreprise_id) . '' . $client->entreprise_id . ' |
';
+ $res .= '| ' . __('Raison sociale') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
+ $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
+ $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
+ $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
+ $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
+ $res .= '| ' . __('Adresse de facturation') . ' | ' . form::textarea('adresse_facturation', 40, 3, $client->adresse_facturation) . ' |
';
+ $res .= '| ' . __('Numéro de TVA intracommunautaire') . ' | ' . form::field('tva_intra', 15, 13, $client->tva_intra) . ' |
';
+ $res .= '| ' . __('Fluidbook Workshop') . ' |
';
+ $res .= '| ' . __('Grade') . ' | ' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . ' |
';
+ if ($entreprise_id == 'new' || !$client->ws_admin) {
+ $class = 'empty-field';
+ $default_id = '';
+ $default = __('Entrez le nom du revendeur ou de l\'administrateur');
+ } else {
+ $class = '';
+ $default_id = $client->ws_admin;
+ $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');
+ $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';
+ }
+
+ $d = $dao->getWSDatas($entreprise_id);
+
+ $res .= '| ' . __('Revendeur / Administrateur') . ' | ' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . ' |
';
+ if (!is_null($d)) {
+ $res .= '| ' . __('Entité facturable') . ' | ' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ') |
';
+ $res .= '| ' . __('Administrateur responsable') . ' | ' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ') |
';
+ }
+ if ($entreprise_id == 'new') {
+ $daoContact = new commonDAOClient($core->con);
+ $contact = $daoContact->cree();
+ $res .= '| ' . __('Contact') . ' |
';
+ $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field(array('contact[email]'), 30, 128, $contact->email) . ' |
';
+ $res .= '| ' . __('Mot de passe') . ' | ' . form::field(array('contact[password]'), 30, 128, $contact->password) . ' |
';
+ $res .= '| ' . __('Prénom') . ' | ' . form::field(array('contact[prenom]'), 30, 128, $contact->prenom) . ' |
';
+ $res .= '| ' . __('Nom') . ' | ' . form::field(array('contact[nom]'), 30, 128, $contact->nom) . ' |
';
+ $res .= '| ' . __('Téléphone') . ' | ' . form::field(array('contact[telephone]'), 20, 128, $contact->telephone) . ' |
';
+ $res .= '| ' . __('Mobile') . ' | ' . form::field(array('contact[mobile]'), 20, 128, $contact->mobile) . ' |
';
+ $res .= '| ' . __('Fax') . ' | ' . form::field(array('contact[fax]'), 20, 128, $contact->fax) . ' |
';
+ $res .= '| ' . __('Langue') . ' | ' . form::combo(array('contact[lang]'), cubeLang::getAvailableLangs(true), $contact->lang) . ' |
';
+ }
+ return $res;
+ }
+
+ public static function listeContacts($entreprise_id)
+ {
+ global $core;
+ commonDroits::min(1);
+ $dao = new commonDAOEntreprise($core->con);
+ $contacts = $dao->getContacts($entreprise_id);
+
+ $res = '';
+ $res .= ' |
';
+ $i = 0;
+ foreach($contacts as $contact) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ' . trim($contact->prenom . ' ' . $contact->nom) . ' | ';
+ $res .= '' . $contact->email . ' | ';
+ $res .= 'FTP | ';
+ $res .= 'Se connecter comme ... | ';
+ $res .= ' |
';
+ $i++;
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function formContact($client_id = 'new', $entreprise_id = null)
+ {
+ global $core;
+ commonDroits::min(1);
+
+ $dao = new commonDAOClient($core->con);
+ if ($client_id == 'new') {
+ $client = $dao->creeFromEntreprise($entreprise_id);
+ } else {
+ $client = $dao->selectById($client_id);
+ }
+
+ $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('grade', 0) . form::hidden('entreprise', $client->entreprise) . form::hidden('utilisateur_id', $client->utilisateur_id) . '' . $client->utilisateur_id . ' |
';
+ $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field('email', 30, 128, $client->email) . ' |
';
+ $res .= '| ' . __('Mot de passe') . ' | ' . form::field('password', 30, 128, $client->password) . ' |
';
+ $res .= '| ' . __('Prénom du contact') . ' | ' . form::field('prenom', 30, 128, $client->prenom) . ' |
';
+ $res .= '| ' . __('Nom du contact') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
+ $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
+ $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
+ $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
+ $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
+ $res .= '| ' . __('Téléphone') . ' | ' . form::field('telephone', 20, 128, $client->telephone) . ' |
';
+ $res .= '| ' . __('Mobile') . ' | ' . form::field('mobile', 20, 128, $client->mobile) . ' |
';
+ $res .= '| ' . __('Fax') . ' | ' . form::field('fax', 20, 128, $client->fax) . ' |
';
+ $res .= '| ' . __('Langue') . ' | ' . form::combo('lang', cubeLang::getAvailableLangs(true), $client->lang) . ' |
';
+ if ($client_id != 'new') {
+ $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
+ $res .= ' | ' . __('FTP') . ' |
';
+ $res .= ' | ' . __('Se connecter comme ...') . ' |
';
+ $res .= '| ' . __("Paramètres de connexion à l'extranet") . ' | ' . __('Adresse') . ' : http://extranet.cubedesigners.com/ ' . __("Nom d'utilisateur") . ' : ' . $client->email . ' ' . __('Mot de passe') . ' : ' . $client->password . ' |
';
+ $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
+ // $res .= '| ' . __("Paramètres de connexion au FTP") . ' | ' . __('Serveur FTP') . ' : extranet.cubedesigners.com (ftp://extranet.cubedesigners.com) ' . __("Nom d'utilisateur") . ' : ' . $client->email . ' ' . __('Mot de passe') . ' : ' . $client->password . ' |
';
+ }
+ return $res;
+ }
+
+ public static function formNotes($utilisateur_id)
+ {
+ global $core;
+ commonDroits::min(1);
+ $dao = new commonDAOUtilisateur($core->con);
+ $utilisateur = $dao->selectById($utilisateur_id);
+ $res = '| ' . form::hidden('utilisateur_id', $utilisateur_id) . ' |
';
+ $res .= '| ' . form::textarea('notes', 100, 30, $utilisateur->notes) . ' |
';
+ $res .= ' |
';
+ return $res;
+ }
+
+ public static function projets($args)
+ {
+ global $core;
+ commonDroits::min(1);
+
+ $settings = $core->user->getSettings('projets');
+
+ $shortcuts = array();
+ $shortcuts[] = '';
+
+ $filtres = array();
+ $filtres[] = new commonFiltre(__('Crée par'), 'equipier', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Status'), 'status_projet', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Année'), 'annee', $settings['filtres']);
+
+ $res = commonPage::barre($filtres, 'filtreProjet', 'projets', $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeProjets();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeProjets($dashboard = null, $settings = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ $settings = is_null($settings)?$core->user->getSettings('projets'):$settings;
+ $change = is_null($dashboard)?'Projet':'Dashboard/' . $dashboard;
+
+ $res = '';
+ $res .= '| ' . commonUrl::orderby('#', 'projet_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Projet'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Année'), 'annee_fin', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Chef'), 'chef', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Facturé'), 'rapport_facturation', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Payé'), 'rapport_paiement', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby('B', 'budget', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby('Pr', 'progression', $settings, 'sort' . $change) . ' | ';
+ $res .= ' |
';
+
+ $dao = new extranetDAOProjet($core->con);
+ $dao->setFiltres($settings['filtres']);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
+
+ $i = 0;
+ foreach($liste as $projet) {
+ $droits = extranetDroits::projet($projet, false);
+
+ $projet->progression = !$projet->progression?'-':$projet->progression . '%';
+ $projet->jours_prevus = !$projet->jours_prevus?'-':$projet->jours_prevus;
+ $projet->jours_consommes = !$projet->jours_consommes?'-':$projet->jours_consommes;
+
+ $projet->budget = !$projet->budget || !$droits?'-':$projet->budget;
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $projet->projet_id . ' | ';
+ $res .= '' . $projet->nom . ' | ';
+ $res .= '' . $projet->client . ' | ';
+ $res .= '' . $projet->annee_fin . ' | ';
+ $res .= '' . $projet->chef . ' | ';
+ if ($droits) {
+ $res .= '' . $core->projets_status[$projet->status] . ' | ';
+ } else {
+ $res .= '' . $core->projets_status[$projet->status] . ' | ';
+ }
+
+ $rf = $projet->rapport_facturation;
+ if ($projet->budget == '-') {
+ $rapport_facturation = '-';
+ } elseif (!$rf) {
+ $rapport_facturation = __('Non');
+ } elseif ($rf == 1) {
+ $rapport_facturation = __('Oui');
+ } elseif ($rf < 1) {
+ $rapport_facturation = __('Partie');
+ } elseif ($rf > 1) {
+ $rapport_facturation = __('Trop');
+ }
+
+ $rp = $projet->rapport_paiement;
+ if ($projet->budget == '-') {
+ $rapport_paiement = '-';
+ } elseif (!$rp) {
+ $rapport_paiement = __('Non') ;
+ } elseif ($rp == 1) {
+ $rapport_paiement = __('Oui');
+ } elseif ($rp < 1) {
+ $rapport_paiement = __('Partie');
+ } elseif ($rp > 1) {
+ $rapport_paiement = __('Trop');
+ }
+
+ $res .= '';
+ if ($projet->status == 1 && !$rf) {
+ $res .= '' . $rapport_facturation . '';
+ } else {
+ $res .= $rapport_facturation;
+ }
+ $res .= ' | ';
+ $res .= '' . $rapport_paiement . ' | ';
+
+ $res .= '' . $projet->budget . ' | ';
+ // $res .= '' . $projet->jours_prevus . ' | ';
+ // $res .= '' . $projet->jours_consommes . ' | ';
+ $res .= '' . $projet->progression . ' | ';
+ $res .= '' . cubeMedia::image(IMG . '/view.png') . ' | ';
+
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('projets'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function projet($args)
+ {
+ global $core;
+ commonDroits::min(1);
+
+ $shortcuts = array();
+ $shortcuts[] = '';
+ $shortcuts[] = '';
+
+ $res = commonPage::barre(null, null, null, $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeProjet($args[1]);
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeProjet($projet_id)
+ {
+ global $core;
+ commonDroits::min(1);
+
+ $res = '';
+ $res .= '| # | ';
+ $res .= '' . __('Projet') . ' / ' . __('Tâche') . ' | ';
+ $res .= '' . __('Client') . ' / ' . __('Catégorie') . ' | ';
+ $res .= '' . __('Année') . ' | ';
+ $res .= '' . __('Chef de projet') . ' | ';
+ $res .= '' . __('Status') . ' | ';
+ $res .= 'B | ';
+ $res .= 'Pl | ';
+ $res .= 'Co | ';
+ $res .= 'Pr | ';
+ $res .= ' | |
';
+
+ $dao = new extranetDAOProjet($core->con);
+ $projet = $dao->selectById($projet_id);
+
+ $hasFacture = $dao->hasFacture($projet_id);
+
+ $droits = extranetDroits::projet($projet, false);
+
+ $projet->progression = !$projet->progression?'-':$projet->progression . '%';
+ $projet->jours_prevus = !$projet->jours_prevus?'-':$projet->jours_prevus;
+ $projet->jours_consommes = !$projet->jours_consommes?'-':$projet->jours_consommes;
+
+ $projet->budget = !$projet->budget || !$droits?'-':$projet->budget;
+
+ $res .= '';
+ $res .= '| ' . $projet->projet_id . ' | ';
+ $res .= '' . $projet->nom . ' | ';
+ $res .= '' . $projet->client . ' | ';
+ $res .= '' . $projet->annee_fin . ' | ';
+ $res .= '' . $projet->chef . ' | ';
+ if ($droits) {
+ $res .= '' . $core->projets_status[$projet->status] . ' | ';
+ } else {
+ $res .= '' . $core->projets_status[$projet->status] . ' | ';
+ }
+ $res .= '' . $projet->budget . ' | ';
+ $res .= '' . $projet->jours_prevus . ' | ';
+ $res .= '' . $projet->jours_consommes . ' | ';
+ $res .= '' . $projet->progression . ' | ';
+ if ($droits) {
+ $res .= ' | ';
+ if (!count($projet->taches) && !$hasFacture) {
+ $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ } else {
+ $res .= ' | | ';
+ }
+ $res .= '
';
+ $i = 1;
+ foreach($projet->taches as $tache) {
+ $tache->budget = !$tache->budget || !$droits?'-':$tache->budget;
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| T' . $i . ' | ';
+ $res .= '' . $tache->nom . ' | ';
+ $res .= '' . $core->categories[$tache->categorie] . ' | ';
+ $res .= ' | ';
+ $res .= ' | ';
+ $res .= ' | ';
+ $res .= '' . $tache->budget . ' | ';
+
+ if ($tache instanceof extranetTacheNormale) {
+ $progression = !$tache->progression?'-':$tache->progression . '%';
+ $jours_prevus = !$tache->jours_prevus?'-':$tache->jours_prevus;
+ $jours_consommes = !$tache->jours_consommes?'-':$tache->jours_consommes;
+ $res .= '' . $jours_prevus . ' | ';
+ $res .= '' . $jours_consommes . ' | ';
+ $res .= '' . $progression . ' | ';
+ if ($droits) {
+ $res .= ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ } else {
+ $res .= '' . __('Tâche sous-traitée') . ' | ';
+ if ($droits) {
+ $res .= ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ }
+
+ $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
+
+ $res .= '
';
+ $i++;
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function formProjet($projet_id = 'new')
+ {
+ global $core;
+ commonDroits::min(1);
+
+ $dao = new extranetDAOProjet($core->con);
+ if ($projet_id == 'new') {
+ $projet = $dao->cree($core->user->utilisateur_id);
+ } else {
+ $projet = $dao->selectById($projet_id);
+ }
+
+ $daoClient = new commonDAOClient($core->con);
+ $clients = $daoClient->getListe();
+
+ $listeClients = array();
+ foreach($clients as $client) {
+ $listeClients[$client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')'] = $client->utilisateur_id;
+ }
+ ksort($listeClients);
+
+ $daoEquipier = new commonDAOEquipier($core->con);
+ $equipiers = $daoEquipier->getListe();
+
+ $listeEquipiers = array();
+ foreach($equipiers as $equipier) {
+ $listeEquipiers[$equipier->prenom . ' ' . $equipier->nom . ' (' . $equipier->agence . ')'] = $equipier->utilisateur_id;
+ }
+
+ $daoDevis = new extranetDAODevis($core->con);
+ $devis = $daoDevis->getListeValidesLibres($projet_id);
+ $listeDevis = array('--' => 0);
+ foreach($devis as $id => $dev) {
+ $listeDevis[$dev->nom] = $dev->devis_id;
+ }
+
+ $res = '| ' . __('Numéro de projet') . ' | ' . form::hidden('projet_id', $projet->projet_id) . '' . $projet->projet_id . ' |
';
+ $res .= '| ' . __('Nom du projet') . ' | ' . form::textarea('nom', 50, 3, html::escapeHTML($projet->nom)) . ' |
';
+ $res .= '| ' . __('Chef de projet') . ' | ';
+ if ($core->user->grade > 1) {
+ $res .= form::combo('chef', $listeEquipiers, $projet->chef_id);
+ } else {
+ $res .= form::hidden('chef', $projet->chef_id) . ' ' . $projet->chef;
+ }
+ $res .= ' |
';
+ $res .= '| ' . __('Date de début') . ' | ' . cubeForm::dateFree('date_debut', $projet->date_debut) . ' |
';
+ $res .= '| ' . __('Deadline') . ' | ' . cubeForm::dateFree('deadline', $projet->deadline) . ' |
';
+ $res .= '| ' . __('Date de fin') . ' | ' . cubeForm::dateFree('date_fin', $projet->date_fin) . ' |
';
+ $res .= '| ' . __('Client') . ' | ' . form::combo('client', $listeClients, $projet->client_id) . ' |
';
+ $res .= '| ' . __('Devis') . ' | ' . form::combo('devis', $listeDevis, $projet->devis) . ' |
';
+ return $res;
+ }
+
+ public static function formTache($tache)
+ {
+ global $core;
+ commonDroits::min(1);
+
+ $res = '| ' . __('Numéro de tâche') . ' | ' . form::hidden('projet', $tache->projet) . form::hidden('tache_id', $tache->tache_id) . '' . $tache->tache_id . ' |
';
+ $res .= '| ' . __('Catégorie') . ' | ' . form::combo('categorie', array_flip($core->categories), $tache->categorie) . ' |
';
+ $res .= '| ' . __('Nom') . ' | ' . form::textarea('nom', 50, 3, html::escapeHTML($tache->nom)) . ' |
';
+
+ return $res;
+ }
+
+ public static function formTacheNormale($tache_id, $projet_id = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ $dao = new extranetDAOTache($core->con);
+ if ($tache_id == 'new') {
+ $tache = $dao->creeNormale();
+ $tache->projet = $projet_id;
+ } else {
+ $tache = $dao->selectById($tache_id);
+ }
+ $res = self::formTache($tache);
+ $res .= '| ' . __('Taux journalier') . ' | ' . form::field('taux_journalier', 6, 6, $tache->taux_journalier) . ' |
';
+ $res .= '| ' . __('Budget') . ' | ' . form::hidden('type', '0') . form::field('budget', 6, 6, $tache->budget) . ' |
';
+ return $res;
+ }
+
+ public static function formTacheSousTraitee($tache_id, $projet_id = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ $dao = new extranetDAOTache($core->con);
+ if ($tache_id == 'new') {
+ $tache = $dao->creeSousTraitee();
+ $tache->projet = $projet_id;
+ } else {
+ $tache = $dao->selectById($tache_id);
+ }
+ $res = self::formTache($tache);
+ $res .= '| ' . __('Budget') . ' | ' . form::hidden('type', '1') . form::field('budget', 6, 6, $tache->budget) . ' |
';
+ return $res;
+ }
+
+ public static function timereport($args)
+ {
+ global $core;
+ commonDroits::min(1);
+ $settings = $core->user->getSettings('timereport');
+ $filtres = array();
+ $filtres[] = new commonFiltre(__('Participants'), 'equipier_participe', $settings['filtres']);
+ $res = commonPage::barre($filtres, 'filtreTimereport', 'timereport', null);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeTimereport();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeTimereport($dashboard = null, $settings = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ // Récupère la liste des projets
+ $settings = is_null($settings)?$core->user->getSettings('timereport'):$settings;
+ $change = is_null($dashboard)?'Timereport':'Dashboard/' . $dashboard;
+
+ $dao = new extranetDAOProjet($core->con);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $dao->setFiltres($settings['filtres']);
+ $liste = $dao->getProjetsForTimereport($settings['orderby'], $settings['sens'], $settings['limit'], $core->user->utilisateur_id);
+ // Extrait la liste des tâches
+ $taches = array();
+ foreach($liste as $id => $projet) {
+ foreach($projet->taches as $tache) {
+ if ($tache instanceof extranetTacheNormale) {
+ $taches[] = $tache->tache_id;
+ }
+ }
+ }
+ // Fixe les limites des jours à afficher
+ $time = cubeDate::round(null, 'd'); // aujourd'hui
+ $avant = $time - (3600 * 24 * 15); // 15 jours avant
+ $apres = $time; // aujourd'hui
+ // Récupère la liste des timereports à afficher
+ $daoTimereport = new extranetDAOTimereport($core->con);
+ $timereports = $daoTimereport->getListe($taches, $core->user->utilisateur_id, array('start' => $avant, 'end' => $apres));
+ // Affiche le tableau
+ $res = '';
+ $res .= '| ' . commonUrl::orderby('#', 'projet_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Projet'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
+ for($date = $avant;$date <= $apres;$date += 3600 * 24) {
+ $res .= '' . date('d', $date) . '' . cubeMedia::spacer(16, 1, '', 'spacer') . ' | ';
+ }
+ $res .= '' . commonUrl::orderby('Pr', 'progression', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby('Co', 'jours_consommes', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby('Pl', 'jours_prevus', $settings, 'sort' . $change) . ' | ';
+ $res .= '
';
+
+ foreach($liste as $projet) {
+ $res .= '';
+ $res .= '| ' . $projet->projet_id . ' | ';
+ $res .= '' . $projet->nom . ' | ';
+ $res .= '' . $projet->client . ' | ';
+ for($date = $avant;$date <= $apres;$date += 3600 * 24) {
+ $cc = self::getClassOfDay($date);
+ $class = ($cc == '')?'':' class="' . $cc . '"';
+ $res .= ' | ';
+ }
+ $projet->progression = !$projet->progression?'-':$projet->progression . '%';
+ $projet->jours_prevus = !$projet->jours_prevus?'-':$projet->jours_prevus;
+ $projet->jours_consommes = !$projet->jours_consommes?'-':$projet->jours_consommes;
+ $res .= '' . $projet->progression . ' | ';
+ $res .= '' . $projet->jours_consommes . ' | ';
+ $res .= '' . $projet->jours_prevus . ' | ';
+ $res .= '
';
+ $i = 1;
+ foreach($projet->taches as $tache) {
+ if ($tache instanceof extranetTacheNormale) {
+ $res .= '';
+ $res .= '| T' . $i . ' | ';
+ $res .= '' . $tache->nom . ' | ';
+ $res .= '' . $core->categories[$tache->categorie] . ' | ';
+ for($date = $avant;$date <= $apres;$date += (3600 * 24)) {
+ $hh = isset($timereports[$tache->tache_id][$date])?$timereports[$tache->tache_id][$date]->heures:'';
+ $c = ($hh == '')?'':'filled';
+ $cc = trim(self::getClassOfDay($date) . ' ' . $c);
+ $class = ($cc == '')?'':' class="' . $cc . '"';
+ $res .= '' . form::field(array('timereport', 't_' . $date . '_' . $tache->tache_id), 1, 2, $hh, 'timereport_field') . ' | ';
+ }
+ $tache->progression = !$tache->progression?'-':$tache->progression . '%';
+ $tache->jours_prevus = !$tache->jours_prevus?'-':$tache->jours_prevus;
+ $tache->jours_consommes = !$tache->jours_consommes?'-':$tache->jours_consommes;
+ $res .= '' . $tache->progression . ' | ';
+ $res .= '' . $tache->jours_consommes . ' | ';
+ $res .= '' . $tache->jours_prevus . ' | ';
+ $res .= '
';
+ $i++;
+ }
+ }
+ }
+
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->countActifs(), $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('projets'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function getClassOfDay($date)
+ {
+ $aujourdhui = cubeDate::round(null, 'd');
+ $highlight = ($date == $aujourdhui);
+ $we = (date('N', $date) >= 6);
+ if ($highlight) {
+ return 'highlight';
+ }
+ if ($we) {
+ return 'we';
+ }
+ return '';
+ }
+
+ public static function devis($args)
+ {
+ global $core;
+ cubePage::truePopup();
+ cubePage::contextMenu();
+
+ if ($core->user->grade == 0) {
+ return self::devis_client($args);
+ }
+ $settings = $core->user->getSettings('devis');
+ commonDroits::min(1);
+
+ $shortcuts = array();
+ $shortcuts[] = '' . $core->typo->Ajouter('Créer un devis') . '';
+
+ $filtres = array();
+ $filtres[] = new commonFiltre(__('Créées par'), 'equipier', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Status'), 'status_devis', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Année'), 'annee_facture', $settings['filtres']);
+
+ $res = commonPage::barre($filtres, 'filtreDevis', 'devis' , $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeDevis();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function devis_client($args)
+ {
+ global $core;
+
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeDevis();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeDevis($dashboard = null, $settings = null)
+ {
+ global $core;
+
+ if ($core->user->grade == 0) {
+ return self::listeDevisClient($dashboard, $settings);
+ } else {
+ return self::listeDevisEquipier($dashboard, $settings);
+ }
+ }
+
+ public static function contextDevis($id)
+ {
+ global $core;
+ $res = '';
+ return $res;
+ }
+
+ public static function listeDevisEquipier($dashboard = null, $settings = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ $settings = is_null($settings)?$core->user->getSettings('devis'):$settings;
+ $change = is_null($dashboard)?'Devis':'Dashboard/' . $dashboard;
+ $context_id = is_null($dashboard)?'contextDevis':'contextDashboard_' . $dashboard;
+
+ $dao = new extranetDAODevis($core->con);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $dao->setFiltres($settings['filtres']);
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
+ $res = self::contextDevis($context_id);
+ $res .= '';
+ $res .= '| ' . commonUrl::orderby('#', 'devis_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Crée par'), 'createur', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | ';
+ $res .= ' | | |
';
+ $i = 0;
+ foreach($liste as $devis) {
+ $droits = extranetDroits::devis($devis, 'w', false);
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $devis->devis_id . ' | ';
+ $res .= '' . $devis->nom . ' | ';
+ $res .= '' . $devis->client . ' | ';
+ $res .= '' . $devis->createur . ' | ';
+ $res .= '' . date(__('d/m/Y'), $devis->date_creation) . ' | ';
+ $res .= '' . $devis->total_ht . ' | ';
+
+ if ($devis->status == 0) {
+ $res .= '' . $core->devis_status[$devis->status] . ' | ';
+ } else {
+ if ($droits) {
+ $res .= ' | ';
+ } else {
+ $res .= '' . $core->devis_status[$devis->status] . ' | ';
+ }
+ }
+
+ if (in_array($devis->status, array(0, 1)) && $droits) {
+ $res .= '' . cubeMedia::image(IMG . '/edit.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ $res .= ' | ';
+ if ($devis->status == 0) {
+ if ($droits) {
+ $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ } elseif ($devis->status >= 1) {
+ $res .= '' . cubeMedia::image(IMG . '/duplicate.png') . ' | ';
+ }
+
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->count(), $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('devis'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function listeDevisClient($dashboard = null, $settings = null)
+ {
+ global $core;
+ cubePage::truePopup();
+
+ $dao = new extranetDAODevis($core->con);
+ $settings = $core->user->getSettings('devis');
+ $liste = $dao->getListeForEntreprise($core->user->entreprise, $settings['orderby'], $settings['sens']);
+ $res = '';
+ $res .= '| ' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sortDevis') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sortDevis') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sortDevis') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sortDevis') . ' | ';
+ $res .= ' | ';
+ $i = 0;
+ foreach($liste as $devis) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $devis->nom . ' | ';
+ $res .= '' . date(__('d/m/Y'), $devis->date_creation) . ' | ';
+ $res .= '' . $devis->total_ht . ' | ';
+ $res .= '' . $core->devis_status[$devis->status] . ' | ';
+ $res .= ' | ';
+ $res .= '
';
+ $i++;
+ }
+ if (!count($liste)) {
+ $res .= '| ' . __("Vous n'avez pour le moment aucun devis associé à votre compte") . ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function voirdevis($args)
+ {
+ global $core;
+ // Charge le devis
+ $dao = new extranetDAODevis($core->con);
+ $devis = $dao->selectById($args[1]);
+ // Vérification des droits en lecture de l'utilisateur
+ extranetDroits::devis($devis, 'r');
+
+ cubeHTTP::relayNoCache(ROOT . '/devis/' . $args[1] . '.pdf');
+ }
+
+ public static function editedevis($args)
+ {
+ global $core;
+ commonDroits::min(1);
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= self::formDevis($args[1]);
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function formDevis($devis_id = 'new')
+ {
+ global $core;
+ cubePage::autocomplete();
+ cubePage::emptyField();
+ cubePage::ui('Sortable');
+ commonDroits::min(1);
+ $dao = new extranetDAODevis($core->con);
+ if ($devis_id == 'new') {
+ $devis = $dao->cree();
+ } else {
+ $devis = $dao->selectById($devis_id);
+ }
+
+ $res = '';
+ $res .= '
';
+ $res .= '
';
+
+ return $res;
+ }
+
+ public static function previewDevis($args)
+ {
+ global $core;
+
+ $dao = new extranetDAODevis($core->con);
+ $devis = $dao->selectById($args[1]);
+
+ $daoUtilisateur = new commonDAOUtilisateur($core->con);
+ $createur = $devis->createur = $daoUtilisateur->selectById($devis->createur_id);
+ $client = $devis->client = $daoUtilisateur->selectById($devis->client_id);
+
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= commonPage::bf();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= '
';
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function factures($args)
+ {
+ global $core;
+
+ if ($core->user->grade == 0) {
+ return self::factures_client($args);
+ }
+ $settings = $core->user->getSettings('factures');
+
+ commonDroits::min(1);
+ $shortcuts = array();
+ if ($core->user->grade != 3) {
+ $shortcuts[] = '' . $core->typo->Ajouter('Créer une facture') . '';
+ }
+ $shortcuts[] = '';
+ $filtres = array();
+ $filtres[] = new commonFiltre(__('Créées par'), 'equipier', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Status'), 'status_facture', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Année'), 'annee_facture', $settings['filtres']);
+ $res = commonPage::barre($filtres , 'filtreFactures', 'factures', $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeFactures();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function factures_client($args)
+ {
+ global $core;
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeFactures();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function contextFacture($id)
+ {
+ global $core;
+ $res = '';
+ return $res;
+ }
+
+ public static function listeFactures($dashboard = null, $settings = null)
+ {
+ global $core;
+ if ($core->user->grade == 0) {
+ return self::listeFacturesClient($dashboard, $settings);
+ } else {
+ return self::listeFacturesEquipier($dashboard, $settings);
+ }
+ }
+
+ public static function listeFacturesEquipier($dashboard = null, $settings = null)
+ {
+ global $core;
+ cubePage::truePopup();
+ cubePage::contextMenu();
+
+ $settings = is_null($settings)?$core->user->getSettings('factures'):$settings;
+ $change = is_null($dashboard)?'Facture':'Dashboard/' . $dashboard;
+ $context_id = is_null($dashboard)?'contextFacture':'contextDashboard_' . $dashboard;
+ $dao = new extranetDAOFacture($core->con);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ } else {
+ $dao->setFiltres($settings['filtres']);
+ }
+
+ if ($core->user->grade != 3) {
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
+ } else {
+ $liste = $dao->getListeCompta($settings['orderby'], $settings['sens'], $settings['limit']);
+ }
+
+ $res = self::contextFacture($context_id);
+ $res .= '';
+ $res .= '| ' . commonUrl::orderby('#', 'facture_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Crée par'), 'createur', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | | | |
';
+ $i = 0;
+ foreach($liste as $facture) {
+ $droits = extranetDroits::facture($facture, 'w', false);
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $facture->facture_id . ' | ';
+ $res .= '' . $facture->nom . ' | ';
+ $res .= '' . $facture->client . ' | ';
+ $res .= '' . $facture->createur . ' | ';
+ $res .= '' . date(__('d/m/Y'), $facture->date_creation) . ' | ';
+ $res .= '' . $facture->total_ht . ' | ';
+ if ($facture->status == 0) {
+ $res .= '' . $core->factures_status[$facture->status] . ' | ';
+ if ($droits) {
+ $res .= ' | ';
+ $res .= '' . cubeMedia::image(IMG . '/edit.png') . ' | ';
+ $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
+ } else {
+ $res .= ' | | ';
+ }
+ } elseif ($facture->status >= 1) {
+ if ($facture->status < 3) {
+ if ($droits) {
+ $res .= ' | ';
+ } else {
+ $res .= '' . $core->factures_status[$facture->status] . ' | ';
+ }
+ } else {
+ $title = $facture->status == 3?__("Voir l'avoir correspondant"):__("Voir la facture annulée correspondante");
+ $res .= ' | ';
+ }
+ if ($facture->facture_id > 0) {
+ if ($droits && $facture->status == 1) {
+ $res .= '' . '' . cubeMedia::image(IMG . '/edit.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ $res .= ' | ';
+ if ($facture->status != 4 && $core->user->grade != 3) {
+ $res .= '' . cubeMedia::image(IMG . '/duplicate.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ } else {
+ $res .= ' | | | ';
+ }
+ }
+
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ' ;
+ if ($core->user->grade != 3) {
+ $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');
+ } else {
+ $res .= commonPage::pager($settings['page'], $dao->countCompta() , $settings['par_page'], 'page' . $change . '/%d');
+ }
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('factures'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function listeFacturesClient($dashboard = null, $settings = null)
+ {
+ global $core;
+ cubePage::truePopup();
+ $settings = $core->user->getSettings('factures');
+ $dao = new extranetDAOFacture($core->con);
+ $liste = $dao->getListeForEntreprise($core->user->entreprise, $settings['orderby'], $settings['sens'], true);
+
+ $res = '';
+ $res .= '| ' . commonUrl::orderby('#', 'facture_id', $settings, 'sortFacture') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sortFacture') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sortFacture') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sortFacture') . ' | ';
+ $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sortFacture') . ' | ';
+ $res .= ' |
';
+ $i = 0;
+ foreach($liste as $facture) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $facture->numeroFacture() . ' | ';
+ $res .= '' . $facture->nom . ' | ';
+ $res .= '' . date(__('d/m/Y'), $facture->date_creation) . ' | ';
+ $res .= '' . $facture->total_ht . ' | ';
+ $res .= '' . $core->factures_status[$facture->status] . ' | ';
+ $res .= ' | ';
+ $res .= '
';
+ $i++;
+ }
+ if (!count($liste)) {
+ $res .= '| ' . __("Vous n'avez pour le moment aucune facture associée à votre compte") . ' |
';
+ }
+
+ $res .= '
';
+ return $res;
+ }
+
+ public static function formFacturePaiement($facture_id)
+ {
+ global $core;
+ $dao = new extranetDAOFacture($core->con);
+ $facture = $dao->selectById($facture_id);
+ $date = !$facture->date_paiement?null:$facture->date_paiement;
+
+ $res = '| ' . form::hidden('facture_id', $facture_id) . __('Date de paiement') . ' | ' . cubeForm::date('date_paiement', $date) . ' |
';
+ $res .= '| ' . __('Informations de paiement') . ' | ' . form::textarea('informations_paiement', 40, 3, $facture->informations_paiement) . ' |
';
+
+ return $res;
+ }
+
+ public static function voirfacture($args)
+ {
+ global $core;
+ // Charge la facture
+ $dao = new extranetDAOFacture($core->con);
+ $facture = $dao->selectById($args[1]);
+ // Vérification des droits de l'utilisateur
+ extranetDroits::facture($facture, 'r', true);
+
+ cubeHTTP::relayNoCache(ROOT . '/factures/' . $args[1] . '.pdf');
+ }
+
+ public static function editefacture($args)
+ {
+ global $core;
+ commonDroits::min(1);
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ if (isset($args[2])) {
+ $res .= self::formFacture($args[1], $args[2]);
+ } else {
+ $res .= self::formFacture($args[1]);
+ }
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function formFacture($facture_id = 'new', $projet_id = null)
+ {
+ global $core;
+ commonDroits::min(1);
+ cubePage::autoComplete();
+ cubePage::emptyField();
+ cubePage::ui('Sortable');
+
+ $daoProjet = new extranetDAOProjet($core->con);
+ $dao = new extranetDAOFacture($core->con);
+
+ $projet_id = isset($_POST['projet_id']) && $_POST['projet_id'] > 0?$_POST['projet_id']:$projet_id;
+
+ if ($facture_id == 'new') {
+ $facture = $dao->cree();
+ } elseif ($facture_id == 'ws') {
+ $facture = $dao->cree();
+ $facture->facture_id = 'ws';
+ } else {
+ $facture = $dao->selectById($facture_id);
+ }
+
+ if (!is_null($projet_id) && $facture_id == 'new') {
+ $projet = $daoProjet->selectById($projet_id);
+ $facture->projet_id = $projet->projet_id;
+ $facture->client = $projet->client;
+ $facture->projet = $facture->nom = $projet->nom;
+ $lignes = array();
+ foreach($projet->taches as $tache) {
+ $lignes[] = array('montant' => $tache->budget, 'titre' => $tache->nom, 'description' => '');
+ }
+ $facture->lignes = $lignes;
+ } elseif ($facture_id == 'ws') {
+ if (is_null($projet_id)) {
+ $daoClient = new commonDAOClient($core->con);
+ $client = $daoClient->selectById($_POST['client_id']);
+ $facture->projet_id = 'new';
+ $facture->client = $client->rs;
+ $facture->client_id = $client->utilisateur_id;
+ $facture->projet = __('Nouveau projet');
+ $facture->nom = 'Fluidbook';
+ } else {
+ $projet = $daoProjet->selectById($projet_id);
+ $facture->projet_id = $projet->projet_id;
+ $facture->client = $projet->client;
+ $facture->projet = $facture->nom = $projet->nom;
+ }
+ $lignes = array();
+ $b = $core->con->select('SELECT * FROM ws.book WHERE bid IN(' . implode(',', array_keys($_POST['book_facture'])) . ')');
+ while ($b->fetch()) {
+ $lignes[] = array('book' => $b->bid, 'montant' => 0, 'titre' => 'Fluidbook « ' . $b->titre . ' »', 'description' => '');
+ }
+ $facture->lignes = $lignes;
+ }
+
+ $res = '';
+ $res .= '
';
+ $res .= '
';
+ return $res;
+ }
+
+ public static function previewFacture($args)
+ {
+ global $core;
+ commonDroits::min(1);
+ $dao = new extranetDAOFacture($core->con);
+ $facture = $dao->selectById($args[1]);
+
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+
+ $res .= '';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function formPrintFactures()
+ {
+ global $core;
+ $last = $core->user->getLastPrint();
+ $res = '';
+ if ($last['date']) {
+ $res .= '| ' . __('Dernière factures imprimées') . ' : | ' . __('Factures') . ' |
';
+ }
+ $res .= '| ' . __('Factures à imprimer') . ' | ' . form::field('factures', 20, 64) . ' |
';
+ $res .= '| ' . __('Ex') . ' : 1;3-5;7;9 ' . __('signifie factures') . ' 1,3,4,5,7,9 |
';
+ return $res;
+ }
public static function chiffres($args)
{
diff --git a/inc/extranet/Controlleur/url/_common.php b/inc/extranet/Controlleur/url/_common.php
deleted file mode 100644
index 1b991eb57..000000000
--- a/inc/extranet/Controlleur/url/_common.php
+++ /dev/null
@@ -1,10 +0,0 @@
-
\ No newline at end of file
diff --git a/inc/extranet/Controlleur/url/class.extranet.url.client.php b/inc/extranet/Controlleur/url/class.extranet.url.client.php
deleted file mode 100644
index 2b6da9b12..000000000
--- a/inc/extranet/Controlleur/url/class.extranet.url.client.php
+++ /dev/null
@@ -1,277 +0,0 @@
-user->getSettings('clients');
-
- $shortcuts = array();
- $shortcuts[] = '';
- $filtres = array();
- $filtres[] = new commonFiltre(__('Ayant un projet'), 'status_client_projet', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Ayant des impayés'), 'impaye', $settings['filtres']);
- $res = commonPage::barre($filtres, 'filtreClients', 'clients', $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeClients();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeClients($dashboard = null, $settings = null)
- {
- global $core;
- commonDroits::min(1);
- $settings = is_null($settings)?$core->user->getSettings('clients'):$settings;
- $change = is_null($dashboard)?'Client':'Dashboard/' . $dashboard;
- $dao = new commonDAOEntreprise($core->con);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $dao->setFiltres($settings['filtres']);
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
-
- $res = '';
- $res .= '| ' . commonUrl::orderby('#', 'entreprise_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Raison sociale'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . __('Contacts') . ' | ';
- $res .= '' . __('Notes') . ' | ';
- $res .= '' . commonUrl::orderby('CA', 'ca', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby('Impayés', 'impaye', $settings, 'sort' . $change) . ' | ';
- $res .= ' | |
';
- $i = 0;
- foreach($liste as $id => $client) {
- if (!is_array($client->contacts)) {
- fb($client);
- continue;
- }
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $client->entreprise_id . ' | ';
- $res .= '' . $client->nom . ' | ';
- $contacts = array();
-
- foreach($client->contacts as $c) {
- $contacts[] = '';
- }
-
- $res .= '' . implode(', ', $contacts) . ' | ';
- $res .= ' | ';
- $res .= '';
- if ($client->ca) {
- $res .= '';
- }
-
- $res .= ' | ';
- if ($client->impaye) {
- $res .= ' | ';
- } else {
- $res .= ' | ';
- }
-
- $res .= ' | ';
- if (is_null($client->ca)) {
- $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function clientDetailCa($entreprise_id)
- {
- global $core;
- $dao = new commonDAOEntreprise($core->con);
- $annees = $dao->getCaDetails($entreprise_id);
- $res = '';
- $i = 0;
- foreach($annees as $annee => $ca) {
- $class = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ' . $annee . ' | ' . number_format($ca, 0, ',', ' ') . ' ⬠|
';
- $i++;
- }
- return $res;
- }
-
- public static function clientDetailImpaye($entreprise_id)
- {
- global $core;
- $dao = new extranetDAOFacture($core->con);
- $daoClient = new commonDAOEntreprise($core->con);
- $factures = $dao->getImpayesOfClient($entreprise_id);
- $client = $daoClient->selectById($entreprise_id);
- $res = '';
- $i = 0;
- foreach($factures as $facture) {
- $class = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $facture->facture_id . ' | ';
- $res .= '';
- if ($facture->facture_id > 0) {
- $res .= '';
- } else {
- $res .= $facture->nom ;
- }
- $res .= ' | ';
- $tva = cubeTaxes::tva($client->pays);
- $res .= '' . number_format($facture->total_ht, 0, ',', '') . ' â¬';
- if ($tva > 0 && $tva != 'UE') {
- $res .= ' HT | ' . number_format(cubePrices::HTtoTTC($facture->total_ht, $tva), 2, ',', '') . ' ⬠TTC';
- } else {
- $res .= ' | | ';
- }
- $res .= '
';
- $i++;
- }
- return $res;
- }
-
- public static function formClient($entreprise_id = 'new')
- {
- global $core;
- commonDroits::min(1);
- $dao = new commonDAOEntreprise($core->con);
- $daoUtilisateur = new commonDAOUtilisateur($core->con);
- if ($entreprise_id == 'new') {
- $client = $dao->cree();
- } else {
- $client = $dao->selectById($entreprise_id);
- }
-
- $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('entreprise_id', $client->entreprise_id) . '' . $client->entreprise_id . ' |
';
- $res .= '| ' . __('Raison sociale') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
- $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
- $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
- $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
- $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
- $res .= '| ' . __('Adresse de facturation') . ' | ' . form::textarea('adresse_facturation', 40, 3, $client->adresse_facturation) . ' |
';
- $res .= '| ' . __('Numéro de TVA intracommunautaire') . ' | ' . form::field('tva_intra', 15, 13, $client->tva_intra) . ' |
';
- $res .= '| ' . __('Fluidbook Workshop') . ' |
';
- $res .= '| ' . __('Grade') . ' | ' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . ' |
';
- if ($entreprise_id == 'new' || !$client->ws_admin) {
- $class = 'empty-field';
- $default_id = '';
- $default = __('Entrez le nom du revendeur ou de l\'administrateur');
- } else {
- $class = '';
- $default_id = $client->ws_admin;
- $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');
- $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';
- }
-
- $d = $dao->getWSDatas($entreprise_id);
-
- $res .= '| ' . __('Revendeur / Administrateur') . ' | ' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . ' |
';
- if (!is_null($d)) {
- $res .= '| ' . __('Entité facturable') . ' | ' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ') |
';
- $res .= '| ' . __('Administrateur responsable') . ' | ' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ') |
';
- }
- if ($entreprise_id == 'new') {
- $daoContact = new commonDAOClient($core->con);
- $contact = $daoContact->cree();
- $res .= '| ' . __('Contact') . ' |
';
- $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field(array('contact[email]'), 30, 128, $contact->email) . ' |
';
- $res .= '| ' . __('Mot de passe') . ' | ' . form::field(array('contact[password]'), 30, 128, $contact->password) . ' |
';
- $res .= '| ' . __('Prénom') . ' | ' . form::field(array('contact[prenom]'), 30, 128, $contact->prenom) . ' |
';
- $res .= '| ' . __('Nom') . ' | ' . form::field(array('contact[nom]'), 30, 128, $contact->nom) . ' |
';
- $res .= '| ' . __('Téléphone') . ' | ' . form::field(array('contact[telephone]'), 20, 128, $contact->telephone) . ' |
';
- $res .= '| ' . __('Mobile') . ' | ' . form::field(array('contact[mobile]'), 20, 128, $contact->mobile) . ' |
';
- $res .= '| ' . __('Fax') . ' | ' . form::field(array('contact[fax]'), 20, 128, $contact->fax) . ' |
';
- $res .= '| ' . __('Langue') . ' | ' . form::combo(array('contact[lang]'), cubeLang::getAvailableLangs(true), $contact->lang) . ' |
';
- }
- return $res;
- }
-
- public static function listeContacts($entreprise_id)
- {
- global $core;
- commonDroits::min(1);
- $dao = new commonDAOEntreprise($core->con);
- $contacts = $dao->getContacts($entreprise_id);
-
- $res = '';
- $res .= ' |
';
- $i = 0;
- foreach($contacts as $contact) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ' . trim($contact->prenom . ' ' . $contact->nom) . ' | ';
- $res .= '' . $contact->email . ' | ';
- $res .= 'FTP | ';
- $res .= 'Se connecter comme ... | ';
- $res .= ' |
';
- $i++;
- }
- $res .= '
';
- return $res;
- }
-
- public static function formContact($client_id = 'new', $entreprise_id = null)
- {
- global $core;
- commonDroits::min(1);
-
- $dao = new commonDAOClient($core->con);
- if ($client_id == 'new') {
- $client = $dao->creeFromEntreprise($entreprise_id);
- } else {
- $client = $dao->selectById($client_id);
- }
-
- $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('grade', 0) . form::hidden('entreprise', $client->entreprise) . form::hidden('utilisateur_id', $client->utilisateur_id) . '' . $client->utilisateur_id . ' |
';
- $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field('email', 30, 128, $client->email) . ' |
';
- $res .= '| ' . __('Mot de passe') . ' | ' . form::field('password', 30, 128, $client->password) . ' |
';
- $res .= '| ' . __('Prénom du contact') . ' | ' . form::field('prenom', 30, 128, $client->prenom) . ' |
';
- $res .= '| ' . __('Nom du contact') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
- $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
- $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
- $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
- $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
- $res .= '| ' . __('Téléphone') . ' | ' . form::field('telephone', 20, 128, $client->telephone) . ' |
';
- $res .= '| ' . __('Mobile') . ' | ' . form::field('mobile', 20, 128, $client->mobile) . ' |
';
- $res .= '| ' . __('Fax') . ' | ' . form::field('fax', 20, 128, $client->fax) . ' |
';
- $res .= '| ' . __('Langue') . ' | ' . form::combo('lang', cubeLang::getAvailableLangs(true), $client->lang) . ' |
';
- if ($client_id != 'new') {
- $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
- $res .= ' | ' . __('FTP') . ' |
';
- $res .= ' | ' . __('Se connecter comme ...') . ' |
';
- $res .= '| ' . __("Paramètres de connexion à l'extranet") . ' | ' . __('Adresse') . ' : http://extranet.cubedesigners.com/ ' . __("Nom d'utilisateur") . ' : ' . $client->email . ' ' . __('Mot de passe') . ' : ' . $client->password . ' |
';
- $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
- // $res .= '| ' . __("Paramètres de connexion au FTP") . ' | ' . __('Serveur FTP') . ' : extranet.cubedesigners.com (ftp://extranet.cubedesigners.com) ' . __("Nom d'utilisateur") . ' : ' . $client->email . ' ' . __('Mot de passe') . ' : ' . $client->password . ' |
';
- }
- return $res;
- }
-
- public static function formNotes($utilisateur_id)
- {
- global $core;
- commonDroits::min(1);
- $dao = new commonDAOUtilisateur($core->con);
- $utilisateur = $dao->selectById($utilisateur_id);
- $res = '| ' . form::hidden('utilisateur_id', $utilisateur_id) . ' |
';
- $res .= '| ' . form::textarea('notes', 100, 30, $utilisateur->notes) . ' |
';
- $res .= ' |
';
- return $res;
- }
-
-}
-
-?>
\ No newline at end of file
diff --git a/inc/extranet/Controlleur/url/class.extranet.url.devis.php b/inc/extranet/Controlleur/url/class.extranet.url.devis.php
deleted file mode 100644
index 02d9038d7..000000000
--- a/inc/extranet/Controlleur/url/class.extranet.url.devis.php
+++ /dev/null
@@ -1,335 +0,0 @@
-user->grade == 0) {
- return self::devis_client($args);
- }
- $settings = $core->user->getSettings('devis');
- commonDroits::min(1);
-
- $shortcuts = array();
- $shortcuts[] = '' . $core->typo->Ajouter('Créer un devis') . '';
-
- $filtres = array();
- $filtres[] = new commonFiltre(__('Créées par'), 'equipier', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Status'), 'status_devis', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Année'), 'annee_facture', $settings['filtres']);
-
- $res = commonPage::barre($filtres, 'filtreDevis', 'devis' , $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeDevis();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function devis_client($args)
- {
- global $core;
-
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeDevis();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeDevis($dashboard = null, $settings = null)
- {
- global $core;
-
- if ($core->user->grade == 0) {
- return self::listeDevisClient($dashboard, $settings);
- } else {
- return self::listeDevisEquipier($dashboard, $settings);
- }
- }
-
- public static function contextDevis($id)
- {
- global $core;
- $res = '';
- return $res;
- }
-
- public static function listeDevisEquipier($dashboard = null, $settings = null)
- {
- global $core;
- commonDroits::min(1);
- $settings = is_null($settings)?$core->user->getSettings('devis'):$settings;
- $change = is_null($dashboard)?'Devis':'Dashboard/' . $dashboard;
- $context_id = is_null($dashboard)?'contextDevis':'contextDashboard_' . $dashboard;
-
- $dao = new extranetDAODevis($core->con);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $dao->setFiltres($settings['filtres']);
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
- $res = self::contextDevis($context_id);
- $res .= '';
- $res .= '| ' . commonUrl::orderby('#', 'devis_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Crée par'), 'createur', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | ';
- $res .= ' | | |
';
- $i = 0;
- foreach($liste as $devis) {
- $droits = extranetDroits::devis($devis, 'w', false);
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $devis->devis_id . ' | ';
- $res .= '' . $devis->nom . ' | ';
- $res .= '' . $devis->client . ' | ';
- $res .= '' . $devis->createur . ' | ';
- $res .= '' . date(__('d/m/Y'), $devis->date_creation) . ' | ';
- $res .= '' . $devis->total_ht . ' | ';
-
- if ($devis->status == 0) {
- $res .= '' . $core->devis_status[$devis->status] . ' | ';
- } else {
- if ($droits) {
- $res .= ' | ';
- } else {
- $res .= '' . $core->devis_status[$devis->status] . ' | ';
- }
- }
-
- if (in_array($devis->status, array(0, 1)) && $droits) {
- $res .= '' . cubeMedia::image(IMG . '/edit.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- $res .= ' | ';
- if ($devis->status == 0) {
- if ($droits) {
- $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- } elseif ($devis->status >= 1) {
- $res .= '' . cubeMedia::image(IMG . '/duplicate.png') . ' | ';
- }
-
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->count(), $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('devis'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function listeDevisClient($dashboard = null, $settings = null)
- {
- global $core;
- cubePage::truePopup();
-
- $dao = new extranetDAODevis($core->con);
- $settings = $core->user->getSettings('devis');
- $liste = $dao->getListeForEntreprise($core->user->entreprise, $settings['orderby'], $settings['sens']);
- $res = '';
- $res .= '| ' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sortDevis') . ' | ';
- $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sortDevis') . ' | ';
- $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sortDevis') . ' | ';
- $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sortDevis') . ' | ';
- $res .= ' | ';
- $i = 0;
- foreach($liste as $devis) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $devis->nom . ' | ';
- $res .= '' . date(__('d/m/Y'), $devis->date_creation) . ' | ';
- $res .= '' . $devis->total_ht . ' | ';
- $res .= '' . $core->devis_status[$devis->status] . ' | ';
- $res .= ' | ';
- $res .= '
';
- $i++;
- }
- if (!count($liste)) {
- $res .= '| ' . __("Vous n'avez pour le moment aucun devis associé à votre compte") . ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function voirdevis($args)
- {
- global $core;
- // Charge le devis
- $dao = new extranetDAODevis($core->con);
- $devis = $dao->selectById($args[1]);
- // Vérification des droits en lecture de l'utilisateur
- extranetDroits::devis($devis, 'r');
-
- cubeHTTP::relayNoCache(ROOT . '/devis/' . $args[1] . '.pdf');
- }
-
- public static function editedevis($args)
- {
- global $core;
- commonDroits::min(1);
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= self::formDevis($args[1]);
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function formDevis($devis_id = 'new')
- {
- global $core;
- cubePage::autocomplete();
- cubePage::emptyField();
- cubePage::ui('Sortable');
- commonDroits::min(1);
- $dao = new extranetDAODevis($core->con);
- if ($devis_id == 'new') {
- $devis = $dao->cree();
- } else {
- $devis = $dao->selectById($devis_id);
- }
-
- $res = '';
- $res .= '
';
- $res .= '
';
-
- return $res;
- }
-
- public static function previewDevis($args)
- {
- global $core;
-
- $dao = new extranetDAODevis($core->con);
- $devis = $dao->selectById($args[1]);
-
- $daoUtilisateur = new commonDAOUtilisateur($core->con);
- $createur = $devis->createur = $daoUtilisateur->selectById($devis->createur_id);
- $client = $devis->client = $daoUtilisateur->selectById($devis->client_id);
-
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= commonPage::bf();
- $res .= commonPage::bh();
- $res .= '';
- $res .= '
';
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/extranet/Controlleur/url/class.extranet.url.facture.php b/inc/extranet/Controlleur/url/class.extranet.url.facture.php
deleted file mode 100644
index eae5b45c3..000000000
--- a/inc/extranet/Controlleur/url/class.extranet.url.facture.php
+++ /dev/null
@@ -1,427 +0,0 @@
-user->grade == 0) {
- return self::factures_client($args);
- }
- $settings = $core->user->getSettings('factures');
-
- commonDroits::min(1);
- $shortcuts = array();
- if ($core->user->grade != 3) {
- $shortcuts[] = '' . $core->typo->Ajouter('Créer une facture') . '';
- }
- $shortcuts[] = '';
- $filtres = array();
- $filtres[] = new commonFiltre(__('Créées par'), 'equipier', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Status'), 'status_facture', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Année'), 'annee_facture', $settings['filtres']);
- $res = commonPage::barre($filtres , 'filtreFactures', 'factures', $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeFactures();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function factures_client($args)
- {
- global $core;
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeFactures();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function contextFacture($id)
- {
- global $core;
- $res = '';
- return $res;
- }
-
- public static function listeFactures($dashboard = null, $settings = null)
- {
- global $core;
- if ($core->user->grade == 0) {
- return self::listeFacturesClient($dashboard, $settings);
- } else {
- return self::listeFacturesEquipier($dashboard, $settings);
- }
- }
-
- public static function listeFacturesEquipier($dashboard = null, $settings = null)
- {
- global $core;
- cubePage::truePopup();
- cubePage::contextMenu();
-
- $settings = is_null($settings)?$core->user->getSettings('factures'):$settings;
- $change = is_null($dashboard)?'Facture':'Dashboard/' . $dashboard;
- $context_id = is_null($dashboard)?'contextFacture':'contextDashboard_' . $dashboard;
- $dao = new extranetDAOFacture($core->con);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- } else {
- $dao->setFiltres($settings['filtres']);
- }
-
- if ($core->user->grade != 3) {
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
- } else {
- $liste = $dao->getListeCompta($settings['orderby'], $settings['sens'], $settings['limit']);
- }
-
- $res = self::contextFacture($context_id);
- $res .= '';
- $res .= '| ' . commonUrl::orderby('#', 'facture_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Crée par'), 'createur', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | | | |
';
- $i = 0;
- foreach($liste as $facture) {
- $droits = extranetDroits::facture($facture, 'w', false);
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $facture->facture_id . ' | ';
- $res .= '' . $facture->nom . ' | ';
- $res .= '' . $facture->client . ' | ';
- $res .= '' . $facture->createur . ' | ';
- $res .= '' . date(__('d/m/Y'), $facture->date_creation) . ' | ';
- $res .= '' . $facture->total_ht . ' | ';
- if ($facture->status == 0) {
- $res .= '' . $core->factures_status[$facture->status] . ' | ';
- if ($droits) {
- $res .= ' | ';
- $res .= '' . cubeMedia::image(IMG . '/edit.png') . ' | ';
- $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
- } else {
- $res .= ' | | ';
- }
- } elseif ($facture->status >= 1) {
- if ($facture->status < 3) {
- if ($droits) {
- $res .= ' | ';
- } else {
- $res .= '' . $core->factures_status[$facture->status] . ' | ';
- }
- } else {
- $title = $facture->status == 3?__("Voir l'avoir correspondant"):__("Voir la facture annulée correspondante");
- $res .= ' | ';
- }
- if ($facture->facture_id > 0) {
- if ($droits && $facture->status == 1) {
- $res .= '' . '' . cubeMedia::image(IMG . '/edit.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- $res .= ' | ';
- if ($facture->status != 4 && $core->user->grade != 3) {
- $res .= '' . cubeMedia::image(IMG . '/duplicate.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- } else {
- $res .= ' | | | ';
- }
- }
-
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ' ;
- if ($core->user->grade != 3) {
- $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');
- } else {
- $res .= commonPage::pager($settings['page'], $dao->countCompta() , $settings['par_page'], 'page' . $change . '/%d');
- }
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('factures'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function listeFacturesClient($dashboard = null, $settings = null)
- {
- global $core;
- cubePage::truePopup();
- $settings = $core->user->getSettings('factures');
- $dao = new extranetDAOFacture($core->con);
- $liste = $dao->getListeForEntreprise($core->user->entreprise, $settings['orderby'], $settings['sens'], true);
-
- $res = '';
- $res .= '| ' . commonUrl::orderby('#', 'facture_id', $settings, 'sortFacture') . ' | ';
- $res .= '' . commonUrl::orderby(__('Nom'), 'nom', $settings, 'sortFacture') . ' | ';
- $res .= '' . commonUrl::orderby(__('Date'), 'date_creation', $settings, 'sortFacture') . ' | ';
- $res .= '' . commonUrl::orderby(__('Montant HT'), 'total_ht', $settings, 'sortFacture') . ' | ';
- $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sortFacture') . ' | ';
- $res .= ' |
';
- $i = 0;
- foreach($liste as $facture) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $facture->numeroFacture() . ' | ';
- $res .= '' . $facture->nom . ' | ';
- $res .= '' . date(__('d/m/Y'), $facture->date_creation) . ' | ';
- $res .= '' . $facture->total_ht . ' | ';
- $res .= '' . $core->factures_status[$facture->status] . ' | ';
- $res .= ' | ';
- $res .= '
';
- $i++;
- }
- if (!count($liste)) {
- $res .= '| ' . __("Vous n'avez pour le moment aucune facture associée à votre compte") . ' |
';
- }
-
- $res .= '
';
- return $res;
- }
-
- public static function formFacturePaiement($facture_id)
- {
- global $core;
- $dao = new extranetDAOFacture($core->con);
- $facture = $dao->selectById($facture_id);
- $date = !$facture->date_paiement?null:$facture->date_paiement;
-
- $res = '| ' . form::hidden('facture_id', $facture_id) . __('Date de paiement') . ' | ' . cubeForm::date('date_paiement', $date) . ' |
';
- $res .= '| ' . __('Informations de paiement') . ' | ' . form::textarea('informations_paiement', 40, 3, $facture->informations_paiement) . ' |
';
-
- return $res;
- }
-
- public static function voirfacture($args)
- {
- global $core;
- // Charge la facture
- $dao = new extranetDAOFacture($core->con);
- $facture = $dao->selectById($args[1]);
- // Vérification des droits de l'utilisateur
- extranetDroits::facture($facture, 'r', true);
-
- cubeHTTP::relayNoCache(ROOT . '/factures/' . $args[1] . '.pdf');
- }
-
- public static function editefacture($args)
- {
- global $core;
- commonDroits::min(1);
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- if (isset($args[2])) {
- $res .= self::formFacture($args[1], $args[2]);
- } else {
- $res .= self::formFacture($args[1]);
- }
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function formFacture($facture_id = 'new', $projet_id = null)
- {
- global $core;
- commonDroits::min(1);
- cubePage::autoComplete();
- cubePage::emptyField();
- cubePage::ui('Sortable');
-
- $daoProjet = new extranetDAOProjet($core->con);
- $dao = new extranetDAOFacture($core->con);
-
- $projet_id = isset($_POST['projet_id']) && $_POST['projet_id'] > 0?$_POST['projet_id']:$projet_id;
-
- if ($facture_id == 'new') {
- $facture = $dao->cree();
- } elseif ($facture_id == 'ws') {
- $facture = $dao->cree();
- $facture->facture_id = 'ws';
- } else {
- $facture = $dao->selectById($facture_id);
- }
-
- if (!is_null($projet_id) && $facture_id == 'new') {
- $projet = $daoProjet->selectById($projet_id);
- $facture->projet_id = $projet->projet_id;
- $facture->client = $projet->client;
- $facture->projet = $facture->nom = $projet->nom;
- $lignes = array();
- foreach($projet->taches as $tache) {
- $lignes[] = array('montant' => $tache->budget, 'titre' => $tache->nom, 'description' => '');
- }
- $facture->lignes = $lignes;
- } elseif ($facture_id == 'ws') {
- if (is_null($projet_id)) {
- $daoClient = new commonDAOClient($core->con);
- $client = $daoClient->selectById($_POST['client_id']);
- $facture->projet_id = 'new';
- $facture->client = $client->rs;
- $facture->client_id = $client->utilisateur_id;
- $facture->projet = __('Nouveau projet');
- $facture->nom = 'Fluidbook';
- } else {
- $projet = $daoProjet->selectById($projet_id);
- $facture->projet_id = $projet->projet_id;
- $facture->client = $projet->client;
- $facture->projet = $facture->nom = $projet->nom;
- }
- $lignes = array();
- $b = $core->con->select('SELECT * FROM ws.book WHERE bid IN(' . implode(',', array_keys($_POST['book_facture'])) . ')');
- while ($b->fetch()) {
- $lignes[] = array('book' => $b->bid, 'montant' => 0, 'titre' => 'Fluidbook « ' . $b->titre . ' »', 'description' => '');
- }
- $facture->lignes = $lignes;
- }
-
- $res = '';
- $res .= '
';
- $res .= '
';
- return $res;
- }
-
- public static function previewFacture($args)
- {
- global $core;
- commonDroits::min(1);
- $dao = new extranetDAOFacture($core->con);
- $facture = $dao->selectById($args[1]);
-
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
-
- $res .= '';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function formPrintFactures()
- {
- global $core;
- $last = $core->user->getLastPrint();
- $res = '';
- if ($last['date']) {
- $res .= '| ' . __('Dernière factures imprimées') . ' : | ' . __('Factures') . ' |
';
- }
- $res .= '| ' . __('Factures à imprimer') . ' | ' . form::field('factures', 20, 64) . ' |
';
- $res .= '| ' . __('Ex') . ' : 1;3-5;7;9 ' . __('signifie factures') . ' 1,3,4,5,7,9 |
';
- return $res;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/extranet/Controlleur/url/class.extranet.url.projet.php b/inc/extranet/Controlleur/url/class.extranet.url.projet.php
deleted file mode 100644
index 98271f0ef..000000000
--- a/inc/extranet/Controlleur/url/class.extranet.url.projet.php
+++ /dev/null
@@ -1,353 +0,0 @@
-user->getSettings('projets');
-
- $shortcuts = array();
- $shortcuts[] = '';
-
- $filtres = array();
- $filtres[] = new commonFiltre(__('Crée par'), 'equipier', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Status'), 'status_projet', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Année'), 'annee', $settings['filtres']);
-
- $res = commonPage::barre($filtres, 'filtreProjet', 'projets', $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeProjets();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeProjets($dashboard = null, $settings = null)
- {
- global $core;
- commonDroits::min(1);
- $settings = is_null($settings)?$core->user->getSettings('projets'):$settings;
- $change = is_null($dashboard)?'Projet':'Dashboard/' . $dashboard;
-
- $res = '';
- $res .= '| ' . commonUrl::orderby('#', 'projet_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Projet'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Année'), 'annee_fin', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Chef'), 'chef', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Facturé'), 'rapport_facturation', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Payé'), 'rapport_paiement', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby('B', 'budget', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby('Pr', 'progression', $settings, 'sort' . $change) . ' | ';
- $res .= ' |
';
-
- $dao = new extranetDAOProjet($core->con);
- $dao->setFiltres($settings['filtres']);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);
-
- $i = 0;
- foreach($liste as $projet) {
- $droits = extranetDroits::projet($projet, false);
-
- $projet->progression = !$projet->progression?'-':$projet->progression . '%';
- $projet->jours_prevus = !$projet->jours_prevus?'-':$projet->jours_prevus;
- $projet->jours_consommes = !$projet->jours_consommes?'-':$projet->jours_consommes;
-
- $projet->budget = !$projet->budget || !$droits?'-':$projet->budget;
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $projet->projet_id . ' | ';
- $res .= '' . $projet->nom . ' | ';
- $res .= '' . $projet->client . ' | ';
- $res .= '' . $projet->annee_fin . ' | ';
- $res .= '' . $projet->chef . ' | ';
- if ($droits) {
- $res .= '' . $core->projets_status[$projet->status] . ' | ';
- } else {
- $res .= '' . $core->projets_status[$projet->status] . ' | ';
- }
-
- $rf = $projet->rapport_facturation;
- if ($projet->budget == '-') {
- $rapport_facturation = '-';
- } elseif (!$rf) {
- $rapport_facturation = __('Non');
- } elseif ($rf == 1) {
- $rapport_facturation = __('Oui');
- } elseif ($rf < 1) {
- $rapport_facturation = __('Partie');
- } elseif ($rf > 1) {
- $rapport_facturation = __('Trop');
- }
-
- $rp = $projet->rapport_paiement;
- if ($projet->budget == '-') {
- $rapport_paiement = '-';
- } elseif (!$rp) {
- $rapport_paiement = __('Non') ;
- } elseif ($rp == 1) {
- $rapport_paiement = __('Oui');
- } elseif ($rp < 1) {
- $rapport_paiement = __('Partie');
- } elseif ($rp > 1) {
- $rapport_paiement = __('Trop');
- }
-
- $res .= '';
- if ($projet->status == 1 && !$rf) {
- $res .= '' . $rapport_facturation . '';
- } else {
- $res .= $rapport_facturation;
- }
- $res .= ' | ';
- $res .= '' . $rapport_paiement . ' | ';
-
- $res .= '' . $projet->budget . ' | ';
- // $res .= '' . $projet->jours_prevus . ' | ';
- // $res .= '' . $projet->jours_consommes . ' | ';
- $res .= '' . $projet->progression . ' | ';
- $res .= '' . cubeMedia::image(IMG . '/view.png') . ' | ';
-
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('projets'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function projet($args)
- {
- global $core;
- commonDroits::min(1);
-
- $shortcuts = array();
- $shortcuts[] = '';
- $shortcuts[] = '';
-
- $res = commonPage::barre(null, null, null, $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeProjet($args[1]);
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeProjet($projet_id)
- {
- global $core;
- commonDroits::min(1);
-
- $res = '';
- $res .= '| # | ';
- $res .= '' . __('Projet') . ' / ' . __('Tâche') . ' | ';
- $res .= '' . __('Client') . ' / ' . __('Catégorie') . ' | ';
- $res .= '' . __('Année') . ' | ';
- $res .= '' . __('Chef de projet') . ' | ';
- $res .= '' . __('Status') . ' | ';
- $res .= 'B | ';
- $res .= 'Pl | ';
- $res .= 'Co | ';
- $res .= 'Pr | ';
- $res .= ' | |
';
-
- $dao = new extranetDAOProjet($core->con);
- $projet = $dao->selectById($projet_id);
-
- $hasFacture = $dao->hasFacture($projet_id);
-
- $droits = extranetDroits::projet($projet, false);
-
- $projet->progression = !$projet->progression?'-':$projet->progression . '%';
- $projet->jours_prevus = !$projet->jours_prevus?'-':$projet->jours_prevus;
- $projet->jours_consommes = !$projet->jours_consommes?'-':$projet->jours_consommes;
-
- $projet->budget = !$projet->budget || !$droits?'-':$projet->budget;
-
- $res .= '';
- $res .= '| ' . $projet->projet_id . ' | ';
- $res .= '' . $projet->nom . ' | ';
- $res .= '' . $projet->client . ' | ';
- $res .= '' . $projet->annee_fin . ' | ';
- $res .= '' . $projet->chef . ' | ';
- if ($droits) {
- $res .= '' . $core->projets_status[$projet->status] . ' | ';
- } else {
- $res .= '' . $core->projets_status[$projet->status] . ' | ';
- }
- $res .= '' . $projet->budget . ' | ';
- $res .= '' . $projet->jours_prevus . ' | ';
- $res .= '' . $projet->jours_consommes . ' | ';
- $res .= '' . $projet->progression . ' | ';
- if ($droits) {
- $res .= ' | ';
- if (!count($projet->taches) && !$hasFacture) {
- $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- } else {
- $res .= ' | | ';
- }
- $res .= '
';
- $i = 1;
- foreach($projet->taches as $tache) {
- $tache->budget = !$tache->budget || !$droits?'-':$tache->budget;
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| T' . $i . ' | ';
- $res .= '' . $tache->nom . ' | ';
- $res .= '' . $core->categories[$tache->categorie] . ' | ';
- $res .= ' | ';
- $res .= ' | ';
- $res .= ' | ';
- $res .= '' . $tache->budget . ' | ';
-
- if ($tache instanceof extranetTacheNormale) {
- $progression = !$tache->progression?'-':$tache->progression . '%';
- $jours_prevus = !$tache->jours_prevus?'-':$tache->jours_prevus;
- $jours_consommes = !$tache->jours_consommes?'-':$tache->jours_consommes;
- $res .= '' . $jours_prevus . ' | ';
- $res .= '' . $jours_consommes . ' | ';
- $res .= '' . $progression . ' | ';
- if ($droits) {
- $res .= ' | ';
- } else {
- $res .= ' | ';
- }
- } else {
- $res .= '' . __('Tâche sous-traitée') . ' | ';
- if ($droits) {
- $res .= ' | ';
- } else {
- $res .= ' | ';
- }
- }
-
- $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
-
- $res .= '
';
- $i++;
- }
- $res .= '
';
- return $res;
- }
-
- public static function formProjet($projet_id = 'new')
- {
- global $core;
- commonDroits::min(1);
-
- $dao = new extranetDAOProjet($core->con);
- if ($projet_id == 'new') {
- $projet = $dao->cree($core->user->utilisateur_id);
- } else {
- $projet = $dao->selectById($projet_id);
- }
-
- $daoClient = new commonDAOClient($core->con);
- $clients = $daoClient->getListe();
-
- $listeClients = array();
- foreach($clients as $client) {
- $listeClients[$client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')'] = $client->utilisateur_id;
- }
- ksort($listeClients);
-
- $daoEquipier = new commonDAOEquipier($core->con);
- $equipiers = $daoEquipier->getListe();
-
- $listeEquipiers = array();
- foreach($equipiers as $equipier) {
- $listeEquipiers[$equipier->prenom . ' ' . $equipier->nom . ' (' . $equipier->agence . ')'] = $equipier->utilisateur_id;
- }
-
- $daoDevis = new extranetDAODevis($core->con);
- $devis = $daoDevis->getListeValidesLibres($projet_id);
- $listeDevis = array('--' => 0);
- foreach($devis as $id => $dev) {
- $listeDevis[$dev->nom] = $dev->devis_id;
- }
-
- $res = '| ' . __('Numéro de projet') . ' | ' . form::hidden('projet_id', $projet->projet_id) . '' . $projet->projet_id . ' |
';
- $res .= '| ' . __('Nom du projet') . ' | ' . form::textarea('nom', 50, 3, html::escapeHTML($projet->nom)) . ' |
';
- $res .= '| ' . __('Chef de projet') . ' | ';
- if ($core->user->grade > 1) {
- $res .= form::combo('chef', $listeEquipiers, $projet->chef_id);
- } else {
- $res .= form::hidden('chef', $projet->chef_id) . ' ' . $projet->chef;
- }
- $res .= ' |
';
- $res .= '| ' . __('Date de début') . ' | ' . cubeForm::dateFree('date_debut', $projet->date_debut) . ' |
';
- $res .= '| ' . __('Deadline') . ' | ' . cubeForm::dateFree('deadline', $projet->deadline) . ' |
';
- $res .= '| ' . __('Date de fin') . ' | ' . cubeForm::dateFree('date_fin', $projet->date_fin) . ' |
';
- $res .= '| ' . __('Client') . ' | ' . form::combo('client', $listeClients, $projet->client_id) . ' |
';
- $res .= '| ' . __('Devis') . ' | ' . form::combo('devis', $listeDevis, $projet->devis) . ' |
';
- return $res;
- }
-
- public static function formTache($tache)
- {
- global $core;
- commonDroits::min(1);
-
- $res = '| ' . __('Numéro de tâche') . ' | ' . form::hidden('projet', $tache->projet) . form::hidden('tache_id', $tache->tache_id) . '' . $tache->tache_id . ' |
';
- $res .= '| ' . __('Catégorie') . ' | ' . form::combo('categorie', array_flip($core->categories), $tache->categorie) . ' |
';
- $res .= '| ' . __('Nom') . ' | ' . form::textarea('nom', 50, 3, html::escapeHTML($tache->nom)) . ' |
';
-
- return $res;
- }
-
- public static function formTacheNormale($tache_id, $projet_id = null)
- {
- global $core;
- commonDroits::min(1);
- $dao = new extranetDAOTache($core->con);
- if ($tache_id == 'new') {
- $tache = $dao->creeNormale();
- $tache->projet = $projet_id;
- } else {
- $tache = $dao->selectById($tache_id);
- }
- $res = self::formTache($tache);
- $res .= '| ' . __('Taux journalier') . ' | ' . form::field('taux_journalier', 6, 6, $tache->taux_journalier) . ' |
';
- $res .= '| ' . __('Budget') . ' | ' . form::hidden('type', '0') . form::field('budget', 6, 6, $tache->budget) . ' |
';
- return $res;
- }
-
- public static function formTacheSousTraitee($tache_id, $projet_id = null)
- {
- global $core;
- commonDroits::min(1);
- $dao = new extranetDAOTache($core->con);
- if ($tache_id == 'new') {
- $tache = $dao->creeSousTraitee();
- $tache->projet = $projet_id;
- } else {
- $tache = $dao->selectById($tache_id);
- }
- $res = self::formTache($tache);
- $res .= '| ' . __('Budget') . ' | ' . form::hidden('type', '1') . form::field('budget', 6, 6, $tache->budget) . ' |
';
- return $res;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/extranet/Controlleur/url/class.extranet.url.timereport.php b/inc/extranet/Controlleur/url/class.extranet.url.timereport.php
deleted file mode 100644
index 946dad684..000000000
--- a/inc/extranet/Controlleur/url/class.extranet.url.timereport.php
+++ /dev/null
@@ -1,133 +0,0 @@
-user->getSettings('timereport');
- $filtres = array();
- $filtres[] = new commonFiltre(__('Participants'), 'equipier_participe', $settings['filtres']);
- $res = commonPage::barre($filtres, 'filtreTimereport', 'timereport', null);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeTimereport();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeTimereport($dashboard = null, $settings = null)
- {
- global $core;
- commonDroits::min(1);
- // Récupère la liste des projets
- $settings = is_null($settings)?$core->user->getSettings('timereport'):$settings;
- $change = is_null($dashboard)?'Timereport':'Dashboard/' . $dashboard;
-
- $dao = new extranetDAOProjet($core->con);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $dao->setFiltres($settings['filtres']);
- $liste = $dao->getProjetsForTimereport($settings['orderby'], $settings['sens'], $settings['limit'], $core->user->utilisateur_id);
- // Extrait la liste des tâches
- $taches = array();
- foreach($liste as $id => $projet) {
- foreach($projet->taches as $tache) {
- if ($tache instanceof extranetTacheNormale) {
- $taches[] = $tache->tache_id;
- }
- }
- }
- // Fixe les limites des jours à afficher
- $time = cubeDate::round(null, 'd'); // aujourd'hui
- $avant = $time - (3600 * 24 * 15); // 15 jours avant
- $apres = $time; // aujourd'hui
- // Récupère la liste des timereports à afficher
- $daoTimereport = new extranetDAOTimereport($core->con);
- $timereports = $daoTimereport->getListe($taches, $core->user->utilisateur_id, array('start' => $avant, 'end' => $apres));
- // Affiche le tableau
- $res = '';
- $res .= '| ' . commonUrl::orderby('#', 'projet_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Projet'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Client'), 'client', $settings, 'sort' . $change) . ' | ';
- for($date = $avant;$date <= $apres;$date += 3600 * 24) {
- $res .= '' . date('d', $date) . '' . cubeMedia::spacer(16, 1, '', 'spacer') . ' | ';
- }
- $res .= '' . commonUrl::orderby('Pr', 'progression', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby('Co', 'jours_consommes', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby('Pl', 'jours_prevus', $settings, 'sort' . $change) . ' | ';
- $res .= '
';
-
- foreach($liste as $projet) {
- $res .= '';
- $res .= '| ' . $projet->projet_id . ' | ';
- $res .= '' . $projet->nom . ' | ';
- $res .= '' . $projet->client . ' | ';
- for($date = $avant;$date <= $apres;$date += 3600 * 24) {
- $cc = self::getClassOfDay($date);
- $class = ($cc == '')?'':' class="' . $cc . '"';
- $res .= ' | ';
- }
- $projet->progression = !$projet->progression?'-':$projet->progression . '%';
- $projet->jours_prevus = !$projet->jours_prevus?'-':$projet->jours_prevus;
- $projet->jours_consommes = !$projet->jours_consommes?'-':$projet->jours_consommes;
- $res .= '' . $projet->progression . ' | ';
- $res .= '' . $projet->jours_consommes . ' | ';
- $res .= '' . $projet->jours_prevus . ' | ';
- $res .= '
';
- $i = 1;
- foreach($projet->taches as $tache) {
- if ($tache instanceof extranetTacheNormale) {
- $res .= '';
- $res .= '| T' . $i . ' | ';
- $res .= '' . $tache->nom . ' | ';
- $res .= '' . $core->categories[$tache->categorie] . ' | ';
- for($date = $avant;$date <= $apres;$date += (3600 * 24)) {
- $hh = isset($timereports[$tache->tache_id][$date])?$timereports[$tache->tache_id][$date]->heures:'';
- $c = ($hh == '')?'':'filled';
- $cc = trim(self::getClassOfDay($date) . ' ' . $c);
- $class = ($cc == '')?'':' class="' . $cc . '"';
- $res .= '' . form::field(array('timereport', 't_' . $date . '_' . $tache->tache_id), 1, 2, $hh, 'timereport_field') . ' | ';
- }
- $tache->progression = !$tache->progression?'-':$tache->progression . '%';
- $tache->jours_prevus = !$tache->jours_prevus?'-':$tache->jours_prevus;
- $tache->jours_consommes = !$tache->jours_consommes?'-':$tache->jours_consommes;
- $res .= '' . $tache->progression . ' | ';
- $res .= '' . $tache->jours_consommes . ' | ';
- $res .= '' . $tache->jours_prevus . ' | ';
- $res .= '
';
- $i++;
- }
- }
- }
-
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->countActifs(), $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('projets'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function getClassOfDay($date)
- {
- $aujourdhui = cubeDate::round(null, 'd');
- $highlight = ($date == $aujourdhui);
- $we = (date('N', $date) >= 6);
- if ($highlight) {
- return 'highlight';
- }
- if ($we) {
- return 'we';
- }
- return '';
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/ws/Controlleur/_common.php b/inc/ws/Controlleur/_common.php
index e0e838ecc..551049511 100644
--- a/inc/ws/Controlleur/_common.php
+++ b/inc/ws/Controlleur/_common.php
@@ -1,6 +1,5 @@
' . wsUrlClient::listeContacts($args[1]) . '
';
+ $extra = '
' . wsUrl::listeContacts($args[1]) . '
';
}
$extra .= '
' . $core->typo->BoutonOK(__('Enregistrer')) . '
';
- commonAjax::form('saveClient', __("Edition d'un client"), wsUrlClient::formClient($args[1]), false, 2, '', $extra);
+ commonAjax::form('saveClient', __("Edition d'un client"), wsUrl::formClient($args[1]), false, 2, '', $extra);
}
public static function formContact($args, &$x)
@@ -19,7 +19,7 @@ class wsAjax extends cubeAjax {
if (!isset($args[2])) {
$args[2] = null;
}
- commonAjax::form('saveContact', __("Edition d'un contact"), wsUrlClient::formContact($args[1], $args[2]));
+ commonAjax::form('saveContact', __("Edition d'un contact"), wsUrl::formContact($args[1], $args[2]));
}
public static function saveClient($args, &$x)
@@ -55,7 +55,7 @@ class wsAjax extends cubeAjax {
$core->refreshWSUsersTree();
- $x->addContent('listeClients', wsUrlClient::listeClients());
+ $x->addContent('listeClients', wsUrl::listeClients());
$x->addClosePopup();
}
@@ -65,9 +65,9 @@ class wsAjax extends cubeAjax {
$dao = new commonDAOClient($core->con);
$client = $dao->sauve($_POST);
$x->addClosePopup();
- $x->addContent('devisAdresseDisplay', wsUrlClient::adresse($client->utilisateur_id, null, 'devis'));
- $x->addContent('factureAdresseDisplay', wsUrlClient::adresse($client->utilisateur_id, null, 'facture'));
- $x->addContent('listeContacts', wsUrlClient::listeContacts($client->entreprise));
+ $x->addContent('devisAdresseDisplay', wsUrl::adresse($client->utilisateur_id, null, 'devis'));
+ $x->addContent('factureAdresseDisplay', wsUrl::adresse($client->utilisateur_id, null, 'facture'));
+ $x->addContent('listeContacts', wsUrl::listeContacts($client->entreprise));
$contacts = array();
$client_contacts = $dao->getContactsOfEntreprise($client->entreprise);
foreach($client_contacts as $c) {
@@ -89,30 +89,30 @@ class wsAjax extends cubeAjax {
$core->refreshWSUsersTree();
- $x->addContent('listeClients', wsUrlClient::listeClients());
+ $x->addContent('listeClients', wsUrl::listeClients());
}
public static function searchClients($args, &$x)
{
- $x->addContent('listeClients', wsUrlClient::listeClients());
+ $x->addContent('listeClients', wsUrl::listeClients());
}
public static function sortClient($args, &$x)
{
commonAjax::sort('clients', $args[1]);
- $x->addContent('listeClients', wsUrlClient::listeClients());
+ $x->addContent('listeClients', wsUrl::listeClients());
}
public static function pageClient($args, &$x)
{
commonAjax::page('clients', $args[1]);
- $x->addContent('listeClients', wsUrlClient::listeClients());
+ $x->addContent('listeClients', wsUrl::listeClients());
}
public static function parPageClient($args, &$x)
{
commonAjax::parPage('clients', $_POST['par_page']);
- $x->addContent('listeClients', wsUrlClient::listeClients());
+ $x->addContent('listeClients', wsUrl::listeClients());
}
public static function supprimeBook($args, &$x)
@@ -120,40 +120,40 @@ class wsAjax extends cubeAjax {
global $core;
$dao = new wsDAOBook($core->con);
$dao->supprime($args[1]);
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function searchPublications($args, &$x)
{
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function pageBooks($args, &$x)
{
commonAjax::page('books', $args[1]);
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function parPageBooks($args, &$x)
{
commonAjax::parPage('books', $_POST['par_page']);
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function sortBooks($args, &$x)
{
commonAjax::sort('books', $args[1]);
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function newBookForm($args, &$x)
{
- commonAjax::form('newBook', __("Créer une nouvelle publication à partir d'une existante"), wsUrlBook::chooseExistingBook(), __('Créer une nouvelle publication'), 3);
+ commonAjax::form('newBook', __("Créer une nouvelle publication à partir d'une existante"), wsUrl::chooseExistingBook(), __('Créer une nouvelle publication'), 3);
}
public static function formChangeBookProprietaire($args, &$x)
{
- commonAjax::form('changeBookProprietaire/' . $args[1], __("Modifier le propriétaire de la publication"), wsUrlBook::changeBookProprietaire($args[1]), __('Enregistrer'), 3);
+ commonAjax::form('changeBookProprietaire/' . $args[1], __("Modifier le propriétaire de la publication"), wsUrl::changeBookProprietaire($args[1]), __('Enregistrer'), 3);
}
public static function filtreBooks($args, &$x)
@@ -164,7 +164,7 @@ class wsAjax extends cubeAjax {
return;
} else {
commonAjax::filtre('books', $_POST);
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
}
@@ -179,7 +179,7 @@ class wsAjax extends cubeAjax {
}
$x->addClosePopup();
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
$x->addTruePopup(SITE_PATH . 'editor/' . $book->book_id);
}
@@ -194,7 +194,7 @@ class wsAjax extends cubeAjax {
$dao = new wsDAOBook($core->con);
$dao->setProprietaire($args[1], $_POST['proprietaire']);
$x->addClosePopup();
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function downbook($args, &$x)
@@ -218,7 +218,7 @@ class wsAjax extends cubeAjax {
if ($book->status < 1) {
$popup = commonAjax::form('downbook/' . $book_id . '/' . $version,
__('Téléchargement du Fluidbook'),
- wsUrlBook::valideDownload($book_id, $version),
+ wsUrl::valideDownload($book_id, $version),
__('Télécharger'), 2, '', '', true);
$x->addOpenPopup($popup);
@@ -244,12 +244,12 @@ class wsAjax extends cubeAjax {
$daoBook = new wsDAOBook($core->con);
$daoBook->setStatus($book_id, $status);
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function formBookChooseProject($book_id)
{
- return commonAjax::form('bookChooseProject', __("Selection d'un projet"), wsUrlBook::chooseBookProject($book_id), __('Suivant'), 3, '', '', true);
+ return commonAjax::form('bookChooseProject', __("Selection d'un projet"), wsUrl::chooseBookProject($book_id), __('Suivant'), 3, '', '', true);
}
public static function bookChooseProject($args, &$x)
@@ -286,7 +286,7 @@ class wsAjax extends cubeAjax {
public static function formBookChooseTache($book_id, $project)
{
- return commonAjax::form('bookChooseTache', __("Selection d'une tâche"), wsUrlBook::chooseBookTache($book_id, $project), __('Enregistrer'), 3, '', '', true);
+ return commonAjax::form('bookChooseTache', __("Selection d'une tâche"), wsUrl::chooseBookTache($book_id, $project), __('Enregistrer'), 3, '', '', true);
}
public static function bookChooseTache($args, &$x)
@@ -334,12 +334,12 @@ class wsAjax extends cubeAjax {
$daoBook->setTache($book_id, $tache);
$x->addClosePopup();
- $x->addContent('listeBooks', wsUrlBook::listeBooks());
+ $x->addContent('listeBooks', wsUrl::listeBooks());
}
public static function changeLang($args, &$x)
{
- $x->addContent('formLang', wsUrlTraduction::formLang($_POST['lang']));
+ $x->addContent('formLang', wsUrl::formLang($_POST['lang']));
}
public static function saveLang($args, &$x)
@@ -498,25 +498,25 @@ class wsAjax extends cubeAjax {
public static function searchDemandes($args, &$x)
{
- $x->addContent('listeDemandes', wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes', wsUrl::listeDemandes());
}
public static function sortDemandes($args, &$x)
{
commonAjax::sort('demandes', $args[1]);
- $x->addContent('listeDemandes', wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes', wsUrl::listeDemandes());
}
public static function pageDemandes($args, &$x)
{
commonAjax::page('demandes', $args[1]);
- $x->addContent('listeDemandes', wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes', wsUrl::listeDemandes());
}
public static function parPageDemandes($args, &$x)
{
commonAjax::parPage('demandes', $_POST['par_page']);
- $x->addContent('listeDemandes', wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes', wsUrl::listeDemandes());
}
public static function supprimeDemande($args, &$x)
@@ -527,7 +527,7 @@ class wsAjax extends cubeAjax {
$dao = new wsDAODemande($core->con);
$dao->supprime($demande_id);
- $x->addContent('listeDemandes', wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes', wsUrl::listeDemandes());
}
public static function filtreDemandes($args, &$x)
@@ -538,7 +538,7 @@ class wsAjax extends cubeAjax {
return;
} else {
commonAjax::filtre('demandes', $_POST);
- $x->addContent('listeDemandes', wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes', wsUrl::listeDemandes());
}
}
@@ -547,7 +547,7 @@ class wsAjax extends cubeAjax {
if (!isset($args[2])) {
$args[2] = null;
}
- commonAjax::form('saveDemande', __("Edition d'une demande"), wsUrlDemande::formDemande($args[1], $args[2]));
+ commonAjax::form('saveDemande', __("Edition d'une demande"), wsUrl::formDemande($args[1], $args[2]));
}
public static function saveDemande($args, &$x)
@@ -566,7 +566,7 @@ class wsAjax extends cubeAjax {
$demande = $dao->setRevendeur($_POST['demande_id'], $_POST['revendeur']);
}
- $x->addContent('listeDemandes' , wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes' , wsUrl::listeDemandes());
$x->addClosePopup();
}
@@ -641,17 +641,15 @@ class wsAjax extends cubeAjax {
if ($reponse == '0') {
$dao->reinitDemande($demande_id);
- } elseif ($reponse == '1') {
+ } else {
$dao->accepteDemande($demande_id, $revendeur_id);
- } elseif ($reponse == '-1') {
- $dao->setStatus($demande_id, 1);
}
+ $x->addAlert(__('Votre choix a bien été prise en compte.'));
if (!isset($args[4])) {
- $x->addAlert(__('Votre choix a bien été prise en compte.'));
$x->addRedirection(SITE_PATH);
} else {
- $x->addContent('listeDemandes' , wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes' , wsUrl::listeDemandes());
}
}
@@ -663,7 +661,7 @@ class wsAjax extends cubeAjax {
$dao = new wsDAODemande($core->con);
$dao->reinitDemande($demande_id);
- $x->addContent('listeDemandes' , wsUrlDemande::listeDemandes());
+ $x->addContent('listeDemandes' , wsUrl::listeDemandes());
}
}
diff --git a/inc/ws/Controlleur/class.ws.url.php b/inc/ws/Controlleur/class.ws.url.php
index 2eedb13b0..5b4ea8db8 100644
--- a/inc/ws/Controlleur/class.ws.url.php
+++ b/inc/ws/Controlleur/class.ws.url.php
@@ -1,11 +1,559 @@
user->getSettings('books');
+
+ $shortcuts = array();
+ if (wsDroits::creation()) {
+ $shortcuts[] = '';
+ }
+
+ $filtres = array();
+ if (wsDroits::revendeur(false)) {
+ $filtres[] = new commonFiltre(__('Status'), 'status_book', $settings['filtres']);
+ }
+ $filtres[] = new commonFiltre(__('Année'), 'annee_book', $settings['filtres']);
+ $res = commonPage::barre($filtres , 'filtreBooks', 'books', $shortcuts);
+ $res .= commonPage::tMain(null, true);
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeBooks();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeBooks($dashboard = null, $settings = null)
+ {
+ global $core;
+ cubePage::truePopup();
+ cubePage::autocomplete();
+ cubePage::contextMenu();
+
+ $droits = wsDroits::getDroits();
+
+ commonDroits::min(1);
+ $settings = is_null($settings)?$core->user->getSettings('books'):$settings;
+ $change = is_null($dashboard)?'Books':'Dashboard/' . $dashboard;
+ $dao = new wsDAOBook($core->con);
+ $context_download_id = is_null($dashboard)?'contextDownloadBook':'contextDashboard_Download' . $dashboard;
+ $context_status_id = is_null($dashboard)?'contextStatusBook':'contextDashboard_Status' . $dashboard;
+
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $dao->setFiltres($settings['filtres']);
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);
+
+ $res = self::contextBookDownload($context_download_id);
+ $res = self::contextBookStatus($context_status_id);
+
+ $res .= '';
+ $res .= '| ' . commonUrl::orderby('#', 'book_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Titre de la publication'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__(''), 'lang', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . __('Pages') . ' | ';
+ if ($droits->revendeur) {
+ $res .= '' . commonUrl::orderby(__('Proprietaire'), 'proprietaire_nom', $settings, 'sort' . $change) . ' | ';
+ } else {
+ $res .= '' . commonUrl::orderby(__('Proprietaire'), 'proprietaire_utilisateur', $settings, 'sort' . $change) . ' | ';
+ }
+ if ($droits->admin) {
+ $res .= '' . commonUrl::orderby(__('Facturation'), 'facturable', $settings, 'sort' . $change) . ' | ';
+ }
+ if ($droits->revendeur) {
+ $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | ';
+ }
+ $res .= str_repeat(' | ', $droits->creation?5:4);
+ $res .= '
';
+ $i = 0;
+
+ $btVoir = cubeMedia::cssRollover($core->typo->Voir('voir', '', false));
+ $btEdit = cubeMedia::cssRollover($core->typo->Editer('éditer', '', false));
+ $btStats = cubeMedia::cssRollover($core->typo->Stats('stats', '', false));
+ $btDownload = cubeMedia::cssRollover($core->typo->BookTelecharger('télécharger', '', false));
+ if ($droits->creation) {
+ $btDel = cubeMedia::cssRollover($core->typo->Supprimer('suppr.', '', false));
+ }
+
+ foreach($liste as $id => $book) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $book->book_id . ' | ';
+ $res .= '' . $book->nom . ' | ';
+ $res .= '' . mb_strtoupper($book->lang) . ' | ';
+ $res .= '' . $book->parametres->pages . ' | ';
+
+ if ($droits->revendeur) {
+ $p = str_replace(" (", '
', $book->proprietaire);
+ $p = trim($p, ')');
+ $res .= ' | ';
+ } else {
+ $res .= '' . $book->proprietaire_utilisateur . ' | ';
+ }
+ if ($droits->admin) {
+ $res .= '' . $book->facturable . ' | ';
+ }
+ if ($droits->revendeur) {
+ if ($droits->admin || $book->status <= 1) {
+ $p = '';
+ if (!is_null($book->projet)) {
+ $p = ' ' . cubeMedia::silk('arrow_right.png') . '';
+ }
+
+ $res .= '' . $p . ' | ';
+ } else if ($book->status > 1) {
+ $res .= '' . $core->books_status[1] . ' | ';
+ }
+ }
+ $res .= ' | ';
+ $res .= ' | ';
+ $res .= '' . $btStats . ' | ';
+ $res .= ' | ';
+ if ($droits->creation) {
+ $res .= '' . $btDel . ' | ';
+ }
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('publications'), false);
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function contextBookDownload($id)
+ {
+ global $core;
+
+ $versions = array();
+ $versions['html'] = array('title' => __('Version online'), 'icon' => cubeMedia::silk('page_white_world.png'));
+ $versions['win-exe'] = array('title' => __('Version offline') . ' - ' . __('Executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));
+ $versions['win-ins'] = array('title' => __('Version offline') . ' - ' . __('Installeur Auto-executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));
+ $versions['mac-exe'] = array('title' => __('Version offline') . ' - ' . __('Exécutable Mac OS X'), 'icon' => cubeMedia::image(IMG . '/macos.png'));
+ $versions['win-cd'] = array('title' => __('Version offline') . ' - ' . __('CD-ROM') . ' / ' . __('Clé USB'), 'icon' => cubeMedia::silk('cd.png'));
+
+ $res = '';
+ return $res;
+ }
+
+ public static function contextBookStatus($id)
+ {
+ global $core;
+
+ if (wsDroits::admin()) {
+ $status = $core->books_status;
+ $status[2] = __('Facturé (associé à un projet)');
+ } else {
+ $status = array();
+ $status[-1] = $core->books_status[-1];
+ $status[0] = $core->books_status[0];
+ }
+
+ $res = '';
+ return $res;
+ }
+
+ public static function traductions($args)
+ {
+ global $core;
+
+ commonDroits::min(5);
+
+ if (count($args) < 2) {
+ $args[1] = 'fr';
+ }
+
+ $allLangs = cubeLang::getCodes($core->user->lang);
+ $existingLangs = array();
+
+ $dao = new wsDAOLang($core->con);
+ $langs = $dao->selectAll();
+ foreach($langs as $lang) {
+ if (!isset($allLangs[$lang->lang_id])) {
+ continue;
+ }
+ $existingLangs[$lang->lang_id] = $allLangs[$lang->lang_id];
+
+ unset($allLangs[$lang->lang_id]);
+ }
+
+ $langs = array(__('Langues configurées') => array_flip($existingLangs), __('Autres langues') => array_flip($allLangs));
+
+ $res = commonPage::barre();
+ $res .= commonPage::tMain(null, false);
+
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= commonPage::bf();
+
+ $res .= '';
+ $res .= self::formLang($args[1]);
+ $res .= '
';
+ $res .= commonPage::bMain(true);
+
+ return $res;
+ }
+
+ public static function formLang($lang_id)
+ {
+ commonDroits::min(5);
+ global $core;
+ $dao = new wsDAOLang($core->con);
+ $lang = $dao->selectById($lang_id);
+
+ $res = '';
+ return $res;
+ }
+
+ public static function getFonts()
+ {
+ $formats = array('ttf', 'otf', 'TTF', 'OTF');
+
+ $dr = opendir(FONT_PATH);
+ $fonts = array();
+ while ($file = readdir($dr)) {
+ if ($file == '.' || $file == '..' || !in_array(files::getExtension($file), $formats)) {
+ continue;
+ }
+ $fonts[$file] = $file;
+ }
+ return $fonts;
+ }
+
+ protected static function getCharsets()
+ {
+ $sets = cubeFlexFontAsset::getSets();
+ $res = array();
+ foreach($sets as $k => $v) {
+ $res[$k] = $k;
+ }
+ return $res;
+ }
+
+ protected static function getNSISLangs()
+ {
+ $res = array();
+ $dir = WS_FILES . '/nsislangs';
+ $dr = opendir($dir);
+ while ($file = readdir($dr)) {
+ if ($file == '.' || $file == '..') {
+ continue;
+ }
+ $e = explode('.', $file);
+ $res[$e[0]] = $e[0];
+ }
+
+ ksort($res);
+ return $res;
+ }
+
+ public static function editor($args)
+ {
+ commonDroits::min(1);
+
+ global $core;
+
+ $args = cubePage::getArgs($args);
+ $book_id = $args[0];
+
+ self::checkDocumentVersionOfBook($book_id);
+
+ if ($book_id == 'new') {
+ $dao = new wsDAOBook($core->con);
+ $book = $dao->creeEmpty($core->user->utilisateur_id, $core->user->lang);
+ http::redirect(SITE_PATH . 'editor/' . $book->book_id);
+ }
+
+ $res = '';
+ $res .= '' . __('Edition de la publication') . ' #' . $args[0] . '';
+ $res .= '';
+ $res .= '';
+ $res .= self::editComposition($args);
+ $res .= '';
+ $res .= '';
+ echo $res;
+ }
+
+ public static function editComposition($args)
+ {
+ $fv = array(session_name() => session_id(),
+ 'book_id' => $args[0]);
+ $res = cubeMedia::flash2(WEBROOT . '/swf/composer.swf?junk=' . TIME, '100%', '100%', $fv, 'composerSwf', 'swfPanel', 10, '#d2d3c7', '', 'false', 'noscale', 'normal', array(), false, true, true);
+ return $res;
+ }
+
+ public static function stats($args)
+ {
+ $bid = (isset($args[1]))?$args[1]:null;
+ $annee = (isset($args[2]))?$args[2]:null;
+ $mois = (isset($args[3]))?$args[3]:null;
+ return wsStats::display($bid, $annee, $mois);
+ }
+
+ public static function viewerp($args)
+ {
+ commonDroits::min(5);
+
+ $args = cubePage::getArgs($args);
+
+ $e = explode('_', $args[0]);
+ if (count($e) == 2 || $e[2] < TIME-10) {
+ $e[2] = TIME;
+ http::redirect(SITE_PATH . 'viewerp/' . implode('_', $e) . '/');
+ exit;
+ }
+
+ $book_id = $e[0];
+
+ self::checkDocumentVersionOfBook($book_id);
+
+ echo self::commonViewer($book_id, $e[1]);
+ }
+
+ public static function vieweru($args)
+ {
+ commonDroits::min(5);
+
+ $args = cubePage::getArgs($args);
+
+ $e = explode('_', $args[0]);
+ if (count($e) == 2 || $e[2] < TIME-10) {
+ $e[2] = TIME;
+ http::redirect(SITE_PATH . 'vieweru/' . implode('_', $e) . '/');
+ exit;
+ }
+
+ $book_id = $e[0];
+
+ self::checkDocumentVersionOfBook($book_id);
+
+ echo self::commonViewer($book_id, $e[1]);
+ }
+
+ public static function viewer($args)
+ {
+ $args = cubePage::getArgs($args);
+
+ $e = explode('_', $args[0]);
+ if (count($e) == 2 || $e[2] < TIME-10) {
+ $e[2] = TIME;
+ http::redirect(SITE_PATH . 'viewer/' . implode('_', $e) . '/');
+ exit;
+ }
+
+ $book_id = $e[0];
+
+ self::checkDocumentVersionOfBook($book_id);
+ wsSecureSWF::checkProtectedSWF();
+
+ echo self::commonViewer($book_id, $e[1]);
+ }
+
+ public static function commonViewer($book_id, $hash)
+ {
+ if (!defined('MINIMIZE_JS')) {
+ define('MINIMIZE_JS', false);
+ }
+ if (!defined('MINIMIZE_CSS')) {
+ define('MINIMIZE_CSS', false);
+ }
+ if (!defined('JQUERY')) {
+ define('JQUERY', false);
+ }
+
+ global $core;
+ global $css;
+ global $js;
+ global $standard;
+ global $meta;
+ global $jsvar;
+
+ $dao = new wsDAOBook($core->con);
+
+ $book = $dao->selectById($book_id);
+ if ($book->hash != $hash) {
+ commonDroits::error();
+ }
+
+ if (!$dao->isUpToDate($book_id)) {
+ $dao->compile($book_id);
+ $dao->touchCompile($book_id);
+ }
+
+ $daoTheme = new wsDAOTheme($core->con);
+ $theme = $daoTheme->getThemeOfBook($book_id, false);
+
+ $webcompile = WEBROOT . '/fluidbook/compile/';
+
+ $standard = 'XHTML 1.0 Transitional';
+ $css = $js = array();
+ $css[] = $webcompile . 'style.css';
+ $fv = array();
+
+ $res = '';
+ $res .= '';
+ $res .= '' . $book->parametres->title . '';
+ // Entêtes Facebook
+ if ($book->parametres->facebook) {
+ $meta['og:title'] = ($book->parametres->facebook_title == '')?$book->parametres->title:$book->parametres->facebook_title;
+ if ($book->parametres->facebook_description != '') {
+ $meta['og:description'] = $book->parametres->facebook_description;
+ }
+ $meta['og:image'] = 'http://dev.ws.fluidbook.com/services/facebook_thumbnail?id=' . $book->book_id ;
+ }
+
+ $res .= '';
+ $res .= '';
+ $res .= cubeMedia::flash2('index.swf', '100%', '100%', $fv, 'fluidbook', '', 10, '#' . $theme->parametres->loadingBackColor, '', 'true', 'noscale', 'gpu', array('allowScriptAccess' => 'always'));
+ $js = array($webcompile . 'fluidbook.js');
+ $jsvar = array();
+
+ $gacodes = array(GA);
+ if ($book->parametres->googleAnalytics != '') {
+ $gacodes[] = $book->parametres->googleAnalytics;
+ }
+ $res .= cubePage::googleAnalytics($gacodes, false);
+ $res .= '';
+ $res .= '';
+
+ return $res;
+ }
+
public static function statsxls($args)
{
$bid = (isset($args[1]))?$args[1]:null;
wsStats::exportXLS($bid);
}
+ public static function chooseExistingBook()
+ {
+ wsDroits::creation(true);
+ $res = '' . __("Si votre nouvelle publication a des paramètres en commun avec une publication existante, veuillez rechercher cette publication afin d'attribuer par défaut à votre nouvelle publication les paramètres de l'existante") . ' |
';
+ $res .= '| ' . __('Rechercher une publication') . ' : | ' . form::field('book_nom', 64, 1024) . form::hidden('book', '') . ' |
';
+ // $res .= '
|
';
+ $res .= '| ' . __('Indiquez le titre de votre nouvelle publication') . ' | ' . form::field('title', 64, 1024) . ' |
';
+ return $res;
+ }
+
+ public static function changeBookProprietaire($book_id)
+ {
+ global $core;
+ commonDroits::min(3);
+
+ $dao = new wsDAOBook($core->con);
+ $book = $dao->selectById($book_id);
+
+ $res = '| ' . __('Propriétaire actuel') . ' : | ' . $book->proprietaire . ' |
';
+ $res .= '| ' . __('Rechercher un utilisateur') . ' : | ' . form::field('book_proprietaire', 64, 1024) . form::hidden('proprietaire', '') . ' |
';
+ return $res;
+ }
+
+ public static function chooseBookProject($book_id)
+ {
+ global $core;
+
+ wsDroits::admin(true);
+
+ $dao = new wsDAOBook($core->con);
+ $book = $dao->selectById($book_id);
+
+ $projects = array("--" => '0');
+ $r = $core->con->select('SELECT * FROM projets WHERE client IN(SELECT entreprise FROM utilisateurs WHERE utilisateur_id IN( SELECT facturable_id FROM ws_users_tree WHERE utilisateur_id IN (SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $core->con->escape($book->proprietaire_id) . '\'))) ORDER BY projet_id DESC');
+ while ($r->fetch()) {
+ $projects[$r->projet_id . ' - ' . $r->nom] = $r->projet_id;
+ }
+
+ $res = '| ' . __('Choisir un projet') . ' : | ' . form::hidden('book_id', $book_id) . form::combo('book_project', $projects, $book->projet) . ' |
';
+ $res .= '| ' . __('ou créer un nouveau projet') . ' : | ' . form::field('new_book_project_nom', 64, 1024, $book->nom) . ' |
';
+ return $res;
+ }
+
+ public static function chooseBookTache($book_id, $projet_id)
+ {
+ global $core;
+ wsDroits::admin(true);
+
+ $dao = new wsDAOBook($core->con);
+ $book = $dao->selectById($book_id);
+
+ $taches = array("--" => '0');
+ $r = $core->con->select('SELECT * FROM taches WHERE projet=\'' . $core->con->escape($projet_id) . '\' AND categorie=8');
+ while ($r->fetch()) {
+ $taches[$r->nom] = $r->tache_id;
+ }
+
+ $res = '';
+
+ if ($r->count() > 0) {
+ $res .= '| ' . __('Choisir une tâche') . ' : | ' . form::hidden('book_id', $book_id) . form::hidden('projet_id', $projet_id) . form::combo('tache', $taches) . ' |
';
+ $res .= '| ' . __('ou créer une nouvelle tâche') . ' : | ' . form::field('nom', 32, 1024, 'Fluidbook #' . $book->book_id . ' : ' . $book->nom) . ' ' . __('ayant le budget suivant') . ' ' . form::field('budget', 6, 6) . ' |
';
+ } else {
+ $res .= '| ' . __('Créer une tâche') . ' : | '
+ . form::hidden('book_id', $book_id)
+ . form::hidden('projet_id', $projet_id)
+ . form::hidden('tache', '0')
+ . form::field('nom', 32, 1024, 'Fluidbook #' . $book->book_id . ' : ' . $book->nom)
+ . ' ' . __('ayant le budget suivant')
+ . ' ' . form::field('budget', 6, 6) . ' |
';
+ }
+
+ return $res;
+ }
+
+ public static function valideDownload()
+ {
+ global $core;
+
+ $res .= '' . __("Le téléchargement du fluidbook implique qu'il a été testé et définitivement validé.") . ' ' . __("Si vous le téléchargez, il vous sera facturé selon les conditions stipulées dans votre contrat.") . ' |
';
+ $res .= ' |
';
+
+ return $res;
+ }
+
public static function testAS($args)
{
global $core;
@@ -110,6 +658,408 @@ class wsUrl {
}
return $res;
}
+
+ public static function clients($args)
+ {
+ global $core;
+ cubePage::truePopup();
+ cubePage::autoComplete();
+ cubePage::emptyfield();
+ commonDroits::min(3);
+ $settings = $core->user->getSettings('clients');
+
+ $shortcuts = array();
+ $shortcuts[] = '';
+
+ $filtres = array();
+
+ $res = commonPage::barre($filtres, 'filtreClients', 'clients', $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeClients();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeClients($dashboard = null, $settings = null)
+ {
+ global $core;
+ commonDroits::min(3);
+ $settings = is_null($settings)?$core->user->getSettings('clients'):$settings;
+ $change = is_null($dashboard)?'Client':'Dashboard/' . $dashboard;
+ $dao = new commonDAOEntreprise($core->con);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $dao->setFiltres($settings['filtres']);
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);
+
+ $res = '';
+ $res .= '| ' . commonUrl::orderby('#', 'entreprise_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Raison sociale'), 'nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . __('Contacts') . ' | ';
+ $res .= ' | |
';
+ $i = 0;
+ foreach($liste as $id => $client) {
+ if (!is_array($client->contacts)) {
+ continue;
+ }
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $client->entreprise_id . ' | ';
+ $res .= '' . $client->nom . ' | ';
+ $contacts = array();
+
+ foreach($client->contacts as $c) {
+ $contacts[] = '';
+ }
+
+ $res .= '' . implode(', ', $contacts) . ' | ';
+ $res .= '';
+ $res .= ' | ';
+ $res .= ' | ';
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function formClient($entreprise_id = 'new')
+ {
+ global $core;
+ commonDroits::min(3);
+ $dao = new commonDAOEntreprise($core->con);
+ $daoUtilisateur = new commonDAOUtilisateur($core->con);
+ if ($entreprise_id == 'new') {
+ $client = $dao->cree();
+ } else {
+ $client = $dao->selectById($entreprise_id);
+ }
+
+ $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('entreprise_id', $client->entreprise_id) . '' . $client->entreprise_id . ' |
';
+ $res .= '| ' . __('Raison sociale') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
+ $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
+ $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
+ $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
+ $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
+ if (wsDroits::admin(false)) {
+ $res .= '| ' . __('Adresse de facturation') . ' | ' . form::textarea('adresse_facturation', 40, 3, $client->adresse_facturation) . ' |
';
+ $res .= '| ' . __('Numéro de TVA intracommunautaire') . ' | ' . form::field('tva_intra', 15, 13, $client->tva_intra) . ' |
';
+ }
+ // Bloc Fluidbook Workshop
+ if (wsDroits::admin(false)) {
+ $res .= '| ' . __('Fluidbook Workshop') . ' |
';
+ $res .= '| ' . __('Grade') . ' | ' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . ' |
';
+ if ($entreprise_id == 'new' || !$client->ws_admin) {
+ $class = 'empty-field';
+ $default_id = '';
+ $default = __('Entrez le nom du revendeur ou de l\'administrateur');
+ } else {
+ $class = '';
+ $default_id = $client->ws_admin;
+ $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');
+ $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';
+ }
+
+ $d = $dao->getWSDatas($entreprise_id);
+
+ $res .= '| ' . __('Revendeur / Administrateur') . ' | ' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . ' |
';
+ if (!is_null($d)) {
+ $res .= '| ' . __('Entité facturable') . ' | ' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ') |
';
+ $res .= '| ' . __('Administrateur responsable') . ' | ' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ') |
';
+ }
+
+ $daoSignature = new wsDAOSignature($core->con);
+ $signaturesList = $daoSignature->selectAll();
+
+ $signatures = array();
+ foreach($signaturesList as $s) {
+ $signatures[$s->nom] = $s->signature_id;
+ }
+
+ $res .= '| ' . __('Signatures Fluidbook') . ' | ' . cubeForm::checkMultiple('ws_signatures', $signatures, 5, explode(',', $client->ws_signatures)) . ' |
';
+ }
+ if ($entreprise_id == 'new') {
+ $daoContact = new commonDAOClient($core->con);
+ $contact = $daoContact->cree();
+ $res .= '| ' . __('Contact') . ' |
';
+ $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field(array('contact[email]'), 30, 128, $contact->email) . ' |
';
+ $res .= '| ' . __('Mot de passe') . ' | ' . form::field(array('contact[password]'), 30, 128, $contact->password) . ' |
';
+ $res .= '| ' . __('Prénom') . ' | ' . form::field(array('contact[prenom]'), 30, 128, $contact->prenom) . ' |
';
+ $res .= '| ' . __('Nom') . ' | ' . form::field(array('contact[nom]'), 30, 128, $contact->nom) . ' |
';
+ $res .= '| ' . __('Téléphone') . ' | ' . form::field(array('contact[telephone]'), 20, 128, $contact->telephone) . ' |
';
+ $res .= '| ' . __('Mobile') . ' | ' . form::field(array('contact[mobile]'), 20, 128, $contact->mobile) . ' |
';
+ $res .= '| ' . __('Fax') . ' | ' . form::field(array('contact[fax]'), 20, 128, $contact->fax) . ' |
';
+ $res .= '| ' . __('Langue') . ' | ' . form::combo(array('contact[lang]'), cubeLang::getAvailableLangs(true), $contact->lang) . ' |
';
+ }
+ return $res;
+ }
+
+ public static function listeContacts($entreprise_id)
+ {
+ global $core;
+ commonDroits::min(3);
+ $dao = new commonDAOEntreprise($core->con);
+ $contacts = $dao->getContacts($entreprise_id);
+
+ $res = '';
+ $res .= ' |
';
+ $i = 0;
+ foreach($contacts as $contact) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ' . trim($contact->prenom . ' ' . $contact->nom) . ' | ';
+ $res .= '' . $contact->email . ' | ';
+ $res .= 'FTP | ';
+ $res .= 'Se connecter comme ... | ';
+ $res .= ' |
';
+ $i++;
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function formContact($client_id = 'new', $entreprise_id = null)
+ {
+ global $core;
+ commonDroits::min(3);
+
+ $dao = new commonDAOClient($core->con);
+ if ($client_id == 'new') {
+ $client = $dao->creeFromEntreprise($entreprise_id);
+ } else {
+ $client = $dao->selectById($client_id);
+ }
+
+ $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('grade', 0) . form::hidden('entreprise', $client->entreprise) . form::hidden('utilisateur_id', $client->utilisateur_id) . '' . $client->utilisateur_id . ' |
';
+ $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field('email', 30, 128, $client->email) . ' |
';
+ $res .= '| ' . __('Mot de passe') . ' | ' . form::field('password', 30, 128, $client->password) . ' |
';
+ $res .= '| ' . __('Prénom du contact') . ' | ' . form::field('prenom', 30, 128, $client->prenom) . ' |
';
+ $res .= '| ' . __('Nom du contact') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
+ $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
+ $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
+ $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
+ $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
+ $res .= '| ' . __('Téléphone') . ' | ' . form::field('telephone', 20, 128, $client->telephone) . ' |
';
+ $res .= '| ' . __('Mobile') . ' | ' . form::field('mobile', 20, 128, $client->mobile) . ' |
';
+ $res .= '| ' . __('Fax') . ' | ' . form::field('fax', 20, 128, $client->fax) . ' |
';
+ $res .= '| ' . __('Langue') . ' | ' . form::combo('lang', cubeLang::getAvailableLangs(true), $client->lang) . ' |
';
+ if ($client_id != 'new') {
+ $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
+ $res .= ' | ' . __('FTP') . ' |
';
+ $res .= ' | ' . __('Se connecter comme ...') . ' |
';
+ $res .= '| ' . __("Paramètres de connexion au Fluidbook Workshop") . ' | ' . __('Adresse') . ' : http://' . $_SERVER['HTTP_HOST'] . '/ ' . __("Nom d'utilisateur") . ' : ' . $client->email . ' ' . __('Mot de passe') . ' : ' . $client->password . ' |
';
+ $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
+ }
+ return $res;
+ }
+
+ public static function demandes()
+ {
+ global $core;
+ cubePage::truePopup();
+ cubePage::autoComplete();
+ cubePage::emptyfield();
+ commonDroits::min(5);
+ $settings = $core->user->getSettings('demandes');
+
+ $shortcuts = array();
+
+ $filtres = array();
+ $filtres[] = new commonFiltre(__('Statut'), 'status_demande', $settings['filtres']);
+ $filtres[] = new commonFiltre(__('Confiées à '), 'demande_moi', $settings['filtres']);
+
+ $res = commonPage::barre($filtres, 'filtreDemandes', 'demandes', $shortcuts);
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= self::listeDemandes();
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
+
+ public static function listeDemandes($dashboard = null, $settings = null)
+ {
+ global $core;
+ commonDroits::min(5);
+ $settings = is_null($settings)?$core->user->getSettings('demandes'):$settings;
+ $change = is_null($dashboard)?'Demandes':'Dashboard/' . $dashboard;
+ $dao = new wsDAODemande($core->con);
+ if (isset($settings['search']) && !is_null($settings['search'])) {
+ $dao->setSearch($settings['search']);
+ }
+ $dao->setFiltres($settings['filtres']);
+ $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);
+
+ $res = '';
+ $res .= '| ' . commonUrl::orderby('#', 'demande_id', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Date') , 'date', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Type') , 'type', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Prospect') . '/' . __('Client'), 'utilisateur_nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Confiée à '), 'revendeur_nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Gérée par'), 'administrateur_nom', $settings, 'sort' . $change) . ' | ';
+ $res .= '' . commonUrl::orderby(__('Statut'), 'status', $settings, 'sort' . $change) . ' | ';
+ $res .= ' | |
';
+ $i = 0;
+ foreach($liste as $id => $demande) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '';
+ $res .= '| ' . $demande->demande_id . ' | ';
+ $res .= '' . date(__('d/m/Y H:i'), $demande->date) . ' | ';
+ $res .= '' . $core->demandes_type[$demande->type] . ' | ';
+ $res .= ' | ';
+ $revendeur = $demande->revendeur == 0?'-':$demande->revendeur_nom;
+ $res .= '' . $revendeur . ' | ';
+ $administrateur = $demande->administrateur == 0?'-':$demande->administrateur_nom;
+ $res .= '' . $administrateur . ' | ';
+ // Affichage du status
+ // Si non traitée ou traitée, pas la possibilité de changer le status
+ if ($demande->status == 0 || $demande->status == 2) {
+ $res .= '' . $core->demandes_status[$demande->status] . ' | ';
+ } else if ($demande->status == 1) {
+ if ($demande->revendeur == $core->user->utilisateur_id) {
+ $res .= '' . __('Je me suis chargé de cette demande') . ' | ';
+ } else {
+ $res .= '' . $core->demandes_status[$demande->status] . ' (x) | ';
+ }
+ }
+ // On ne peut éditer que si la facture est non traitée et qu'elle n'a pas commencé à être éditée par un autre administrateur
+ if (($demande->administrateur == 0 || $demande->administrateur == $core->user->utilisateur_id) && $demande->status == 0) {
+ $res .= ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ // On n'affiche le bouton "Supprimer" que si la demande est non-traitée
+ if (($demande->administrateur == 0 || $demande->administrateur == $core->user->utilisateur_id) && $demande->status == 0) {
+ $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
+ } else {
+ $res .= ' | ';
+ }
+ $res .= '
';
+ $i++;
+ }
+ if (!isset($settings['search']) || is_null($settings['search'])) {
+ $odd = cubeMath::isOdd($i)?' class="odd"':'';
+ $res .= '| ';
+ $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');
+ $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('demandes'));
+ $res .= ' |
';
+ }
+ $res .= '
';
+ return $res;
+ }
+
+ public static function formDemande($demande_id = 'new')
+ {
+ global $core;
+ commonDroits::min(5);
+ $dao = new wsDAODemande($core->con);
+ $daoUtilisateur = new commonDAOUtilisateur($core->con);
+ $demande = $dao->selectById($demande_id);
+ if ($demande->administrateur != 0 && $demande->administrateur != $core->user->utilisateur_id) {
+ $res = '' . __("Cette demande est actuellement en cours d'édition par un autre administrateur") . ' |
';
+ return $res;
+ }
+ if ($demande->status > 1) {
+ $res = '' . __("Cette demande est actuellement en cours de traitement") . ' |
';
+ return $res;
+ }
+ // On place la demande comme en cours d'édition
+ $dao->setAdministrateur($demande_id, $core->user->utilisateur_id);
+ // On vérifie que l'utilisateur n'est pas déjà géré par un revendeur
+ $demandeur = $daoUtilisateur->selectById($demande->utilisateur, 'utilisateurs_entreprise');
+ $administrateurs = $daoUtilisateur->selectWSAdministrateursId();
+ if (!is_null($demandeur->ws_admin) && !in_array($demandeur->ws_admin, $administrateurs)) {
+ // Si déjà géré par un revendeur
+ $revendeur = $daoUtilisateur->selectById($demandeur->ws_admin, 'utilisateurs_entreprise');
+ $actions[__('Je confie la demande à ' . $revendeur->rs . ' (' . $revendeur->prenom . ' ' . $revendeur->nom . ')')] = $demandeur->ws_admin;
+ } else {
+ $liste = $daoUtilisateur->selectWSRevendeursFacturables();
+ $revendeurs = array();
+ foreach($liste as $revendeur) {
+ $revendeurs[$revendeur->rs . '(' . $revendeur->prenom . ' ' . $revendeur->nom . ')'] = $revendeur->utilisateur_id;
+ }
+
+ $actions = array(__('Je vais me charger de cette demande') => $core->user->utilisateur_id);
+ $actions[' '] = array();
+ $actions[__('Je confie la demande à ') . ' : '] = $revendeurs;
+ }
+
+ $res = '| ' . __('Numéro de demande') . ' | ' . form::hidden('demande_id', $demande->demande_id) . '' . $demande->demande_id . ' |
';
+ $res .= '| ' . __('Date de la demande') . ' | ' . date(__('d/m/Y H:i'), $demande->date) . ' |
';
+ $res .= '| ' . __('Emetteur de la demande') . ' | |
';
+ $res .= '| ' . __('Nombre de pages') . ' | ' . $demande->pages . ' |
';
+ $res .= '| ' . __('Nombre de liens') . ' | ' . $demande->liens . ' |
';
+ $res .= '| ' . __('Nombre de langues') . ' | ' . $demande->langues . ' |
';
+ $res .= '| ' . __('Détails') . ' | ' . $demande->details . ' |
';
+ $res .= '| ' . __('Action') . ' | ' . form::combo('revendeur', $actions) . ' |
';
+ $res .= ' |
';
+
+ return $res;
+ }
+
+ public static function reponseDemande($args)
+ {
+ global $core;
+
+ commonDroits::min(3);
+
+ $res = commonPage::barre();
+ $res .= commonPage::tMain(null, false);
+
+ $res .= commonPage::bh();
+
+ $demande_id = $args[1];
+ $revendeur_id = $args[2];
+
+ $dao = new wsDAODemande($core->con);
+ $demande = $dao->selectById($demande_id);
+ if ($demande->revendeur != $revendeur_id || $demande->revendeur != $core->user->utilisateur_id) {
+ commonDroits::error();
+ exit;
+ }
+
+ $res = commonPage::barre();
+ $res .= commonPage::tMain();
+ $res .= commonPage::bh();
+ $res .= '';
+ $res .= '
' . $core->typo->Titre(__('Prendre en charge une demande de devis')) . '
';
+ $res .= '
';
+ $res .= '
' . __('Si vous acceptez de traiter la demande suivante, veuillez cliquer sur le bouton "Accepter la demande" situé à droite de la description.');
+ $res .= ' ' . __('Vous avez également la possibilité de décliner la demande en cliquant sur le bouton "Décliner la demande"') . "
";
+ $res .= '
';
+
+ $res .= '
';
+
+ $res .= '
';
+ $res .= commonPage::bf();
+ $res .= commonPage::bMain();
+ return $res;
+ }
}
?>
\ No newline at end of file
diff --git a/inc/ws/Controlleur/url/_common.php b/inc/ws/Controlleur/url/_common.php
deleted file mode 100644
index d8a3ff20f..000000000
--- a/inc/ws/Controlleur/url/_common.php
+++ /dev/null
@@ -1,9 +0,0 @@
-
\ No newline at end of file
diff --git a/inc/ws/Controlleur/url/class.ws.url.book.php b/inc/ws/Controlleur/url/class.ws.url.book.php
deleted file mode 100644
index 3af2514ea..000000000
--- a/inc/ws/Controlleur/url/class.ws.url.book.php
+++ /dev/null
@@ -1,440 +0,0 @@
-user->getSettings('books');
-
- $shortcuts = array();
- if (wsDroits::creation()) {
- $shortcuts[] = '';
- }
-
- $filtres = array();
- if (wsDroits::revendeur(false)) {
- $filtres[] = new commonFiltre(__('Status'), 'status_book', $settings['filtres']);
- }
- $filtres[] = new commonFiltre(__('Année'), 'annee_book', $settings['filtres']);
- $res = commonPage::barre($filtres , 'filtreBooks', 'books', $shortcuts);
- $res .= commonPage::tMain(null, true);
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeBooks();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeBooks($dashboard = null, $settings = null)
- {
- global $core;
- cubePage::truePopup();
- cubePage::autocomplete();
- cubePage::contextMenu();
-
- $droits = wsDroits::getDroits();
-
- commonDroits::min(1);
- $settings = is_null($settings)?$core->user->getSettings('books'):$settings;
- $change = is_null($dashboard)?'Books':'Dashboard/' . $dashboard;
- $dao = new wsDAOBook($core->con);
- $context_download_id = is_null($dashboard)?'contextDownloadBook':'contextDashboard_Download' . $dashboard;
- $context_status_id = is_null($dashboard)?'contextStatusBook':'contextDashboard_Status' . $dashboard;
-
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $dao->setFiltres($settings['filtres']);
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);
-
- $res = self::contextBookDownload($context_download_id);
- $res = self::contextBookStatus($context_status_id);
-
- $res .= '';
- $res .= '| ' . commonUrl::orderby('#', 'book_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Titre de la publication'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__(''), 'lang', $settings, 'sort' . $change) . ' | ';
- $res .= '' . __('Pages') . ' | ';
- if ($droits->revendeur) {
- $res .= '' . commonUrl::orderby(__('Proprietaire'), 'proprietaire_nom', $settings, 'sort' . $change) . ' | ';
- } else {
- $res .= '' . commonUrl::orderby(__('Proprietaire'), 'proprietaire_utilisateur', $settings, 'sort' . $change) . ' | ';
- }
- if ($droits->admin) {
- $res .= '' . commonUrl::orderby(__('Facturation'), 'facturable', $settings, 'sort' . $change) . ' | ';
- }
- if ($droits->revendeur) {
- $res .= '' . commonUrl::orderby(__('Status'), 'status', $settings, 'sort' . $change) . ' | ';
- }
- $res .= str_repeat(' | ', $droits->creation?5:4);
- $res .= '
';
- $i = 0;
-
- $btVoir = cubeMedia::cssRollover($core->typo->Voir('voir', '', false));
- $btEdit = cubeMedia::cssRollover($core->typo->Editer('éditer', '', false));
- $btStats = cubeMedia::cssRollover($core->typo->Stats('stats', '', false));
- $btDownload = cubeMedia::cssRollover($core->typo->BookTelecharger('télécharger', '', false));
- if ($droits->creation) {
- $btDel = cubeMedia::cssRollover($core->typo->Supprimer('suppr.', '', false));
- }
-
- foreach($liste as $id => $book) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $book->book_id . ' | ';
- $res .= '' . $book->nom . ' | ';
- $res .= '' . mb_strtoupper($book->lang) . ' | ';
- $res .= '' . $book->parametres->pages . ' | ';
-
- if ($droits->revendeur) {
- $p = str_replace(" (", '
', $book->proprietaire);
- $p = trim($p, ')');
- $res .= ' | ';
- } else {
- $res .= '' . $book->proprietaire_utilisateur . ' | ';
- }
- if ($droits->admin) {
- $res .= '' . $book->facturable . ' | ';
- }
- if ($droits->revendeur) {
- if ($droits->admin || $book->status <= 1) {
- $p = '';
- if (!is_null($book->projet)) {
- $p = ' ' . cubeMedia::silk('arrow_right.png') . '';
- }
-
- $res .= '' . $p . ' | ';
- } else if ($book->status > 1) {
- $res .= '' . $core->books_status[1] . ' | ';
- }
- }
- $res .= ' | ';
- $res .= ' | ';
- $res .= '' . $btStats . ' | ';
- $res .= ' | ';
- if ($droits->creation) {
- $res .= '' . $btDel . ' | ';
- }
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('publications'), false);
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function contextBookDownload($id)
- {
- global $core;
-
- $versions = array();
- $versions['html'] = array('title' => __('Version online'), 'icon' => cubeMedia::silk('page_white_world.png'));
- $versions['win-exe'] = array('title' => __('Version offline') . ' - ' . __('Executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));
- $versions['win-ins'] = array('title' => __('Version offline') . ' - ' . __('Installeur Auto-executable Windows'), 'icon' => cubeMedia::silk('application_view_tile.png'));
- $versions['mac-exe'] = array('title' => __('Version offline') . ' - ' . __('Exécutable Mac OS X'), 'icon' => cubeMedia::image(IMG . '/macos.png'));
- $versions['win-cd'] = array('title' => __('Version offline') . ' - ' . __('CD-ROM') . ' / ' . __('Clé USB'), 'icon' => cubeMedia::silk('cd.png'));
-
- $res = '';
- return $res;
- }
-
- public static function contextBookStatus($id)
- {
- global $core;
-
- if (wsDroits::admin()) {
- $status = $core->books_status;
- $status[2] = __('Facturé (associé à un projet)');
- } else {
- $status = array();
- $status[-1] = $core->books_status[-1];
- $status[0] = $core->books_status[0];
- }
-
- $res = '';
- return $res;
- }
-
- public static function chooseExistingBook()
- {
- wsDroits::creation(true);
- $res = '' . __("Si votre nouvelle publication a des paramètres en commun avec une publication existante, veuillez rechercher cette publication afin d'attribuer par défaut à votre nouvelle publication les paramètres de l'existante") . ' |
';
- $res .= '| ' . __('Rechercher une publication') . ' : | ' . form::field('book_nom', 64, 1024) . form::hidden('book', '') . ' |
';
- // $res .= '
|
';
- $res .= '| ' . __('Indiquez le titre de votre nouvelle publication') . ' | ' . form::field('title', 64, 1024) . ' |
';
- return $res;
- }
-
- public static function changeBookProprietaire($book_id)
- {
- global $core;
- commonDroits::min(3);
-
- $dao = new wsDAOBook($core->con);
- $book = $dao->selectById($book_id);
-
- $res = '| ' . __('Propriétaire actuel') . ' : | ' . $book->proprietaire . ' |
';
- $res .= '| ' . __('Rechercher un utilisateur') . ' : | ' . form::field('book_proprietaire', 64, 1024) . form::hidden('proprietaire', '') . ' |
';
- return $res;
- }
-
- public static function chooseBookProject($book_id)
- {
- global $core;
-
- wsDroits::admin(true);
-
- $dao = new wsDAOBook($core->con);
- $book = $dao->selectById($book_id);
-
- $projects = array("--" => '0');
- $r = $core->con->select('SELECT * FROM projets WHERE client IN(SELECT entreprise FROM utilisateurs WHERE utilisateur_id IN( SELECT facturable_id FROM ws_users_tree WHERE utilisateur_id IN (SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $core->con->escape($book->proprietaire_id) . '\'))) ORDER BY projet_id DESC');
- while ($r->fetch()) {
- $projects[$r->projet_id . ' - ' . $r->nom] = $r->projet_id;
- }
-
- $res = '| ' . __('Choisir un projet') . ' : | ' . form::hidden('book_id', $book_id) . form::combo('book_project', $projects, $book->projet) . ' |
';
- $res .= '| ' . __('ou créer un nouveau projet') . ' : | ' . form::field('new_book_project_nom', 64, 1024, $book->nom) . ' |
';
- return $res;
- }
-
- public static function chooseBookTache($book_id, $projet_id)
- {
- global $core;
- wsDroits::admin(true);
-
- $dao = new wsDAOBook($core->con);
- $book = $dao->selectById($book_id);
-
- $taches = array("--" => '0');
- $r = $core->con->select('SELECT * FROM taches WHERE projet=\'' . $core->con->escape($projet_id) . '\' AND categorie=8');
- while ($r->fetch()) {
- $taches[$r->nom] = $r->tache_id;
- }
-
- $res = '';
-
- if ($r->count() > 0) {
- $res .= '| ' . __('Choisir une tâche') . ' : | ' . form::hidden('book_id', $book_id) . form::hidden('projet_id', $projet_id) . form::combo('tache', $taches) . ' |
';
- $res .= '| ' . __('ou créer une nouvelle tâche') . ' : | ' . form::field('nom', 32, 1024, 'Fluidbook #' . $book->book_id . ' : ' . $book->nom) . ' ' . __('ayant le budget suivant') . ' ' . form::field('budget', 6, 6) . ' |
';
- } else {
- $res .= '| ' . __('Créer une tâche') . ' : | '
- . form::hidden('book_id', $book_id)
- . form::hidden('projet_id', $projet_id)
- . form::hidden('tache', '0')
- . form::field('nom', 32, 1024, 'Fluidbook #' . $book->book_id . ' : ' . $book->nom)
- . ' ' . __('ayant le budget suivant')
- . ' ' . form::field('budget', 6, 6) . ' |
';
- }
-
- return $res;
- }
-
- public static function editor($args)
- {
- commonDroits::min(1);
-
- global $core;
-
- $args = cubePage::getArgs($args);
- $book_id = $args[0];
-
- self::checkDocumentVersionOfBook($book_id);
-
- if ($book_id == 'new') {
- $dao = new wsDAOBook($core->con);
- $book = $dao->creeEmpty($core->user->utilisateur_id, $core->user->lang);
- http::redirect(SITE_PATH . 'editor/' . $book->book_id);
- }
-
- $res = '';
- $res .= '' . __('Edition de la publication') . ' #' . $args[0] . '';
- $res .= '';
- $res .= '';
- $res .= self::editComposition($args);
- $res .= '';
- $res .= '';
- echo $res;
- }
-
- public static function editComposition($args)
- {
- $fv = array(session_name() => session_id(),
- 'book_id' => $args[0]);
- $res = cubeMedia::flash2(WEBROOT . '/swf/composer.swf?junk=' . TIME, '100%', '100%', $fv, 'composerSwf', 'swfPanel', 10, '#d2d3c7', '', 'false', 'noscale', 'normal', array(), false, true, true);
- return $res;
- }
-
- public static function stats($args)
- {
- $bid = (isset($args[1]))?$args[1]:null;
- $annee = (isset($args[2]))?$args[2]:null;
- $mois = (isset($args[3]))?$args[3]:null;
- return wsStats::display($bid, $annee, $mois);
- }
-
- public static function viewerp($args)
- {
- commonDroits::min(5);
-
- $args = cubePage::getArgs($args);
-
- $e = explode('_', $args[0]);
- if (count($e) == 2 || $e[2] < TIME-10) {
- $e[2] = TIME;
- http::redirect(SITE_PATH . 'viewerp/' . implode('_', $e) . '/');
- exit;
- }
-
- $book_id = $e[0];
-
- self::checkDocumentVersionOfBook($book_id);
-
- echo self::commonViewer($book_id, $e[1]);
- }
-
- public static function vieweru($args)
- {
- commonDroits::min(5);
-
- $args = cubePage::getArgs($args);
-
- $e = explode('_', $args[0]);
- if (count($e) == 2 || $e[2] < TIME-10) {
- $e[2] = TIME;
- http::redirect(SITE_PATH . 'vieweru/' . implode('_', $e) . '/');
- exit;
- }
-
- $book_id = $e[0];
-
- self::checkDocumentVersionOfBook($book_id);
-
- echo self::commonViewer($book_id, $e[1]);
- }
-
- public static function viewer($args)
- {
- $args = cubePage::getArgs($args);
-
- $e = explode('_', $args[0]);
- if (count($e) == 2 || $e[2] < TIME-10) {
- $e[2] = TIME;
- http::redirect(SITE_PATH . 'viewer/' . implode('_', $e) . '/');
- exit;
- }
-
- $book_id = $e[0];
-
- self::checkDocumentVersionOfBook($book_id);
- wsSecureSWF::checkProtectedSWF();
-
- echo self::commonViewer($book_id, $e[1]);
- }
-
- public static function commonViewer($book_id, $hash)
- {
- if (!defined('MINIMIZE_JS')) {
- define('MINIMIZE_JS', false);
- }
- if (!defined('MINIMIZE_CSS')) {
- define('MINIMIZE_CSS', false);
- }
- if (!defined('JQUERY')) {
- define('JQUERY', false);
- }
-
- global $core;
- global $css;
- global $js;
- global $standard;
- global $meta;
- global $jsvar;
-
- $dao = new wsDAOBook($core->con);
-
- $book = $dao->selectById($book_id);
- if ($book->hash != $hash) {
- commonDroits::error();
- }
-
- if (!$dao->isUpToDate($book_id)) {
- $dao->compile($book_id);
- $dao->touchCompile($book_id);
- }
-
- $daoTheme = new wsDAOTheme($core->con);
- $theme = $daoTheme->getThemeOfBook($book_id, false);
-
- $webcompile = WEBROOT . '/fluidbook/compile/';
-
- $standard = 'XHTML 1.0 Transitional';
- $css = $js = array();
- $css[] = $webcompile . 'style.css';
- $fv = array();
-
- $res = '';
- $res .= '';
- $res .= '' . $book->parametres->title . '';
- // Entêtes Facebook
- if ($book->parametres->facebook) {
- $meta['og:title'] = ($book->parametres->facebook_title == '')?$book->parametres->title:$book->parametres->facebook_title;
- if ($book->parametres->facebook_description != '') {
- $meta['og:description'] = $book->parametres->facebook_description;
- }
- $meta['og:image'] = 'http://dev.ws.fluidbook.com/services/facebook_thumbnail?id=' . $book->book_id ;
- }
-
- $res .= '';
- $res .= '';
- $res .= cubeMedia::flash2('index.swf', '100%', '100%', $fv, 'fluidbook', '', 10, '#' . $theme->parametres->loadingBackColor, '', 'true', 'noscale', 'gpu', array('allowScriptAccess' => 'always'));
- $js = array($webcompile . 'fluidbook.js');
- $jsvar = array();
-
- $gacodes = array(GA);
- if ($book->parametres->googleAnalytics != '') {
- $gacodes[] = $book->parametres->googleAnalytics;
- }
- $res .= cubePage::googleAnalytics($gacodes, false);
- $res .= '';
- $res .= '';
-
- return $res;
- }
-
- public static function valideDownload()
- {
- global $core;
-
- $res .= '' . __("Le téléchargement du fluidbook implique qu'il a été testé et définitivement validé.") . ' ' . __("Si vous le téléchargez, il vous sera facturé selon les conditions stipulées dans votre contrat.") . ' |
';
- $res .= ' |
';
-
- return $res;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/ws/Controlleur/url/class.ws.url.client.php b/inc/ws/Controlleur/url/class.ws.url.client.php
deleted file mode 100644
index 6fbba8776..000000000
--- a/inc/ws/Controlleur/url/class.ws.url.client.php
+++ /dev/null
@@ -1,209 +0,0 @@
-user->getSettings('clients');
-
- $shortcuts = array();
- $shortcuts[] = '';
-
- $filtres = array();
-
- $res = commonPage::barre($filtres, 'filtreClients', 'clients', $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeClients();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeClients($dashboard = null, $settings = null)
- {
- global $core;
- commonDroits::min(3);
- $settings = is_null($settings)?$core->user->getSettings('clients'):$settings;
- $change = is_null($dashboard)?'Client':'Dashboard/' . $dashboard;
- $dao = new commonDAOEntreprise($core->con);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $dao->setFiltres($settings['filtres']);
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);
-
- $res = '';
- $res .= '| ' . commonUrl::orderby('#', 'entreprise_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Raison sociale'), 'nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . __('Contacts') . ' | ';
- $res .= ' | |
';
- $i = 0;
- foreach($liste as $id => $client) {
- if (!is_array($client->contacts)) {
- continue;
- }
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $client->entreprise_id . ' | ';
- $res .= '' . $client->nom . ' | ';
- $contacts = array();
-
- foreach($client->contacts as $c) {
- $contacts[] = '';
- }
-
- $res .= '' . implode(', ', $contacts) . ' | ';
- $res .= '';
- $res .= ' | ';
- $res .= ' | ';
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function formClient($entreprise_id = 'new')
- {
- global $core;
- commonDroits::min(3);
- $dao = new commonDAOEntreprise($core->con);
- $daoUtilisateur = new commonDAOUtilisateur($core->con);
- if ($entreprise_id == 'new') {
- $client = $dao->cree();
- } else {
- $client = $dao->selectById($entreprise_id);
- }
-
- $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('entreprise_id', $client->entreprise_id) . '' . $client->entreprise_id . ' |
';
- $res .= '| ' . __('Raison sociale') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
- $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
- $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
- $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
- $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
- if (wsDroits::admin(false)) {
- $res .= '| ' . __('Adresse de facturation') . ' | ' . form::textarea('adresse_facturation', 40, 3, $client->adresse_facturation) . ' |
';
- $res .= '| ' . __('Numéro de TVA intracommunautaire') . ' | ' . form::field('tva_intra', 15, 13, $client->tva_intra) . ' |
';
- }
- // Bloc Fluidbook Workshop
- if (wsDroits::admin(false)) {
- $res .= '| ' . __('Fluidbook Workshop') . ' |
';
- $res .= '| ' . __('Grade') . ' | ' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . ' |
';
- if ($entreprise_id == 'new' || !$client->ws_admin) {
- $class = 'empty-field';
- $default_id = '';
- $default = __('Entrez le nom du revendeur ou de l\'administrateur');
- } else {
- $class = '';
- $default_id = $client->ws_admin;
- $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');
- $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';
- }
-
- $d = $dao->getWSDatas($entreprise_id);
-
- $res .= '| ' . __('Revendeur / Administrateur') . ' | ' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . ' |
';
- if (!is_null($d)) {
- $res .= '| ' . __('Entité facturable') . ' | ' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ') |
';
- $res .= '| ' . __('Administrateur responsable') . ' | ' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ') |
';
- }
-
- $daoSignature = new wsDAOSignature($core->con);
- $signaturesList = $daoSignature->selectAll();
-
- $signatures = array();
- foreach($signaturesList as $s) {
- $signatures[$s->nom] = $s->signature_id;
- }
-
- $res .= '| ' . __('Signatures Fluidbook') . ' | ' . cubeForm::checkMultiple('ws_signatures', $signatures, 5, explode(',', $client->ws_signatures)) . ' |
';
- }
- if ($entreprise_id == 'new') {
- $daoContact = new commonDAOClient($core->con);
- $contact = $daoContact->cree();
- $res .= '| ' . __('Contact') . ' |
';
- $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field(array('contact[email]'), 30, 128, $contact->email) . ' |
';
- $res .= '| ' . __('Mot de passe') . ' | ' . form::field(array('contact[password]'), 30, 128, $contact->password) . ' |
';
- $res .= '| ' . __('Prénom') . ' | ' . form::field(array('contact[prenom]'), 30, 128, $contact->prenom) . ' |
';
- $res .= '| ' . __('Nom') . ' | ' . form::field(array('contact[nom]'), 30, 128, $contact->nom) . ' |
';
- $res .= '| ' . __('Téléphone') . ' | ' . form::field(array('contact[telephone]'), 20, 128, $contact->telephone) . ' |
';
- $res .= '| ' . __('Mobile') . ' | ' . form::field(array('contact[mobile]'), 20, 128, $contact->mobile) . ' |
';
- $res .= '| ' . __('Fax') . ' | ' . form::field(array('contact[fax]'), 20, 128, $contact->fax) . ' |
';
- $res .= '| ' . __('Langue') . ' | ' . form::combo(array('contact[lang]'), cubeLang::getAvailableLangs(true), $contact->lang) . ' |
';
- }
- return $res;
- }
-
- public static function listeContacts($entreprise_id)
- {
- global $core;
- commonDroits::min(3);
- $dao = new commonDAOEntreprise($core->con);
- $contacts = $dao->getContacts($entreprise_id);
-
- $res = '';
- $res .= ' |
';
- $i = 0;
- foreach($contacts as $contact) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ' . trim($contact->prenom . ' ' . $contact->nom) . ' | ';
- $res .= '' . $contact->email . ' | ';
- $res .= 'FTP | ';
- $res .= 'Se connecter comme ... | ';
- $res .= ' |
';
- $i++;
- }
- $res .= '
';
- return $res;
- }
-
- public static function formContact($client_id = 'new', $entreprise_id = null)
- {
- global $core;
- commonDroits::min(3);
-
- $dao = new commonDAOClient($core->con);
- if ($client_id == 'new') {
- $client = $dao->creeFromEntreprise($entreprise_id);
- } else {
- $client = $dao->selectById($client_id);
- }
-
- $res = '| ' . __('Numéro de client') . ' | ' . form::hidden('grade', 0) . form::hidden('entreprise', $client->entreprise) . form::hidden('utilisateur_id', $client->utilisateur_id) . '' . $client->utilisateur_id . ' |
';
- $res .= '| ' . __('Adresse e-mail') . ' | ' . form::field('email', 30, 128, $client->email) . ' |
';
- $res .= '| ' . __('Mot de passe') . ' | ' . form::field('password', 30, 128, $client->password) . ' |
';
- $res .= '| ' . __('Prénom du contact') . ' | ' . form::field('prenom', 30, 128, $client->prenom) . ' |
';
- $res .= '| ' . __('Nom du contact') . ' | ' . form::field('nom', 30, 128, $client->nom) . ' |
';
- $res .= '| ' . __('Adresse') . ' | ' . form::textarea('adresse', 40, 3, $client->adresse) . ' |
';
- $res .= '| ' . __('Code postal') . ' | ' . form::field('code_postal', 10, 20, $client->code_postal) . ' |
';
- $res .= '| ' . __('Ville') . ' | ' . form::field('ville', 30, 128, $client->ville) . ' |
';
- $res .= '| ' . __('Pays') . ' | ' . form::combo('pays', cubeCountry::getList(), $client->pays) . ' |
';
- $res .= '| ' . __('Téléphone') . ' | ' . form::field('telephone', 20, 128, $client->telephone) . ' |
';
- $res .= '| ' . __('Mobile') . ' | ' . form::field('mobile', 20, 128, $client->mobile) . ' |
';
- $res .= '| ' . __('Fax') . ' | ' . form::field('fax', 20, 128, $client->fax) . ' |
';
- $res .= '| ' . __('Langue') . ' | ' . form::combo('lang', cubeLang::getAvailableLangs(true), $client->lang) . ' |
';
- if ($client_id != 'new') {
- $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
- $res .= ' | ' . __('FTP') . ' |
';
- $res .= ' | ' . __('Se connecter comme ...') . ' |
';
- $res .= '| ' . __("Paramètres de connexion au Fluidbook Workshop") . ' | ' . __('Adresse') . ' : http://' . $_SERVER['HTTP_HOST'] . '/ ' . __("Nom d'utilisateur") . ' : ' . $client->email . ' ' . __('Mot de passe') . ' : ' . $client->password . ' |
';
- $res .= '| ' . cubeMedia::spacer(10, 10) . ' |
';
- }
- return $res;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/ws/Controlleur/url/class.ws.url.demande.php b/inc/ws/Controlleur/url/class.ws.url.demande.php
deleted file mode 100644
index 3b69a1657..000000000
--- a/inc/ws/Controlleur/url/class.ws.url.demande.php
+++ /dev/null
@@ -1,207 +0,0 @@
-user->getSettings('demandes');
-
- $shortcuts = array();
-
- $filtres = array();
- $filtres[] = new commonFiltre(__('Statut'), 'status_demande', $settings['filtres']);
- $filtres[] = new commonFiltre(__('Confiées à '), 'demande_moi', $settings['filtres']);
-
- $res = commonPage::barre($filtres, 'filtreDemandes', 'demandes', $shortcuts);
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= self::listeDemandes();
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-
- public static function listeDemandes($dashboard = null, $settings = null)
- {
- global $core;
- commonDroits::min(5);
- $settings = is_null($settings)?$core->user->getSettings('demandes'):$settings;
- $change = is_null($dashboard)?'Demandes':'Dashboard/' . $dashboard;
- $dao = new wsDAODemande($core->con);
- if (isset($settings['search']) && !is_null($settings['search'])) {
- $dao->setSearch($settings['search']);
- }
- $dao->setFiltres($settings['filtres']);
- $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);
-
- $res = '';
- $res .= '| ' . commonUrl::orderby('#', 'demande_id', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Date') , 'date', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Type') , 'type', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Prospect') . '/' . __('Client'), 'utilisateur_nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Confiée à '), 'revendeur_nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Gérée par'), 'administrateur_nom', $settings, 'sort' . $change) . ' | ';
- $res .= '' . commonUrl::orderby(__('Statut'), 'status', $settings, 'sort' . $change) . ' | ';
- $res .= ' | |
';
- $i = 0;
- foreach($liste as $id => $demande) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '';
- $res .= '| ' . $demande->demande_id . ' | ';
- $res .= '' . date(__('d/m/Y H:i'), $demande->date) . ' | ';
- $res .= '' . $core->demandes_type[$demande->type] . ' | ';
- $res .= ' | ';
- $revendeur = $demande->revendeur == 0?'-':$demande->revendeur_nom;
- $res .= '' . $revendeur . ' | ';
- $administrateur = $demande->administrateur == 0?'-':$demande->administrateur_nom;
- $res .= '' . $administrateur . ' | ';
- // Affichage du status
- // Si non traitée ou traitée, pas la possibilité de changer le status
- if ($demande->status == 0) {
- $res .= '' . $core->demandes_status[$demande->status] . ' | ';
- } else if ($demande->status == 1) {
- if ($demande->revendeur == $core->user->utilisateur_id) {
- $res .= '' . __('Je me suis chargé de cette demande') . ' | ';
- } else {
- $res .= '' . $core->demandes_status[$demande->status] . ' (x) | ';
- }
- } elseif ($demande->status == 2) {
- if ($demande->revendeur == $core->user->utilisateur_id) {
- $res .= '' . $core->demandes_status[$demande->status] . ' | ';
- } else {
- $res .= '' . $core->demandes_status[$demande->status] . ' | ';
- }
- }
- // On ne peut éditer que si la facture est non traitée et qu'elle n'a pas commencé à être éditée par un autre administrateur
- if (($demande->administrateur == 0 || $demande->administrateur == $core->user->utilisateur_id) && $demande->status == 0) {
- $res .= ' | ';
- } else {
- $res .= ' | ';
- }
- // On n'affiche le bouton "Supprimer" que si la demande est non-traitée
- if (($demande->administrateur == 0 || $demande->administrateur == $core->user->utilisateur_id) && $demande->status == 0) {
- $res .= '' . cubeMedia::image(IMG . '/delete.png') . ' | ';
- } else {
- $res .= ' | ';
- }
- $res .= '
';
- $i++;
- }
- if (!isset($settings['search']) || is_null($settings['search'])) {
- $odd = cubeMath::isOdd($i)?' class="odd"':'';
- $res .= '| ';
- $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');
- $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('demandes'));
- $res .= ' |
';
- }
- $res .= '
';
- return $res;
- }
-
- public static function formDemande($demande_id = 'new')
- {
- global $core;
- commonDroits::min(5);
- $dao = new wsDAODemande($core->con);
- $daoUtilisateur = new commonDAOUtilisateur($core->con);
- $demande = $dao->selectById($demande_id);
- if ($demande->administrateur != 0 && $demande->administrateur != $core->user->utilisateur_id) {
- $res = '' . __("Cette demande est actuellement en cours d'édition par un autre administrateur") . ' |
';
- return $res;
- }
- if ($demande->status > 1) {
- $res = '' . __("Cette demande est actuellement en cours de traitement") . ' |
';
- return $res;
- }
- // On place la demande comme en cours d'édition
- $dao->setAdministrateur($demande_id, $core->user->utilisateur_id);
- // On vérifie que l'utilisateur n'est pas déjà géré par un revendeur
- $demandeur = $daoUtilisateur->selectById($demande->utilisateur, 'utilisateurs_entreprise');
- $administrateurs = $daoUtilisateur->selectWSAdministrateursId();
- if (!is_null($demandeur->ws_admin) && !in_array($demandeur->ws_admin, $administrateurs)) {
- // Si déjà géré par un revendeur
- $revendeur = $daoUtilisateur->selectById($demandeur->ws_admin, 'utilisateurs_entreprise');
- $actions[__('Je confie la demande à ' . $revendeur->rs . ' (' . $revendeur->prenom . ' ' . $revendeur->nom . ')')] = $demandeur->ws_admin;
- } else {
- $liste = $daoUtilisateur->selectWSRevendeursFacturables();
- $revendeurs = array();
- foreach($liste as $revendeur) {
- $revendeurs[$revendeur->rs . '(' . $revendeur->prenom . ' ' . $revendeur->nom . ')'] = $revendeur->utilisateur_id;
- }
-
- $actions = array(__('Je vais me charger de cette demande') => $core->user->utilisateur_id);
- $actions[' '] = array();
- $actions[__('Je confie la demande à ') . ' : '] = $revendeurs;
- }
-
- $res = '| ' . __('Numéro de demande') . ' | ' . form::hidden('demande_id', $demande->demande_id) . '' . $demande->demande_id . ' |
';
- $res .= '| ' . __('Date de la demande') . ' | ' . date(__('d/m/Y H:i'), $demande->date) . ' |
';
- $res .= '| ' . __('Emetteur de la demande') . ' | |
';
- $res .= '| ' . __('Nombre de pages') . ' | ' . $demande->pages . ' |
';
- $res .= '| ' . __('Nombre de liens') . ' | ' . $demande->liens . ' |
';
- $res .= '| ' . __('Nombre de langues') . ' | ' . $demande->langues . ' |
';
- $res .= '| ' . __('Détails') . ' | ' . $demande->details . ' |
';
- $res .= '| ' . __('Action') . ' | ' . form::combo('revendeur', $actions) . ' |
';
- $res .= ' |
';
-
- return $res;
- }
-
- public static function reponseDemande($args)
- {
- global $core;
-
- commonDroits::min(3);
-
- $res = commonPage::barre();
- $res .= commonPage::tMain(null, false);
-
- $res .= commonPage::bh();
-
- $demande_id = $args[1];
- $revendeur_id = $args[2];
-
- $dao = new wsDAODemande($core->con);
- $demande = $dao->selectById($demande_id);
- if ($demande->revendeur != $revendeur_id || $demande->revendeur != $core->user->utilisateur_id) {
- commonDroits::error();
- exit;
- }
-
- $res = commonPage::barre();
- $res .= commonPage::tMain();
- $res .= commonPage::bh();
- $res .= '';
- $res .= '
' . $core->typo->Titre(__('Prendre en charge une demande de devis')) . '
';
- $res .= '
';
- $res .= '
' . __('Si vous acceptez de traiter la demande suivante, veuillez cliquer sur le bouton "Accepter la demande" situé à droite de la description.');
- $res .= ' ' . __('Vous avez également la possibilité de décliner la demande en cliquant sur le bouton "Décliner la demande"') . "
";
- $res .= '
';
-
- $res .= '
';
-
- $res .= '
';
- $res .= commonPage::bf();
- $res .= commonPage::bMain();
- return $res;
- }
-}
-
-?>
\ No newline at end of file
diff --git a/inc/ws/Controlleur/url/class.ws.url.traduction.php b/inc/ws/Controlleur/url/class.ws.url.traduction.php
deleted file mode 100644
index 7efd737db..000000000
--- a/inc/ws/Controlleur/url/class.ws.url.traduction.php
+++ /dev/null
@@ -1,115 +0,0 @@
-user->lang);
- $existingLangs = array();
-
- $dao = new wsDAOLang($core->con);
- $langs = $dao->selectAll();
- foreach($langs as $lang) {
- if (!isset($allLangs[$lang->lang_id])) {
- continue;
- }
- $existingLangs[$lang->lang_id] = $allLangs[$lang->lang_id];
-
- unset($allLangs[$lang->lang_id]);
- }
-
- $langs = array(__('Langues configurées') => array_flip($existingLangs), __('Autres langues') => array_flip($allLangs));
-
- $res = commonPage::barre();
- $res .= commonPage::tMain(null, false);
-
- $res .= commonPage::bh();
- $res .= '';
- $res .= commonPage::bf();
-
- $res .= '';
- $res .= self::formLang($args[1]);
- $res .= '
';
- $res .= commonPage::bMain(true);
-
- return $res;
- }
-
- public static function formLang($lang_id)
- {
- commonDroits::min(5);
- global $core;
- $dao = new wsDAOLang($core->con);
- $lang = $dao->selectById($lang_id);
-
- $res = '';
- return $res;
- }
-
- public static function getFonts()
- {
- $formats = array('ttf', 'otf', 'TTF', 'OTF');
-
- $dr = opendir(FONT_PATH);
- $fonts = array();
- while ($file = readdir($dr)) {
- if ($file == '.' || $file == '..' || !in_array(files::getExtension($file), $formats)) {
- continue;
- }
- $fonts[$file] = $file;
- }
- return $fonts;
- }
-
- protected static function getCharsets()
- {
- $sets = cubeFlexFontAsset::getSets();
- $res = array();
- foreach($sets as $k => $v) {
- $res[$k] = $k;
- }
- return $res;
- }
-
- protected static function getNSISLangs()
- {
- $res = array();
- $dir = WS_FILES . '/nsislangs';
- $dr = opendir($dir);
- while ($file = readdir($dr)) {
- if ($file == '.' || $file == '..') {
- continue;
- }
- $e = explode('.', $file);
- $res[$e[0]] = $e[0];
- }
-
- ksort($res);
- return $res;
- }
-}
-?>
\ No newline at end of file
diff --git a/inc/ws/DAO/class.ws.dao.demande.php b/inc/ws/DAO/class.ws.dao.demande.php
index e39de1582..44867a15a 100644
--- a/inc/ws/DAO/class.ws.dao.demande.php
+++ b/inc/ws/DAO/class.ws.dao.demande.php
@@ -102,22 +102,17 @@ class wsDAODemande extends commonDAO {
public function accepteDemande($demande_id, $revendeur)
{
- $demande = $this->setStatus($demande_id, 2);
+ $c = $this->con->openCursor('demandes');
+ $c->status = 2;
+ $c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');
+
+ $demande = $this->selectById($demande_id);
// Mets également à jour l'entreprise afin d'associer client et revendeur
$daoEntreprise = new commonDAOEntreprise($this->con);
$daoEntreprise->setWSAdmin($demande->entreprise, $revendeur);
return $demande;
}
- public function setStatus($demande_id, $status)
- {
- $c = $this->con->openCursor('demandes');
- $c->status = $status;
- $c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');
-
- return $this->selectById($demande_id);
- }
-
public function setRevendeur($demande_id, $revendeur)
{
// Mets à jour l'entreprise
--
2.39.5