Giter VIP home page Giter VIP logo

sales-report-plugin's Introduction

売上集計プラグイン

CI for SalesReport42

概要

売上を集計し、結果をグラフと一覧で確認できます。 結果をCSVで保存することもできます。

フロント

機能なし

管理画面

期間別集計

指定した期間で、日/月/曜日/時間ごとの売上の集計結果を見ることができる。

  • 期間指定
    • 単月
    • 期間(from/to)
  • 集計方法
    • 日別
    • 月別
    • 曜日別
    • 時間別
  • 集計結果
期間 購入件数 男性 女性 不明 男性 (会員) 男性 (非会員) 女性 (会員) 女性 (非会員) 購入合計 購入平均
2018/10 32 15 15 2 10 5 10 5 ¥119,834 ¥3,744

商品別集計

指定した期間で、商品ごとの売上の集計結果を見ることができる。

  • 期間指定
    • 単月
    • 期間(from/to)
  • 集計方法
    • 商品別
  • 集計結果
商品コード 商品名 購入件数(件) 数量(個) 金額
sand-01 チェリーアイスサンド 12 6 ¥18,144

年代別集計

指定した期間で、会員の年代ごとの売上の集計結果を見ることができる。

  • 期間指定
    • 単月
    • 期間(from/to)
  • 集計方法
    • 会員年代別
  • 集計結果
年代 購入件数(件) 購入合計 購入平均
30代 12 59,834 ¥4,986

集計結果のCSV保存

集計結果ページに表示される「CSVダウンロード」ボタンを押すことで、集計結果をCSVに保存することができる。

sales-report-plugin's People

Contributors

chihiro-adachi avatar dk-umebius avatar hiro-t59 avatar hoand-vn avatar izayoi256 avatar junpeko5 avatar k-yamamura avatar kazumiiiiiiiiiii avatar ken-nitta-d avatar kiy0taka avatar lammn avatar lqdung-lockon avatar luoweiwang avatar nanasess avatar nobuhiko avatar okazy avatar pineray avatar ryo-endo avatar t-nagahashi avatar takeuji avatar tps-nghiale avatar yangsin avatar yoshiaki-natsume avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sales-report-plugin's Issues

売上集計プラグイン v.1.0.0計画

1.0.0では以下の対応を行う予定です。

リリース時期

2016/12/19週を予定

主要な対応内容

機能追加

  • 集計結果のCSVダウンロード機能追加

仕様変更

  • 商品別集計のグラフを円グラフから棒グラフに変更。
    (売上の上位20商品をグラフに表示する)

その他、機能改修

互換性について

旧プラグインからのバージョンアップが可能です。

[4.2]管理画面側のレイアウト崩れ

概要(Overview)

日付の設定が縦に並んでしまっている
期間別、商品別、年代別すべてのページで確認しています
image

期待する内容(Expect) or 要望 (Requirement)

4.1のときと同様に横並びにする
image

再現手順(Procedure)

4.2系で売上集計プラグインを有効にする。
管理画面から売上集計のページへ行くと崩れています

環境 (environment)

  • EC-CUBE: 4.2.0-bera 8/24更新分
  • PHP:8.1.6
  • DB: - MySQL 5.7.38

yamlのキーが重複している

sales_report.admin.age.list.001: 未回答
sales_report.admin.age.list.002:
sales_report.admin.list.nodata: 集計期間にデータがありませんでした。
sales_report.admin.age.list.001: 年代
sales_report.admin.age.list.001: 年代

sales_report.admin.age.list.001 が重複しているためログにメッセージが無駄に出ています。
画面上では「未回答」の方が適用されているため「年代」の方は不要だと思います。

[SalesReport42] リミットパス日を入力するとシステムエラー画面が表示される

概要(Overview)

リミットパス日を入力するとシステムエラー画面が表示される

期待する内容(Expect) or 要望 (Requirement)

再現手順(Procedure)

Step 1. 売上集計 > 期間別集計 (/plugin/sales_report/term)
日付を「01/01/0001」と入力し、「期間で集計」ボタンを押してください。
image

Step 2. システムエラー画面が表示される
image

環境 (environment)

  • EC-CUBE: 4.2.0-beta2-20220916
  • PHP: 7.4.x, 8.1.x
  • DB:
    • PostgreSQL 14.x.x

関連情報 (Ref)

4.2 公式プラグインテスト_EC-CUBE 4.2.0-beta2-20220916_Plugin

