auth->check_module_permissions('billing'); $app->uses('tpl'); $app->tpl->newTemplate('form.tpl.htm'); $app->tpl->setInclude('content_tpl', 'templates/create_recurring_invoices.htm'); $linebreak = '
'; } else { $linebreak = "\n"; } $msg = ''; $error = ''; $is_test = (@$_POST['test'] == 1)?true:false; $finalize_invoice = (@$_POST['finalize_invoices'] == 1)?true:false; $send_invoice = (@$_POST['send_invoices'] == 1)?true:false; $email_template_id = intval(@$_POST['email_template_id']); //* Internal helper function: translate text strings into client's language function client_lng($text, $lng = 'en') { global $conf; if(is_file(ISPC_LIB_PATH.'/lang/'.strtolower($lng).'.lng')) { include(ISPC_LIB_PATH.'/lang/'.strtolower($lng).'.lng'); } else { include(ISPC_LIB_PATH.'/lang/'.$conf['language'].'.lng'); } if(is_file(ISPC_WEB_PATH.'/billing/lib/lang/'.strtolower($lng).'.lng')) { include(ISPC_WEB_PATH.'/billing/lib/lang/'.strtolower($lng).'.lng'); } else { include(ISPC_WEB_PATH.'/billing/lib/lang/'.$conf['language'].'.lng'); } if(is_file(ISPC_WEB_PATH.'/billing/lib/lang/'.strtolower($lng).'_invoice_pdf.lng')) { include(ISPC_WEB_PATH.'/billing/lib/lang/'.strtolower($lng).'_invoice_pdf.lng'); } else { include(ISPC_WEB_PATH.'/billing/lib/lang/'.$conf['language'].'_invoice_pdf.lng'); } if(isset($wb[$text])) { return $wb[$text]; } else { return $text; } } function finalize_invoice($invoice_id) { global $app, $conf; $invoice_id = intval($invoice_id); $invoice = $app->db->queryOneRecord("SELECT * FROM invoice WHERE invoice_id = ".$invoice_id); $company = $app->db->queryOneRecord("SELECT * FROM invoice_company WHERE invoice_company_id = ".$invoice['invoice_company_id']); // Assign an invoice number $app->uses('billing_functions'); $app->billing_functions->assign_invoice_number($invoice, $company); /* if($invoice['invoice_number'] == '') { if($invoice['invoice_type'] == 'refund') { $last_refund_number = $company['last_refund_number']; $refund_number_prefix = $company['refund_number_prefix']; $new_refund_number = $last_refund_number + 1; $invoice_number = $refund_number_prefix.str_pad($new_refund_number, 4, "0", STR_PAD_LEFT); $app->db->query("UPDATE invoice_company SET last_refund_number = $new_refund_number WHERE invoice_company_id = ".$invoice['invoice_company_id']); } elseif($invoice['invoice_type'] == 'proforma') { $last_proforma_number = $company['last_proforma_number']; $proforma_number_prefix = $company['proforma_number_prefix']; $new_proforma_number = $last_proforma_number + 1; $invoice_number = $proforma_number_prefix.str_pad($new_proforma_number, 4, "0", STR_PAD_LEFT); $app->db->query("UPDATE invoice_company SET last_proforma_number = $new_proforma_number WHERE invoice_company_id = ".$invoice['invoice_company_id']); } else { $last_invoice_number = $company['last_invoice_number']; $invoice_number_prefix = $company['invoice_number_prefix']; $new_invoice_number = $last_invoice_number + 1; $invoice_number = $invoice_number_prefix.str_pad($new_invoice_number, 4, "0", STR_PAD_LEFT); $app->db->query("UPDATE invoice_company SET last_invoice_number = $new_invoice_number WHERE invoice_company_id = ".$invoice['invoice_company_id']); } $app->db->query("UPDATE invoice SET invoice_number = '$invoice_number' WHERE invoice_id = ".$invoice_id); } */ if($invoice['invoice_date'] == '' or $invoice['invoice_date'] == '0000-00-00') { $invoice['invoice_date'] = date('Y-m-d'); $app->db->query("UPDATE invoice SET invoice_date = '".$invoice['invoice_date']."' WHERE invoice_id = ".$invoice_id); } if($invoice['idhash'] == '') { // Set the unique hash for the invoice $idhash = md5(uniqid(mt_rand(), true)); $app->db->query("UPDATE invoice SET idhash = '$idhash' WHERE invoice_id = ".$invoice_id); } // Create the PDF invoice $invoice_pdf_template = $company['invoice_pdf_template']; $pdf_invoice_classname = 'PDFInvoice_'.$invoice_pdf_template; if(!class_exists('PDFInvoice_'.$invoice_pdf_template)) { include('templates/pdf_invoice/'.$invoice_pdf_template.'/make_pdf_invoice.php'); } $pdf=new $pdf_invoice_classname(); $pdf->AliasNbPages(); $pdf->createInvoice($invoice_id); $pdf_content = $pdf->Output('doc.pdf','S'); $invoice_filename = $app->billing_functions->get_invoice_filename($pdf->invoice['invoice_number'], $pdf->invoice['reminder_step']); file_put_contents($invoice_filename,$pdf_content); unset($pdf); // Calculate the invoice amount $tmp = $app->db->queryOneRecord("SELECT sum(quantity*price+(quantity*price*(vat/100))) as amount FROM invoice_item WHERE invoice_id = ".$invoice_id); $invoice_amount = $tmp['amount']; // Update the status of the invoice $app->db->query("UPDATE invoice SET status_printed = 'y', invoice_amount = $invoice_amount WHERE invoice_id = ".$invoice_id); } // end finalize_invoice function function send_invoice_by_email($invoice_id, $email_template_id) { global $app, $conf; $invoice_id = intval($invoice_id); $invoice = $app->db->queryOneRecord("SELECT * FROM invoice WHERE invoice_id = ".$invoice_id); $invoice_company_id = $invoice['invoice_company_id']; $client_id = $invoice['client_id']; $client = $app->db->queryOneRecord('SELECT * FROM client WHERE client_id = '.$client_id); $invoice_client_settings = $app->db->queryOneRecord('SELECT * FROM invoice_client_settings WHERE client_id = '.$client_id); $company = $app->db->queryOneRecord('SELECT * FROM invoice_company WHERE invoice_company_id = '.$invoice_company_id); $email_template = $app->db->queryOneRecord('SELECT * FROM invoice_message_template WHERE invoice_message_template_id = '.$email_template_id); $invoice_settings = $app->db->queryOneRecord("SELECT * FROM invoice_settings WHERE invoice_settings_id = 1"); if ($invoice_client_settings['payment_email']) { $to = trim($invoice_client_settings['payment_email']); } else { $to = trim($client['email']); } $subject = $email_template['subject']; $text_message = str_replace("\r\n","\n",$email_template['message']); $from_name = trim($company['sender_name']); $from = trim($company['sender_email']); if(!$from) $from = trim($company['email']); $bcc = trim($company['bcc_email']); $invoice = $app->db->queryOneRecord('SELECT invoice_number, idhash, invoice_amount FROM invoice WHERE invoice_id = '.$invoice_id); $invoice_filename = ISPC_ROOT_PATH.'/invoices/'.$invoice['invoice_number'].'.pdf'; //* Replace placeholders {INVOICE_NUMBER}, {CONTACT_NAME}, {COMPANY_NAME} /* $text_message = str_replace('{INVOICE_NUMBER}',$invoice['invoice_number'],$text_message); $text_message = str_replace('{CONTACT_NAME}',$client['contact_name'],$text_message); $text_message = str_replace('{COMPANY_NAME}',$client['company_name'],$text_message); $subject = str_replace('{INVOICE_NUMBER}',$invoice['invoice_number'],$subject); $subject = str_replace('{CONTACT_NAME}',$client['contact_name'],$subject); $subject = str_replace('{COMPANY_NAME}',$client['company_name'],$subject); */ if(isset($invoice_settings['invoice_pay_link']) && $invoice_settings['invoice_pay_link'] != '') { $invoice_pay_link = $invoice_settings['invoice_pay_link'].$invoice['idhash']; } else { $ispconfig_url = $app->functions->get_ispconfig_url(); $invoice_pay_link = $ispconfig_url.'/billing/payments/pay.php?id='.$invoice['idhash']; } //$text_message = str_replace('{INVOICE_PAY_LINK}',$invoice_pay_link,$text_message); $trans = array( '{INVOICE_NUMBER}' => $invoice['invoice_number'], '{INVOICE_AMOUNT}' => $app->functions->currency_format($invoice['invoice_amount'], 'client'), '{INVOICE_CURRENCY}' => $invoice_settings['currency'], '{INVOICE_PAY_LINK}' => $invoice_pay_link, '{CONTACT_NAME}' => $client['contact_name'], '{COMPANY_NAME}' => $client['company_name'], '{CLIENT_CONTACT_NAME}' => $client['contact_name'], '{CLIENT_COMPANY_NAME}' => $client['company_name'], '{CLIENT_COMPANY_ID}' => $client['company_id'], '{CLIENT_CUSTOMER_NO}' => $client['customer_no'], '{CLIENT_VAT_ID}' => $client['vat_id'], '{CLIENT_STREET}' => $client['street'], '{CLIENT_ZIP}' => $client['zip'], '{CLIENT_CITY}' => $client['city'], '{CLIENT_STATE}' => $client['state'], '{CLIENT_COUNTRY}' => $client['country'], '{CLIENT_TELEPHONE}' => $client['telephone'], '{CLIENT_MOBILE}' => $client['mobile'], '{CLIENT_FAX}' => $client['fax'], '{CLIENT_EMAIL}' => $client['email'], '{CLIENT_INTERNET}' => $client['internet'], '{CLIENT_ICQ}' => $client['icq'], '{CLIENT_NOTES}' => $client['notes'], '{CLIENT_BANKACCOUNT_OWNER}' => $client['bank_account_owner'], '{CLIENT_BANKACCOUNT_NO}' => $client['bank_account_number'], '{CLIENT_BANK_CODE}' => $client['bank_code'], '{CLIENT_BANK_NAME}' => $client['bank_name'], '{CLIENT_BANKACCOUNT_IBAN}' => $client['bank_account_iban'], '{CLIENT_BANKACCOUNT_SWIFT}' => $client['bank_account_swift'], '{ISSUER_COMPANY_NAME}' => $company['company_name'], '{ISSUER_COMPANY_NAME_SHORT}' => $company['company_name_short'], '{ISSUER_CONTACT_NAME}' => $company['contact_name'], '{ISSUER_CEO_NAME}' => $company['ceo_name'], '{ISSUER_VAT_ID}' => $company['vat_id'], '{ISSUER_TAX_ID}' => $company['tax_id'], '{ISSUER_COMPANY_REGISTER}' => $company['company_register'], '{ISSUER_STREET}' => $company['street'], '{ISSUER_ZIP}' => $company['zip'], '{ISSUER_CITY}' => $company['city'], '{ISSUER_STATE}' => $company['state'], '{ISSUER_COUNTRY}' => $company['country'], '{ISSUER_TELEPHONE}' => $company['telephone'], '{ISSUER_FAX}' => $company['fax'], '{ISSUER_EMAIL}' => $company['email'], '{ISSUER_INTERNET}' => $company['internet'], '{ISSUER_BANKACCOUNT_OWNER}' => $company['bank_account_owner'], '{ISSUER_BANKACCOUNT_NO}' => $company['bank_account_number'], '{ISSUER_BANK_CODE}' => $company['bank_code'], '{ISSUER_BANK_NAME}' => $company['bank_name'], '{ISSUER_BANKACCOUNT_IBAN}' => $company['bank_account_iban'], '{ISSUER_BANKACCOUNT_SWIFT}' => $company['bank_account_swift'], ); $text_message = strtr($text_message, $trans); $subject = strtr($subject, $trans); //* Send the email $disable_invoice_sending = (isset($invoice_client_settings['no_invoice_sending']))?$invoice_client_settings['no_invoice_sending']:'n'; if($disable_invoice_sending != 'y') { $app->uses('functions'); if($to != '') $app->functions->mail($to, $subject, $text_message, $from, $invoice_filename, 'application/pdf', '', '', $bcc, $from_name); //* Insert the message into the database $sql = "INSERT INTO `invoice_message` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `invoice_company_id`, `client_id`, `message_template_id`, `message_type`, `subject`, `message`, `invoice_id`, `message_sent_date`, `message_status`) VALUES(1, 1, 'riud', 'riud', '', ".$invoice_company_id.", ".$client_id.", ".$email_template_id.", 'invoice', '".$app->db->quote($subject)."', '".$app->db->quote($text_message)."', ".$invoice_id.", '".date('Y-m-d')."', 'sent');"; $app->db->query($sql); // Update the status of the invoice $app->db->query("UPDATE invoice SET status_sent = 'y' WHERE invoice_id = ".$invoice_id); return true; } else { return false; } } // Start invoice creation if(isset($_POST['until_date']) && $_POST['until_date'] != '') { if($send_invoice == true && $email_template_id == 0) { $error .= 'No email template selected.'; } if($error == '' && $is_test) $msg .= 'Dry run...'.$linebreak.$linebreak; // Get all recurring invoice items that have to be billed if(CRON_RUN !== true){ if(function_exists('date_parse_from_format')) { $date_parts = date_parse_from_format($app->lng('conf_format_dateshort'),$_POST['until_date']); $tmp_formatted_date = $date_parts['day'].'.'.$date_parts['month'].'.'.$date_parts['year']; } else { $tmp = strtotime($_POST['until_date']); $tmp_formatted_date = date('d.m.Y',$tmp); } $parts = explode('.',$tmp_formatted_date); } else { $parts = explode('.',$_POST['until_date']); } $now = date('Y-m-d'); $until_date = intval($parts[2]).'-'.intval($parts[1]).'-'.intval($parts[0]); if($parts[2] < 2010 or $parts[2] > 2030) $error .= 'Invalid year'.$linebreak; if($parts[1] < 1 or $parts[1] > 12) $error .= 'Invalid month'.$linebreak; if($parts[0] < 1 or $parts[1] > 31) $error .= 'Invalid day'.$linebreak; $created_invoices = array(); $records = $app->db->queryAllRecords("SELECT * FROM invoice_recurring_item WHERE next_payment_date < '$until_date' AND (end_date = '0000-00-00' OR next_payment_date < end_date) AND client_id > 0 AND active = 'y' AND (price > 0 OR setup_fee > 0 OR vat > 0)"); if(is_array($records)) { foreach($records as $rec) { $client_id = $rec['client_id']; $invoice_company_id = $rec['invoice_company_id']; if ($_POST['proforma_invoice'] == 1){ $invoice_type = 'proforma'; } else { $invoice_type = 'invoice'; } $invoice = $app->db->queryOneRecord("SELECT invoice_id FROM invoice WHERE client_id = $client_id AND invoice_type = '".$invoice_type."' AND status_printed = 'n'"); if($invoice['invoice_id'] > 0) { $invoice_id = $invoice['invoice_id']; } else { // There is no invoice draft, so we have to create one. // $client = $app->db->queryOneRecord("SELECT * FROM client, invoice_client_settings WHERE invoice_client_settings.client_id = client.client_id AND client.client_id = $client_id"); $client = $app->db->queryOneRecord("SELECT client.*, invoice_client_settings.payment_email, invoice_client_settings.payment_terms,invoice_client_settings.payment_gateway, invoice_client_settings.no_invoice_sending FROM client LEFT JOIN invoice_client_settings ON invoice_client_settings.client_id = client.client_id WHERE client.client_id = $client_id"); $sys_userid = $client['sys_userid']; $sys_groupid = $client['sys_groupid']; $company_name = $app->db->quote($client['company_name']); $contact_name = $app->db->quote($client['contact_name']); $street = $app->db->quote($client['street']); $zip = $app->db->quote($client['zip']); $city = $app->db->quote($client['city']); $state = $app->db->quote($client['state']); $country = $app->db->quote($client['country']); $email = $app->db->quote($client['email']); $invoice_date = date('Y-m-d'); $vat_id = $app->db->quote($client['vat_id']); $idhash = md5(uniqid(mt_rand(), true)); if(isset($client['invoice_company_id']) && $client['invoice_company_id'] > 0) $invoice_company_id = $client['invoice_company_id']; if(isset($client['payment_email']) && $client['payment_email'] != '') $email = $client['payment_email']; $payment_terms = (!empty($client['payment_terms']) && $client['payment_terms'] != 'NULL')?$client['payment_terms']:1; $payment_gateway = (!empty($client['payment_gateway']) && $client['payment_gateway'] != 'NULL')?$client['payment_gateway']:'none'; $invoice_type = (isset($_POST['proforma_invoice']) && $_POST['proforma_invoice'] == 1)?'proforma':'invoice'; $sql = "INSERT INTO invoice (sys_userid,sys_groupid,sys_perm_user,sys_perm_group,sys_perm_other,invoice_type,invoice_company_id,client_id,company_name,contact_name,street,zip,city,state,country,email,invoice_date,vat_id,payment_terms,payment_gateway,idhash) VALUES ('$sys_userid','$sys_groupid','riud','riud','','$invoice_type','$invoice_company_id','$client_id','$company_name','$contact_name','$street','$zip','$city','$state','$country','$email','$invoice_date','$vat_id','$payment_terms','$payment_gateway','$idhash')"; if($error == '') { if($is_test == false) { $app->db->query($sql); $invoice_id = $app->db->insertID(); } else { $invoice_id = 0; } $msg .= "Started new invoice for $company_name :: $contact_name.".$linebreak; } } // New invoice items $invoice_item_template_id = 0; $price = $app->db->quote($rec['price']); $vat = $app->db->quote($rec['vat']); $quantity = $app->db->quote($rec['quantity']); $description = $app->db->quote($rec['description']); list($jahr,$monat,$tag) = explode('-',$rec['next_payment_date']); $date_from_last_tstamp = mktime(0, 0, 0, $monat-$rec['recur_months'], $tag, $jahr); $date_from_tstamp = mktime(0, 0, 0, $monat, $tag, $jahr); $date_from_tstamp_minus_one_day = mktime(0, 0, 0, $monat, $tag-1, $jahr); $date_to_tstamp = mktime(0, 0, 0, $monat+$rec['recur_months'], $tag, $jahr); $date_to_tstamp_minus_one_day = mktime(0, 0, 0, $monat+$rec['recur_months'], $tag-1, $jahr); // Replace strings in description $description = str_replace('{ITEMNAME}',$rec['name'],$description); if($rec['advance_payment'] == 'y') { $description = str_replace('{FROMDATE}',date(client_lng('conf_format_dateshort', $client['language']),$date_from_tstamp),$description); $description = str_replace('{TODATE}',date(client_lng('conf_format_dateshort', $client['language']),$date_to_tstamp_minus_one_day),$description); } else { $description = str_replace('{FROMDATE}',date(client_lng('conf_format_dateshort', $client['language']),$date_from_last_tstamp),$description); $description = str_replace('{TODATE}',date(client_lng('conf_format_dateshort', $client['language']),$date_from_tstamp_minus_one_day),$description); } // Insert setup fee into the invoice. if($rec['next_payment_date'] == $rec['start_date'] && $rec['setup_fee'] != 0){ $setup_fee = $app->db->quote($rec['setup_fee']); $setup_fee_description = client_lng('setup_fee_txt', $client['language']).' '.$rec['name']; $sql = "INSERT INTO invoice_item (invoice_id,invoice_item_template_id,quantity,price,vat,description) VALUES ($invoice_id,$invoice_item_template_id,'1','$setup_fee','$vat','$setup_fee_description')"; if($is_test == false && $error == '') $app->db->query($sql); //die($sql); } // Insert a new item into the invoice. $sql = "INSERT INTO invoice_item (invoice_id,invoice_item_template_id,quantity,price,vat,description) VALUES ($invoice_id,$invoice_item_template_id,'$quantity','$price','$vat','$description')"; if($is_test == false && $error == '') $app->db->query($sql); //die($sql); // Update the next_payment_date date of the recurring item $sql = "UPDATE invoice_recurring_item SET next_payment_date = '".date('Y-m-d',$date_to_tstamp)."' WHERE invoice_recurring_item_id = ".$rec['invoice_recurring_item_id']; if($error == '') { if($is_test == false) $app->db->query($sql); $msg .= "Added item ".$rec['name']." of type ".$rec['type']." to the invoice draft #$invoice_id.".$linebreak; } //* add invoice ID to the $created_invoices array, so that we can process them later if(!in_array($invoice_id,$created_invoices)) $created_invoices[] = $invoice_id; } } if($is_test == false) $app->db->query("UPDATE invoice_recurring_item SET next_payment_date = DATE_ADD(next_payment_date, INTERVAL recur_months MONTH) WHERE next_payment_date < '$until_date' AND (end_date = '0000-00-00' OR next_payment_date < end_date) AND client_id > 0 AND active = 'y' AND price = 0 AND setup_fee = 0 AND vat = 0"); //*Finalize and send invoices if(count($created_invoices) > 0) { foreach($created_invoices as $invoice_id) { if($invoice_id > 0) { // Finalize the invoice if($error == '' && $finalize_invoice == true) { if($is_test == false) finalize_invoice($invoice_id); $msg .= "Finalized the invoice draft #$invoice_id.".$linebreak; } // Send invoice by email if($error == '' && $send_invoice == true) { if($is_test == false) $returnvar = send_invoice_by_email($invoice_id, $email_template_id); if($returnvar == true) $msg .= "Invoice sent by email #$invoice_id.".$linebreak; } } } } if($error == '') $msg .= 'Finished.'; } if(CRON_RUN !== true){ $app->tpl->setVar('msg',$msg); $app->tpl->setVar('error',$error); if(isset($_POST['until_date']) && $_POST['until_date'] != '') { $app->tpl->setVar('until_date',$_POST['until_date']); } else { $app->tpl->setVar('until_date',date($app->lng('conf_format_dateshort'))); } // Datepicker $date_format = $app->lng('conf_format_dateshort'); $trans = array("d" => "dd", "m" => "mm", "Y" => "yy"); $date_format = strtr($date_format, $trans); $app->tpl->setVar("date_format", $date_format); $app->tpl->setVar("daynamesmin_su", $app->lng('daynamesmin_su')); $app->tpl->setVar("daynamesmin_mo", $app->lng('daynamesmin_mo')); $app->tpl->setVar("daynamesmin_tu", $app->lng('daynamesmin_tu')); $app->tpl->setVar("daynamesmin_we", $app->lng('daynamesmin_we')); $app->tpl->setVar("daynamesmin_th", $app->lng('daynamesmin_th')); $app->tpl->setVar("daynamesmin_fr", $app->lng('daynamesmin_fr')); $app->tpl->setVar("daynamesmin_sa", $app->lng('daynamesmin_sa')); $app->tpl->setVar("daynames_sunday", $app->lng('daynames_sunday')); $app->tpl->setVar("daynames_monday", $app->lng('daynames_monday')); $app->tpl->setVar("daynames_tuesday", $app->lng('daynames_tuesday')); $app->tpl->setVar("daynames_wednesday", $app->lng('daynames_wednesday')); $app->tpl->setVar("daynames_thursday", $app->lng('daynames_thursday')); $app->tpl->setVar("daynames_friday", $app->lng('daynames_friday')); $app->tpl->setVar("daynames_saturday", $app->lng('daynames_saturday')); $app->tpl->setVar("monthnamesshort_jan", $app->lng('monthnamesshort_jan')); $app->tpl->setVar("monthnamesshort_feb", $app->lng('monthnamesshort_feb')); $app->tpl->setVar("monthnamesshort_mar", $app->lng('monthnamesshort_mar')); $app->tpl->setVar("monthnamesshort_apr", $app->lng('monthnamesshort_apr')); $app->tpl->setVar("monthnamesshort_may", $app->lng('monthnamesshort_may')); $app->tpl->setVar("monthnamesshort_jun", $app->lng('monthnamesshort_jun')); $app->tpl->setVar("monthnamesshort_jul", $app->lng('monthnamesshort_jul')); $app->tpl->setVar("monthnamesshort_aug", $app->lng('monthnamesshort_aug')); $app->tpl->setVar("monthnamesshort_sep", $app->lng('monthnamesshort_sep')); $app->tpl->setVar("monthnamesshort_oct", $app->lng('monthnamesshort_oct')); $app->tpl->setVar("monthnamesshort_nov", $app->lng('monthnamesshort_nov')); $app->tpl->setVar("monthnamesshort_dec", $app->lng('monthnamesshort_dec')); $app->tpl->setVar("datepicker_nextText", $app->lng('datepicker_nextText')); $app->tpl->setVar("datepicker_prevText", $app->lng('datepicker_prevText')); //* load language file $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_create_recurring_invoices.lng'; include($lng_file); $app->tpl->setVar($wb); $app->tpl->setVar('date_format_txt',$app->lng('conf_format_dateshort_human_readable')); //* Load email templates $tmps = $app->db->queryAllRecords("SELECT invoice_message_template_id, template_name FROM invoice_message_template WHERE template_type = 'invoice' ORDER BY template_name"); $email_template = ''; if(is_array($tmps)) { foreach($tmps as $tmp) { $selected = ($tmp['invoice_message_template_id'] == $email_template_id)?'SELECTED':''; $email_template .= ''; } } $app->tpl->setVar('email_template',$email_template); $app->tpl_defaults(); $app->tpl->pparse(); } else { if($error == ''){ echo $msg.$linebreak; } else { echo $error.$linebreak; } } ?>