チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· kamo-internal
概要 概要 クライアントとレンダリングするルール
· kamo-shared-library
1つのorg+assocのライブセットのための境界数/sum/recentの照会
HrResourceSummaryServiceは、orgの非ヒデン全体を材料化しました Imgコレクションをメモリに保存して、カウント、バイトの合計、および 5列の最近のスライス。 カウント/sum/paged-recent クエリを追加するので、まとめ 3つの数字に答えるためにコレクションを読み込む必要はありません.
· DocsService
人事概要の法的、訓練およびリソース要約
タブドメインごとに1つの読み込み、各ブロックはそれぞれ右にゲートし、省略します。 リーチの外で拒否するのではなく.
· SecurityService
人事概要の出席要約
1つのMANAGE TIMECARDS-gatedコールは、ロースターとマネージャーキューを提案します ローカル例外、雇用およびペイペリオド行を中継します.
· kamo-marketing
ハブカードをローカライズし、英語データセットのバウンディングを停止
4つのハブのページは、コレクションをインポートしたクライアントコンポーネントをレンダリングしました モジュールは直接、プロップを取らなかったので、すべてのカード — 業界名、統合 taglines, 用語集定義, 競合他社の要約 — 全22で英語だった 周りのクロームが翻訳されたにもかかわらず、ロケール。 それはまた意味しました クライアント・バンドルで出荷される完全な英語のデータセット。 サーバは、実際に各ハブのフィールドだけをローカライズし、渡します。 従ってクライアントは構造定数(分類のラベル、表示順序)を保ちます データモジュールをドロップします。 Vendor および競争相手の名前は無訳にとどまります しかし、カードが印刷するので、まだ渡されます。 これらのページのItemList/DefinedTermSet JSON-LDは、/en URLをハードコードしました すべてのロケールは、ページ自身のロケールに従うようになりました.
· kamo-shared-library
HR の概要のクエリ
ステータスヒストグラム、過剰なスライス、法的およびパーメンバーのロールアップ トレーニング、テンプレート/コースのステータスカウント。 組織変更はありません.
· kamo-internal
時計を切るとき、緑の時、そして弾丸を落として下さい
仕事で時計を離れていると、誰かのお金がかかる状態です。 インジケータは、単に不在だった、と発表された1つの状態だった 不在は信号ではありません。 コントロールは、呼吸する赤の輝きをいつでも運ぶ 会員は受付けております。 硬い点滅ではなく1.8サイクルで息を呑むような輝き。 それはよく下にあります 3 フラッシュ毎秒の光度閾値と角のストロボ すべての画面は、それが意味する日8時間のために許容されるだろう 見える。 好ましい感情の下で、輝きはではなく、STEADYを開催しています 削除 — その隣の義務リングとは異なり、ここでの動きは冗長ではありません バッジやカウントで削除すると、唯一の信号が削除されます。 状態が実際にKNOWNであるときだけ光が現れます。 中にそれを塗る 最初のフェッチ、または最適化されたトグルが落ち着きながらミッドパンチは、 存在しないかもしれない問題、およびすべてのページの読み込みにオカミを叫ぶ警告は 見るのを止めることを学びます。 --accent-people ではなく、クロックインドットは緑色です。 そのトークンはHRSです モジュールのアンバー・アイデンティティ・スント(#c47d1a)、隣接する警告として読みます 赤い輝き - 時計上は良い状態であり、それを見なければならない。 行末弾丸は消えます。 ドットが既になかった情報を持っていません 持ち運び、.tabular !important の回避策をとりました。 継承するのではなく、ボタンにオーバーフローが表示されるようになりました。グローは、 ネガティブなインセットなので、クリッピングボタンベースは完全にそれを飲み、 コントロールは、壊れたものではなく、単に非スタイルに見えるだろう - 最も難しい種類 視覚的なバグを通知します.
· kamo-internal
Enrollmentタブで、登録されていないときにメンバーのTimecardタブを非表示にします
誰にもタイムカードをオンにする方法はありませんでした。 あらゆる面が存在し、 それらのすべてが正しく何も示されていないので、入学はできない 作成 — なので******************** は "現在存在していない それを変更することができるプロダクトのどこにも追跡された」。 EnrollmentSubTab は、人事が管理する /hr/attendance で、 ワークフォース。 複数の選択でcanonical MemberPickerDialogを使用し、登録します 一括ではなく1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1人1 行と効果的な割り当てなので、部分的な失敗は人を残す必要があります 全員を転がす代わりに登録を成功させる人。 画面は、それが役割や権限にない理由を述べています。なぜなら、それは最初のものです 会員が停止したときにセキュリティの権利が削除されるかどうかを疑問に思います。 アクティブであること, 誰かのタイムカードを正確に瞬間に切り替える 支払い記録は、雇用を上回る必要があります。 非免除はデフォルトであり、ダイアログは理由を言う - 誰かが免除を分類する 賃金法の最も高価な間違いではない人、そしてそれは仕事のタイトルによってなされます 実際のテストよりもはるかに頻繁に。 メンバーのタイムカードタブは、実際にメンバーがいる限り完全に隠されています 会員登録 以前はHRS orgで誰のためにレンダリングされ、それを発表しました デッドエンドである何も表示しませんでした。そのページで何もオンにすることはできません。 Enrollment はデフォルトではなく既定まで `undefined` を false に保つので、
· SecurityService
リレー登録
MANAGE TIMECARDS は、誰がタイムカードにいるかを読み、変更する - 入学は誰にするかを決定します このシステムから支払われるので、人事管理者に適している マネージャーのレポートラインよりも.
· kamo-marketing
それらを隠す代わりにコレクションページを翻訳する
本体のコピーが存在しないため、2,400 のノインデックスされた詳細ページはインデックス化されていませんでした 翻訳:競合他社、業界、統合、および用語集は、その偽物を維持 app/lib/**/*.ts では、辞書が見たことがないため /fr/solutions/real-estate 英語の段落の周りのフランスの見出しをレンダリングしました。 scripts/extract-collections.ts は 3,799 個の翻訳可能な文字列をそれらの文字列から引き出す 構造模倣木に120項目、翻訳者が必要とするものをスキッピング 触れない — slugs, カテゴリ列, 行列ステータス, ロゴパス, 関連条件 クロスリファレンス、ベンダー/製品名。 その木は「コレクション」として出荷 kamo-marketing/en.json のネームスペース。 localizeItem は、翻訳されたツリーを英語オブジェクト上にマージします。 翻訳に存在するキーのみ置換され、その長さ ソースからの漂流は、リストをレンダーするのではなく卸売を低下させる エントリが不足しているので、翻訳が壊れるのではなく、英語に劣化します ページ。 `collection` は NextIntlClientProvider から除去されます。それは ~420 KB です。 サーバのコンポーネントが読み込まれ、次のインテルは、プロバイダがどのプロバイダに取得するかをシリアライズします 各ページのRSCペイロード。 i18n/request.ts の per-locale が統合されました 同じ理由でmemoized — 150 KBで安くて514 KBではなかった。 collectionRobotsはまだ翻訳の土地までnoindexを報告します。 COLLECTION CONTENT LOCALES は、そのリフトのことです.
· kamo-internal
承認と例外タブは、現在存在する
どちらのバックエンドも先に出荷したが、パネルが書かれていないので、 /hr/attendance?sub=approvals と ?sub=exceptions がレンダリングされました。 作業エンドポイント上に構築された 承認サブタブはマネージャーのキューです。 タイムカードは2つの証明を運ぶ — 従業員の提出とマネージャーのここ — そのため、理由のない唯一の行動 添付は、従業員が自分自身を提出したカードの明白な承認です。 自分の証明は記録です。 カードを返し、代わって承認する 誰かがタイムカードを返さずに送るので、両方が必須の理由をとります。 なぜ、従業員が一日を失い、誰が誰であるかを調べるのかと言う。 例外をブロックするカードには、その承認ボタンが無効になっています。 失敗する許可:サーバーはとにかく拒否し、エラーが常にあるボタンは 目に見えないものよりも悪い。 ブロックチップは、 Exceptionsタブは、実際に動作する場所です。 ExceptionsSubTab は 2 つの意図的に異なる数字 — 全てが開き、 BLOCKSを閉じるサブセット。 isBlocking は、サーバーが送信したと正確にレンダリングされます。 型文字列から返送されることはありません。 Waivingは、それが何であるかとして提示されます。 何も固定されなかった、人はとにかく進むことを選び、理由は何か その決定は、後で尋ねられる生き残っています。 プレースホルダーのフォールバックは、すべての7つのインデックスが今であっても、ページにとどまります ワイヤード — パネルなしでサブタブ ID をレンダリングするのではなく、 空白画面.
· SecurityService
例外キューを中継
MANAGE TIMECARDS は、キューとウェイブを読み込みます。なぜなら、キュー名はそれぞれ 問題のあるメンバーと、最終的なゲートが読み込まれる変更を放棄します。 ザ・オブ・ザ・ per-member の re-detect は resolveRole を通るので、管理者は検出を再実行できます org-wideの権利なしに、独自のレポートで.
· InitializerService
ダブルペイメントとコードコリジョンを停止する部分的なインデックス
****************は、輸出サービスの背後にある歯です 再発行の拒否 1回の支払い期間の2番目のコミットファイルは2倍の支払い 社内全体で、サービスレイヤーチェックだけで2つのオペレータに負けます 同時にクリックしてください。 修正はreverses batch id を実行し、 したがって、述語から除外され、これが不可能である理由全体です 実体上の明白なユニークな制約 — テストは、その排除を主張します。 修正なしでは全く発行できないため。 ux tclabor code active は、 ACTIVE 行に対する労使コードの独自性をスコープ化します。 古いコードの下に再作成される退職された部門は普通の会計です ハウスキーピング; 毛布の制約は、 org が "SALES-2" を発明するように強制する 退職された行はまだ、過去のセグメントにポイントを置くために存在しなければなりません。 ザ・オブ・ザ・ 組織のブランケット制約は、この恩恵に低下しました。 EXPORT REVOKE は DELETE を呼び返すが、意図的に更新されていない: バッチ正当 移行 DRY RUN -> COMMITTED -> REVERSED, Revoking UPDATEがフリーズします それが今までコミットすることができる前に乾燥した操業。 区別するテスト ピン.
· kamo-internal
400名分のオーガナイザーの期間終了画面
例外を再決し、全員の収益を補い、すべてを承認する 呼び出し元は、拒否された理由で、各報告PER MEMBERをすることができます。 "312 の 400 成功" は使えません: 今実行している人は見つけなければなりません 手で八方、それは正確には、バルク操作が想定された作業です 保存する。 refusal のテーブルは下流文の動詞を運ぶので、「this」 timecardには2つのブロック例外があります」と、代わりに何をすべきかを承認者に伝えます チケットを開くように伝えます。 承認ダイアログは、理由がカードごとに記録されていることを明確に述べ、 それぞれのカードが同じチェックを通過する。 両方とも真であり、 点: バルク承認は多くの記録に適用される1つの決定であり、 1枚のコメントを要求することによってそうでなければ終わることは4億を作り出します 「OK」という単語のコピー.
· SecurityService
リレーバルク操作と出席
バルク承認の役割は、呼び出し者の権利からここに DERIVED であり、 パス — 体から決して読みません。 身体を補完する役割は、身体を補完する プロモーション、このエンドポイントは、数百の賃金の記録を一度に承認します。 出席ポイントは、他のすべてのものと同じアイデンティティファーストルールに従う 名付けられた人: 本人自身で、他の人には MANAGE TIMECARDS が必要です.
· kamo-internal
コンプライアンスレポート、テストの中断、独自のレコード
/hr/attendance のレポートサブタブで、すべての 3 つの org-wide レポートを実行します。 1つのウィンドウ。 ラウンドレポートは、チップとしての評論と、としての発見を示しています "FAVOURS EMPLOYER" は賃金にさらされ、それを埋めるための警告 誰も読んでいない人は、その計算のポイントを倒します。 ブレイクステーション パネルは従業員の休憩のアカウントです。 ふりがな 期間は支払われ、従って決して打ち抜かれません、従ってこれは唯一の証拠の残りです コンプライアンスは、パンチオン・デザイン・レポートを完璧に遵守します。 すべてのオーガニは、従業員に対して証拠をではなく製造する 単に欠けている。 必須の回答を事前に記入し、空の残りカウント NULL をゼロになるのではなく、ゼロは残りを取らないクレームです。 これは違反ですが、nullは「応答しない」というわけではありません。 MyRecordsPanelは、従業員に残った残高と独自の証拠を与えます パック。 ダウンロードは、まったく使用できません。 雇用終了後、いくつかの状態ではこれらのレコードの権利 スタットと必要な人が雇用を生き延ばす 左から出るもの.
· SecurityService
コンプライアンスレポートを中継し、証拠はアイデンティティにパックします
レポートは MANAGE TIMECARDS が必要です。 証拠パックがない場合、 会員は自分を引っ張ります。 パックは従業員のことです 賃金クレームを持参し、人事権の背後にあることを食べる必要があります 証拠を生成できる人だけは、それが反対に使われるものです。 制限された層のメンバーは、いかなる権利も保持せず、誰であるかを正確に保持します お問い合わせ.
· kamo-internal
リアルタイムカード設定タブ
作業面でプレースホルダーを交換:ワークウィーク開始、営業日 境界、オープンシフトしきい値、丸み、レビュースイッチ、ブレイクルール seedingとorgのデフォルトスケジュール。 ラウンドフィールドは、ベア番号ではなく、それ自体を説明します。 ラウンドは NEUTRALが時間(29 CFR 785.48(b))を上回るときだけ合法的に連邦法的な 食事の期間(Donohue v. AMN)のために効果的に終了し、それに疑問を投げました 一般的に(Camp v. Home Depot) — 管理者は、彼らが持っていることを知っている必要があります どの方向が漂流するか、警告を証明する義務で取られた 値がゼロ上にある瞬間が表示されます。 証明は、それが独自のスイッチの横にある理由を言う:残りの期間は支払われ、 したがって、パンチングがないので、検証は唯一の証拠は、コンプライアンスを休む お問い合わせ システムが完璧なコンプライアンスを永遠に報告することなく、 証拠を製造するので何も報告するよりも悪いです 従業員。 地理的なスイッチは「フラグ」と言います。 記録的な作品の再利用 実際に行われていたのは、このシステムが防ぐために存在するという完全違反です。 スケジュールセクションでは、スケジュールが誰にも支払うことはありません。 何が起きたのかに比べ、2人が実際の記録を解散するところ ガバナンス.
· SecurityService
タイムカード構成面を中継
MANAGE TIMECARDS は、org のルールを読み取ります。 orgの全員が支払われる方法とFINALIZE PAY PERIODSが変更する方法を記述する それら, 彼らが閉鎖するとき、彼らは、期間が凍結する数字だから. 会員は、いかなる権利もなく、本人のOWNスケジュールを読み込むことができます。 スケジュール 誰が仕事に期待しているのか、見られなかったのは、 防御可能なプロダクト.
· DaemonService
夜のタイムカードのスイープをスケジュールする
Cron は TimecardService ではなく、その展開が maxSurgeによるRollingUpdate:1 - 2つのPodは、すべてのロールアウトとすべてのロールオーバーラップ @Scheduled メソッドは 2 回火します。これはスイープのために書きます 例外は重複行を意味します。 このサービスは、レプリカです: 1, 戦略: 「once」が一度に意味するこのプラットフォームでしか再現できません。 毎日02.20で走る:深夜以降は営業休息 米国大陸のどこにいても、時間外で立ち止まらない 他のすべてのプラットフォームジョブ。 スタンプmlos.internal-auth-secret、内部.auth.secret。 DaemonService 独自のサービス 内部.auth.secret はパブリックチャットの値を解決し、403 を呼び出します。 これは、 trap StewardEmailClient 既に文書です。 秘密がいつあるか ジョブが実行を拒否し、誤ったログではなく、ERRORで言う 成功 - 静かに動くことがない掃引は、その1つから消える 何も見つかり、違いは検出されていない欠損パンチの月です。 3つのスワイプは独立して試みられます。 ブレイクスイープ失敗は 例外の掃引が失敗している間コンプライアンスギャップは未払いの日であり、カップリング 彼らが安価な失敗は高価なものを取ることを可能にします.
· kamo-shared-library
ラグ構成、休日のカレンダーおよびスケジュール
TimecardOrgConfigは、ワークウィーク、営業日境界、ラウンド、ルールセットを保持しています。 ポインタとレビュースイッチ。 計算時に何も読み込まれない — 期間が閉じると、すべての値が支払期間にスナップショットされます。 エンジンはスナップショットを読み込みます。これは、orgがルールを変更できるものです。 既に支払ったものを書き換えます。 タイムカードの休日は、除外されていません。 「11月の第4木曜日」は原則として そしてルールの漂流は、従って3年前に作成されるカレンダーは編集しました ルールは、実際に支払ったことを黙って言っている。 有償・業務分割 休日 PAY が機能しない時間なので、全ての人が存在している理由です。 778.218 は正規料金から除外され、それは向かわない 残留期間、休日の営業時間は、通常の営業時間です プレミアムを運ぶ。 それらを1つの事として扱うことはのための規則的な率を過越させます 一日を離れ、無事に行なったすべての人のために過度な状態を残したすべての人。 TimecardScheduleは、orgのデフォルトとメンバーのオーバーライドの両方の1つのテーブルです。 解像度は「メンバーの行が1つある場合は、org's それ以外の場合は" と 2 つのテーブルは、すべての列を複製し、それらを漂流させます。 それは、 6月のスケジュール変更は3月を遡って行うことができないため、効果的です アビセンティズムのように見える。 誰にでも支払います。 何が起こったのかと比べて、決して スケジュールからお支払いは、自動引き込み式のランチです。 シフト計画 それは正当にドライブが例外の検出、出席である何 ポイント、オープンシフトアラート、予測スケジューリングプレミアム.
· kamo-internal
ビジュアルエディタ、支払いカレンダー、ペイロールエクスポート、制限された層
DayTimeline は、ドラッグ可能なハンドルで、24 時間トラックで作業した日を描画します。 すべてのパンチ。 間違ったパンチがほとんど決してないので、テーブルではなくグラフ 番号が明らかにする途中で間違っている: 17:00のクロックアウトはリストでうまく見え、 13:00で終わる前のシフトが終了したトラックで明らかに間違っている お問い合わせ シェイプは、査読者の保持に悪い日が見えるもの ハーフタイムカード プロポーズをドラッグします。 決して書きません。 ハンドルのリリースは必須を開きます 理由ダイアログと提案は、理由が書かれているまで保持されます。 リリースに保存されたスライダは、未明な賃金調整を1つのストレイにします 時間の入力ではなくドラッグする理由。 「今」で閉じるのではなく、オープンエンドバーとしてクローズされていないシフトが描画されます。 終端を推測することは、エンジンが何をすることを拒否するもの正確にであり、画像は つまり、計算の答えは与えません。 新しい瞬間は、再構築ではなく元のSHIFTINGによって派生しています ローカルウォールクロック時間、それはそれがDST境界を越えて正しい保つものです。 「このゾーンのこの日付の09:00」は年2回、単純に間違っています お問い合わせ PayPeriodsSubTab は、両方の期間のルールが見えるようにします - 進行期間の1つだけ 一度に、ルールバージョンをフリーズする。 PayrollExportSubTab は、 ドライラン:同じ番号、コミットは何もないので、バリアンスは前に読むことができます 誰でも支払われます。 一定期間が経過したら、別途確認・無効 再発行の代わりに、逆転が提供されます。 制限会員制Guardは、雇用が終了したメンバーを混乱させる プレフィックス・ウィットリストによる独自のレコード — ウィットリストなので、後で追加したページは デフォルトで拒否され、ブロックリストが黙ってそれを認める。 UXとは 境界線は、セキュリティの1つではありません。その背後にあるすべてのエンドポイントは独立しています クライアント側のリダイレクトが誰にも止まらないため、SecurityService で認可 devtools を開くことができます。 `chat` は TOOL CAPABILITY、1 つのフロアで canSendTextMessage をマップします。 制限された層が離れた機能。 ペイロールプロキシは、テキスト/csv を非接触で渡します。JSON は ファイルが他の側に完璧だった間、ダウンロードを500として失敗します.
· SecurityService
権利の前にアイデンティティによって承認される編集者を中継して下さい
EMPLOYEE は自分のレコードを修正するかもしれません。それはエディタのポイントであり、 それを洗うことは、クロックが間違っていたと言っても、従業員を離れる 彼らが唯一の証人である日。 何ができないかがカウントされます: 修正は、まだ通過しなければならないタイムカードの調整として土地を 承認チェーン。 Identity は resolveRole によって解決され、その要素は BEFORE をチェックします。 あらゆる権利をコンサルティング 神モードは checkRight は、すべての権利に対して真正を返すようにします。 人の名前を記述するものは、その人のアイデンティティを認めなければならない 一人で。 また、制限された階層でメンバーのために働く必要があります。 すべての権利で、まだ自分の時間に法的な権利を持っています.
· kamo-shared-library
パンチ自体の調整理由を運ぶ
修正またはインサートされた時間は、賃金レコードのWHYを記録するのではなく、 監査ログのみ。 アンダーソンv. Mt. Clemens Potteryと雇用主 不十分なレコードは、時間の疑惑の利益を失います, レコードは、 独自の正当化を要求するよりも、材料的に強い証拠である 監査テーブルへの参加により、それ自体を説明します。 また、エディタが表示されるようにします 2番目のクエリなしで時間以外の理由, 誰が作るものです 実際に読んでください.
· SecurityService
それらを拒否するのではなく、限られた層に元従業員に署名
就業がACTIVEではないチームメンバーは、ドアに戸口で拒否されました 「あなたのアカウントは現時点では存在しません。」 それは間違った形でした。 終了した従業員は、自分の賃金記録に法的権利を有します。 カリフォルニアの労働法226 (c)は21日および1紫の罰の後で与えます つまり、サインインできない社員は、運動方法がない。 とりあえず コンプライアンス宣言は同じ話です。 メンバーキャパシティにサインインし、上陸します。 制限: 厳しくより堅い ライセンスされていないか、またはそれをオルトゴナルよりも層。 ライセンスされていないと、オーガは使用していません あなたのために支払われる; 制限された手段はもはやあなたを採用しないことを意味します。 生き生き残るものは何か 彼らは分離後に到達する権利を持っています - 独自のタイムカード、独自のコンプライアンス 記録、自身のプロフィール、あなた自身の請求、サポート。 チャットは1つの床の機能です この層は、元従業員がライブラインを持たせるため、離脱します。 企業の内部の会話は、送信できない人からの異なる問題です 電子メール canViewOwnTimecards と canViewOwnLegalCompliance は、任意の場所では使用できません 層: 自分の支払い記録を必要とする可能性が高い人は、ちょうどその人 左。 レコードアクティブチェックはまだ再ヒューズ。 ソフト削除された会員は元ではありません 社員は、もはや存在しないメンバーです。 3つのゲートが開いて、意図的に左が閉じました。 - SecurityController のログインは、レコードアクティブにのみ拒否されます。 - sessionRefreshController は、次のセッションでオフボードセッションを殺さない pollは、約1分間アクセスを続けた - DeviceAuthController がマッチするので、終了した従業員が自分のチームに到達できるようにします。 すでに署名した携帯電話からの記録 - EnterAs と Impersonation は変更されません: これらは、自分で管理パスです semantics と それらを広げることは、これが何であるかではありません limitedIfNotEmployed が OPEN に失敗し、このパスの唯一のことです。 です。 他のすべての適格性チェックは、未知の認めのために閉鎖失敗します 会員は危険な方向です。 ここでは、変換します: これは、すべてで実行します すべてのメンバーに読み込まれる資格情報とリポジトリのblipはチャットをストライプします 完全に働く人々 の org 全体。 ログインゲート上流は既に セッションが存在するかどうかを決めました。 また、PayrollRelayController — 支払い期間の認可境界を追加します。 ペイロールの輸出は、順守を破壊し、去り、仕事の費用をかかります。 FINALIZE PAY ペリオス ペイロールファイル(会社の支払いをコミットする)に触れる何かをゲート, MANAGE TIMECARDS は HR 表面をゲートし、 /me/** エンドポイントはメンバーを呼びません。 他の人に行動する構造的に不可能であるので、すべてのid 従業員の自己の自己宣言を破壊するために最も重要である 日、および権利を一切保有しない会員の制限.
· kamo-shared-library
食事開始期限を休憩規則に追加する
カリフォルニアは、第5時間の終わりの前にBEGINに最初の食事を要求します。 昼7時30分のお食事はありましたが満席です。 正しい長さなので、期限は独自の列を必要とします。長さチェックはできない BreakEvaluatorでは、MEAL LATEを既にテストしています.
· kamo-shared-library
支払期間、壊れ目、報酬、労働口座、accruals、輸出
残りの wage-and-hour スキーマを 1 つの共有 lib の変更にバッチします。 単一のKamoInitializerで全ドメインの土地は、1回の移行ではなく実行します フェーズ。 エントリー: ルール・バージョン・フリーズ・カラム、獲得ライン、ブレイクでの支払い期間 ルールと違反、労働口座および作業セグメント、保険金ポリシー、 バランスおよびledgerは、場合、輸出バッチ、出席の発生を残します。 4つの純粋なエンジン、51のテスト: BreakEvaluator — オートデダクトされた食事のために、昼食を自動デダクトしない 雇用主が義務を負いなかったことを証明できない半時間を費やした本。 プレミアム WAGES(Naranjo)なので、レポートではなく収益に流れます。 ワンポイント 1日あたりのCATEGORY当たりのプレミアム(UPS v.スーペリアコート):2つの見逃した食事owe 1つは、逃された食事と逃された残りは2つを借ります。 お弁当はお弁当のみ 法令が許される場合 — 従業員は同意できません。 残り数 中断されるので、抗議に対する沈黙は違反として得られません。 レギュラーレート計算機 — オーバータイムはレギュラーレート、ベースではありません レート。 778.115 体重測定平均、778.209 レトロアクティブオーバータイムオン nondiscretionary ボーナス、778.216/218 除外、ハーフタイムプレミアム: ストレートタイムはすでに合計なので、オーバータイムは0.5xを1.5xではなく追加します。 AccrualEngine — 天井はバランスを取除かないでaccrualを停止します、持ち運びはあります 天井から別々にキャップし、床に侵入する誘導 1日半を静かに承認するのではなく、投げる。 PayPeriodCalendar — 生成され、ハンドエンター化されず、強制的に拒否する ギャップ(期間なしの作業、支払いなし)または重複(2回払い).
· kamo-shared-library
例外モデルおよび探知器
BlockingExceptions ゲートをリアルにします。 トランジションテーブルが読み込まれるまで 何も書いていないので、すべてのタイムカードはきれいに見え、「パンチが欠落している」 コントロールではなく、ゼロのコメントとして支払わなかった。 ブロッキングの区別は、課税の全体的なポイントです:オープンシフト、 比類のないパンチと未証明の暫定パンチストップフィニゼーション、 それらの上に閉じると、誰も後ろに立つことができない何かを主張します。 地理的なミスと 時計の串は ADVISORY であり、決して妨げません -- 記録するか、または最終的な時間を計ります 実際に働いたのは、このシステムが防ぐ正確な賃金違反です。 探知器のレポートおよび修理しないで下さい。 クローズされていないシフトを推測するあらゆる方法 間違っている:それを開いたaccruesのabsurd時間、自動閉鎖の報告、帽子を残して下さい 誰も目撃した姿を発明する。 代わりに例外になります。 ユニークな(メンバー、日付、タイプ)制約による構造による分離 -- 重複はカウントを膨脹させ、理由のために期限切れになるタイムカードを作る 誰も見つけることができません.
· kamo-internal
再発決済を停止する前に確認
両方のキャンセル操作 — 会員の座席とグループマネージャーの計画 — 今尋ねる まず、日付表に名前を付けることは、グループのために実行され、何人かの人々を保ちます 席まで。 共有確認ダイアログではなく、意図的に確認します。 DESTROY を入力する必要があります。 ボタンが有効になる前に、削除、削除、または消去、または消去 それが構築された不可逆削除。 取り消しは不可逆も不可 破壊的:データが失われたり、アクセスが支払われた期間の終端に続いていません いつでも購読できます。 タイプの単語ガントレット前 決済を停止することは、顧客が無意識のうちに1つの行動の摩擦です 簡単に取る権利。 ネザーボタンは「キャンセル」と言います。 キャンセルに関するダイアログでは、その単語は両方を意味します 「このダイアログを放棄する」と「サブスクリプションをキャンセルする」と、できるだけ確実に読み取れることはできません。 どちらのボタンも自分の結果の名前をつけます: 「私の計画を蹴る」と「将来を追いかける」 支払い.
· BillingService
カバレッジとグループペイロードの更新日を運ぶ
両面は、現在のPeriodEndとキャンセルAtPeriodEndを報告しています。 日付は、 キャンセル確認は、実際に言う必要があります — "最後にシートを保持する 期間の「抄録」は「3月14日までの座席を保ちましょう」の安心です。 誰かが行動できる安心です.
