+ if (($type_no > 0) && is_closed_trans($type, $type_no))
+ {
+ if (!$msg)
+ $msg = sprintf(_("%s #%s is closed for further edition."), $systypes_array[$type], $type_no);
+ display_error($msg, true);
+ display_footer_exit();
+ }
+}
+
+function check_db_has_template_orders($msg)
+{
+ $sql = "SELECT sorder.order_no
+ FROM ".TB_PREF."sales_orders as sorder,"
+ .TB_PREF."sales_order_details as line
+ WHERE sorder.order_no = line.order_no AND sorder.type = 1
+ GROUP BY line.order_no";
+
+ if (!check_empty_result($sql))
+ {
+ display_error($msg, true);
+ end_page();
+ exit;
+ }
+}
+
+function check_deferred_income_act($msg)
+{
+ global $path_to_root;
+
+ if (!get_company_pref('deferred_income_act'))
+ {
+ display_error($msg, true);
+ display_footer_exit();
+ }
+}
+
+function check_is_editable($trans_type, $trans_no, $msg=null)
+{
+ if (!$_SESSION['wa_current_user']->can_access('SA_EDITOTHERSTRANS'))
+ {
+ $audit = get_audit_trail_last($trans_type, $trans_no);
+
+ if ($_SESSION['wa_current_user']->user != $audit['user'])
+ {
+ if (!$msg)
+ $msg = '<b>'._("You have no edit access to transactions created by other users.").'</b>';
+ display_note($msg);
+ display_footer_exit();
+ }
+ }
+ if (!in_array($trans_type, array(ST_SALESORDER, ST_SALESQUOTE, ST_PURCHORDER, ST_WORKORDER)))
+ check_is_closed($trans_type, $trans_no, $msg);
+}
+
+function check_reference($reference, $trans_type, $trans_no=0, $context=null, $line=null)
+{
+ global $Refs;
+
+ if (!$Refs->is_valid($reference, $trans_type, $context, $line))
+ {
+ display_error(_("The entered reference is invalid.")); return false;
+ }
+ elseif (!$Refs->is_new_reference($reference, $trans_type, $trans_no))
+ {
+ display_error( _("The entered reference is already in use.")); return false;
+ }
+ return true;
+}
+
+function check_sys_pref($name, $msg, $empty = '')
+{
+ global $path_to_root;
+
+ if (get_company_pref($name) === $empty)
+ {
+ display_error(menu_link("/admin/gl_setup.php", $msg), true);
+ display_footer_exit();
+ }
+}