This commit is contained in:
Rodolphe Quiedeville 2007-07-03 13:31:08 +00:00
parent fa2391a3f4
commit 0a2a1d6d31
3 changed files with 787 additions and 708 deletions

View File

@ -42,17 +42,42 @@ require_once (DOL_DOCUMENT_ROOT."/telephonie/telephonie.contrat.class.php");
class FacturationEmission { class FacturationEmission {
function FacturationEmission($db) function FacturationEmission($db, $user)
{ {
$this->db = $db; $this->db = $db;
$this->do_validate_facture = 0; $this->do_validate_facture = 0;
$this->messages = array(); $this->messages = array();
$this->user = $user;
}
/*
* Compte le nombre de facture a generer
*
*/
function NbFactureToGenerate()
{
$sql = "SELECT count(rowid) FROM ".MAIN_DB_PREFIX."telephonie_facture";
$sql .= " WHERE fk_facture IS NULL;";
$resql = $this->db->query($sql);
if ( $resql )
{
$row = $this->db->fetch_row($resql);
$this->nbfac = $row[0];
$this->db->free($resql);
$this->error = 0;
}
else
{
$this->error = 1;
dolibarr_syslog("Erreur ".$error);
}
return $this->error;
} }
function Emission() function Emission()
{ {
$error = 0; $error = 0;
$datetime = time(); $datetime = time();
@ -60,8 +85,6 @@ class FacturationEmission {
$date = strftime("%d%h%Y%Hh%Mm%S",$datetime); $date = strftime("%d%h%Y%Hh%Mm%S",$datetime);
$user = new User($this->db, 1);
$month = strftime("%m", $datetime); $month = strftime("%m", $datetime);
$year = strftime("%Y", $datetime); $year = strftime("%Y", $datetime);
@ -90,13 +113,13 @@ class FacturationEmission {
$batch_id = $row[0]; $batch_id = $row[0];
dolibarr_syslog("Traitement du batch ".$batch_id); dolibarr_syslog("FacturationEmission::Emission Traitement du batch ".$batch_id);
$this->db->free($resql); $this->db->free($resql);
} }
else else
{ {
$error = 1; $error = 1;
dolibarr_syslog("Erreur ".$error); dolibarr_syslog("FacturationEmission::Emission Erreur ".$error);
} }
/* /*
@ -113,7 +136,7 @@ class FacturationEmission {
* *
***************************************************************/ ***************************************************************/
dolibarr_syslog("Lecture des contrats"); dolibarr_syslog("FacturationEmission::Emission Lecture des contrats",LOG_DEBUG);
$sql = "SELECT distinct(c.rowid)"; $sql = "SELECT distinct(c.rowid)";
$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as f"; $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as f";
@ -149,7 +172,7 @@ class FacturationEmission {
else else
{ {
$error = 2; $error = 2;
dolibarr_syslog("Erreur $error"); dolibarr_syslog("FacturationEmission::Emission Erreur $error",LOG_ERR);
} }
} }
/* /*
@ -158,7 +181,7 @@ class FacturationEmission {
*/ */
if (!$error) if (!$error)
{ {
dolibarr_syslog("Nombre de contrats à facturer ".sizeof($contrats)); dolibarr_syslog("FacturationEmission::Emission Nombre de contrats à facturer ".sizeof($contrats),LOG_DEBUG);
$xcli = 0; $xcli = 0;
$xclis = sizeof($contrats); $xclis = sizeof($contrats);
@ -168,7 +191,7 @@ class FacturationEmission {
$xcli++; $xcli++;
/* Lecture des factures téléphoniques du contrat */ /* Lecture des factures téléphoniques du contrat */
dolibarr_syslog($xcli."/".$xclis." Contrat à facturer id=".$contrat." (".memory_get_usage() .")"); dolibarr_syslog("FacturationEmission::Emission ".$xcli."/".$xclis." Contrat à facturer id=".$contrat." (".memory_get_usage() .")",LOG_DEBUG);
$sql = "SELECT f.rowid, s.idp FROM "; $sql = "SELECT f.rowid, s.idp FROM ";
$sql .= MAIN_DB_PREFIX."telephonie_facture as f"; $sql .= MAIN_DB_PREFIX."telephonie_facture as f";
@ -204,43 +227,43 @@ class FacturationEmission {
} }
$this->db->free(); $this->db->free();
dolibarr_syslog("Contrat $contrat : $i factures trouvées à générer"); dolibarr_syslog("FacturationEmission::Emission Contrat $contrat, $i factures trouvées à générer", LOG_DEBUG);
$factures_prev = array(); $factures_prev = array();
$factures_a_mailer = array(); $factures_a_mailer = array();
if (sizeof($numlignes) > 0) if (sizeof($numlignes) > 0)
{ {
$this->facture_contrat($this->db, $user, $contrat, $numlignes, $datetime, $factures_prev, $factures_a_mailer); $this->facture_contrat($this->db, $this->user, $contrat, $numlignes, $datetime, $factures_prev, $factures_a_mailer);
} }
if (sizeof($numlignes) > 0) if (sizeof($numlignes) > 0)
{ {
$this->_prelevements($this->db, $user, $factures_prev); $this->_prelevements($this->db, $this->user, $factures_prev);
} }
if (sizeof($numlignes) > 0) if (sizeof($numlignes) > 0)
{ {
//$this->_emails($this->db, $user, $contrat, $factures_a_mailer); //$this->_emails($this->db, $this->user, $contrat, $factures_a_mailer);
} }
} }
else else
{ {
$error = 1; $error = 1;
//print $this->db->error(); dolibarr_syslog("FacturationEmission::Emission Error ".$error, LOG_ERR);
} }
} }
} }
} }
/**
function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$factures_prev, &$factures_a_mailer) *
{ *
/* *
* Traitements
* *
*/ */
function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$factures_prev, &$factures_a_mailer)
{
$i = 0; $i = 0;
$error = 0; $error = 0;
@ -263,7 +286,7 @@ class FacturationEmission {
else else
{ {
$error++; $error++;
dolibarr_syslog("Impossible de lire le contrat"); dolibarr_syslog("FacturationEmission::facture_contrat Impossible de lire le contrat");
} }
} }
@ -289,7 +312,7 @@ class FacturationEmission {
*/ */
if (!$error) if (!$error)
{ {
if ($verbose) dolibarr_syslog("Création facture pour $soc->nom"); if ($verbose) dolibarr_syslog("FacturationEmission::facture_contrat Création facture pour $soc->nom", LOG_DEBUG);
$fac = new Facture($db, $soc->id); $fac = new Facture($db, $soc->id);
$cancel_facture = 1; $cancel_facture = 1;
@ -305,7 +328,7 @@ class FacturationEmission {
} }
else else
{ {
dolibarr_syslog("Erreur création objet facture erreur : $facid"); dolibarr_syslog("FacturationEmission::facture_contrat Erreur création objet facture erreur : $facid",LOG_ERR);
$error = 16; $error = 16;
} }
} }
@ -440,12 +463,12 @@ class FacturationEmission {
$is++; $is++;
} }
$db->free(); $db->free($resql);
} }
else else
{ {
$error = 20; $error = 20;
dolibarr_syslog("Erreur $error"); dolibarr_syslog("FacturationEmission Erreur $error", LOG_ERR);
} }
} }
@ -735,7 +758,7 @@ class FacturationEmission {
} }
else else
{ {
dolibarr_syslog("ERREUR lors de Génération du pdf détaillé"); dolibarr_syslog("FacturationEmission::facture_contrat ERREUR lors de Génération du pdf détaillé ($modele)");
$error = 19; $error = 19;
} }
} }
@ -840,8 +863,8 @@ function _prelevements($db, $user, $factures_prev)
* * * *
* * * *
********************************************************************/ ********************************************************************/
//dolibarr_syslog("[PR] Debut demande de prelevement"); dolibarr_syslog("FacturationEmission::_prelevements Debut demande de prelevement", LOG_DEBUG);
//dolibarr_syslog("[PR] Nombre de factures ".sizeof($factures_prev)); dolibarr_syslog("FacturationEmission::_prelevements Nombre de factures ".sizeof($factures_prev),LOG_DEBUG);
if (sizeof($factures_prev) > 0) if (sizeof($factures_prev) > 0)
{ {
foreach ($factures_prev as $fac) foreach ($factures_prev as $fac)
@ -852,19 +875,16 @@ function _prelevements($db, $user, $factures_prev)
$fact->demande_prelevement($user); $fact->demande_prelevement($user);
} }
} }
//dolibarr_syslog("[PR] Fin demande de prelevement"); dolibarr_syslog("FacturationEmission::_prelevements Fin demande de prelevement", LOG_DEBUG);
} }
function _emails($db, $user, $contrat_id, $factures_a_mailer) function _emails($db, $user, $contrat_id, $factures_a_mailer)
{ {
/******************************************************************** /********************************************************************
* *
* * * *
* Envoi des factures par emails * * Envoi des factures par emails *
* * * *
* *
********************************************************************/ ********************************************************************/
if (sizeof($factures_a_mailer) > 0) if (sizeof($factures_a_mailer) > 0)
{ {
@ -1000,6 +1020,4 @@ function _emails($db, $user, $contrat_id, $factures_a_mailer)
} }
?> ?>

View File

@ -0,0 +1,61 @@
<?PHP
/* Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*
*/
require("./pre.inc.php");
require_once DOL_DOCUMENT_ROOT.'/telephonie/facturation/FacturationCalcul.class.php';
if (!$user->rights->telephonie->facture->ecrire) accessforbidden();
llxHeader();
/*
* Sécurité accés client
*/
if ($user->societe_id > 0)
{
$action = '';
$socid = $user->societe_id;
}
/*
*
*/
print_barre_liste("Calcul des CDR", $page, "calcul.php", "", $sortfield, $sortorder, '', $num);
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
print '<tr class="liste_titre">';
print '<td>Message</td></tr>';
$var=True;
$obj = new FacturationCalcul($db);
$obj->Calcul();
foreach ($obj->messages as $message)
{
$var=!$var;
print "<tr $bc[$var]><td>".$message."</td></tr>\n";
}
print "</table>";
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");
?>

View File

@ -66,7 +66,7 @@ print "</tr>\n";
$var=True; $var=True;
$obj = new FacturationImportCdr($db); $obj = new FacturationImportCdr($db);
$obj->Import(); $obj->Import($_GET["id"]);
foreach ($obj->messages as $message) foreach ($obj->messages as $message)
{ {