売上集計のSVGアイコンを変えたい

売上集計が第1階層のメニューで追加されるがアイコンがない。

以下で利用可能な
/template/admin/assets/img/svg_list.html
cb-chart あたりを利用するのはいかがでしょうか?

集計期間の初期値をセットして欲しい

添付イメージのようにリセットされた状態なので、
今月の集計結果を確認したいときなどに日付を選択する1操作が必要になる。

すべてのフォームに、本日の日付を初期値として設定しておいて欲しい。

image

金額の表示を右寄せで表示して欲しい

金額の表示が左寄せになっているので、
添付イメージのように、カンマの位置がそろわず金額が見づらくなっている。

期待結果

金額は右寄せで表示

image

年代別、商品別集計でグラフの列が少ない時にグラフとして識別しずらい

概要(Overview)

集計期間が短いなどでグラフの列が少ない時
グラフの幅が広すぎて、グラフとして認識しずらいです

image

期待する内容(Expect) or 要望 (Requirement)

グラフの幅が狭く、シャープな表示がよいです

再現手順(Procedure)

売上データ(データの種類)の少ない期間で、集計を表示させます

環境 (environment)

  • EC-CUBE: 4.0.x
  • PHP: 7.x.x
  • DB:
    • PostgreSQL x.x.x
    • MySQL x.x.x

関連情報 (Ref)

CSV出力時に、CSVファイルの最後にWarning: Cannot modify header informationエラーが出力される

概要(Overview)

CSVファイルの最後にエラーのレスポンスが出力される

期待する内容(Expect) or 要望 (Requirement)

エラーが出力されない

再現手順(Procedure)

期間別、商品別、年代別の画面でCSVダウンロードボタンをクリック

CSVとして、下図の内容が出力される
image

環境 (environment)

  • EC-CUBE: 4.2.β
  • PHP: 7.x.x
  • DB:
    • PostgreSQL x.x.x
    • MySQL x.x.x

関連情報 (Ref)

期間別集計で集計単位を選択しないとシステムエラー

期間別集計で集計単位を選択せずに、月度だけを選んで「月度で集計」や期間だけを選んで「期間で集計」を押下するとシステムエラーが発生します。

ContextErrorException in SalesReportService.php line 194:
Notice: Undefined index:

product_class_id がゼロ(0)の商品が集計結果に未反映となる

productClassId は、ゼロ(0)も使用できるかと思いますので、Line No. 574 の if文は

if ($productClassId) { ... }

ではなく、

if (isset($productClassId)) { ... }

とするなど、productClassIdがゼロ(0)でも抽出・一覧化されるべきではないでしょうか。

$sql = 'Select od.product_class_id From dtb_order_item od Where od.id = :order_detail_id';
$stmt = $this->entityManager->getConnection()->prepare($sql);
foreach ($data as $Order) {
/* @var $Order \Eccube\Entity\Order */
$OrderDetails = $Order->getOrderItems();
foreach ($OrderDetails as $OrderDetail) {
// Get product class id
$params['order_detail_id'] = $OrderDetail->getId();
$stmt->execute($params);
$productClassId = $stmt->fetch(\PDO::FETCH_COLUMN);
if ($productClassId) {
if (!array_key_exists($productClassId, $products)) {
$products[$productClassId] = [
'OrderDetail' => $OrderDetail,
'total' => 0,
'quantity' => 0,
'price' => 0,
'time' => 0,
];
}
$products[$productClassId]['quantity'] += $OrderDetail->getQuantity();
$products[$productClassId]['total'] += $OrderDetail->getTotalPrice();
++$products[$productClassId]['time'];
}
}
}

くわしくなく、プルリクできずすみません。

年代別集計が0代と未回答になる

年代別集計を行うと結果が0代と未回答のみになります。

実際には、10代(1997年)、30代(1985年)、未回答で購入を試しています。
dtb_order.order_birthには正しく登録されていました。

report-gene

[4.2]商品別集計のときに表示される商品名が下から上で表示されてわかりにくい

概要(Overview)

下記のように、商品別にしたときに商品名が反対から表示されてしまい、商品名が長いと見切れてしまう。
場合によってはよく似た名前の商品だと判断しにくいです。
image

期待する内容(Expect) or 要望 (Requirement)

上から下に向かって記載するか横向きで表記する。
または改行などを行い全体が把握できるようにする。
image

再現手順(Procedure)

受注記録をいくつか作り、商品別集計にする。

