diff --git a/htdocs/telephonie/facturation/FacturationVerifCdr.class.php b/htdocs/telephonie/facturation/FacturationVerifCdr.class.php new file mode 100644 index 00000000000..6c8be6d3bf5 --- /dev/null +++ b/htdocs/telephonie/facturation/FacturationVerifCdr.class.php @@ -0,0 +1,100 @@ + + * + * 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$ + * + * Script d'verif des CDR + */ +require_once(DOL_DOCUMENT_ROOT."/telephonie/fournisseurtel.class.php"); + +class FacturationVerifCdr { + + function FacturationVerifCdr($dbh) + { + $this->db = $dbh; + $this->messages = array(); + $this->message_bad_file_format = array(); + } + + function Verif() + { + $error = 0; + + $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."telephonie_import_cdr"; + + if ( $this->db->query($sql) ) + { + $row = $this->db->fetch_row(); + dolibarr_syslog("facturation-verif.php ".$row[0]." lignes de communications a verifier"); + } + + /******************************************************************************* + * + * Verifie la présence des tarifs adequat + * + */ + $grille_vente = TELEPHONIE_GRILLE_VENTE_DEFAUT_ID; + + $tarif_vente = new TelephonieTarif($this->db, $grille_vente, "vente"); + + dolibarr_syslog("facturation-verif.php Grille : $grille contient ".$tarif_vente->num_tarifs." tarifs"); + + $sql = "SELECT distinct(num) FROM ".MAIN_DB_PREFIX."telephonie_import_cdr"; + + $resql = $this->db->query($sql); + + if ( $resql ) + { + $nums = $this->db->num_rows($resql); + + while($row = $this->db->fetch_row($resql) ) + { + $numero = $row[0]; + + /* Reformatage du numéro */ + + if (substr($numero,0,2) == '00') /* International */ + { + } + elseif (substr($numero,0,2) == '06') /* Telephones Mobiles */ + { + $numero = "0033".substr($numero,1); + } + else + { + $numero = "0033".substr($numero, 1); + } + + /* Numéros spéciaux */ + if (substr($numero,4,1) == 8) + { + + } + else + { + if ( $tarif_vente->cout($numero, $x, $y, $z) == 0) + { + print "Tarif vente manquant pour $numero ($row[0]) $x $y dans la grille $grille\n"; + } + } + + } + $this->db->free($resql); + + } +} diff --git a/htdocs/telephonie/facturation/batch.php b/htdocs/telephonie/facturation/batch.php new file mode 100644 index 00000000000..68ca96a18ea --- /dev/null +++ b/htdocs/telephonie/facturation/batch.php @@ -0,0 +1,158 @@ + + * + * 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"); + +if (!$user->rights->telephonie->facture->lire) accessforbidden(); + +if ($_GET["action"] == 'delete' && $_GET["id"] > 0) +{ + $id = $_GET["id"]; + $result = 0; + + $db->query("BEGIN"); + + $sql = "SELECT rowid, fk_facture FROM ".MAIN_DB_PREFIX."telephonie_facture WHERE fk_batch=".$id.";"; + $resql = $db->query($sql); + if ($resql > 0) $result += 1 ; + + $facturetel_id = array(); + $facture_id = array(); + while ($row = $db->fetch_row($resql)) + { + array_push($facturetel_id, $row[0]); + } + $db->free($resql); + + foreach($facturetel_id as $tfid) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."telephonie_communications_details WHERE fk_telephonie_facture=".$tfid.";"; + $resql = $db->query($sql); + if ($resql > 0) $result += 1 ; + } + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."telephonie_facture WHERE fk_batch=".$id.";"; + $resql = $db->query($sql); + if ($resql > 0) $result += 1 ; + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."telephonie_facturation_batch WHERE rowid=".$id.";"; + $resql = $db->query($sql); + if ($resql > 0) $result += 1 ; + + $goodres = 3 + sizeof($facturetel_id) + sizeof($facture_id); + + if ($result == $goodres) + { + $db->commit(); + } + else + { + print "$goodres $result"; + $db->rollback(); + } +} + +// FIN DES ACTIONS + +$page = $_GET["page"]; +$sortorder = $_GET["sortorder"]; +$sortfield = $_GET["sortfield"]; + +llxHeader(); + +/* + * Sécurité accés client + */ +if ($user->societe_id > 0) +{ + $action = ''; + $socid = $user->societe_id; +} + +if ($sortorder == "") { + $sortorder=""; +} +if ($sortfield == "") { + $sortfield="date_batch DESC"; +} + +/* + * Recherche + * + * + */ + +if ($page == -1) { $page = 0 ; } + +$offset = $conf->liste_limit * $page ; +$pageprev = $page - 1; +$pagenext = $page + 1; + +/* + * Mode Liste + * + */ + +print_barre_liste("CDR a traiter", $page, "cdr.php", "", $sortfield, $sortorder, '', $num); + +print ''; +print ''; +print ''; + +print "\n"; + +print ''; +print ''; +print ''; +print ''; +print ''; + +$var=True; + +$sql = "SELECT rowid,date_batch"; +$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facturation_batch"; +$sql .= " WHERE 1=1"; +if ($_GET["search_ligne"]) +{ + $sel =urldecode($_GET["search_ligne"]); + $sel = ereg_replace("\.","",$sel); + $sel = ereg_replace(" ","",$sel); + $sql .= " AND ligne LIKE '%".$sel."%'"; +} +$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit+1, $offset); +$resql = $db->query($sql); + +while ($obj = $db->fetch_object($resql)) +{ + $var=!$var; + + print ""; + print '\n"; + print '\n"; + print ''; +} +print "
idDateUtilisateur
'.$obj->rowid."'.$obj->date_batch."Supprimer
"; + + +$db->close(); + +llxFooter("Dernière modification $Date$ révision $Revision$"); +?>