| [ Index ] |
|
Code source de Dolibarr 2.0.1 |
1 <?PHP 2 /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 * 18 * $Id: facturation-emission.php,v 1.26 2005/12/05 16:34:18 rodolphe Exp $ 19 * $Source: /cvsroot/dolibarr/dolibarr/htdocs/telephonie/script/facturation-emission.php,v $ 20 * 21 * 22 * Script de facturation 23 * Emets les factures compta en partant des factures téléphonique 24 * 25 */ 26 27 /** 28 \file htdocs/telephonie/script/facturation-emission.php 29 \ingroup telephonie 30 \brief Emission des factures 31 \version $Revision: 1.26 $ 32 */ 33 34 35 require ("../../master.inc.php"); 36 37 $opt = getopt("l:c:"); 38 39 $limit = $opt['l']; 40 $optcontrat = $opt['c']; 41 42 if (strlen($limit) == 0 && strlen($optcontrat) == 0) 43 { 44 print "Usage :\n php facturation-emission.php -l <limit>\n"; 45 exit; 46 } 47 48 require_once (DOL_DOCUMENT_ROOT."/facture.class.php"); 49 require_once (DOL_DOCUMENT_ROOT."/societe.class.php"); 50 require_once (DOL_DOCUMENT_ROOT."/paiement.class.php"); 51 require_once (DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php"); 52 require_once (DOL_DOCUMENT_ROOT."/telephonie/lignetel.class.php"); 53 require_once (DOL_DOCUMENT_ROOT."/telephonie/facturetel.class.php"); 54 require_once (DOL_DOCUMENT_ROOT."/telephonie/telephonie.contrat.class.php"); 55 56 57 $error = 0; 58 59 $datetime = time(); 60 $datetimeprev = $datetime; // Date du prélèvement 61 62 $date = strftime("%d%h%Y%Hh%Mm%S",$datetime); 63 64 $user = new User($db, 1); 65 66 $month = strftime("%m", $datetime); 67 $year = strftime("%Y", $datetime); 68 69 if ($month == 1) 70 { 71 $month = "12"; 72 $year = $year - 1; 73 } 74 else 75 { 76 $month = substr("00".($month - 1), -2) ; 77 } 78 79 /* 80 * Lecture du batch 81 * 82 */ 83 84 $sql = "SELECT MAX(rowid) FROM ".MAIN_DB_PREFIX."telephonie_facturation_batch"; 85 86 $resql = $db->query($sql); 87 88 if ( $resql ) 89 { 90 $row = $db->fetch_row($resql); 91 92 $batch_id = $row[0]; 93 94 dolibarr_syslog("Traitement du batch ".$batch_id); 95 $db->free($resql); 96 } 97 else 98 { 99 $error = 1; 100 dolibarr_syslog("Erreur ".$error); 101 } 102 103 /* 104 * Traitements 105 * 106 */ 107 108 if (!$error) 109 { 110 /*************************************************************** 111 * 112 * Lectures des contrats a traiter 113 * 114 * 115 ***************************************************************/ 116 117 dolibarr_syslog("Lecture des contrats"); 118 119 $sql = "SELECT distinct(c.rowid)"; 120 $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as f"; 121 $sql .= " , ".MAIN_DB_PREFIX."telephonie_societe_ligne as l"; 122 $sql .= " , ".MAIN_DB_PREFIX."telephonie_contrat as c"; 123 124 $sql .= " WHERE f.fk_facture IS NULL"; 125 $sql .= " AND f.fk_batch = ".$batch_id; 126 $sql .= " AND f.isfacturable = 'oui'"; 127 $sql .= " AND f.fk_ligne = l.rowid "; 128 $sql .= " AND l.fk_contrat = c.rowid"; 129 130 if (strlen($optcontrat) > 0) 131 { 132 $sql .= " AND c.rowid=".$optcontrat; 133 dolibarr_syslog("Limite sur le contrat : ".$optcontrat); 134 } 135 else 136 { 137 $sql .= " LIMIT $limit"; 138 } 139 140 $contrats = array(); 141 142 $resql = $db->query($sql) ; 143 144 if ( $resql ) 145 { 146 $num = $db->num_rows($resql); 147 $i = 0; 148 149 while ($i < $num) 150 { 151 $row = $db->fetch_row($resql); 152 $contrats[$i] = $row[0]; 153 $i++; 154 } 155 $db->free(); 156 } 157 else 158 { 159 $error = 2; 160 dolibarr_syslog("Erreur $error"); 161 } 162 } 163 /* 164 * 165 * 166 */ 167 if (!$error) 168 { 169 dolibarr_syslog("Nombre de contrats à facturer ".sizeof($contrats)); 170 171 $xcli = 0; 172 $xclis = sizeof($contrats); 173 174 foreach ($contrats as $contrat) 175 { 176 $xcli++; 177 178 /* Lecture des factures téléphoniques du contrat */ 179 dolibarr_syslog($xcli."/".$xclis." Contrat à facturer id=".$contrat." (".memory_get_usage() .")"); 180 181 $sql = "SELECT f.rowid, s.idp FROM "; 182 $sql .= MAIN_DB_PREFIX."telephonie_facture as f"; 183 $sql .= ",".MAIN_DB_PREFIX."telephonie_societe_ligne as l"; 184 $sql .= " , ".MAIN_DB_PREFIX."telephonie_contrat as c"; 185 $sql .= ",".MAIN_DB_PREFIX."societe as s"; 186 187 $sql .= " WHERE f.fk_batch = ".$batch_id; 188 $sql .= " AND c.rowid = ".$contrat; 189 $sql .= " AND l.fk_contrat = c.rowid"; 190 $sql .= " AND l.rowid = f.fk_ligne"; 191 $sql .= " AND s.idp = c.fk_soc_facture "; 192 $sql .= " AND f.fk_facture IS NULL"; 193 $sql .= " AND f.isfacturable = 'oui'"; 194 195 $sql .= " ORDER BY l.code_analytique ASC, l.rowid DESC"; 196 197 $numlignes = array(); 198 199 if ( $db->query($sql) ) 200 { 201 $num = $db->num_rows(); 202 203 $i = 0; 204 205 while ($i < $num) 206 { 207 $objp = $db->fetch_object(); 208 209 $numlignes[$i] = $objp->rowid; 210 211 $i++; 212 } 213 $db->free(); 214 215 dolibarr_syslog("Contrat $contrat : $i factures trouvées à générer"); 216 217 $factures_prev = array(); 218 $factures_a_mailer = array(); 219 220 if (sizeof($numlignes) > 0) 221 { 222 facture_contrat($db, $user, $contrat, $numlignes, $datetime, $factures_prev, $factures_a_mailer); 223 } 224 225 if (sizeof($numlignes) > 0) 226 { 227 _prelevements($db, $user, $factures_prev); 228 } 229 230 if (sizeof($numlignes) > 0) 231 { 232 _emails($db, $user, $contrat, $factures_a_mailer); 233 } 234 235 } 236 else 237 { 238 $error = 1; 239 print $db->error(); 240 } 241 } 242 } 243 244 245 function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$factures_prev, &$factures_a_mailer) 246 { 247 /* 248 * Traitements 249 * 250 */ 251 252 $i = 0; 253 $error = 0; 254 255 /* Ouverture de la transaction */ 256 257 if (! $db->query("BEGIN") ) 258 { 259 $error++; 260 } 261 262 /* Lecture du contrat */ 263 264 if (!$error) 265 { 266 $contrat = new TelephonieContrat($db); 267 if ( $contrat->fetch($contrat_id) >= 0) 268 { 269 270 } 271 else 272 { 273 $error++; 274 dolibarr_syslog("Impossible de lire le contrat"); 275 } 276 } 277 278 /* Lecture de la société */ 279 280 if (!$error) 281 { 282 $soc = new Societe($db); 283 284 if ($soc->fetch($contrat->client_facture_id) ) 285 { 286 if ($verbose) dolibarr_syslog($soc->nom); 287 } 288 else 289 { 290 $error = 132; 291 } 292 } 293 294 /* Recuperation des infos de factures dans la base 295 * Creation de la facture 296 * 297 */ 298 if (!$error) 299 { 300 if ($verbose) dolibarr_syslog("Création facture pour $soc->nom"); 301 302 $fac = new Facture($db, $soc->id); 303 $cancel_facture = 1; 304 $fac->date = $datetime; 305 $fac->cond_reglement = 1; 306 $fac->remise_percent = 0; 307 308 $facid = $fac->create($user); 309 310 if ($facid > 0) 311 { 312 313 } 314 else 315 { 316 dolibarr_syslog("Erreur création objet facture"); 317 $error = 4; 318 } 319 } 320 321 /* 322 * Lecture des différentes lignes rattachées 323 * 324 */ 325 if (!$error) 326 { 327 foreach ($factel_ids as $factel_id) 328 { 329 /* Lecture de la facture téléphonique */ 330 331 $factel = new FactureTel($db); 332 if ($factel->fetch($factel_id) == 0) 333 { 334 335 } 336 else 337 { 338 dolibarr_syslog("ERREUR lecture facture téléphonique $factel_id"); 339 $error++; 340 } 341 342 /* Lecture de la ligne correspondante */ 343 344 $ligne = new LigneTel($db); 345 if ($ligne->fetch($factel->ligne) == 1) 346 { 347 348 } 349 else 350 { 351 dolibarr_syslog("ERREUR lecture ligne $factel->ligne"); 352 $error++; 353 } 354 355 if (!$error && $ligne->facturable) /* Test si on doit facturer ou non la ligne */ 356 { 357 $cancel_facture = 0; 358 359 /* Création du lien entre les factures */ 360 361 if ($factel->affect_num_facture_compta($facid) == 0) 362 { 363 364 } 365 else 366 { 367 $error++; 368 } 369 370 $soca = new Societe($db); 371 $soca->fetch($ligne->client_id); 372 373 /* Insertion des lignes de factures */ 374 $libelle = ""; 375 376 if (strlen(trim($ligne->code_analytique)) > 0) 377 { 378 $libelle .= "".$ligne->code_analytique." "; 379 } 380 381 $dm = mktime (1,1,1,strftime("%m",$datetime), -1, strftime("%Y",$datetime)); 382 383 $libelle .= "Communications téléphoniques de la ligne $ligne->numero"; 384 $libelle .= " mois de ".strftime("%B %Y",$dm); 385 if (trim($soca->ville)) 386 { 387 $libelle .= " (".$soca->ville.")"; 388 } 389 390 if (!$error) 391 { 392 $ventil = 0 ; 393 if (defined("TELEPHONIE_COMPTE_VENTILATION")) 394 { 395 396 if (is_numeric(TELEPHONIE_COMPTE_VENTILATION)) 397 { 398 $ventil = TELEPHONIE_COMPTE_VENTILATION; 399 } 400 } 401 402 403 $result = $fac->addline($facid, 404 $libelle, 405 $factel->cout_vente_remise, 406 1, 407 '19.6', 408 0, 409 0,'','',$ventil); 410 } 411 } 412 413 } /* Fin de la boucle des lignes */ 414 } 415 416 /*********************************/ 417 /* */ 418 /* Ajout des services */ 419 /* */ 420 /*********************************/ 421 422 if (!$error) 423 { 424 $sql = "SELECT s.libelle_facture, sc.montant"; 425 $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_contrat_service as sc"; 426 $sql .= " , ".MAIN_DB_PREFIX."telephonie_service as s"; 427 428 $sql .= " WHERE sc.fk_contrat = ".$contrat_id; 429 $sql .= " AND s.rowid = sc.fk_service"; 430 $sql .= " AND sc.montant > 0"; 431 432 $resql = $db->query($sql) ; 433 434 if ( $resql ) 435 { 436 $num = $db->num_rows($resql); 437 $is = 0; 438 439 while ($is < $num) 440 { 441 $row = $db->fetch_row($resql); 442 443 $result = $fac->addline($facid, 444 $row[0], 445 $row[1], 446 1, 447 '19.6', 448 0, 449 0, 450 0); 451 $is++; 452 } 453 $db->free(); 454 } 455 else 456 { 457 $error = 2; 458 dolibarr_syslog("Erreur $error"); 459 } 460 } 461 462 /*********************************/ 463 /* */ 464 /* Ajout rejets de prelevements */ 465 /* */ 466 /*********************************/ 467 if (!$error) 468 { 469 $sql = "SELECT pr.rowid,".$db->pdate("pr.date_rejet"); 470 $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_rejet as pr"; 471 $sql .= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl"; 472 $sql .= " WHERE pl.fk_soc = ".$soc->id; 473 $sql .= " AND pr.fk_prelevement_lignes = pl.rowid"; 474 $sql .= " AND afacturer = 1 LIMIT 1;"; 475 $resql = $db->query($sql) ; 476 if ( $resql ) 477 { 478 while ($row = $db->fetch_row($resql)) 479 { 480 $result = $fac->addline($facid, 481 "Frais pour prélèvement rejeté du ".strftime("%d/%m/%Y",$row[1]), 482 15, 483 1, 484 '0', 485 0, 486 0, 487 0); 488 489 $sqlu = "UPDATE ".MAIN_DB_PREFIX."prelevement_rejet as pr"; 490 $sqlu .= " SET afacturer=0"; 491 $sqlu .= " ,fk_facture=".$facid; 492 $sqlu .= " WHERE rowid=".$row[0].";"; 493 494 $resqlu = $db->query($sqlu); 495 } 496 $db->free($resql); 497 } 498 else 499 { 500 $error = 21; 501 dolibarr_syslog($db->error()); 502 dolibarr_syslog("Erreur rejet prelevement"); 503 } 504 } 505 506 507 /*********************************/ 508 /* */ 509 /* Validation de la facture */ 510 /* */ 511 /*********************************/ 512 513 if (!$error && !$cancel_facture) 514 { 515 if ($verbose) dolibarr_syslog("Validation de la facture : $facid"); 516 517 $y = substr($year, -1); 518 $m = substr("00".$month, -2); 519 520 if ( $fac->set_valid($facid, $user, $soc) ) 521 { 522 $valid_ok = 1; 523 } 524 else 525 { 526 $valid_ok = 0; 527 $error = 5; 528 } 529 } 530 531 /**************************************/ 532 /* */ 533 /* Factures détaillées */ 534 /* */ 535 /**************************************/ 536 537 if (!$error && !$cancel_facture) 538 { 539 foreach ($factel_ids as $factel_id) 540 { 541 /* Lecture de la facture téléphonique */ 542 543 $factel = new FactureTel($db); 544 if ($factel->fetch($factel_id) == 0) 545 { 546 547 } 548 else 549 { 550 dolibarr_syslog("ERREUR lecture facture téléphonique $factel_id"); 551 $error++; 552 } 553 554 /* Lecture de la ligne correspondante */ 555 556 $ligne = new LigneTel($db); 557 if ($ligne->fetch($factel->ligne) == 1) 558 { 559 560 } 561 else 562 { 563 dolibarr_syslog("ERREUR lecture ligne $factel->ligne"); 564 $error++; 565 } 566 567 /* Facture détaillée standard */ 568 569 if (!$error) 570 { 571 $facok = 0; 572 573 // Différents modèles de factures détaillées 574 575 $modele = "standard"; 576 if (strlen($ligne->pdfdetail) > 0) 577 { 578 $modele = $ligne->pdfdetail; 579 } 580 581 require_once (DOL_DOCUMENT_ROOT."/telephonie/pdf/pdfdetail_".$modele.".modules.php"); 582 $class = "pdfdetail_".$modele; 583 584 $facdet = new $class($db, $ligne, $year, $month, $factel); 585 586 if ($facdet->write_pdf_file($factel, $factel->ligne) == 0) 587 { 588 $facok++; 589 } 590 else 591 { 592 dolibarr_syslog("ERREUR lors de Génération du pdf détaillé"); 593 $error = 19; 594 } 595 } 596 597 /* Factures détaillées autres */ 598 599 if (!$error) 600 { 601 // Recherche des factures détaillées 602 // et copie dans le répertoire de la facture 603 // ID facture telephonique $factel_id 604 $fdefacid = substr('0000'.$factel_id, -4); 605 $fdedir = DOL_DATA_ROOT.'/telephonie/facture/'; 606 607 $fdedir .= substr($fdefacid,0,1)."/"; 608 $fdedir .= substr($fdefacid,1,1)."/"; 609 $fdedir .= substr($fdefacid,2,1)."/"; 610 $fdedir .= substr($fdefacid,3,1)."/"; 611 612 $fname = $fdedir . $fdefacid . "-detail.xls"; 613 614 if (file_exists($fname)) 615 { 616 $fdefac = new Facture($db,"",$factel->fk_facture); 617 $fdefac->fetch($factel->fk_facture); 618 619 $dest = FAC_OUTPUTDIR ."/".$fdefac->ref."/".$fdefac->ref."-".$fdefacid."-".$ligne->numero."-detail.xls"; 620 621 copy($fname, $dest); 622 } 623 } 624 } 625 } 626 627 /*********************************/ 628 /* */ 629 /* Creation du pdf de la facture */ 630 /* */ 631 /*********************************/ 632 633 if (!$error && !$cancel_facture && $valid_ok == 1) 634 { 635 if ($verbose) dolibarr_syslog("Génération du pdf facture : $facid"); 636 637 $fac->fetch($facid); 638 $fac->fetch_client(); 639 $fac->client->rib(); 640 641 $message = ""; 642 643 if ($fac->client->bank_account->verif() && $ligne->mode_paiement == 'pre') 644 { 645 $message .= "Cette facture sera prélevée sur votre compte bancaire numéro : "; 646 $message .= $fac->client->bank_account->number; 647 } 648 649 if ($verbose) dolibarr_syslog("Création du pdf facture : $facid"); 650 651 if (! facture_pdf_create($db, $facid, $message)) 652 { 653 $error = 1; 654 print "- ERREUR de génération du pdf de la facture\n"; 655 } 656 } 657 658 if (!$error && !$cancel_facture) 659 { 660 $db->query("COMMIT"); 661 /* $soc 662 * $ligne 663 */ 664 665 if ($contrat->facturable) 666 { 667 array_push($factures_a_mailer, $facid); 668 669 if ($soc->verif_rib()) 670 { 671 array_push($factures_prev, $facid); 672 } 673 else 674 { 675 dolibarr_syslog("facture $facid non preleve, RIB incorrect"); 676 } 677 } 678 679 if ($verbose) dolibarr_syslog("Commit de la transaction");; 680 } 681 else 682 { 683 $db->query("ROLLBACK"); 684 dolibarr_syslog("ROLLBACK de la transaction");; 685 } 686 } 687 688 function _prelevements($db, $user, $factures_prev) 689 { 690 /******************************************************************** 691 * * 692 * * 693 * Emissions des demandes de prelevement * 694 * * 695 * * 696 ********************************************************************/ 697 //dolibarr_syslog("[PR] Debut demande de prelevement"); 698 //dolibarr_syslog("[PR] Nombre de factures ".sizeof($factures_prev)); 699 if (sizeof($factures_prev) > 0) 700 { 701 foreach ($factures_prev as $fac) 702 { 703 $fact = new Facture($db); 704 $fact->fetch($fac); 705 $fact->mode_reglement(3); 706 $fact->demande_prelevement($user); 707 } 708 } 709 //dolibarr_syslog("[PR] Fin demande de prelevement"); 710 } 711 712 713 714 function _emails($db, $user, $contrat_id, $factures_a_mailer) 715 { 716 /******************************************************************** 717 * * 718 * * 719 * Envoi des factures par emails * 720 * * 721 * * 722 ********************************************************************/ 723 if (sizeof($factures_a_mailer) > 0) 724 { 725 foreach ($factures_a_mailer as $fac) 726 { 727 $fact = new Facture($db); 728 $fact->fetch($fac); 729 730 $contrat = new TelephonieContrat($db); 731 $contrat->fetch($contrat_id); 732 733 $emails = $contrat->get_contact_facture(); 734 735 $ligne = new LigneTel($db); 736 737 if ($ligne->fetch_by_facture_number($fact->id) == 0) 738 { 739 740 } 741 742 if (sizeof($emails > 0)) 743 { 744 $sendto = ""; 745 for ($k = 0 ; $k < sizeof($emails) ; $k++) 746 { 747 $sendto .= html_entity_decode($emails[$k]) . ","; 748 } 749 $sendto = substr($sendto,0,strlen($sendto) - 1); 750 751 752 dolibarr_syslog("[EM] Envoi email à ".html_entity_decode($sendto) ); 753 754 $subject = ereg_replace("#FACREF#",$fact->ref,TELEPHONIE_MAIL_FACTURATION_SUJET); 755 $subject = ereg_replace("#CONTRAT#",$contrat->ref, $subject); 756 757 $from = TELEPHONIE_EMAIL_FACTURATION_EMAIL; 758 759 $message = "Bonjour,\n\n"; 760 $message .= "Veuillez trouver ci-joint notre facture numéro $fact->ref du ".strftime("%d/%m/%Y",$fact->date)."."; 761 762 $message .= "\nEgalement joint à ce mail le détails de vos communications.\n\n"; 763 764 $message .= TELEPHONIE_MAIL_FACTURATION_SIGNATURE; 765 766 767 $mailfile = new DolibarrMail($subject, 768 $sendto, 769 $from, 770 $message); 771 772 $mailfile->addr_bcc = TELEPHONIE_EMAIL_FACTURATION_EMAIL; 773 774 $arr_file = array(); 775 $arr_name = array(); 776 $arr_mime = array(); 777 778 $facfile = FAC_OUTPUTDIR . "/" . $fact->ref . "/" . $fact->ref . ".pdf"; 779 780 /* 781 * Joint le fichier commercial supplémentaire 782 */ 783 //array_push($arr_file, "/home/www/dolibarr/documents/hp65152.pdf"); 784 //array_push($arr_mime, "application/pdf"); 785 //array_push($arr_name, "hp65152.pdf"); 786 787 /* 788 * Join la facture 789 */ 790 array_push($arr_file, $facfile); 791 array_push($arr_mime, "application/pdf"); 792 array_push($arr_name, $fact->ref.".pdf"); 793 794 $dir = FAC_OUTPUTDIR . "/" . $fact->ref . "/"; 795 796 $handle=opendir(FAC_OUTPUTDIR . "/" . $fact->ref . "/"); 797 /* 798 * Joint les détails 799 * 800 */ 801 while (($file = readdir($handle))!==false) 802 { 803 if (is_readable($dir.$file) && substr($file, -11) == '-detail.pdf') 804 { 805 array_push($arr_file, $dir.$file); 806 array_push($arr_mime, "application/pdf"); 807 array_push($arr_name, $file); 808 } 809 if (is_readable($dir.$file) && substr($file, -11) == '-detail.xls') 810 { 811 array_push($arr_file, $dir.$file); 812 array_push($arr_mime, "application/vns.ms-excel"); 813 array_push($arr_name, $file); 814 } 815 } 816 817 $mailfile->PrepareFile($arr_file, $arr_mime, $arr_name); 818 819 if ( $mailfile->sendfile() ) 820 { 821 822 for ($kj = 0 ; $kj < sizeof($contrat->contact_facture_id) ; $kj++) 823 { 824 $sendtoid = $contrat->contact_facture_id[$kj]; 825 826 $sendtox = $emails[$kj]; 827 828 $actioncode=9; 829 $actionmsg="Envoyée à $sendtox"; 830 $actionmsg2="Envoi Facture par mail"; 831 832 $sql = "INSERT INTO ".MAIN_DB_PREFIX."actioncomm (datea,fk_action,fk_soc,note,fk_facture, fk_contact,fk_user_author, label, percent) VALUES (now(), '$actioncode' ,'$fact->socidp' ,'$actionmsg','$fact->id','$sendtoid','$user->id', '$actionmsg2',100);"; 833 834 if (! $db->query($sql) ) 835 { 836 print $db->error(); 837 } 838 else 839 { 840 //print "TOTO".$sendto. " ". $sendtoid ." \n"; 841 } 842 843 } 844 845 } 846 } 847 else 848 { 849 dolibarr_syslog("Aucun email trouvé"); 850 } 851 } 852 } 853 } 854 /* 855 * FIN 856 * 857 */ 858 859 $db->close(); 860 861 dolibarr_syslog("Conso mémoire ".memory_get_usage() ); 862 863 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Mon Nov 26 12:29:37 2007 | par Balluche grâce à PHPXref 0.7 |
|