X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Freferences.inc;h=82cff2a16007b19afa669a762afdf4535a2729a3;hb=c5677263c637016991f99e1b63f067280da75163;hp=249dccf7cf53bdd263083e57e7ebb33552193dfa;hpb=e39484e47bb3d664d75b2df63b7eda70980e0f1c;p=fa-stable.git diff --git a/includes/references.inc b/includes/references.inc index 249dccf7..82cff2a1 100644 --- a/includes/references.inc +++ b/includes/references.inc @@ -10,6 +10,7 @@ See the License here . ***********************************************************************/ include_once($path_to_root . "/includes/db/class.reflines_db.inc"); +include_once($path_to_root . "/admin/db/fiscalyears_db.inc"); include_once($path_to_root . "/includes/types.inc"); //--------------------------------------------------------------------------------------------- // 2.4 - further changes toward removing refs table introduced: @@ -56,6 +57,8 @@ $refline_placeholders = array( 'MM' => 'date', 'YY' => 'date', 'YYYY' => 'date', + 'FF' => 'date', // fiscal year + 'FFFF' => 'date', 'UU' => 'user', 'P' => 'pos', // FIXME: for placeholders below all the code should work, but as the ref length is variable, @@ -70,7 +73,7 @@ class references { var $reflines; - function references() + function __construct() { $this->reflines = new reflines_db(); } @@ -121,6 +124,11 @@ class references list($day, $month, $year) = explode_date_to_dmy($context['date']); $out .= $ph == 'MM' ? sprintf('%02d', $month) : ($ph == 'YY' ? sprintf('%02d', $year%100): sprintf('%04d', $year)); break; + case 'FF': + case 'FFFF': + list($day, $month, $year) = explode_date_to_dmy(get_fiscalyear_begin_for_date($context['date'])); + $out .= $ph == 'FF' ? sprintf('%02d', $year%100): sprintf('%04d', $year); + break; case 'C': $out .= sprintf('%d', $context['customer']); break; @@ -151,6 +159,7 @@ class references } } + $out .= $template; // add postfix if (!preg_match('/^([^\{]*)?\{([^\}]*)\}(.*)/', $out, $match)) { // parse index display_error(_("Missing numeric placeholder in refline definition.")); return $out; @@ -164,6 +173,7 @@ class references $type_fld = $db_info[1]; $tno_fld = $db_info[2]; $ref_fld = $db_info[3]; + $type = db_escape($type); // retrieve last ref number in the refline from original transaction table $sql = "SELECT MAX(CAST(SUBSTR($ref_fld, ".(strlen($prefix)+1).",LENGTH($ref_fld)-".(strlen($postfix)+strlen($prefix)).") AS UNSIGNED))" @@ -284,11 +294,16 @@ class references { list($year4, $month, $day) = explode("-", date2sql($context['date'])); $year2 = substr($year4, 2); + $f_year = explode("-", date2sql(get_fiscalyear_begin_for_date($context['date']))); + $f_year2 = substr($f_year[0], 2); + $f_year4 = $f_year[0]; } else { $month = '\d{2,}'; $year2 = '\d{2,}'; $year4 = '\d{4,}'; + $f_year2 = '\d{2,}'; + $f_year4 = '\d{4,}'; } $cust = @$context['customer'] ? $context['customer'] : '\d+'; $supp = @$context['supplier'] ? $context['supplier'] : '\d+'; @@ -304,6 +319,8 @@ class references '/\{MM\}/', '/\{YY\}/', '/\{YYYY\}/', + '/\{FF\}/', + '/\{FFFF\}/', '/\{C\}/', '/\{B\}/', '/\{S\}/', @@ -318,6 +335,8 @@ class references $month, $year2, $year4, + $f_year2, + $f_year4, $cust, $branch, $supp,