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