環境 (environment)

  • EC-CUBE: 4.2.0-beta 8/24の最新版
  • PHP:8.1.6
  • DB:MySQL 5.7.38

期間の設定時にformatでタイムゾーンを指定して無いためか、集計する対象が9時間ずれてしまう

概要(Overview)

朝9時より前の注文が当日の売上に含まれない

再現手順

  1. 00:00 - 08:59 までの注文日の受注を立てる
  2. 売上集計 > 期間別集計 を選択
  3. 1.の注文日のみで検索する
  4. 結果に1の受注が表示されない

環境 (environment)

  • EC-CUBE: 4.0.2
  • PHP: 7.2.19
  • DB: PostgreSQL 10.6

その他

以下にしたら対象受注が表示されました。

            // 期間集計
            $start = $request['term_start']
-                ->format('Y-m-d 00:00:00');
+                ->format('Y-m-d 00:00:00P');
            $end = $request['term_end']
                ->modify('+ 1 day')
-                ->format('Y-m-d 00:00:00');
+                ->format('Y-m-d 00:00:00P');

日別/月別集計で指定した期間の総合計値を表示される

日別/月別集計で指定した期間の総合計値が表示された方が便利だっともいます。

オーナーズストアの商品ページで要望をいただいていましたのでIssueを作成しました。
https://www.ec-cube.net/products/detail.php?product_id=1759

maco さんより

期間別集計<日別
期間別集計<月別(複数月を選択時)
で集計した際に、その期間の購入合計の総額も同画面に表示されるとありがたいです。(2系では出ていたので)

rose さんより

月間集計を毎月しているのでとても助かりますが、集計の総合計が出ないので電卓で足す必要がありそこの改善を要望します。

コンストラクタインジェクションの指定の誤り

カスタマイズ時に、以下のエラーが発生する

Cannot autowire service "Plugin\SalesReport4\Service\SalesReportService": argument "$entityManager" of method "__construct()" references class "Doctrine\ORM\EntityManager" but no such service exists. Try changing the type-hint to one of its parents: interface "Doctrine\ORM\EntityManagerInterface", or interface "Doctrine\Common\Persistence\ObjectManager"

コンストラクタインジェクションで、具象クラスを指定しているため。
https://github.com/EC-CUBE/sales-report-plugin/blob/4.0/Service/SalesReportService.php#L111

インターフェースを指定する必要がある。

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=21531&forum=16&post_id=90261#forumpost90261

初期インストール時にPHP Parse Error

以下のようなエラーが発生

[error] [client 221.250.87.66] PHP Parse error: syntax error, unexpected 'if' (T_IF) in /EC-CUBE_DIR/app/Plugin/Maker/Migration/Version201511201300.php on line 30,

年代別集計:購入時点での年齢の集計になっていない

年代別集計、購入時点での年齢の集計になっていない。
(現在日時-購入者の誕生日で計算している)

正しく購入時点での年代を集計するためには、dtb_orderの情報のみを利用して、
オーダー作成日(create_date) - 購入者誕生日(order_birth)
で計算すべき。

商品別集計画面表示時にjavascriptのエラー

概要(Overview)

商品別集計画面を表示時にjavascriptのエラーが発生します

期待する内容(Expect) or 要望 (Requirement)

エラーにならない

再現手順(Procedure)

商品別集計画面にアクセスると
product:599 Uncaught TypeError: Cannot read properties of null (reading 'datasets')
のエラーが発生します

環境 (environment)

  • EC-CUBE: 4.2.β
  • PHP: 7.x.x
  • DB:
    • PostgreSQL x.x.x
    • MySQL x.x.x

関連情報 (Ref)

[SalesReport42] 画面エラーで統計表が表示されませんでした

概要(Overview)

統計グラフの表示に誤りがあります

期待する内容(Expect) or 要望 (Requirement)

再現手順(Procedure)

Step 1: 売上集計 > 商品別集計
image

Step 2. [月度で集計]ボタンを押す
image

Step 3. F12を押してconsolog画面でエラーを確認すると、チャートに表示エラーがあります。
image

環境 (environment)

  • EC-CUBE: 4.2.0-beta2-20220916
  • PHP: 7.4.x, 8.1.x
  • DB:
    • PostgreSQL 14.x.x
    • MySQL 5.7.x

関連情報 (Ref)

4.2 公式プラグインテスト_EC-CUBE 4.2.0-beta2-20220916_Plugin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.