]Project-Open[

カスタマイズTips

]project-open[ の各種帳票(見積書、納品書、請求書)出力や、単位やフォーマットなどの画面の表示について、プログラムに依存している部分を調査し、以下にまとめました。

 

1. 通貨表示を 「 JPY 」 から 「 円 」 に変更

見積書、納品書、請求書の通貨表示は、デフォルトで 「 JPY 」 と表示されます。
これを 「 」 に変更するには、project-openがインストールされたサーバの

/web/projop/packages/intranet-invoices/www/view.tcl

を編集します。

具体的には、上記tclプログラム内のhtml記述部分における

$currency

の部分を

[lang::message::lookup $locale intranet-core.JPY "JPY"]

に置き換えます。

code3


編集前と編集後の表示は以下のとおりです。

・編集前

Image132

・編集後

Image133

なお、通貨表示が変わるのは、単価および数量に記載された通貨表示のみです。
合計金額の通貨表示を変更したい場合は、別途「オリジナルテンプレートの編集」を参照ください。

 

2. 金額の小数点部分を非表示にする

見積書、納品書、請求書の金額は、デフォルトで小数点第二位までを表示します。
これを非表示(切り捨て)にするには、project-openがインストールされたサーバの

/web/projop/packages/intranet-invoices/www/view.tcl

を編集します。

具体的には、

im_numeric_add_trailing_zeros()

の部分を削除し、

expr」部分を「int」で

castします。

code4

 

編集前と編集後の表示は以下のとおりです。

・編集前

Image134

・編集後

Image135

 

3. 担当者名を 「 姓 」 「 名 」 の順に表示する

見積書、納品書、請求書の担当者名はデフォルトでは 「 名 」 「 姓 」 の順に表示されます。
これを「 姓 」 「 名 」 の順に表示するために、]project-open[ 用のDBにFUNCTIONを新たに作成します。
併せて、project-openがインストールされたサーバの

/web/projop/packages/intranet-invoices/www/view.tcl

を編集します。

FUNCTIONのソースは以下のとおりです。

・im_name_from_user_id_jp

-- Name: im_name_from_user_id_jp(integer); Type: FUNCTION; Schema: public; Owner: projop
--

CREATE FUNCTION im_name_from_user_id_jp(integer) RETURNS character varying
AS '
DECLARE
v_user_id alias for $1;
v_full_name varchar(8000);
BEGIN
select
last_name || '' '' || first_names into v_full_name
from
persons
where
person_id = v_user_id;

return v_full_name;

END;
LANGUAGE plpgsql;

 

あらかじめ上記SQLファイルをサーバの /tmp ディレクトリへ転送しておき、以下の手順でDBにファイルを読み込ませます。

# su - projop
$ psql -f /tmp/im_name_from_user_id_jp.sql
CREATE FUNCTION

$ psql
# FUNCTIONの実行結果を確認
projop=# select im_name_from_user_id_jp(624);
im_name_from_user_id_jp

-------------------------
田中 二郎
(1 row)
# 「姓」「名」で表示されていること

 

作成したFUNCTIONを利用するように、view.tclを編集します。

# cp -p /web/projop/packages/intranet-invoices/www/view.tcl /web/projop/packages/intranet-invoices/www/view.tcl.org
# chmod 575 /web/projop/packages/intranet-invoices/www/view.tcl
# vi /web/projop/packages/intranet-invoices/www/view.tcl
# 以下を編集する(一番左は大よその行数)
# コメントアウト
419 /* im_name_from_user_id(:user_id) as internal_contact_name, */
# 追記
420 im_name_from_user_id_jp(:user_id) as internal_contact_name,


編集前と編集後の表示は以下のとおりです。

・編集前

Image163

・編集後

Image164

 

なお、顧客名の表示を 「 姓 」 「 名 」 の順に表示したい場合は、別途「オリジナルテンプレートの編集」を参照ください。

 

4. 帳票の日付フォーマット編集

各種帳票 (見積書、納品書、請求書) で表示される日付は、デフォルトで mm/dd/yy (07/06/11) の形式です。
これを、yyyy-mm-dd (2011-06-07) 形式で表示する場合は、]project-open[ がインストールされたサーバの

/web/projop/packages/intranet-invoices/www/view.tcl

を編集します。

編集内容は以下のとおりです。

# cp -p /web/projop/packages/intranet-invoices/www/view.tcl /web/projop/packages/intranet-invoices/www/view.tcl.org
# chmod 575 /web/projop/packages/intranet-invoices/www/view.tcl
# vi /web/projop/packages/intranet-invoices/www/view.tcl
# 以下を編集する(一番左は大よその行数)
# コメントアウト
575 # set invoice_date_pretty [lc_time_fmt $invoice_date "%x" $locale]
# 追記
576 set invoice_date_pretty [lc_time_fmt $invoice_date "%F" $locale]


編集前と編集後の表示は以下のとおりです。

・編集前

Image138

・編集後

Image139

 

5. カレンダーの日付フォーマット編集

]project-open[ のコンポーネントとして用意されているカレンダーのフォーマットを、デフォルトのmm月dd,yyyy (6月12,2011) から、yyyy年mm月dd日 (2011年6月12日) 形式へ変更します。併せて、mm/dd/yy (06/12/11) から、yyyy-mm-dd (2011-06-12) 形式へ変更します。

対象のプログラムは以下のとおりです。

/web/projop/packages/calendar/www/view-week-display.tcl

編集内容は以下のとおりです。

# cd /web/projop/packages/calendar/www
# cp -p view-week-display.tcl view-week-display.tcl.org
# chmod 474 view-week-display.tcl
# vi view-week-display.tcl
# 以下を編集する(一番左は大よその行数)
# コメントアウト
95 # set start_date [lc_time_fmt $ansi_start_date "%x"]
# 追記
96 set start_date [lc_time_fmt $ansi_start_date "%F"]

# コメントアウト
97 # set end_date [lc_time_fmt $ansi_end_date "%x"]
# 追記
98 set end_date [lc_time_fmt $ansi_end_date "%F"]

# コメントアウト
106 # multirow append items \
107 # "" \
108 # "" \
109 # "" \
110 # "" \
111 # [lc_time_fmt $ansi_this_date "%x"] \
112 # $current_weekday \
113 # [lc_time_fmt $ansi_this_date %A] \
114 # "" \
115 # "" \
116 # "" \
117 # "${base_url}cal-item-new?date=${ansi_this_date}&start_time=&end_time=&return_url=$return_url" \
118 # "${base_url}?view=day&date=$ansi_this_date&page_num_urlvar"
# 追記
119 multirow append items \
120   "" \
121   "" \
122   "" \
123   "" \
124   [lc_time_fmt $ansi_this_date "%F"] \
125   $current_weekday \
126   [lc_time_fmt $ansi_this_date %A] \
127   "" \
128   "" \
129    "" \
130   "${base_url}cal-item-new?date=${ansi_this_date}&start_time=&end_time=&return_url=$return_url" \
131   "${base_url}?view=day&date=$ansi_this_date&page_num_urlvar"

# コメントアウト
171 # multirow append items \
172 #    "" \
173 #    "" \
174 #    "" \
175 #    "" \
176 #    [lc_time_fmt $ansi_this_date "%x"] \
177 #    $current_weekday \
178 #    [lc_time_fmt $ansi_this_date %A] \
179 #    "" \
180 #    "" \
181 #    "" \
182 #    "${base_url}cal-item-new?date=${ansi_this_date}&start_time=&end_time=&return_url=$return_url" \
183 #    "${base_url}?view=day&date=$ansi_this_date&page_num_urlvar"
# 追記
184 multirow append items \
185   "" \
186   "" \
187   "" \
188   "" \
189   [lc_time_fmt $ansi_this_date "%F"] \
190   $current_weekday \
191   [lc_time_fmt $ansi_this_date %A] \
192   "" \
193   "" \
194   "" \
195   "${base_url}cal-item-new?date=${ansi_this_date}&start_time=&end_time=&return_url=$return_url" \
196   "${base_url}?view=day&date=$ansi_this_date&page_num_urlvar"

# コメントアウト
201 # set dates "[lc_time_fmt $first_weekday_date "%q"] - [lc_time_fmt $last_weekday_date "%q"]"
# 追記
202 set user_locale [lang::user::locale]
203 set locale $user_locale
204 set year [lang::message::lookup $locale calendar.year "year"]
205 set day [lang::message::lookup $locale intranet-core.Day "Day"]
206 set dates "[lc_time_fmt $first_weekday_date "%Y$year %b %e$day"] - [lc_time_fmt $last_weekday_date "%Y$year %b %e$day"]"

 

編集前と編集後の表示は以下のとおりです。

・編集前

29_calendar_before

・編集後

30_calendar_after