PageRenderTime 71ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/FreshInvoice/includes/class.factuur.php

http://freshinvoice.googlecode.com/
PHP | 1083 lines | 889 code | 181 blank | 13 comment | 75 complexity | 65ed54eb29335c4e3ebe73aff9429549 MD5 | raw file
Possible License(s): GPL-2.0
  1. <?
  2. include_once('config.inc.php');
  3. class factuur {
  4. function klant_invoegen ($mail,$password1,$password2,$voornaam,$tussenvoegsel,$achternaam,$geslacht,$bedrijfsnaam,$straatnaam,$huisnummer,$postcode,$plaatsnaam,$land,$telefoon,$fax,$BTWnummer,$KVKnummer,$KVKplaats,$bedrijfsvorm){
  5. if(!preg_match('/([A-Za-z0-9_.]+)@([A-Za-z0-9.]+)/',$mail)){
  6. $this->error('Er is geen e-mail adres opgegeven');
  7. }elseif(!isset($voornaam)){
  8. $this->error('Er is geen voornaam opgegeven');
  9. }elseif(!isset($achternaam)){
  10. $this->error('Er is geen achternaam opgegeven');
  11. }elseif(!isset($geslacht)){
  12. $this->error('Er is geen geslacht opgegeven');
  13. }elseif(!isset($straatnaam)){
  14. $this->error('Er is geen straatnaam opgegeven');
  15. }elseif(!isset($postcode)){
  16. $this->error('Er is geen postcode opgegeven');
  17. }elseif(!isset($plaatsnaam)){
  18. $this->error('Er is geen plaatsnaam opgegeven');
  19. }elseif(!isset($land)){
  20. $this->error('Er is geen land opgegeven');
  21. }elseif(!isset($telefoon)){
  22. $this->error('Er is geen telefoonnummer opgegeven');
  23. }elseif(!isset($password1)){
  24. $this->error('Er is geen password opgegeven');
  25. }elseif($password1!=$password2){
  26. $this->error('De opgegeven passwoorden komen niet overeen.');
  27. }elseif(!isset($BTWnummer) AND isset($bedrijfsnaam)){
  28. $this->error('Er is geen BTW nummer opgegeven');
  29. }elseif(!isset($KVKnummer) AND isset($bedrijfsnaam)){
  30. $this->error('Er is geen KVK nummer opgegeven');
  31. }elseif(!isset($KVKplaats) AND isset($bedrijfsnaam)){
  32. $this->error('Er is geen KVK plaats opgegeven');
  33. }elseif(!isset($bedrijfsvorm) AND isset($bedrijfsnaam)){
  34. $this->error('Er is geen bedrijfsvorm opgegeven');
  35. }else{
  36. $query = "SELECT klantId FROM klant WHERE mail=''";
  37. $query = mysql_query($query) or die (mysql_error());
  38. if(mysql_num_rows($query)>0){
  39. $this->error('Er komt al een klant voor met het opgegeven wachtwoord.<br />Indien u uw wachtwoord bent vergeten kunt u die via "Forgot password" terug halen.');
  40. }
  41. $query = "INSERT INTO klant (mail,password,voornaam,tussenvoegsel,achternaam,geslacht,bedrijfsnaam,straatnaam,huisnummer,postcode,plaatsnaam,land,telefoon,fax,BTWnummer,KVKnummer,KVKplaats,bedrijfsvorm)
  42. VALUES
  43. ('".$mail."','".md5($password1)."','".addslashes($voornaam)."','".addslashes($tussenvoegsel)."','".addslashes($achternaam)."','".$geslacht."','".addslashes($bedrijfsnaam)."','".addslashes($straatnaam)."','".addslashes($huisnummer)."','".addslashes($postcode)."','".addslashes($plaatsnaam)."','".addslashes($land)."','".addslashes($telefoon)."','".addslashes($fax)."','".addslashes($BTWnummer)."','".addslashes($KVKnummer)."','".$KVKplaats."','".addslashes($bedrijfsvorm)."')";
  44. mysql_query($query) or die (mysql_error());
  45. $mailcontent = "Geachte Heer/Mevrouw,\n\n";
  46. $mailcontent .= "Bij deze uw inlog gegevens voor het factuursysteem van ".BEDRIJFSNAAM.".\n";
  47. $mailcontent .= "Login: ".$mail."\n";
  48. $mailcontent .= "Password: ".$password1."\n\n";
  49. $mailcontent .= AFSLUITING;
  50. mail($mail, 'Uw login gegevens', $mailcontent, 'From: '.MAILADDR);
  51. return TRUE;
  52. }
  53. }
  54. function change_persoonsgegevens($klantId,$mail,$voornaam,$tussenvoegsel,$achternaam,$geslacht,$bedrijfsnaam,$straatnaam,$huisnummer,$postcode,$plaatsnaam,$land,$telefoon,$fax,$BTWnummer,$KVKnummer,$KVKplaats,$bedrijfsvorm,$huidige_pass,$password1='',$password2='',$usergroup='',$factuur_opsparen='',$BTWtarrief=''){
  55. if(!preg_match('/([A-Za-z0-9_.]+)@([A-Za-z0-9.]+)/',$mail)){
  56. $this->error('Er is geen e-mail adres opgegeven');
  57. }elseif(!isset($voornaam)){
  58. $this->error('Er is geen voornaam opgegeven');
  59. }elseif(!isset($achternaam)){
  60. $this->error('Er is geen achternaam opgegeven');
  61. }elseif(!isset($geslacht)){
  62. $this->error('Er is geen geslacht opgegeven');
  63. }elseif(!isset($straatnaam)){
  64. $this->error('Er is geen straatnaam opgegeven');
  65. }elseif(!isset($postcode)){
  66. $this->error('Er is geen postcode opgegeven');
  67. }elseif(!isset($plaatsnaam)){
  68. $this->error('Er is geen plaatsnaam opgegeven');
  69. }elseif(!isset($land)){
  70. $this->error('Er is geen land opgegeven');
  71. }elseif(!isset($telefoon)){
  72. $this->error('Er is geen telefoonnummer opgegeven');
  73. }elseif(!isset($huidige_pass) AND !$this->allowed('99')){
  74. $this->error('Er is geen password opgegeven');
  75. }elseif(!isset($BTWnummer) AND isset($bedrijfsnaam)){
  76. $this->error('Er is geen BTW nummer opgegeven');
  77. }elseif(!isset($KVKnummer) AND isset($bedrijfsnaam)){
  78. $this->error('Er is geen KVK nummer opgegeven');
  79. }elseif(!isset($KVKplaats) AND isset($bedrijfsnaam)){
  80. $this->error('Er is geen KVK plaats opgegeven');
  81. }elseif(!isset($bedrijfsvorm) AND isset($bedrijfsnaam)){
  82. $this->error('Er is geen bedrijfsvorm opgegeven');
  83. }else{
  84. $query = "SELECT password FROM klant WHERE klantId='".$klantId."'";
  85. $query = mysql_query($query) or die (mysql_error());
  86. if(mysql_num_rows($query)==0){
  87. $this->error('Er is geen klant gevonden met het opgegeven klantId');
  88. }
  89. $extra = '';
  90. $record = mysql_fetch_array($query);
  91. if($record['password']!=md5($huidige_pass) AND !$this->allowed('99')){
  92. $this->error('Het opgegeven wachtwoord is incorrect.');
  93. }
  94. if(isset($password1) AND isset($password2) AND $password1!=''){
  95. if($password1!=$password2){
  96. $this->error('De opgegeven passwoorden komen niet overeen.');
  97. }else{
  98. $extra .= " ,password='".md5($password1)."'";
  99. }
  100. }
  101. if(isset($usergroup) AND $usergroup!='' AND $this->allowed('99')){
  102. $extra .= " ,usergroup='".addslashes($usergroup)."'";
  103. }
  104. if(isset($factuur_opsparen) AND $factuur_opsparen!='' AND $this->allowed('99')){
  105. $extra .= " ,factuur_opsparen='".addslashes($factuur_opsparen)."'";
  106. }
  107. if(isset($BTWtarrief) AND $BTWtarrief!='' AND $this->allowed('99')){
  108. $extra .= " ,BTWtarrief='".addslashes($BTWtarrief)."'";
  109. }
  110. $query = "UPDATE klant
  111. SET mail='".$mail."',voornaam='".addslashes($voornaam)."',tussenvoegsel='".addslashes($tussenvoegsel)."',achternaam='".addslashes($achternaam)."',
  112. geslacht='".addslashes($geslacht)."',bedrijfsnaam='".addslashes($bedrijfsnaam)."',straatnaam='".addslashes($straatnaam)."',huisnummer='".addslashes($huisnummer)."',
  113. postcode='".addslashes($postcode)."',plaatsnaam='".addslashes($plaatsnaam)."',land='".addslashes($land)."',telefoon='".addslashes($telefoon)."',fax='".addslashes($fax)."',
  114. BTWnummer='".addslashes($BTWnummer)."',KVKnummer='".addslashes($KVKnummer)."',KVKplaats='".addslashes($KVKplaats)."',bedrijfsvorm='".addslashes($bedrijfsvorm)."'
  115. ".$extra." WHERE klantId='".$klantId."'";
  116. mysql_query($query) or die (mysql_error());
  117. return TRUE;
  118. }
  119. }
  120. function artikel_invoegen($naam, $catId, $periode, $inkoop_prijs, $verkoop_prijs) {
  121. if(!isset($naam)){
  122. $this->error('Er is geen artikel naam opgegeven');
  123. }elseif(!isset($catId)){
  124. $this->error('Er is geen categorie naam opgegeven');
  125. }elseif(!preg_match('/(jaar|maand|eenmalig|kwartaal|halfjaar)/',$periode)){
  126. $this->error('Er is geen periode opgegeven');
  127. }elseif(!isset($inkoop_prijs)){
  128. $this->error('Er is geen inkoop prijs opgegeven');
  129. }elseif(!isset($verkoop_prijs)){
  130. $this->error('Er is geen verkoop prijs opgegeven');
  131. }else{
  132. // VERPLAATS COMMA'S DOOR PUNTEN
  133. $inkoop_prijs = str_replace(',','.',$inkoop_prijs);
  134. $verkoop_prijs = str_replace(',','.',$verkoop_prijs);
  135. $query = "INSERT INTO artikelen (catId,naam,periode,inkoop_prijs,verkoop_prijs) VALUES ('".$catId."','".addslashes($naam)."','".$periode."','".$inkoop_prijs."','".$verkoop_prijs."')";
  136. mysql_query($query) or die (mysql_error());
  137. return TRUE;
  138. }
  139. }
  140. function edit_artikel($artikelId, $naam, $catId, $periode, $inkoop_prijs, $verkoop_prijs){
  141. if(!isset($artikelId)){
  142. $this->error('Er is geen artikelId opgegeven');
  143. }elseif(!isset($naam)){
  144. $this->error('Er is geen artikel naam opgegeven');
  145. }elseif(!isset($catId)){
  146. $this->error('Er is geen categorie opgegeven');
  147. }elseif(!preg_match('/(jaar|maand|eenmalig|kwartaal|halfjaar)/',$periode)){
  148. $this->error('Er is geen periode opgegeven');
  149. }elseif(!isset($inkoop_prijs)){
  150. $this->error('Er is geen inkoop prijs opgegeven');
  151. }elseif(!isset($verkoop_prijs)){
  152. $this->error('Er is geen verkoop prijs opgegeven');
  153. }else{
  154. // VERPLAATS COMMA'S DOOR PUNTEN
  155. $inkoop_prijs = str_replace(',','.',$inkoop_prijs);
  156. $verkoop_prijs = str_replace(',','.',$verkoop_prijs);
  157. $query = "UPDATE artikelen SET catId='".$catId."',naam='".addslashes($naam)."',periode='".$periode."',inkoop_prijs='".$inkoop_prijs."',verkoop_prijs='".$verkoop_prijs."' WHERE artikelId='".$artikelId."'";
  158. mysql_query($query) or die (mysql_error());
  159. return TRUE;
  160. }
  161. }
  162. function delete_artikel($artikelId, $shure)
  163. {
  164. if(!isset($shure) OR $shure!='yes'){
  165. $this->error('Er is geen confirmatie gegeven');
  166. }elseif(!isset($artikelId)){
  167. $this->error('Er is geen artikelId opgegeven');
  168. }else{
  169. $query = "DELETE FROM artikelen WHERE artikelId='".$artikelId."' LIMIT 1";
  170. mysql_query($query) or die (mysql_error());
  171. return TRUE;
  172. }
  173. }
  174. function categorie_invoegen ($naam)
  175. {
  176. if(!isset($naam)){
  177. $this->error('Er is geen naam opgegeven');
  178. }else{
  179. $query = "INSERT INTO categorie (catnaam) VALUES ('".addslashes($naam)."')";
  180. mysql_query($query) or die (mysql_error());
  181. return TRUE;
  182. }
  183. }
  184. function delete_categorie($catId, $shure)
  185. {
  186. if(!isset($shure) OR $shure!='yes'){
  187. $this->error('Er is geen confirmatie gegeven');
  188. }elseif(!isset($catId)){
  189. $this->error('Er is geen catId opgegeven');
  190. }else{
  191. $query = "DELETE FROM categorieen WHERE catId='".$catId."' LIMIT 1";
  192. mysql_query($query) or die (mysql_error());
  193. return TRUE;
  194. }
  195. }
  196. function edit_categorie ($catId, $naam)
  197. {
  198. if(!isset($catId)){
  199. $this->error('Er is geen catId opgegeven');
  200. }elseif(!isset($naam)){
  201. $this->error('Er is geen artikel naam opgegeven');
  202. }else{
  203. $query = "UPDATE categorie SET catnaam='".addslashes($naam)."' WHERE catId='".$catId."'";
  204. mysql_query($query) or die (mysql_error());
  205. return TRUE;
  206. }
  207. }
  208. function nieuwe_factuur($klantId){
  209. if(!isset($klantId)){
  210. $this->error('Er is geen klantId opgegeven');
  211. }else{
  212. $query = "SELECT max(factuurId) AS factuurId FROM factuur";
  213. $query = mysql_query($query) or die (mysql_error());
  214. $record = mysql_fetch_assoc($query);
  215. $factuurId = $record['factuurId']+1;
  216. $query = "INSERT INTO factuur (factuurId,klantId,datum,dag,maand,jaar) VALUES ('".$factuurId."','".$klantId."','".time()."','".date('d')."','".date('m')."','".date('Y')."')";
  217. mysql_query($query) or die (mysql_error());
  218. return mysql_insert_id();
  219. }
  220. }
  221. function insert_factuur_artikel($factuurId,$artikelId,$opmerking,$aantal) {
  222. if(!isset($factuurId)){
  223. $this->error('Er is geen factuurId opgegeven');
  224. }elseif(!isset($artikelId)){
  225. $this->error('Er is geen artikelId opgegeven');
  226. }elseif(!isset($aantal) OR !preg_match("/([0-9]+)/", $aantal)){ // ALLEEN GETALLEN
  227. $this->error('Er is geen aantal opgegeven');
  228. }else{
  229. $query = "INSERT INTO koppel_factuur_artikelen (factuurId,artikelId,datum,dag,maand,jaar,opmerking,aantal) VALUES ('".$factuurId."','".$artikelId."','".time()."','".date("d")."','".date("m")."','".date("Y")."','".addslashes($opmerking)."','".$aantal."')";
  230. mysql_query($query) or die (mysql_error());
  231. return TRUE;
  232. }
  233. }
  234. function finish_factuur ($factuurId, $writedispl, $klantId=''){
  235. $queryk = "SELECT f.klantId, f.datum, voornaam, tussenvoegsel, achternaam, bedrijfsnaam, straatnaam, huisnummer, postcode, plaatsnaam, land, BTWtarrief
  236. FROM factuur f, klant k
  237. WHERE f.klantId=k.klantId
  238. AND factuurId='".$factuurId."'";
  239. if($klantId!='') $queryk .= " AND f.klantId='".$klantId."'";
  240. $queryk = mysql_query($queryk) or die (mysql_error());
  241. if(mysql_num_rows($queryk)==0){
  242. $this->error('Er is geen factuur gevonden die aan deze eisen voldoet.');
  243. }
  244. $klant = mysql_fetch_array($queryk) or die (mysql_error());
  245. $fp = fopen(PATH.'templates/factuur.tpl.php', 'r');
  246. $factuurTPL = fread($fp, filesize(PATH.'templates/factuur.tpl.php'));
  247. $display = $factuurTPL;
  248. fclose($fp);
  249. // TEMPLATES DEFINES
  250. $rep['LOGO'] = FACTUUR_LOGO;
  251. $rep['FACTUURID'] = $factuurId;
  252. $rep['FACTUURDATUM'] = date(FACTUUR_DATUM_FORMAT, $klant['datum']);
  253. $rep['KLANTID'] = $klant['klantId'];
  254. $rep['KLANTNAAM'] = stripslashes($klant['voornaam'].' '.$klant['tussenvoegsel'].' '.$klant['achternaam']);
  255. $rep['KLANTADRES'] = stripslashes($klant['straatnaam'].' '.$klant['huisnummer'].'<br />'.$klant['postcode'].' '.$klant['plaatsnaam'].'<br />'.$klant['land']);
  256. $rep['BTWTARRIEF'] = $klant['BTWtarrief'];
  257. $rep['FACTUURINHOUD'] = '';
  258. $rep['SUBTOTAAL'] = '';
  259. $rep['BTWBEDRAG'] = '';
  260. $rep['FACTUURTOTAAL'] = '';
  261. $rep['INVOICEPREPEND'] = INVOICEPREPEND;
  262. $rep['INVOICEEXPIREDATE'] = date(FACTUUR_DATUM_FORMAT, mktime(0,0,0,date("m",$klant['datum']),date("d",$klant['datum'])+BETALINGS_TERMIJN,date("Y",$klant['datum'])));
  263. if($klant['bedrijfsnaam']){
  264. $rep['KLANTBEDRIJFSNAAM'] = $klant['bedrijfsnaam'].'<br />';
  265. }else{
  266. $rep['KLANTBEDRIJFSNAAM'] = '';
  267. }
  268. $query = "SELECT k.artikelId, datum, opmerking, aantal, naam, periode, verkoop_prijs, aantal*verkoop_prijs AS totaal
  269. FROM koppel_factuur_artikelen k, artikelen a
  270. WHERE k.artikelId=a.artikelId AND
  271. k.factuurId='".$factuurId."'";
  272. $query = mysql_query($query) or die (mysql_error());
  273. while($record=mysql_fetch_array($query)){
  274. $rep['SUBTOTAAL'] = $rep['SUBTOTAAL']+$record['totaal'];
  275. $rep['FACTUURINHOUD'] .= '<tr>
  276. <td width="50%" valign="top">'.$record['naam'];
  277. if(isset($record['opmerking'])){
  278. $rep['FACTUURINHOUD'] .= ' '.nl2br($record['opmerking']);
  279. }
  280. $rep['FACTUURINHOUD'] .= '</td>
  281. <td width="10%" valign="top">'.date(FACTUUR_DATUM_FORMAT, $record['datum']).'</td>
  282. <td width="10%" valign="top">'.$record['periode'].'</td>
  283. <td width="10%" valign="top">'.$record['aantal'].'</td>
  284. <td width="10%" valign="top" align="right">'.$this->displayMoney($record['verkoop_prijs']).'</td>
  285. <td width="10%" valign="top" align="right">'.$this->displayMoney($record['totaal']).'</td>
  286. </tr>'."\n";
  287. }
  288. $rep['BTWBEDRAG'] = $rep['SUBTOTAAL']*($klant['BTWtarrief']/100);
  289. $rep['FACTUURTOTAAL'] = $rep['SUBTOTAAL']*(1+($klant['BTWtarrief']/100));
  290. $saveTOTAAL = $rep['FACTUURTOTAAL'];
  291. $rep['SUBTOTAAL'] = $this->displayMoney($rep['SUBTOTAAL']);
  292. $rep['BTWBEDRAG'] = $this->displayMoney($rep['BTWBEDRAG']);
  293. $rep['FACTUURTOTAAL'] = $this->displayMoney($rep['FACTUURTOTAAL']);
  294. $regEx = '/{#([A-Za-z0-9]+)#}/';
  295. preg_match_all($regEx, $factuurTPL, $matches);
  296. foreach($matches[0] AS $key => $REPL){
  297. $display = str_replace($REPL, $rep[$matches[1][$key]], $display);
  298. }
  299. if($writedispl=='DISP'){
  300. echo $display;
  301. }elseif($writedispl=='WRITE'){
  302. $query = "UPDATE factuur SET bedrag='".$saveTOTAAL."' WHERE factuurId='".$factuurId."'";
  303. mysql_query($query) or die (mysql_error());
  304. return $display;
  305. }
  306. }
  307. function mail_factuur ($factuurId, $content, $resend=''){
  308. $query = "SELECT f.datum, k.mail, k.geslacht, k.tussenvoegsel, k.achternaam, k.bedrijfsnaam, k.factuur_opsparen
  309. FROM factuur f, klant k
  310. WHERE f.klantId=k.klantId AND
  311. f.factuurId='".$factuurId."'";
  312. $query = mysql_query($query) or die (mysql_error());
  313. if(mysql_num_rows($query)==0){
  314. exit;
  315. }
  316. $record = mysql_fetch_array($query);
  317. $aanhef = $this->aanhef($record['geslacht']);
  318. $klantnaam = $this->klantnaam ($aanhef, $record['tussenvoegsel'], $record['achternaam']);
  319. $text = "Geachte ".$klantnaam.",\n\n";
  320. $text .= "Bij deze uw openstaande factuur.\n";
  321. $text .= "Gelieve deze factuur binnen ".BETALINGS_TERMIJN." dagen na de factuurdatum (".date(FACTUUR_DATUM_FORMAT, $record['datum']).") te voldoen.\n\n";
  322. $text .= AFSLUITING."\n\n";
  323. $text .= "PS. Deze mail en de factuur zijn automatisch gegenereerd.\n";
  324. $text .= "Indien u fouten constateert, gelieven contact op te nemen met: ".MAILADDR;
  325. $mail = new FIMailer();
  326. $mail->Subject = 'Factuur '.INVOICEPREPEND.$factuurId.' '.BEDRIJFSNAAM;
  327. $mail->Body = $text;
  328. $mail->AddAddress(MAILADDR, FROMNAME);
  329. $mail->AddAddress($record['mail'], $klantnaam);
  330. if($record['bedrijfsnaam']!=''){
  331. $mail->AddStringAttachment($content, INVOICEPREPEND.$factuurId."-".urlencode($record['bedrijfsnaam']).".html");
  332. }else{
  333. $mail->AddStringAttachment($content, INVOICEPREPEND.$factuurId."-".urlencode($record['achternaam']).".html");
  334. }
  335. if(!$mail->Send()){
  336. echo "Mailer Error: ".$record['mail']." => ".$mail->ErrorInfo."\n";
  337. }
  338. $mail->ClearAddresses();
  339. $mail->ClearAttachments();
  340. $extra = "";
  341. if($record['factuur_opsparen']=='Y' AND $resend!='RESEND'){
  342. $extra .= ", datum='".time()."', dag='".date('d')."', maand='".date("m")."', jaar='".date("Y")."'";
  343. }
  344. $query = "UPDATE factuur SET betaald='C'$extra WHERE factuurId='".$factuurId."'";
  345. mysql_query($query) or die (mysql_error());
  346. }
  347. function factuur_creator ($sumfactuur){
  348. $query = "SELECT factuurId FROM factuur f, klant k
  349. WHERE f.klantId=k.klantId AND
  350. f.betaald='N' AND k.factuur_opsparen='".$sumfactuur."'";
  351. $query = mysql_query($query) or die (mysql_error());
  352. $count = 0;
  353. if(mysql_num_rows($query)>0){
  354. while($record=mysql_fetch_array($query)){
  355. if($sumfactuur=='Y') $this->reset_invoice_date($record['factuurId']);
  356. // CREATE THE INVOICE
  357. $content = $this->finish_factuur($record['factuurId'], 'WRITE');
  358. // MAIL THE INVOICE
  359. $this->mail_factuur($record['factuurId'],$content);
  360. // ADD THE INVOICE TO THE PRINTQUEUE
  361. $printQueue = new PrintQueue();
  362. $printQueue->__fill (NULL, $content, 2, 0);
  363. $printQueue->save();
  364. $count++;
  365. }
  366. }
  367. }
  368. function reset_invoice_date ($factuurId)
  369. {
  370. $query = "UPDATE `factuur` SET `datum` = UNIX_TIMESTAMP() ,
  371. `dag` = '".date("d")."', `maand` = '".date("m")."', `jaar` = '".date("Y")."'
  372. WHERE `factuur`.`factuurId` = '".mysql_real_escape_string($factuurId)."' LIMIT 1 ;";
  373. mysql_query($query) or die (mysql_error());
  374. }
  375. function sendnow_factuur ($factuurId){
  376. $this->resend_factuur($factuurId);
  377. return true;
  378. }
  379. function resend_factuur ($factuurId){
  380. $content = $this->finish_factuur($factuurId, 'WRITE');
  381. $this->mail_factuur($factuurId,$content,'RESEND');
  382. return true;
  383. }
  384. function reprint_factuur ($factuurId)
  385. {
  386. // CREATE THE INVOICE
  387. $content = $this->finish_factuur($factuurId, 'WRITE');
  388. // ADD THE INVOICE TO THE PRINTQUEUE
  389. $printQueue = new PrintQueue();
  390. $printQueue->__fill (NULL, $content, 1, 0);
  391. $printQueue->save();
  392. return true;
  393. }
  394. function auto_herhaal ($periode, $sign='='){
  395. switch($periode){
  396. case "jaar":
  397. $time = mktime(0,0,0,date("m"),date("d"),date("Y")-1);
  398. break;
  399. case "halfjaar":
  400. $time = mktime(0,0,0,date("m")-6,date("d"),date("Y"));
  401. break;
  402. case "kwartaal":
  403. $time = mktime(0,0,0,date("m")-3,date("d"),date("Y"));
  404. break;
  405. case "maand":
  406. $time = mktime(0,0,0,date("m")-1,date("d"),date("Y"));
  407. break;
  408. }
  409. $query = "SELECT k.artikelId, k.opmerking, k.aantal, f.klantId
  410. FROM koppel_factuur_artikelen k, artikelen a, factuur f
  411. WHERE k.artikelId=a.artikelId AND
  412. k.factuurId=f.factuurId AND
  413. a.periode='".$periode."' AND
  414. k.dag ".$sign." '".date("d",$time)."' AND
  415. k.maand='".date("m",$time)."' AND
  416. k.jaar='".date("Y",$time)."' AND
  417. k.opgezegd='N'";
  418. $query = mysql_query($query) or die (mysql_error());
  419. while($record=mysql_fetch_array($query)){
  420. $querys = "SELECT factuurId FROM factuur WHERE klantId='".$record['klantId']."' AND betaald='N'";
  421. $querys = mysql_query($querys) or die (mysql_error());
  422. if(mysql_num_rows($querys)==0){
  423. $queryi = "INSERT INTO factuur (klantId, datum, dag, maand, jaar) VALUES ('".$record['klantId']."','".time()."','".date('d')."','".date('m')."','".date("Y")."')";
  424. mysql_query($queryi) or die (mysql_error());
  425. $factuurId = mysql_insert_id();
  426. }else{
  427. $factuur = mysql_fetch_array($querys);
  428. $factuurId = $factuur['factuurId'];
  429. }
  430. $queryi = "INSERT INTO koppel_factuur_artikelen (factuurId,artikelId,datum,dag,maand,jaar,opmerking,aantal)
  431. VALUES ('".$factuurId."','".$record['artikelId']."','".time()."','".date("d")."','".date("m")."','".date("Y")."','".addslashes($record['opmerking'])."','".$record['aantal']."')";
  432. mysql_query($queryi) or die (mysql_error());
  433. }
  434. }
  435. function late_facturen_notificatie (){
  436. $time = mktime(0,0,1,date('m'),date('d')-BETALINGS_NOTIFICATIE,date('Y'));
  437. $query = "SELECT f.factuurId, f.datum, f.bedrag, k.geslacht, k.tussenvoegsel, k.achternaam, k.mail, k.bedrijfsnaam
  438. FROM factuur f, klant k
  439. WHERE f.klantId=k.klantId AND
  440. datum <= '".$time."' AND
  441. betaald='C'";
  442. $query = mysql_query($query) or die (mysql_error());
  443. while($record=mysql_fetch_array($query)){
  444. $aanhef = $this->aanhef($record['geslacht']);
  445. $klantnaam = $this->klantnaam ($aanhef, $record['tussenvoegsel'], $record['achternaam']);
  446. $verloop = date(FACTUUR_DATUM_FORMAT,$record['datum']+(BETALINGS_TERMIJN*(60*60*24)));
  447. $text = "Geachte ".$klantnaam.",\n\n";
  448. $text .= "Bij deze wijs ik u op de nog openstaande factuur met het ID: ".$record['factuurId']." van ".date(FACTUUR_DATUM_FORMAT,$record['datum']).". ";
  449. $text .= "Deze verloopt op ".$verloop.". Nadat de betalingstermijn verlopen is, zullen wij contact met u opnemen en indien nodig passende acties ondernemen.\n\n";
  450. $text .= "U kunt uw factuur opzoeken via ons factuursysteem, dat te vinden is op het volgende adres: ";
  451. $text .= URL."\n\nIk hoop u hierbij voldoende te hebben geinformeerd.\n\n";
  452. $text .= AFSLUITING;
  453. $mail = new FIMailer();
  454. $mail->Subject = 'Factuur '.INVOICEPREPEND.$record['factuurId'].' '.BEDRIJFSNAAM;
  455. $mail->Body = $text;
  456. $mail->AddAddress(MAILADDR, FROMNAME);
  457. $mail->AddAddress($record['mail'], $klantnaam);
  458. if(date('D')=='Mon'){
  459. $content = $this->finish_factuur($record['factuurId'], 'WRITE');
  460. if($record['bedrijfsnaam']!=''){
  461. $mail->AddStringAttachment($content, INVOICEPREPEND.$record['factuurId']."-".urlencode($record['bedrijfsnaam']).".html");
  462. }else{
  463. $mail->AddStringAttachment($content, INVOICEPREPEND.$record['factuurId']."-".urlencode($record['achternaam']).".html");
  464. }
  465. }
  466. if(!$mail->Send()){
  467. echo "Mailer Error: ".$record['mail']." => ".$mail->ErrorInfo."\n";
  468. }
  469. $mail->ClearAddresses();
  470. }
  471. }
  472. function factuur_stornatie ($factuurId){
  473. $query = "UPDATE factuur SET betaald='Y', betaald_datum='".time()."' WHERE factuurId='".$factuurId."'";
  474. mysql_query($query) or die (mysql_error());
  475. $query = "SELECT factuurId, f.klantId, f.datum, k.mail, k.geslacht, k.tussenvoegsel, k.achternaam
  476. FROM factuur f, klant k
  477. WHERE f.klantId=k.klantId
  478. AND f.factuurId='".$factuurId."'";
  479. $query = mysql_query($query) or die (mysql_error());
  480. if(mysql_num_rows($query)==0){
  481. $this->error('Factuur niet gevonden.');
  482. }
  483. $record = mysql_fetch_array($query);
  484. $aanhef = $this->aanhef($record['geslacht']);
  485. $klantnaam = $this->klantnaam ($aanhef, $record['tussenvoegsel'], $record['achternaam']);
  486. $text = "Geachte ".$klantnaam.",\n\n";
  487. $text .= "Via deze weg wil ik u graag op de hoogte stellen, dat we een stornatie hebben ontvangen ";
  488. $text .= "op de door ons geincasseerde factuur, met het nummer ".INVOICEPREPEND.$factuurId.".\n";
  489. $text .= "Ik wil u verzoeken om contact met onze administratie afdeling op te nemen.\n\nAlvast bedankt.\n\n";
  490. $text .= AFSLUITING;
  491. $mail = new FIMailer();
  492. $mail->Subject = 'Stornatie factuur '.INVOICEPREPEND.$record['factuurId'].' '.BEDRIJFSNAAM;
  493. $mail->Body = $text;
  494. $mail->AddAddress(MAILADDR, FROMNAME); // CC TO ME
  495. $mail->AddAddress($record['mail'], $klantnaam);
  496. if(!$mail->Send()){
  497. echo "Mailer Error: ".$record['mail']." => ".$mail->ErrorInfo."\n";
  498. }
  499. $mail->ClearAddresses();
  500. return TRUE;
  501. }
  502. function isFactuurBetaald ($factuurId)
  503. {
  504. $query = "SELECT betaald FROM factuur WHERE factuurId='".mysql_real_escape_string($factuurId)."'";
  505. $query = mysql_query($query) or die (mysql_error());
  506. $record = mysql_fetch_array($query);
  507. if($record['betaald']=='Y')
  508. {
  509. return true;
  510. }
  511. return false;
  512. }
  513. function factuur_betaald ($factuurId){
  514. $query = "UPDATE factuur SET betaald='Y', betaald_datum='".time()."' WHERE factuurId='".$factuurId."'";
  515. mysql_query($query) or die (mysql_error());
  516. $query = "SELECT factuurId, f.klantId, f.datum, k.mail, k.geslacht, k.tussenvoegsel, k.achternaam
  517. FROM factuur f, klant k
  518. WHERE f.klantId=k.klantId
  519. AND f.factuurId='".$factuurId."'";
  520. $query = mysql_query($query) or die (mysql_error());
  521. if(mysql_num_rows($query)==0){
  522. $this->error('Factuur niet gevonden.');
  523. }
  524. $record = mysql_fetch_array($query);
  525. $aanhef = $this->aanhef($record['geslacht']);
  526. $klantnaam = $this->klantnaam ($aanhef, $record['tussenvoegsel'], $record['achternaam']);
  527. $text = "Geachte ".$klantnaam.",\n\n";
  528. $text .= "Bij deze wil ik u graag op de hoogte stellen dat de betaling van de factuur met het nummer: ".INVOICEPREPEND.$factuurId." is ontvangen.\n\n";
  529. $text .= AFSLUITING;
  530. $mail = new FIMailer();
  531. $mail->Subject = 'Factuur '.INVOICEPREPEND.$record['factuurId'].' '.BEDRIJFSNAAM;
  532. $mail->Body = $text;
  533. $mail->AddAddress(MAILADDR, FROMNAME); // CC TO ME
  534. $mail->AddAddress($record['mail'], $klantnaam); // SEND TO CLIENT
  535. if(!$mail->Send()){
  536. echo "Mailer Error: ".$record['mail']." => ".$mail->ErrorInfo."\n";
  537. }
  538. $mail->ClearAddresses();
  539. return TRUE;
  540. }
  541. function artikel_opzeggen($koppelId){
  542. $query = "UPDATE koppel_factuur_artikelen SET opgezegd='Y' WHERE koppelId='".$koppelId."'";
  543. mysql_query($query) or die (mysql_error());
  544. return TRUE;
  545. }
  546. function artikel_delete($koppelId){
  547. $query = "DELETE FROM koppel_factuur_artikelen WHERE koppelId='".$koppelId."'";
  548. mysql_query($query) or die (mysql_error());
  549. return TRUE;
  550. }
  551. function rekening_toevoegen ($klantId, $nummer)
  552. {
  553. if($klantId!="" && $nummer!="")
  554. {
  555. $query = "INSERT INTO `klant_rekeningnummer` ( `rekeningId` , `klantId` , `nummer` ) VALUES
  556. (NULL , '".mysql_real_escape_string($klantId)."', '".mysql_real_escape_string($nummer)."');";
  557. mysql_query($query) or die (mysql_error());
  558. return true;
  559. }else
  560. {
  561. return false;
  562. }
  563. }
  564. function rekening_verwijderen ($rekeningId)
  565. {
  566. if($rekeningId!="")
  567. {
  568. $query = "DELETE FROM `klant_rekeningnummer` WHERE rekeningId=".$rekeningId." LIMIT 1;";
  569. mysql_query($query) or die (mysql_error());
  570. return true;
  571. }else
  572. {
  573. return false;
  574. }
  575. }
  576. function delete_factuur($factuurId){
  577. $query = "SELECT factuurId FROM factuur WHERE betaald='N' AND factuurId='".$factuurId."'";
  578. $query = mysql_query($query) or die (mysql_error());
  579. if(mysql_num_rows($query)==1){
  580. $queryd = "DELETE FROM factuur WHERE betaald='N' AND factuurId='".$factuurId."'";
  581. mysql_query($queryd) or die (mysql_error());
  582. $queryd = "DELETE FROM koppel_factuur_artikelen WHERE factuurId=$factuurId";
  583. mysql_query($queryd) or die (mysql_error());
  584. //factuur nummer aanpassen na delete factuur (prosolit.nl)
  585. $queryd = "SELECT MAX(factuurId)+1 AS factuurId FROM factuur";
  586. $queryd = mysql_query($queryd) or die (mysql_error());
  587. $record = mysql_fetch_array($queryd) or die (mysql_error());
  588. $queryd = "ALTER TABLE factuur AUTO_INCREMENT=".$record['factuurId'];
  589. mysql_query($queryd) or die (mysql_error());
  590. //factuur nummer aanpassen na delete factuur
  591. return true;
  592. }
  593. return false;
  594. }
  595. function DisplayMoney ($kosten){
  596. return '&euro; '.number_format($kosten, 2, ",", ".");
  597. }
  598. function DisplayMoneySelect ($kosten){
  599. return ' [ '.number_format($kosten, 2, ",", ".").' ] ';
  600. }
  601. function login($mail, $password, $language){
  602. if(!isset($mail)){
  603. $this->error('Er is geen e-mail adres opgegeven');
  604. }elseif(!isset($password)){
  605. $this->error('Er is geen password opgegeven');
  606. }elseif(!isset($language)){
  607. $this->error('Er is geen taal opgegeven');
  608. }else{
  609. $query = "SELECT klantId, mail, password, usergroup, voornaam, tussenvoegsel, achternaam, factuur_opsparen
  610. FROM klant WHERE mail='".$mail."'";
  611. $query = mysql_query($query) or die (mysql_error());
  612. if(mysql_num_rows($query)!=1){
  613. $this->error('Er is geen klant gevonden met het opgegeven password');
  614. }
  615. $record = mysql_fetch_array($query);
  616. if($record['password']!=md5($password)){
  617. $this->error('Het opgegeven wachtwoord is incorrect.');
  618. }
  619. $_SESSION['klantId'] = $record['klantId'];
  620. $_SESSION['mail'] = $record['mail'];
  621. $_SESSION['usergroup'] = $record['usergroup'];
  622. $_SESSION['language'] = $language;
  623. if($record['tussenvoegsel']==''){
  624. $_SESSION['naam'] = $record['voornaam'].' '.$record['achternaam'];
  625. }else{
  626. $_SESSION['naam'] = $record['voornaam'].' '.$record['tussenvoegsel'].' '.$record['achternaam'];
  627. }
  628. $_SESSION['opsparen'] = $record['factuur_opsparen'];
  629. return TRUE;
  630. }
  631. }
  632. function isLoggedIn(){
  633. if(isset($_SESSION['naam']) AND isset($_SESSION['klantId']) AND isset($_SESSION['mail']) AND isset($_SESSION['usergroup'])){
  634. return TRUE;
  635. }else{
  636. return FALSE;
  637. }
  638. }
  639. function nav (){
  640. if(!$this->isLoggedIn()){
  641. echo'<table width="100%" border="0" cellspacing="0" cellpadding="1">
  642. <tr bgcolor="#CCCCCC">
  643. <td class="big">Factuursysteem</td>
  644. <td align="right"><a href="index.php" target="mainFrame" class="bold">login</a> |
  645. <a href="index.php?p=nieuwe_klant" target="mainFrame" class="bold">klant worden</a> |
  646. <a href="index.php?p=forgotmypass" target="mainFrame" class="bold">wachtwoord vergeten</a></td>
  647. </tr>
  648. </table>';
  649. }else{
  650. echo '<table width="100%" border="0" cellspacing="0" cellpadding="1">
  651. <tr bgcolor="#CCCCCC">
  652. <td class="big">Factuursysteem</td>
  653. <td align="right"><a href="index.php?p=home" target="mainFrame" class="bold">home</a> | <a href="index.php?p=logout" class="bold">logout</a></td>
  654. </tr>
  655. </table>';
  656. }
  657. }
  658. function notAllowed ($neededLevel=''){
  659. if(!$this->isLoggedIn()){
  660. $notAllowed = 1;
  661. }
  662. if(isset($neededLevel) AND !$this->allowed($neededLevel)){
  663. $notAllowed = 1;
  664. }
  665. if(isset($notAllowed) AND $notAllowed=='1'){
  666. echo '<script language="javascript">
  667. document.write("Geen ristrictie...");
  668. setTimeout("window.location.href=\'index.php\'", 4000);
  669. </script>';
  670. exit;
  671. }
  672. }
  673. function allowed($neededLevel){
  674. if($neededLevel==$_SESSION['usergroup']){
  675. return TRUE;
  676. }elseif($neededLevel<$_SESSION['usergroup']){
  677. return TRUE;
  678. }
  679. return FALSE;
  680. }
  681. function logout(){
  682. session_destroy();
  683. return TRUE;
  684. }
  685. function error($text){
  686. echo '<table width="100%" border="0" cellspacing="0" cellpadding="1">
  687. <tr>
  688. <td width="50%">Probleem</td>
  689. </tr>
  690. <tr>
  691. <td>&nbsp;</td>
  692. </tr>
  693. <tr>
  694. <td>'.$text.'</td>
  695. </tr>
  696. </table>';
  697. include('templates/footer.tpl.php');
  698. exit;
  699. }
  700. function random_pass($length) {
  701. $letters = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
  702. 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
  703. '0','1','2','3','4','5','6','7','8','9');
  704. srand((double) microtime() * 1000000);
  705. for ($c = 0; $c < $length; $c++)
  706. $validation .= $letters[rand(0,count($letters))];
  707. return $validation;
  708. }
  709. function forgotmypassword ($emailadres)
  710. {
  711. $query = "SELECT klantId, voornaam, tussenvoegsel, achternaam FROM klant WHERE mail='".$emailadres."'";
  712. $query = mysql_query($query) or die (mysql_error());
  713. if(mysql_num_rows($query)!=1)
  714. {
  715. $this->error('Er komt geen klant voor met het opgegeven adres.');
  716. }else
  717. {
  718. $record = mysql_fetch_array($query);
  719. $passwd = $this->random_pass(7);
  720. $queryu = "UPDATE klant SET password='".md5($passwd)."' WHERE klantId='".$record['klantId']."'";
  721. mysql_query($queryu) or die (mysql_error());
  722. if(strlen($record['tussenvoegsel'])==0){
  723. $naam = $record['voornaam'].' '.$record['achternaam'];
  724. }else{
  725. $naam = $record['voornaam'].' '.$record['tussenvoegsel'].' '.$record['achternaam'];
  726. }
  727. $text = "Beste ".$naam.",\n\n";
  728. $text .= "U heeft via ".URL." aangegeven uw wachtwoord te zijn vergeten.\n";
  729. $text .= "Indien dit niet het geval is, kunt u contact opnemen met ".MAILADDR."\n\n";
  730. $text .= "Uw nieuwe inlog gegevens:\n";
  731. $text .= "Uw e-mail adres: ".$emailadres."\n";
  732. $text .= "Uw nieuwe wachtwoord: ".$passwd."\n\n".AFSLUITING;
  733. $mail = new FIMailer();
  734. $mail->Subject = 'Uw wachtwoord';
  735. $mail->Body = $text;
  736. $mail->AddAddress($emailadres, $naam);
  737. if(!$mail->Send()){
  738. echo "Mailer Error: ".$emailadres." => ".$mail->ErrorInfo."\n";
  739. }
  740. $mail->ClearAddresses();
  741. return TRUE;
  742. }
  743. }
  744. function vorige_kwartaaldatum ($min=0)
  745. {
  746. if(date("m")>=1 && date("m")<=3)
  747. {
  748. return mktime(0,0,0,1-$min,1,date("Y"));
  749. }else if (date("m")>=4 && date("m")<=6)
  750. {
  751. return mktime(0,0,0,4-$min,1,date("Y"));
  752. }else if (date("m")>=7 && date("m")<=9)
  753. {
  754. return mktime(0,0,0,7-$min,1,date("Y"));
  755. }else if (date("m")>=10 && date("m")<=12)
  756. {
  757. return mktime(0,0,0,10-$min,1,date("Y"));
  758. }
  759. }
  760. function aanhef ($sex)
  761. {
  762. if($sex=='M'){
  763. return 'Heer';
  764. }else{
  765. return 'Mevrouw';
  766. }
  767. }
  768. function klantnaam ($aanhef, $tussenvoegsel, $achternaam)
  769. {
  770. if($tussenvoegsel!=''){
  771. return $aanhef." ".$tussenvoegsel." ".$achternaam;
  772. }else{
  773. return $aanhef." ".$achternaam;
  774. }
  775. }
  776. function invoices_get_open_vat ()
  777. {
  778. global $btwTarrieven;
  779. /* GET VAT SPECIFIC OPEN */
  780. foreach($btwTarrieven AS $perc)
  781. {
  782. $query = "SELECT SUM( bedrag ) AS openstaand FROM factuur f, klant k WHERE f.klantId = k.klantId AND f.betaald = 'C' AND k.BTWtarrief = '".$perc."';";
  783. $query = mysql_query($query) or die (mysql_error());
  784. $record = mysql_fetch_array($query);
  785. $open_vat[$perc] = $this->displayMoney($record['openstaand']);
  786. }
  787. /* GET THE TOTAL OPEN */
  788. $query = "SELECT SUM( bedrag ) AS openstaand FROM `factuur` WHERE betaald = 'C'";
  789. $query = mysql_query($query) or die (mysql_error());
  790. $record = mysql_fetch_array($query);
  791. $open_vat['total'] = $this->displayMoney($record['openstaand']);
  792. return $open_vat;
  793. }
  794. function invoices_get_vat_last_quarter ()
  795. {
  796. global $btwTarrieven;
  797. /* GET VAT SPECIFIC OPEN */
  798. foreach($btwTarrieven AS $perc)
  799. {
  800. $query = "SELECT SUM( bedrag ) AS voldaan
  801. FROM factuur f, klant k
  802. WHERE f.klantId = k.klantId AND
  803. f.betaald = 'Y' AND
  804. datum >= '".$fact->vorige_kwartaaldatum()."' AND
  805. k.BTWtarrief = '".$perc."'";
  806. $query = mysql_query($query) or die (mysql_error());
  807. $record = mysql_fetch_array($query);
  808. $open_vat[$perc] = $this->displayMoney($record['openstaand']);
  809. }
  810. $query19 = "";
  811. $query19 = mysql_query($query19) or die (mysql_error());
  812. $record19=mysql_fetch_array($query19);
  813. $query10 = "SELECT SUM( bedrag ) AS voldaan
  814. FROM factuur f, klant k
  815. WHERE f.klantId = k.klantId AND
  816. f.betaald = 'Y' AND
  817. datum >= '".$fact->vorige_kwartaaldatum()."' AND
  818. k.BTWtarrief = '0.0';";
  819. $query10 = mysql_query($query10) or die (mysql_error());
  820. $record10=mysql_fetch_array($query10);
  821. $query = "SELECT SUM( bedrag ) AS voldaan FROM `factuur` WHERE betaald = 'Y' AND datum >= '".$fact->vorige_kwartaaldatum()."'";
  822. $query = mysql_query($query) or die (mysql_error());
  823. $record=mysql_fetch_array($query);
  824. return $open_vat;
  825. }
  826. function get_open_invoices()
  827. {
  828. $query = "SELECT * FROM factuur f, klant k
  829. WHERE f.klantId = k.klantId AND
  830. betaald='C' ORDER BY factuurId DESC";
  831. $query = mysql_query($query) or die (mysql_error());
  832. while($record=mysql_fetch_array($query))
  833. {
  834. $time = mktime(date('H',$record['datum']),date('i',$record['datum']),date('s',$record['datum']),date('m',$record['datum']),date('d',$record['datum'])+BETALINGS_TERMIJN,date('Y',$record['datum']));
  835. if($time<time()){
  836. $record['status'] = 'Over tijd, openstaand';
  837. }else{
  838. $record['status'] = 'Openstaand';
  839. }
  840. $record['name'] = $this->get_name($record['bedrijfsnaam'], $record['achternaam'], $record['voornaam']);
  841. $record['disp_date'] = date(FACTUUR_DATUM_FORMAT,$record['datum']);
  842. $record['excl'] = $record['bedrag']/(($record['BTWtarrief']/100)+1);
  843. $record['vat'] = $this->displayMoney($record['bedrag']-$record['excl']);
  844. $record['excl'] = $this->displayMoney($record['excl']);
  845. $record['bedrag'] = $this->displayMoney($record['bedrag']);
  846. $open_invoices[] = $record;
  847. }
  848. return $open_invoices;
  849. }
  850. function get_name($companyname, $lastname, $sirname)
  851. {
  852. if($companyname != "")
  853. {
  854. $name = substr($companyname, 0, 40);
  855. }else
  856. {
  857. $name = substr($lastname, 0, 20);
  858. $name .= ', ' ;
  859. $name .= substr($sirname, 0, 20);
  860. }
  861. return $name;
  862. }
  863. public function getSommationCosts ($klantId)
  864. {
  865. $query = "SELECT SUM(bedrag) AS tot FROM factuur WHERE betaald = 'C' AND klantId = '".mysql_real_escape_string($klantId)."'";
  866. $query = mysql_query($query) or die (mysql_error());
  867. $record = mysql_fetch_assoc($query);
  868. $invoice['open'] = $this->DisplayMoney($record['tot']);
  869. $invoice['reminder'] = $this->DisplayMoney(REMINDER_COSTS);
  870. $invoice['total'] = $this->DisplayMoney($record['tot'] + REMINDER_COSTS);
  871. return $invoice;
  872. }
  873. public function getCustomer ($klantId)
  874. {
  875. $query = "SELECT * FROM `klant` WHERE klantId = '".mysql_real_escape_string($klantId)."'";
  876. $query = mysql_query($query) or die (mysql_error());
  877. return mysql_fetch_assoc($query);
  878. }
  879. public function getAddress ($companyname, $firstname, $middlename, $lastname, $streetname, $housenumber, $zipcode, $city, $country)
  880. {
  881. $address = '';
  882. if($companyname != '')
  883. {
  884. $address .= $companyname."<br />\n";
  885. }
  886. $address .= $firstname." ";
  887. if($middlename != '') $address .= $middlename." ";
  888. $address .= $lastname."<br />\n";
  889. $address .= $streetname." ".$housenumber."<br />\n";
  890. $address .= $zipcode." ".$city."<br />\n";
  891. $address .= $country."<br />\n";
  892. return $address;
  893. }
  894. public function getTitle ($firstname, $middlename, $lastname)
  895. {
  896. $title = $firstname." ";
  897. if($middlename != "") $title .= $middlename." ";
  898. $title .= $lastname;
  899. return $title;
  900. }
  901. }
  902. ?>