Partkeepr: ロット番号はプロジェクトの実行に含まれていません

作成日 2020年09月17日  ·  12コメント  ·  ソース: partkeepr/PartKeepr

再現方法:

  1. 「編集>プロジェクト」で新しいプロジェクトを作成します
  2. パーツを追加し、「ロット番号」フィールドに「12345」と入力して、「プロジェクトの保存」をクリックします。
  3. [表示]> [プロジェクトレポート]でプロジェクトレポートを生成し、プロジェクトを選択して[数量]を1に設定し、[レポートの作成]をクリックします。
  4. 「在庫から部品を削除」をクリックします
  5. 「表示>プロジェクトの実行」に移動し、最後の実行を表示します。

何が起こるか:「ロット番号フィールドが空です」
予想される内容:ロット番号は「12345」である必要があります。

これを解決して賞金を獲得する

Backend Bug Low Priority

最も参考になるコメント

こんにちは! この問題はbountysourceで見たので、コードを調べました。

バグを再現することができました。 http://partkeepr.local/api/project_run_parts/1を調べると、 lotNumberがプロジェクト内の部分に設定されているが、トップレベルの部分には設定されていないことがわかりました。 これに基づくと、 lotNumber値が消えるのではなく、表示の問題だと思います。実際、 lotNumbersrc/PartKeepr/PartBundle/Controller/PartController.php massRemoveStockAction内にコピーされます。

次の修正はどのように見えますか? https://github.com/partkeepr/PartKeepr/pull/1153

全てのコメント12件

この問題を確認できます。

これを文書化するために、FirefoxからmassRemoveStock 、正しく表示されていれば、ロット番号は転送されていないようです。 したがって、プロジェクトの実行時に実装する必要があります([在庫から部品を削除]をクリックしたときに表示されます。

こんにちは! この問題はbountysourceで見たので、コードを調べました。

バグを再現することができました。 http://partkeepr.local/api/project_run_parts/1を調べると、 lotNumberがプロジェクト内の部分に設定されているが、トップレベルの部分には設定されていないことがわかりました。 これに基づくと、 lotNumber値が消えるのではなく、表示の問題だと思います。実際、 lotNumbersrc/PartKeepr/PartBundle/Controller/PartController.php massRemoveStockAction内にコピーされます。

次の修正はどのように見えますか? https://github.com/partkeepr/PartKeepr/pull/1153

あなたのPRがこの問題を完全に修正するという確認を得るのは素晴らしいことです!

変更を実装しようとしましたが、効果がないようです。 変更を実装し、/ setupページを再実行しただけです。 コンポーザーコマンドも実行する必要がありますか?

この変更を適用するには、フロントエンドのJavaScriptファイルのキャッシュを削除する必要があると思います。 それらを削除してからセットアップを再実行しましたが、後でこれらのコマンドの方がうまくいく可能性があることがわかりましたhttps://wiki.partkeepr.org/wiki/Running_PartKeepr_from_GIT#Console_commands

@ ed-commits私はこの環境に完全に慣れていないので、愚かな質問をしてすみません。 しかし、フロントエンドのJavaScriptキャッシュを削除するということは、 rm -rf app/cache/*コマンドを実行することを意味しますか? セットアップを実行する前にこれを試しましたが、プロジェクトの実行にロット番号を含めることができません。 複製できるように、パッチの検証に使用した正確な手順を教えていただけますか?

私はそれをしました、多分rm -rf web/js/compiledrm -rf web/js/packages/extjs6も試してみてください。 その後、セットアップを再実行します。 その後、変更が適用されます。

@ ed-commits私もこれを試しましたが、残念ながら、この変更によって違いが生じることはわかりません。 他の誰かがこれが問題を解決することを確認できますか?

#1153でこの問題が修正されたことを確認できました。 しばらくするとどこかのキャッシュがリセットされたようです。 ただし、コンパイル済みおよびextjs6を削除することはお勧めしません。 システム全体がブリックされ、ロードページでスタックし、セットアップページは空白のままになります。 修正がマスターにマージされると、この問題は解決できます。

編集:わかりました。プロジェクトが変更されると、プロジェクトの実行のロット番号が変更されることがわかりました([編集]-> [プロジェクト]の下)。 これは正しくありません。 プロジェクトの実行後にロット番号を変更できないようにする必要があります。 したがって、それが理にかなっている場合は、プロジェクトに直接リンクしないでください。

問題は確かに大量除去アクションのどこかにあると思います
ここ: https

むしろ、 $removal->lotNumberフィールドが空であること。 つまり、jsonリクエストのどこかでより具体的に
https://github.com/partkeepr/PartKeepr/blob/e39c5f87f9ad44c7b7d4ffb521178f492761320d/src/PartKeepr/PartBundle/Controller/PartController.php#L33

私が推測するものはここのどこかに設定されています:
https://github.com/partkeepr/PartKeepr/blob/7dd3ef8f2395097b3659bbe0587eac70b6ff7671/src/PartKeepr/FrontendBundle/Resources/public/js/Components/Project/ProjectReportResultGrid.js#L357

万が一の場合に備えて、
プロジェクトにパーツをインポートするときに、[プロジェクトを保存]ボタンに何らかのロジックの問題があることに気付きました。
すべてのプロセス(CSVファイルの読み取り、[インポートの実行]をクリック)が正常に完了し、パーツのリストがプロジェクトに追加されると、テーブルProjectPartは正しく実行されます。インポートウィンドウを閉じても、引き続き正しいですが、[ [プロジェクトを保存]ボタンボタンを押すと、変更が解除/元に戻されます(?)
このページの最後に、ユーザーがこれを回避する方法が説明されています
https://readthedocs.web.cern.ch/display/PARTK/07a+-+Creating+Projects+and+BOM+Imports

この号の冒頭での「プロジェクトの保存」の言及と説明されている動作は、私が説明したものと似ているようです。
よろしく

親愛なるJoarGjersundとed-commits
http://localhost/web/app_dev.phpを実行したときに正しく理解できた場合
https://readthedocs.web.cern.ch/display/PARTK/Setup+for+Debug+and+Verbose+mode
キャッシュは気にせず、実行するのは直接行われます。
よろしく

このページは役に立ちましたか?
0 / 5 - 0 評価