/[dolibarr]/dolibarr/htdocs/telephonie/script/facture-detail-tableur-one.class.php
ViewVC logotype

Diff of /dolibarr/htdocs/telephonie/script/facture-detail-tableur-one.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by rodolphe, Fri Aug 5 13:40:14 2005 UTC revision 1.4 by rodolphe, Wed Sep 7 10:04:14 2005 UTC
# Line 30  class FactureDetailTableurOne { Line 30  class FactureDetailTableurOne {
30      $this->db = $DB;      $this->db = $DB;
31    }    }
32    
33    Function GenerateFile($ligne, $year, $month)    Function GenerateFile($ligne_id, $year, $month)
34    {    {
35      $this->ligne = $ligne;      $this->ligne = new LigneTel($db);
36        $this->ligne->id = $ligne_id;
37    
38      $dir = "/tmp";      $dir = "/tmp";
39      $error = 0;      $error = 0;
40    
41      $dir = FAC_OUTPUTDIR . "/" . $fac->ref . "/" ;      $sql = "SELECT rowid";
42      $fname = $dir . $fac->ref . "-$ligne-$objlignetel->code_analytique-detail.xls";      $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture";
43        $sql .= " WHERE fk_ligne = '".$this->ligne->id."'";
44      dolibarr_syslog("Open $fname");      $sql .= " AND date = '".$year."-".$month."-01';";
       
     $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";  
45    
46      $resql = $this->db->query($sql);      $resql = $this->db->query($sql);
47            
48      if ($resql)      if ($resql)
49        {        {
50          $i = 0;          if ($row = $this->db->fetch_row($resql))
51          $numsql = $this->db->num_rows($resql);            {
52                $facid = substr('0000'.$row[0], -4);
53              }
54            else
55              {
56                //dolibarr_syslog("Pas de facture pour ".$this->ligne->id);
57              }
58          }
59        else
60          {
61            dolibarr_syslog("Error");
62          }
63    
64    
65        if ($facid > 0)
66          {
67    
68          dolibarr_syslog($this->ligne . " : ".$numsql);          $dir = DOL_DATA_ROOT.'/telephonie/facture/';
69    
70          while ($i < $numsql)          $dir .= substr($facid,0,1)."/";
71            $dir .= substr($facid,1,1)."/";
72            $dir .= substr($facid,2,1)."/";
73            $dir .= substr($facid,3,1)."/";
74            
75            create_exdir($dir);
76    
77            $fname = $dir . $facid . "-detail.xls";
78            
79            dolibarr_syslog("Open ".$facid."-detail.xls");
80            
81            $workbook = &new writeexcel_workbook($fname);
82            
83            $page = &$workbook->addworksheet($year."/".substr("00".$month,-2));
84            
85            $fnb =& $workbook->addformat();
86            $fnb->set_align('vcenter');
87            $fnb->set_align('right');
88    
89            $fp =& $workbook->addformat();
90            $fp->set_align('vcenter');
91            $fp->set_align('right');
92            $fp->set_num_format('0.000');
93            
94            $fdest =& $workbook->addformat();
95            $fdest->set_align('vcenter');
96            
97            $page->set_column(0,0,12); // A
98            $page->set_column(1,1,20); // B
99            $page->set_column(2,2,15); // C
100            
101            $page->set_column(3,3,30);  // D
102            $page->set_column(6,6,7); // G
103            $page->set_column(9,9,7); // J
104            $page->set_column(12,12,7); // M
105            
106            $page->write(0, 0,  "Ligne", $format_titre_agence1);
107            $page->write(0, 1,  "Date", $format_titre);
108            $page->write(0, 2,  "Numero", $format_titre);
109            $page->write(0, 3,  "Destination", $format_titre);
110            $page->write(0, 4,  "Duree", $format_titre);
111            $page->write(0, 5,  "Cout", $format_titre);
112            
113            $sql = "SELECT ligne, date, numero, dest, dureetext, duree, cout_vente";
114            $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details";
115            $sql .= " WHERE fk_ligne = '".$this->ligne->id."'";
116            $sql .= " AND fk_telephonie_facture = ".$facid;
117            $sql .= " ORDER BY date ASC";
118            
119            $resql = $this->db->query($sql);
120            
121            if ($resql)
122            {            {
123              $obj = $this->db->fetch_object($resql);              $i = 0;
124                $numsql = $this->db->num_rows($resql);
             $xx = $i + 1;  
125                            
126              $page->write_string($xx, 0,  $obj->ligne, $fdest);              dolibarr_syslog("Ligne : ".$this->ligne->id . " : ".$numsql);
             $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);  
   
127                            
128              $i++;              while ($i < $numsql)
129                  {
130                    $obj = $this->db->fetch_object($resql);
131                    
132                    $xx = $i + 1;
133                    
134                    $page->write_string($xx, 0,  $obj->ligne, $fdest);
135                    $page->write_string($xx, 1,  $obj->date, $fdest);
136                    $page->write_string($xx, 2,  $obj->numero, $fdest);
137                    $page->write_string($xx, 3,  $obj->dest, $fdest);
138                    $page->write($xx, 4,  $obj->duree, $fnb);
139                    $page->write($xx, 5,  $obj->cout_vente, $fp);
140                    
141                    $i++;
142                  }
143                $this->db->free($resql);
144            }            }
145          $this->db->free($resql);          else
146        }            {
147      else              dolibarr_syslog($this->db->error());
148        {            }
149          dolibarr_syslog($this->db->error());          
150            $workbook->close();
151            //dolibarr_syslog("Close $fname");
152        }        }
153            
     $workbook->close();  
     dolibarr_syslog("Close $fname");  
   
154      return $error;      return $error;
   
155    }    }
156  }  }
157  ?>  ?>

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26