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 |
?> |
?> |