権利の前にアイデンティティによって承認される編集者を中継して下さい
EMPLOYEE は自分のレコードを修正するかもしれません。それはエディタのポイントであり、 それを洗うことは、クロックが間違っていたと言っても、従業員を離れる 彼らが唯一の証人である日。 何ができないかがカウントされます: 修正は、まだ通過しなければならないタイムカードの調整として土地を 承認チェーン。 Ident...
パンチ自体の調整理由を運ぶ
修正またはインサートされた時間は、賃金レコードのWHYを記録するのではなく、 監査ログのみ。 アンダーソンv. Mt. Clemens Potteryと雇用主 不十分なレコードは、時間の疑惑の利益を失います, レコードは、 独自の正当化を要求するよりも、材料的に強い証拠である 監査テーブルへの参加により、それ自体を説明...
それらを拒否するのではなく、限られた層に元従業員に署名
就業がACTIVEではないチームメンバーは、ドアに戸口で拒否されました 「あなたのアカウントは現時点では存在しません。」 それは間違った形でした。 終了した従業員は、自分の賃金記録に法的権利を有します。 カリフォルニアの労働法226 (c)は21日および1紫の罰の後で与えます つまり、サインインできない社員は、運動方法...
食事開始期限を休憩規則に追加する
カリフォルニアは、第5時間の終わりの前にBEGINに最初の食事を要求します。 昼7時30分のお食事はありましたが満席です。 正しい長さなので、期限は独自の列を必要とします。長さチェックはできない BreakEvaluatorでは、MEAL LATEを既にテストしています.
支払期間、壊れ目、報酬、労働口座、accruals、輸出
残りの wage-and-hour スキーマを 1 つの共有 lib の変更にバッチします。 単一のKamoInitializerで全ドメインの土地は、1回の移行ではなく実行します フェーズ。 エントリー: ルール・バージョン・フリーズ・カラム、獲得ライン、ブレイクでの支払い期間 ルールと違反、労働口座および作業セグ...
例外モデルおよび探知器
BlockingExceptions ゲートをリアルにします。 トランジションテーブルが読み込まれるまで 何も書いていないので、すべてのタイムカードはきれいに見え、「パンチが欠落している」 コントロールではなく、ゼロのコメントとして支払わなかった。 ブロッキングの区別は、課税の全体的なポイントです:オープンシフト、 ...
再発決済を停止する前に確認
両方のキャンセル操作 — 会員の座席とグループマネージャーの計画 — 今尋ねる まず、日付表に名前を付けることは、グループのために実行され、何人かの人々を保ちます 席まで。 共有確認ダイアログではなく、意図的に確認します。 DESTROY を入力する必要があります。 ボタンが有効になる前に、削除、削除、または消去、ま...
カバレッジとグループペイロードの更新日を運ぶ
両面は、現在のPeriodEndとキャンセルAtPeriodEndを報告しています。 日付は、 キャンセル確認は、実際に言う必要があります — "最後にシートを保持する 期間の「抄録」は「3月14日までの座席を保ちましょう」の安心です。 誰かが行動できる安心です.
請求書が必要な時に人々に伝え、支払いを止めましょう
支払いがこの人が責任を負うとき、ホームページ上のバナー 失敗し、請求ページに直接リンクします。 失敗した支払いまで もはや開いていないアプリとしてだけ現れた — 説明なしの制限 これは、未払いの請求書ではなく、壊れたソフトウェアとして読みます。 調達のみ 彼らが行動することができる請求書: 自分の座席、および管理グルー...
組織ごとの1つの計画、25座席企業の天井および支払を止める方法
計画は現在、組織レベルの決定であり、他にそれを上書きすることはできません。 自給者やグループマネージャーが親切に自分の読み物を選び、 正しいバグです。 **************** 回答 "このorgesを このアプリは、OR-ing がすべてのライブサブスクリプションを org をターゲットにすることで、 プラン...
権利から解決する役割の承認層のリレー
ロールは、呼び出し者の権利とその関係から、ここに決定されます 被写体 -- 要求ボディから決して。 自分の役割を名づけることができる身体 誰が支払いを請求するかどうかを聞かせてください。 優先順位: PAYROLL(任意の状態のブロードキャスト、編集)、MANAGER、その後、EMPLOYEE 自分の記録のために。 ...
APPROVE TIMECARD ADJUSTMENTS(197)とFINALIZE PAY PERIODS (198)
業務の分割が明示的である: 誰がタイムカードを承認しても、 支払期限を過ぎても、自動的に終了することがあります。 MANAGE TIMECARDS(マナエイジ)(183) モジュールのゲートにとどまり、非適度にではないです。 入学はまだ正しいではありません - それは永続的な雇用事実です。 正しい TERMINATE...
承認の層の州機械
従業員は、所有者の決定ごとに、 -> 管理者承認 -> 給与クローズを提出します。 4つのルールは、純粋なトランジションテーブルで強化され、25個のテストでピン留めされています。 1. 管理者は、従業員が提出するまで承認します。 投稿は 従業員自身の主張は、時間が彼らのものであり、完了です。 それを承認せずに承認す...
会員タイムカードタブとHRSタイムカード設定タブ
会員タブはSELF-SERVICEのみで、身元に置かれます。 法的な遵守:そのエンドポイントはメンバーIDをまったく受けませんので、構造的に 他人の時間を表示できない。 checkRight は使えません。 神様のモードの下のすべてを真に返し、ページ自身の canViewOtherMemberアカウントまたは関連のない...
/hr/attendanceの回転子およびNavTopの時計制御
HrTabPlaceholderボディを取り替えて下さい。 ルート, HR TABS エントリー, MANAGE TIMECARDS ゲートとタブi18nキーはすべて既に存在しています。ここで何も登録しません。 毎回読み込まれる不変なパンチログからロスター時間がサーバー側を誘導 走る合計として保たれているのではなく、...
パンチリポジトリのデータベースクロックアクセス
すべてのパンチのインスタントは、JVM:Podsの再起動とノードから来ません クロックスキュー, 注文する賃金レコードは、どのPodが応答するかによって異なります レコードではない。 SQL 規格 CAST は、 :: キャストがサイレントマングリングされるので、 -- Hibernate 名前付きパラメータプレフィッ...
/api/security/timecards の BFF ルート
TimecardServiceは、イングレッシブなしでクラスターIPです。 すべてのサービスは健康であり、すべてのビルドは、ブラウザの404sを備えています 緑色 - このプラットフォームで2回既に起こった正確な失敗。 ここの認可無し、意図的に:この層は輸送であり、ハーフチェック それは制御であるという信念を招待しま...
タイムカードへのセキュリティサービス中継サービス
認可境界。 TimecardService は、データとエンジンを保持するが、 セッション; これは、セッションを保持し、誰が何をするかを決める, その後、リレー. ザ・オブ・ザ・ 従って、ここを通すことなく、エンジンは到達できません。 SecurityService は、ハンド・ロール・パー・ハンド・オースと an...
ワークデイバケット、パイプラインのステージ2
解決された間隔は、アロケータの準備が整った、毎営業日秒になります。 間隔は、それが交差するすべての営業日境界でSPLITです:22:00-06:00シフト 深夜営業日以内に1日と6日の2時間です。 アトリビュート 開始日のスパン全体が毎日稼働時間と7日間のルールになります 毎晩の作業員に誤りがあります。 これは、ビ...
KI登録とスキーマ移行
表はddl-autoから来ています。このランナーはHibernateができないものだけを供給します。 1つのオープンプライマリ割り当てと1つのオープンペイレートの部分的なユニークなインデックス ウィンドウと、バックエンド専用のデータベースの半分の REVOKE です。 @Order(0) なので、後者の JPA SE...
仕事週と仕事日の境界
ワークウィークはFLSAの過時間単位です--固定、規則的に168-hourを再帰して下さい 期間 -- 支払期間ではありません。 隔週の期間は正確に2つを保持します 半月または毎月の期間は、常に僅かなものを保持するので、 過払いと過払いの両方の合計で時間の計算オーバータイム 一度の期間がエクスポートされると固定できませ...
インターバル解像度、計算パイプラインのステージ1
パンチは分解されたスパンになります。 値型ではなく、純粋、合計、および上 すべてのステージは、永続的なコンテキストなしでフィクスチャーテスト可能です。 デュレーション.betweenから瞬時に来る, 決して壁クロック減算. DSTのストーリー全体とテストピン全体です。22:00-06:00シフトはSEVENです。 ス...
非ピラミッドオーバータイムアロケータと管轄プリセット
規則は、このライブラリで既に使用されているrequireRule形状のDataです。 コードブランチなので、カリフォルニアはリライトの代わりに設定行です。 配分順序は負荷軸受けです:毎日規則の最も高いしきい値優先順位(13時間) CAの日は1.5xの2xそして4hで1h、1.5xの5hではないです)、そして7thです...
ブラウザにorgタイムゾーンを渡す
クライアントの組織モデルはタイムゾーンフィールド、useFormatters と next-intl を持っていなかった timeZone と timezoneService のバックエンドコール 404'd を使わずに両方設定できます。 ブラウザのゾーンにレンダーされるタイムスタンプと、SSRのサーバーのタイムスタン...
メニュー
timezoneService.ts は、このエンドポイントを記述して存在していたので呼び出しました。 クライアントが404を飲み、UTCに解決しました。 そもそも useFormatters と next-intl は両方とも timeZone で設定されています。 timestamp はブラウザのゾーンでレンダリン...
WorkSite、管轄区域のアンカー
WorkLocation: TeamMember.workLocation ではなく、WorkSite の名前を付ける オフィス/リモート列列と、その名前による2番目の記号は、すべての grep で衝突します。 ZoneId は、TimezoneType ではなく、その enum's 27 を含んだものです。 値が複...
雇用と効果的な割り当ての修正
会員ではなく、ASSIGNMENTを参照します。 それは、 同時位置、29 CFR 778.115の重く平均の規則的な率、 複数のサイト リーガルと仕事の費用は、まったく明白です。 ManagerMemberId は、チームメンバーのマネージャーからリビジョン時にスナップショットされます。 誰が承認したかを再編成する...
有効な、付属の支払率
この組織の前に、このプラットフォーム上の従業員の補償は存在しません。 それは要求されます:FLSAの規則的な率に対して時間超過は計算されます、CAは要求します 賃金明細書の率、およびレートなしで輸出は給与を与えます 何も消費しません。 レイズは新しい矢印です。 エクスポートされた期間内で有効なレートは、 レトロな調整...
パンチログと監査イベントのみ
NARROW Repository インターフェイスでは、JpaRepository: deleteAllInBatch は使用できません。 そしてバルクJPQLバイパスのエンティティティコールバック、従ってインターフェイス シェイプは作成しますです アドバイザリーではなく、本物だけを申請する。 インスタント + I...
Timezone-of-recordソルバー
権限の注文作業場所 -> メンバー -> org -> UTC. 仕事現場は勝ちます。 wage-and-hour ルールは、作業が実行される場所に従う。 このセッションは、無接触のPACIFICのすべての13のorgsを発見した デフォルトでは、63 人のメンバーの 38 人がタイムゾーンをまったく使用していません...
共有WORMの拒絶ガード
@Column(updatable=false) は、不変性を強制しません。 UPDATEから列を省略し、スタイル・ライティングは成功するようなものです。 唯一の作業ガードは、投げる@PreUpdateです.
ドメイン列列とポイントインタイムバージョンのリゾルバ
Enums は、コールサイトの @Enumerated(STRING) です。ORDINAL は数値を生成します。 範囲 CHECK を含むと、SchemaCleanupRunner のインリスト スイープ 意図的にスキップし、すべての新しい値に手元で広まっている必要があります。 解決者は、決してインスタンスを消費す...
座席に支払うメンバーを表示し、第2者の提供を停止する
トランスレーションキーとコンポーネント無しで出荷されるカバレッジエンドポイントなので、 答えを問う - 座席に支払う人 - それでも尋ねる場所がなかった。 SeatCoveragePanelはそれを尋ね、答えはそれの横に自己支払のパネルを供給します: 組織またはグループが既に座席を覆っている人 自分のカードで別の購入チ...
団体の計画をキャンセルし、1人で2回払いを止める
最後の出荷時の3つのギャップ: 計画のあるグループは、決して削除できませんでした。 delete() は、ライブ中に拒否します サブスクリプションが存在する — 正しい、グループ行が指す唯一のものだから ストライプサブスクリプション — しかし、キャンセル方法がなかったので、保護策は デッドエンド。キャンセルPlan...
人を置くことができるグループと支払い
グループを作成すると、名前を生成し、他に何も生成しません。誰を追加しても、方法はありません マネージャーが計画を選択するために、どこに支払うべきか。 グループを開く 誰がショー 座席を待ち受けている人、そしてその上でいる計画は、 座席購入 カナニカルメンバーピッカーを使って、誰に支払うかを尋ねます。 送信するために使...
請求グループが終わるまで終わりに働かせ、何もセルフペイの充満を停止して下さい
グループが集うようになり、マネージャーのカードでプランを購入し、手札を手に 席外。 存在しない: 唯一の操作が作成され、承認される 削除すると、グループを作ったオーナーがラベルをつけて使用する方法がない。 BillingGroupSeatService は、お金の動きと資格が発行されるところです。 記録保管とは別に、...
実際に支払うことができるグループのためのスキーマ
3人のランナー: BillingGroupRosterMigration は、グループのメンバーである billing pay group members を作成します。 何かを買った前に支払うべき手段。 org id は非正規化されます。 そのため、データベースは「メンバーは1つのアクティブ課金グループに1つありま...
請求グループが独自の賃金になるようにしましょう
グループの名前をつけて、他の名前を付けることはできません。 サブスクリプションは決して設定されていない — setSubscription と呼ばれるプラットフォームでは何もないため、subscribe uid は滞在 null 永遠に、グループが単一のシートを購入または保持できませんでした。 モデルは3つのことを変...
HRコースエディタ、割込みグリッド、会員コースプレーヤー
/hr/training は、そのプレースホルダーを 2 個のサブタブに置き換えて、ブリーフが要求され、メンバーの 割り当てられたトレーニンググリッドは、プレイヤーの希望のために戻って保持していたアクション列を獲得します。 コース 公開、割り当て、重複、アーカイブ、およびインラインを削除したカタロググリッド。 削除は...
タイムリーなトレーニング リマインダーティック
法的なスイープの毎日とは異なり、午前10時00分に。 トレーニングは、OWNのローカル送信で各orgを思い出させます 時間, 組織.timezone スパン 21 時間 (太平洋/オーストラリア/シドニー) — シングル 毎日のUTCティックは「今日」がほとんどのプラットフォームで間違っていることを意味します。 間違っ...
完全な HR トレーニング バックエンド
コース作成, 出版, 割り当て, 会員プレーヤー, サーバーサイドのグラデーション, WORMの証拠と リマインダースイープ — /api/docs/training の背後にある全モジュール。 AUTHORING(アットホーリング) コースは、テストがユニットのピアであるアイテムの注文リストを運びます。 1つの決定...
4つのトレーニングメールテンプレート
HRの法的家族と同じ定数/点数キーの分割: コンスタントはファイル名の茎、 templateKey プラットフォーム SENDS は、各 .json 内のドット値です。 その間違ったことは生きた QUOTE SENT/commerce.quote sent バグ — 404s は、シードされたテンプレートに対して永遠に...
双方の義務のための1つのメンバーの表面、どちらかのための1つのバッジ
会員のコンプライアンスタブには、2つのサブタブ、保留と完了があり、1つの義務があります。 これらはSTATEではなく一種のものなので、ステータスフィルタ(「all」で2つのタブを破棄します。 どこにも置いておらず、以前は両方をチェックして答えることを意味していました。 署名されたか。タブストリップは、本物的に異なる2つ...
会員向けトレーニングAPI
@EnableJpaRepositories で com.kamo.z.shared.hr.training を登録します。@EntityScan は広いので どちらの方法でも、リポジトリは見つかりません。 法的モジュールを映す2つの承認の漏斗、意図的に分けて下さい: TrainingAccess ゲート /api...
HRトレーニングスキーマを作成する
Explicit @EnableJpaRepositories リストで com.kamo.z.shared.hr.training を登録します。 — @EntityScan は広いので、エンティティティティティはどちらの方法も見つかりますが、リポジトリはそうではありません。 このテーブルが作成されていない限り。 ...
ドキュメントのアップロードをストリームし、HRトレーニングスキーマを追加します
ImageService はアップロードDocumentStreaming、アップロードドキュメントのストリーミングカウンターを獲得します。 バッファされたフォームは、大アップロードをまったく表現できません: readInputStream は割り当てます 新しい byte[size] は、Integer で Java...
Billing pay groups を明示的に作成し、従来のコリジョンを解除します
それをddl-autoに残すのではなく、移行で作成します。 既存の billing groups でエンティティティティティティティティが指摘した時、ハーフビルドされたテーブル.
組織のストレージに対する各メールボックスのサイズ
Dovecot は 1 個のメールボックスの制限を強制し、その列の設定は何もなかった 読み込み これは、ストレージのスナップショットの後に夜間に書き込みますので、容量が 昨日の数字ではなく、今日の数字に分けられます。 各メールボックスはプール全体と同じシェアを取得します。 重要な財産 株式は容量を合計するので、メール...
インバウンド配信でストレージクォータを強制し、DBパスワードの発送を停止
オブジェクトストレージは、組織を過去に受け取るコンテンツを拒否します オブジェクトストアを通過するすべてのドメインをカバーする天井。 インバウンドメール LMTP は、パス内の Java 無しで maildir に直接書き込むので、 Dovecot の quota プラグインは、停止できる唯一のことです。 プラグイン...
インバウンド配信でストレージクォータを強制し、DBパスワードの発送を停止
オブジェクトストレージは、組織を過去に受け取るコンテンツを拒否します オブジェクトストアを通過するすべてのドメインをカバーする天井。 インバウンドメール LMTP は、パス内の Java 無しで maildir に直接書き込むので、 Dovecot の quota プラグインは、停止できる唯一のことです。 プラグイン...