From 09d877bc9b3b3738705d39ee4655dc248f1559ef Mon Sep 17 00:00:00 2001
From: Rodolphe Quiedeville <rodolphe@quiedeville.org>
Date: Wed, 7 Sep 2005 10:04:14 +0000
Subject: [PATCH] Modif syslogs et autres

---
 .../facture-detail-tableur-one.class.php      | 170 +++++++++++-------
 1 file changed, 103 insertions(+), 67 deletions(-)

diff --git a/htdocs/telephonie/script/facture-detail-tableur-one.class.php b/htdocs/telephonie/script/facture-detail-tableur-one.class.php
index 44050cc8cd1..506f09b153f 100644
--- a/htdocs/telephonie/script/facture-detail-tableur-one.class.php
+++ b/htdocs/telephonie/script/facture-detail-tableur-one.class.php
@@ -30,92 +30,128 @@ class FactureDetailTableurOne {
     $this->db = $DB;
   }
 
-  Function GenerateFile($ligne, $year, $month)
+  Function GenerateFile($ligne_id, $year, $month)
   {
-    $this->ligne = $ligne;
+    $this->ligne = new LigneTel($db);
+    $this->ligne->id = $ligne_id;
 
     $dir = "/tmp";
     $error = 0;
 
-    $dir = FAC_OUTPUTDIR . "/" . $fac->ref . "/" ;
-    $fname = $dir . $fac->ref . "-$ligne-$objlignetel->code_analytique-detail.xls";
-
-    dolibarr_syslog("Open $fname");
-    
-    $workbook = &new writeexcel_workbook($fname);
-
-    $page = &$workbook->addworksheet($year."/".substr("00".$month,-2));
-  
-    $fnb =& $workbook->addformat();
-    $fnb->set_align('vcenter');
-    $fnb->set_align('right');
-
-    $fp =& $workbook->addformat();
-    $fp->set_align('vcenter');
-    $fp->set_align('right');
-    $fp->set_num_format('0.000');
-
-    $fdest =& $workbook->addformat();
-    $fdest->set_align('vcenter');
-
-    $page->set_column(0,0,12); // A
-    $page->set_column(1,1,20); // B
-    $page->set_column(2,2,15); // C
-    
-    $page->set_column(3,3,30);  // D
-    $page->set_column(6,6,7); // G
-    $page->set_column(9,9,7); // J
-    $page->set_column(12,12,7); // M
-              
-    $page->write(0, 0,  "Ligne", $format_titre_agence1);
-    $page->write(0, 1,  "Date", $format_titre);
-    $page->write(0, 2,  "Numero", $format_titre);
-    $page->write(0, 3,  "Destination", $format_titre);
-    $page->write(0, 4,  "Dur�e", $format_titre);
-    $page->write(0, 5,  "Cout", $format_titre);
-
-    $sql = "SELECT ligne, date, numero, dest, dureetext, duree, cout_vente";
-    $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details";
-    $sql .= " WHERE ligne = '".$this->ligne."'";
-    $sql .= " ORDER BY date ASC";
+    $sql = "SELECT rowid";
+    $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture";
+    $sql .= " WHERE fk_ligne = '".$this->ligne->id."'";
+    $sql .= " AND date = '".$year."-".$month."-01';";
 
     $resql = $this->db->query($sql);
     
     if ($resql)
       {
-	$i = 0;
-	$numsql = $this->db->num_rows($resql);
+	if ($row = $this->db->fetch_row($resql))
+	  {
+	    $facid = substr('0000'.$row[0], -4);
+	  }
+	else
+	  {
+	    //dolibarr_syslog("Pas de facture pour ".$this->ligne->id);
+	  }
+      }
+    else
+      {
+	dolibarr_syslog("Error");
+      }
 
-	dolibarr_syslog($this->ligne . " : ".$numsql);
 
-	while ($i < $numsql)
-	  {
-	    $obj = $this->db->fetch_object($resql);
+    if ($facid > 0)
+      {
 
-	    $xx = $i + 1;
+	$dir = DOL_DATA_ROOT.'/telephonie/facture/';
+
+	$dir .= substr($facid,0,1)."/";
+	$dir .= substr($facid,1,1)."/";
+	$dir .= substr($facid,2,1)."/";
+	$dir .= substr($facid,3,1)."/";
+	
+	create_exdir($dir);
+
+	$fname = $dir . $facid . "-detail.xls";
+	
+	dolibarr_syslog("Open ".$facid."-detail.xls");
+	
+	$workbook = &new writeexcel_workbook($fname);
+	
+	$page = &$workbook->addworksheet($year."/".substr("00".$month,-2));
+	
+	$fnb =& $workbook->addformat();
+	$fnb->set_align('vcenter');
+	$fnb->set_align('right');
+
+	$fp =& $workbook->addformat();
+	$fp->set_align('vcenter');
+	$fp->set_align('right');
+	$fp->set_num_format('0.000');
+	
+	$fdest =& $workbook->addformat();
+	$fdest->set_align('vcenter');
+	
+	$page->set_column(0,0,12); // A
+	$page->set_column(1,1,20); // B
+	$page->set_column(2,2,15); // C
+	
+	$page->set_column(3,3,30);  // D
+	$page->set_column(6,6,7); // G
+	$page->set_column(9,9,7); // J
+	$page->set_column(12,12,7); // M
+	
+	$page->write(0, 0,  "Ligne", $format_titre_agence1);
+	$page->write(0, 1,  "Date", $format_titre);
+	$page->write(0, 2,  "Numero", $format_titre);
+	$page->write(0, 3,  "Destination", $format_titre);
+	$page->write(0, 4,  "Duree", $format_titre);
+	$page->write(0, 5,  "Cout", $format_titre);
+	
+	$sql = "SELECT ligne, date, numero, dest, dureetext, duree, cout_vente";
+	$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details";
+	$sql .= " WHERE fk_ligne = '".$this->ligne->id."'";
+	$sql .= " AND fk_telephonie_facture = ".$facid;
+	$sql .= " ORDER BY date ASC";
+	
+	$resql = $this->db->query($sql);
+	
+	if ($resql)
+	  {
+	    $i = 0;
+	    $numsql = $this->db->num_rows($resql);
 	    
-	    $page->write_string($xx, 0,  $obj->ligne, $fdest);
-	    $page->write_string($xx, 1,  $obj->date, $fdest);
-	    $page->write_string($xx, 2,  $obj->numero, $fdest);
-	    $page->write_string($xx, 3,  $obj->dest, $fdest);
-	    $page->write($xx, 4,  $obj->duree, $fnb);
-	    $page->write($xx, 5,  $obj->cout_vente, $fp);
-
+	    dolibarr_syslog("Ligne : ".$this->ligne->id . " : ".$numsql);
 	    
-	    $i++;
+	    while ($i < $numsql)
+	      {
+		$obj = $this->db->fetch_object($resql);
+		
+		$xx = $i + 1;
+		
+		$page->write_string($xx, 0,  $obj->ligne, $fdest);
+		$page->write_string($xx, 1,  $obj->date, $fdest);
+		$page->write_string($xx, 2,  $obj->numero, $fdest);
+		$page->write_string($xx, 3,  $obj->dest, $fdest);
+		$page->write($xx, 4,  $obj->duree, $fnb);
+		$page->write($xx, 5,  $obj->cout_vente, $fp);
+		
+		$i++;
+	      }
+	    $this->db->free($resql);
 	  }
-	$this->db->free($resql);
-      }
-    else
-      {
-	dolibarr_syslog($this->db->error());
+	else
+	  {
+	    dolibarr_syslog($this->db->error());
+	  }
+	
+	$workbook->close();
+	//dolibarr_syslog("Close $fname");
       }
     
-    $workbook->close();
-    dolibarr_syslog("Close $fname");
-
     return $error;
-
   }
 }
 ?>
-- 
GitLab