Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-shared-library

    Periode Bayar, istirahat, premi, akun tenaga kerja, akcrual, ekspor

    Batch sisa wage- dan -hour skema menjadi satu shared -lib perubahan sehingga seluruh domain tanah dalam tunggal KamoInitializer dijalankan daripada migrasi per fase. Entitas: perioda bayar dengan aturan-versi kolom membeku, memperoleh baris, istirahat aturan dan pelanggaran, akun kerja dan segmen kerja, kebijakan akcrual, Saldo dan buku besar, tinggalkan kasus, batch ekspor, kehadiran. Empat mesin murni, 51 tes: Breakpoint valuasi - tidak pernah otomatis mengurangi makan siang, karena makanan yang dipotong otomatis buku-buku yang belum dibayar setengah jam majikan tidak dapat membuktikan duty- bebas. Premium adalah WAGES (Naranjo), sehingga mereka mengalir ke pendapatan daripada laporan. Satu premium per CATEGORY per hari (UPS v Superior Court): dua hutang makan tidak terjawab satu, makanan yang tidak terjawab ditambah istirahat yang tidak terjawab berutang dua. Sebuah keringanan makan hanya dihormati di mana undang-undang memungkinkan satu - karyawan tidak bisa menyetujui di luar itu. Rests yang tidak ditinju, sehingga keheningan pada attestation tidak pernah mencetak sebagai pelanggaran. Kalkulator RegularRate- lembur berutang pada tingkat REGULAR, bukan dasar Tingkat. 778.115 berat rata-rata, 778.209 retroaktif lembur pada bonus nondiscretionary, 778.216 / 218 pengecualian, dan premium paruh waktu: waktu lurus sudah di total, sehingga lembur menambahkan 0.5x, bukan 1.5x. jadi lembur menambahkan 0.5x, bukan 1.5x. Mesin Akcrualeng- langit-langit berhenti Accrual tanpa menghapus keseimbangan, carryover adalah tertutup terpisah dari langit-langit, dan deduksi yang akan melanggar lantai melempar daripada diam-diam menyetujui setengah hari libur. Kalender Payperiod- yang dihasilkan, tidak dimasukkan secara langsung, dan ditolak oleh VerifyContiguous Al-Qur 'ân itu tidak disentuh kecuali oleh mereka yang tersucikan dari kotoran dan hadas, diturunkan dari Allah, Tuhan semua makhluk.

  2. · kamo-shared-library

    Model dan detektor pengecualian

    Membuat gerbang Exception blokade nyata. Sampai sekarang tabel transisi membaca jumlah yang tidak menulis, sehingga setiap timecard tampak bersih dan 'pukulan hilang adalah tidak pernah dibayar sebagai nol 'adalah komentar daripada kontrol. Perbedaan BLOCKING adalah seluruh taksonomi titik: sebuah pergeseran terbuka, punch unpairable and an unattested provisional punch stop finalisasi, because Menutup atas mereka menegaskan sesuatu tidak ada yang bisa berdiri di belakang. A geofence miss and sebuah jam skew adalah ADVICORY dan tidak pernah memblokir -- menolak untuk merekam atau menyelesaikan waktu yang sebenarnya bekerja adalah pelanggaran upah yang tepat sistem ini mencegah. Laporan detektor dan tidak pernah perbaikan. Setiap cara menebak pergeseran tertutup salah: membiarkannya terbuka aktrai jam absurd, otomatis menutup bawah laporan, topi Menciptakan sosok tidak ada yang menyaksikan. Jadi ini menjadi pengecualian. Idempoten dengan konstruksi melalui batasan unik (anggota, tanggal, tipe) -- duplikasi akan meningkat hitungan dan membuat timecard unfinaligly untuk suatu alasan tidak ada yang bisa menemukan.

  3. · kamo-internal

    Konfirmasi sebelum menghentikan pembayaran berulang

    Keduanya membatalkan tindakan - kursi anggota sendiri dan kelompok manajer rencana - sekarang tanyakan pertama, penamaan sampul tanggal berjalan ke dan, untuk kelompok, berapa banyak orang menjaga mereka duduk sampai saat itu. Secara paksa bukan Dialog Kondiksi Bersama. Yang satu membutuhkan destROY mengetik, DELETE, REMOVE atau ERASE sebelum tombol yang memungkinkan, yang tepat untuk penghapusan itu dibangun untuk. Membatalkan tidak dapat dikembalikan atau destruktif: tidak ada data hilang, akses terus ke akhir dari periode dibayar, dan Kau bisa berlangganan lagi kapanpun kau mau. Sebuah type- the- kata sarung tangan di depan menghentikan pembayaran adalah gesekan pada satu tindakan pelanggan adalah jelas berhak untuk mengambil dengan mudah. Baik tombol mengatakan "Batal". Dalam dialog tentang pembatalan, kata itu berarti keduanya "Tinggalkan dialog ini" dan "batalkan langganan saya" dan tidak dapat dibaca sebagai baik, jadi kedua tombol nama hasil mereka: "Keep my plan" dan "Stop future Pembayaran ".

  4. · BillingService

    Membawa tanggal pembaharuan pada cakupan dan grup payloads

    Kedua permukaan sekarang melaporkan PeriodEnd mata uang dan cancelAtPeriodEnd. Tanggal adalah apa konfirmasi dibatalkan sebenarnya perlu mengatakan - "Anda tetap duduk sampai akhir periode "adalah jaminan dalam abstrak," Anda tetap duduk Anda sampai 14 Maret " Adalah meyakinkan seseorang dapat bertindak.

  5. · kamo-internal

    Beritahu orang-orang ketika tagihan membutuhkan mereka, dan biarkan mereka berhenti membayar

    Sebuah banner di halaman depan ketika pembayaran orang ini bertanggung jawab untuk memiliki gagal, menghubungkan langsung ke halaman penagihan mereka. Sampai sekarang pembayaran gagal muncul hanya sebagai aplikasi yang tidak lagi dibuka - pembatasan tanpa penjelasan, yang berbunyi sebagai perangkat lunak rusak daripada faktur yang belum dibayar. Dibesarkan hanya untuk tagihan mereka dapat bertindak pada: kursi mereka sendiri, dan kelompok mereka mengelola. Ini menghasilkan tidak ada ketika tidak ada yang berutang. Membatalkan kini terlihat di mana orang dapat melihat siapa yang membayar: a "Batal otomatis pembayaran "aksi pada kursi mereka sendiri, dengan teks bantuan mengatakan jelas bahwa mereka jaga kursi sampai akhir periode mereka sudah dibayar. The konfirmasi nama tanggal, karena ketakutan ketika menekan tombol adalah bahwa Akses berhenti segera. The "Biarkan diri-pembayar memilih rencana mereka sendiri" switch hilang. Rencana itu milik organisasi dan semua orang yang membayar di dalamnya - individu atau sebagai kelompok - membeli rencana yang sama. Panel kelompok sekarang menyatakan rencana organisasi agak daripada menawarkan pemetik.

  6. · BillingService

    Satu rencana per organisasi, 25 kursi langit-langit Enterprise, dan cara untuk berhenti membayar

    Rencananya sekarang adalah keputusan level organisasi dan tak ada yang bisa mengatasinya. Membiarkan seorang pembayar sendiri atau manajer kelompok memilih sendiri dibaca seperti kebaikan dan adalah bug pembenaran: * * * * * * * * * * * * * jawaban "tidak org ini memiliki aplikasi ini "dengan OR-ing di setiap berlangganan hidup menargetkan org, jadi satu orang di satu kursi memilih rencana yang lebih tinggi beralih aplikasi rencana yang untuk seluruh organisasi. Menintip setiap pembayar rencana organisasi membuat OR Tidak berbahaya - subscription semua nama rencana yang sama, jadi mana yang menang menjawab Identifikasi. Organ PlanService membaca rencana dari langganan yang sama Plan & Konsol penagihan memanggil "rencana Anda", sehingga aturan dan layar tidak bisa tidak setuju. Enterprise dibutuhkan di atas 25 kursi, dihitung di seluruh organisasi dan setiap Grup penagihan. Menghitung pembayar akan membuat memecah menjadi kelompok cara untuk beli 50 kursi -5 sekaligus. Sebuah sunting mengecualikan langganan sendiri sehingga menyusut diukur terhadap ukuran baru, bukan yang lama. GET / self / alert drive banner home- page. Akses terbatas tanpa penjelasan adalah versi terburuk dari produk ini - aplikasi berhenti membuka dan tidak ada yang mengatakan mengapa, atau bahwa orang yang membaca adalah orang yang bisa memperbaikinya. Hanya mengangkat untuk tagihan ini anggota bertanggung jawab untuk: mereka sendiri kursi dan kelompok mereka mengelola. Memberitahu seseorang kartu organisasi mereka gagal ketika mereka tidak dapat membayar itu adalah kebisingan, dan kebisingan bagaimana spanduk berhenti dibaca. POST / self / seat / batalkan hentikan pembayaran otomatis pada kursi seseorang yang dibeli sendiri. Selalu di akhir periode: mereka telah membayar untuk periode saat ini, dan membatalkan segera akan mengambil akses itu pergi sementara tidak mendanai lagi, karena bahwa jalur meminta Stripe untuk tidak prorasi. Dua bug dalam membatalkan () ditemukan ketika kabel yang up: - Itu adalah no- diam untuk COMP dan TRIAL. Seluruh tubuh duduk di belakang pemeriksaan kosong stripeSubscriptionId, sehingga sebuah comped atau trialing subscription dikembalikan 200 dengan baris masih AKTIVE - penelepon mengatakan itu bekerja ketika tidak ada yang berubah. Sekarang menolak dan mengatakan mengapa. - langsung = benar tetap berbahaya dan sengaja tidak terkena: itu set CANCELED then calls fallback ToFree, which sets acTIVE / FREE with RIGHT 1, so a 25-kursi org akan menjaga satu orang yang bekerja dan memberitahu 24 kursi mereka dipotong untuk Itu tidak pernah terjadi. Hak. Kegagalan ditetapkan palsu di sini untuk mencocokkan Layanan SecurityService, yang melayani / api / keamanan / fitur dan adalah apa Apps & fitur layar baca. Dua layanan Menjawab pertanyaan hak yang sama secara berbeda lebih buruk daripada jawaban baik. Aman terverifikasi: enam rencana aktif membawa baris eksplisit untuk semua 21 layanan jenis, sehingga tidak ada sebelumnya diberikan ditolak.

  7. · SecurityService

    Pendekatan relay-tier dengan peran diselesaikan dari hak

    THE ROLE IS DIBUAT DI SINI, DARI Hak penelpon DAN HUBUNGAN MEREKA KE subjek-- tidak pernah dari tubuh permintaan. Sebuah tubuh yang bisa nama perannya sendiri akan membiarkan siapa pun mengklaim menjadi gaji. Precedence: PAYROLL (terluas, edits dalam keadaan apapun), kemudian MANAGER, kemudian EMPLOYEE untuk satu catatan sendiri. Menjadi subjek manajer snapshotted menghitung sendiri -- seorang manajer garis menyetujui laporan mereka sendiri adalah kasus biasa dan tidak boleh membutuhkan sebuah org- kanan lebar; hak yang ada untuk orang lain yang ulasan. IsManagerOf gagal CLOSED: sebuah baris pelaporan yang tak terpecahkan bukan otoritas.

  8. · kamo-shared-library

    APPROVE _ TIMECARD _ ADJUSTMENTS (197) dan FINALIZE _ PAY _ PERIODS (198)

    Memisahkan sehingga pemisahan tugas diungkapkan: siapa yang menyetujui sebuah timecard tidak Maka barangsiapa yang berniat haji dan telah masuk di bulan-bulan itu, ia harus memelihara etika haji. Manvage _ TIMECARDS (183) tetap di gerbang modul dan tidak dengan sengaja. Pendaftaran masih TIDAK benar - itu adalah fakta pekerjaan yang bertahan. Kanan kebocoran ON melalui empat perilaku dikirim dan menghilang dari anggota TERMINATED persis ketika HR harus menghasilkan timecard akhir mereka. Secara sengaja tidak hadir dari NEW _ RIGHT _ SEEDS: yang membawa hibah exsibel maju, dan gerbang ini kemampuan tidak ada yang memiliki. Menambahkan hak hanya membutuhkan SecurityService restart -- tidak ada lewat KamoInitializer, tidak ada DDL. Ids disematkan oleh tes, karena id adalah apa anggota _ rights _ applied toko.

  9. · kamo-shared-library

    Mesin negara bagian persetujuan

    Karyawan menyerahkan - > manajer menyetujui - > gaji ditutup, setiap keputusan pemilik. Empat aturan, dipaksa dalam tabel transisi murni dan disematkan oleh 25 tes: Seorang manajer tidak bisa menyetujui sampai karyawan telah mengajukan. Penyerahan adalah para karyawan sendiri menegaskan bahwa jam adalah milik mereka dan lengkap; menyetujui tanpa itu menyetujui apa-apa siapa pun dibuktikan. Persetujuan Manager mengunci karyawan keluar dari edits lebih lanjut. 3. rute disetujui melewati aturan 1. Ini membutuhkan alasan tertulis, dan baris catatan baik manajer yang mengklik dan karyawan berdiri untuk. Uang bisa di sunting di negara bagian manapun termasuk terkunci, selalu dengan alasan. Koreksi setelah dekat adalah rutin dan secara hukum diperlukan; melarang mereka Hanya memindahkan sunting keluar dari jejak audit. Segregasi tugas tinggal di tabel transisi, tidak dalam penamaan peran: tidak ada menyetujui timecard mereka sendiri, dan manajer adalah karyawan seseorang juga. Cascades tidak menyetujui dari PAYROLL _ LOCKED sepanjang jalan ke SUBMITTED, karena menarik persetujuan membatalkan kunci yang dibangun di atasnya. Pendekatan yang scoped ke DATE RANGE sehingga izin pertengahan periode bertahan kemudian edit diluar jangkauan nya daripada diam-diam meliputi pekerjaan yang tidak pernah dilihatnya.

  10. · kamo-internal

    Tab Anggota Timecard dan tab pengaturan timecards HRS

    Tab anggota adalah SELF-SERVICE HANYA dan gated pada identitas, persis seperti legal- kepatuhan: titik akhir tidak mengambil anggota id sama sekali, sehingga struktural tidak mampu menunjukkan jam orang lain. checkRight tidak dapat digunakan di sini -- ini kembali benar untuk segala sesuatu di bawah mode dewa, dan halaman sendiri canViewOtherAnggota Akun Ors dalam hak-hak yang tidak berhubungan termasuk * * * * * * * * * * * * * * * HR mencapai timecard orang tertentu adalah permukaan yang berbeda di / hr / kehadiran, dikaitkan dengan aktor HR. Ditempatkan sebelum plans- tagihan sehingga tetap dalam kelompok tab kiri - apa setelah itu mewarisi bahwa ml kanan tab: 'auto'. Halaman HRS memperoleh tab nyata pertama selain ComingSoonTab, terdaftar SETTINGS _ MENU sebagai tes cakupan membutuhkan di kedua arah. Kedua tab pad mereka sendiri di setiap jalur kembali; SettingsView, TabPanel dan gerakan div semua pasokan nol.

  11. · kamo-internal

    / hr / daftar hadir dan kontrol jam NaurTop

    Mengganti tubuh HrTabPlaceholder. Rute, entri HR _ TABS, Manvage _ TIMECARDS gerbang dan tab kunci i18n semua sudah ada; tidak ada di sini register apa-apa. Jam Roster berasal sisi server- dari log punch abadi pada setiap baca daripada disimpan sebagai berjalan total, sehingga pukulan dikoreksi menunjukkan segera dan bug menghasilkan nomor salah sekali daripada kompon. Pengontrol jam tetap krom di samping Legal & Compliance, bukan NAV _ REGISTRY entri: registry tidak dapat mengekspresikan posisi antara dua kontrol tetap, yang badgeKey adalah kode mati, dan setiap entri registry adalah draggable dan unpinnable - jam kepatuhan tidak harus menjadi sesuatu seseorang dapat menyembunyikan dari diri mereka sendiri. Ini gerbang pada pendaftaran PERSISTED, tidak pernah checkRight, yang kembali benar untuk setiap kanan di bawah mode dewa dan akan menunjukkan jam di setiap org operator mengunjungi. timecardControlApplies dibagi oleh kontrol dan polling sehingga keduanya pergi tenang bersama-sama - dua salinan drift predikat, dan mode kegagalan tombol tersembunyi yang mengambil berjalan selamanya. Keadaan jam adalah sinyal independen FURTH: bukan kehadiran (detak jantung 60-an, 300s TTL), dan tidak tersedia _ status, yang otomatis diatur untuk AWAY di logout dan gerbang memimpin dan mendukung routing. Hanya untuk saat ini dengan lantai 60-an. The StoMP relay lands with the MediaService perubahan; inti NATS adalah unstreaming dan lossy sehingga benih REST wajib tetap.

  12. · kamo-shared-library

    Database- clock acessor on the punch repositori

    Setiap pukulan instan datang dari DB, tidak pernah JVM: pod restart dan node Jam skew, dan catatan upah yang pemesanan tergantung pada mana pod menjawab bukan catatan. SQL-standar CAST, karena a::: cast hancur diam-diam -- Hibernasi baca ':' sebagai awalan nama -parameter dan berubah sekarang ():: timestamp kedalam: timestamp.

  13. · kamo-internal

    Rute BFF untuk keamanan / keamanan / timecards

    Layanan Waktu adalah ClusterIP tanpa ingress, jadi tanpa rute ini seluruh fitur 404s dalam browser ketika setiap layanan sehat dan setiap bentuk Hijau -- kegagalan yang tepat yang telah terjadi dua kali pada platform ini. Tidak ada otorisasi di sini, sengaja: lapisan ini adalah transportasi, dan setengah-cek akan mengundang keyakinan bahwa itu adalah kontrol. forwardToApi memiliki string query. Sebuah 204 dikembalikan sebagai 204 daripada yang dilewatkan melalui .json (), yang melempar.

  14. · SecurityService

    Relay SecurityService ke Layanan TimecardService

    Batas otorisasi. Layanan waktu menyimpan data dan mesin tapi tidak ada sesi; ini memegang sesi dan memutuskan siapa yang dapat melakukan apa, kemudian relay. The Karena itu mesin tidak pernah dapat dicapai tanpa melewati sini. SecurityService menjalankan anyRequest () .permitAll () dengan hand- rolling per- handler auth, sehingga setiap metode terbuka dengan penjaga yang kembali non- null untuk menolak. Layanan self titik akhir mengambil NO anggota id sama sekali - anggota berasal dari sesi, membuat mereka secara struktural tidak mampu bertindak pada orang lain. HR menunjuk gerbang di Manvage _ TIMECARDS (183). Pendaftaran dijawab dari baris pekerjaan yang bertahan daripada hak, jadi operator mode dewa tidak muncul terdaftar dalam setiap org yang mereka lihat. SUDO _ MEMBER _ ID dilakukan melalui: isSelf () memperlakukan upstream sebuah meniru sesi sebagai anggota target, jadi tanpa itu pukulan peniru akan direkam sebagai karyawan sendiri. timecard.service.url adalah set EXPRITICITLY di peta konfigurasi. Commile.service.url set nowhere dan produksi tergantung pada literal dalam Jawa, yang mana sebuah Layanan Rename akan istirahat pada waktu-jalan dengan apa-apa di config untuk grep.

  15. · kamo-shared-library

    Buket hari kerja, tahap 2 dari baris pipa

    Dipecahkan interval menjadi per- bisnis-tanggal detik, siap untuk allocator. Interval adalah SPLIT di setiap batas hari kerja yang melintasi: a 22: 00-06: 00 shift di bawah hari kerja tengah malam adalah 2 jam pada satu tanggal dan 6 di berikutnya. Atribut seluruh span untuk tanggal awal membuat lembur harian dan aturan tujuh hari salah untuk setiap pekerja malam. Hal ini sengaja atgrents DIFFERENT dari bisnis bertahan pada pukulan. Pukulan membawa satu tanggal - untuk makan / istirahat evaluasi, pengecualian antrian dan apa yang karyawan lihat sebagai shift mereka - sementara menghitung lembur kebutuhan penempatan jam di seluruh hari kerja dan minggu kerja mereka benar-benar jatuh masuk Keduanya yang benar, keduanya diperlukan, dan conflinging mereka adalah perangkap. Sebuah pergeseran melintasi batas Workweek juga berkontribusi untuk dua minggu ' lembur total; menghitung semua dalam salah satu adalah salah untuk keduanya. Akumulasi dalam hitungan detik. Tes meliputi kedua DST transisi, 50 jam span, dan pukulan end-to-end melalui alokasi selama seminggu California.

  16. · InitializerService

    Registrasi KI dan migrasi skema

    Tabel berasal dari ddl- auto; ini pasokan pelari hanya apa Hibernasi tidak bisa - indeks unik parsial pada satu membuka tugas utama dan satu tingkat gaji terbuka jendela, dan REVOKE yang adalah database setengah tambahan - hanya. @ Order (0) sehingga mendarat sebelum JPA SELECT pelari lainnya, dengan 40001 coba lagi karena Yugabyte melakukan perubahan skema online dan pernyataan yang dikeluarkan ketika ddl- auto masih menetap kehilangan perlombaan. Register com.kamo.z.shared.hr.timecard dalam @ EnableJpapositories - daftar itu adalah sebuah array eksplisit sementara @ EntityScan adalah wildcard, dan mengabaikan sebuah paket mengabaikan konteks sehingga NO runner run sementara membangun masih melaporkan sukses.

  17. · kamo-shared-library

    Batas workweek dan workday

    Minggu kerja adalah unit lembur FLSA -- yang tetap, secara teratur berulang 168-jam periode - dan itu bukan waktu membayar. Periode mingguan memegang tepat dua workweeks; a semi-monthly or months period always holding fractional, so komputasi lembur pada total periode baik underpay dan overpay dan adalah tidak dapat diperbaiki sekali periode diekspor. Batas hari kerja dilakukan secara terpisah dan belum tentu tengah malam. A 06: 00 awal adalah standar perbaikan untuk staf malam: itu terus 22: 00-06: 00 shift on One workday instead of separating it across two half-days, which is what makes lembur sehari-hari dan tujuh-berturut-turut aturan hari bekerja untuk mereka sama sekali. Batas-batas waktu wall-clock diselesaikan melalui ZeedDateTime, sehingga 06: 00 tetap 06: 00 pada hari 23-atau 25-jam. Tes pin baik transisi, dan pin yang satu instan adalah tanggal bisnis yang berbeda di Los Angeles dan Kolkata - itulah sebabnya zona catatan yang bertahan pada pukulan bukan berasal nanti.

  18. · kamo-shared-library

    Resolusi interval, tahap 1 dari baris pipa perhitungan

    Punches menjadi bentangan diselesaikan. Murni, total, dan lebih banyak tipe nilai daripada entitas sehingga setiap tahap fixture- dapat diuji tanpa konteks ketekunan. Durasi berasal dari Duration.between pada instants, tidak pernah wall-clock pengurangan. Itu adalah seluruh cerita DST dan tes pin itu: 22: 00-06: 00 shift adalah SEVEN jam melintasi... maju dan NINE di jatuh-kembali. Kurangi jam dinding menghitung 8 untuk keduanya - satu underpay, satu overpaying, dan dalam daily- lembur yurisdiksi malam 9-jam diam-diam kehilangan jam lembur nya. Apa pun yang tak bisa diperbaiki kembali sebagai belum terselesaikan daripada menebak. Sebuah tertutup shift adalah sebuah EXCEPTION: membiarkannya terbuka akre absurd jam, otomatis menutup di jadwal akhir laporan bawah, dan topi tetap menciptakan nomor tidak ada yang menyaksikan. Ini tidak boleh berakhir sebagai nol - yang membayar apa-apa untuk hari yang bekerja. Makanan yang ditinju, tidak pernah otomatis dipotong. TRANSFER menutup satu rentang dan membuka berikutnya tanpa akhir pergeseran, sehingga waktu makan dan shift- panjang eligibilitas lanjutkan di pertengahan pergeseran bergerak antara pusat biaya.

  19. · kamo-shared-library

    None-None lembur allocator dengan presets yurisdiksi

    Aturan DATA pada bentuk Aturan Requirment sudah digunakan di perpustakaan ini, bukan cabang kode, jadi California adalah baris konfigurasi bukan menulis ulang. Perintah alokasi adalah load- bantalan: aturan sehari-hari tertinggi - gerbang-pertama (1 / 1 - jam CA day is 1h at 2x and 4h at 1.5x, not 5h at 1.5x), then the seventh hari berturut-turut, kemudian NET mingguan jam sudah pada premium harian. Langkah terakhir adalah apa yang mencegah penghambaan, dan itu adalah satu mesin naif Buang. Lima 10 jam sehari di California adalah 10 jam premium, bukan 20 -- naif mesin membayar setiap hari DAN mingguan untuk sepuluh jam yang sama, dan setiap aturan individu tes berlalu sementara tidak. Para allocator juga menegaskan konservasi jam pada jalan keluar dan melempar daripada mengembalikan gaji yang salah. FLSA federal, California, Alaska, Nevada, Colorado.

  20. · kamo-internal

    Kirim zona waktu org ke peramban

    Model organisasi klien tidak memiliki zona waktu, used Formatters dan next- intl keduanya dikonfigurasi tanpa zona waktu, dan backend Layanan 404d - jadi setiap penanda waktu yang diberikan di zona browser, dan server selama SSR. Mirror semua 27 TimezoneType nilai daripada sebuah subset: sebuah peta parsial adalah sebuah silent half-mirror where an unmap org falls through to the browser zone with Tidak ada sinyal. Peta GMT ke Eropa / London, bukan UTC -- ia mengamati BST, jadi membingungkan mereka pergeseran jam seluruh hari per jam selama setengah tahun. Zona org adalah fallback DISPLAY saja. Sebuah sensus produksi menemukan semua 13 organ pada tidak tersentuh baku PASIFIC ketika anggota span PASIFIC / EAST / ARIZONA / UTC / INDIA, sehingga zona timecard catatan berasal dari situs kerja sebagai gantinya.

  21. · SecurityService

    GET * * * * * * * * * * * * * *

    timezoneService.ts telah disebut titik akhir ini sejak ditulis dan itu ada tidak ada layanan Java; klien menelan 404 dan diselesaikan ke UTC. Sementara itu useFormatters dan next-intl keduanya dikonfigurasi tanpa zona waktu, jadi setiap render penanda waktu dalam daerah browser -- dan * * * fallback adalah string 'GMT', Eropa / London dan mengamati BST. Identitas datang dari sesi ini saja: SecurityService menjalankan permitAll dengan hand- rolling per-handler auth, sehingga penangan yang membaca identitas dari permintaan tidak memiliki kontrol sama sekali. Register com.kamo.z.shared.hr.timecard dalam @ EnableJpapositories. Daftar itu adalah sebuah array eksplisit ketika @ Componentscan / @ EntityScan adalah wildcard, dan mengabaikan sebuah paket adalah penyebab didokumentasikan dari dua CrashLooping sebelumnya menyebar.

  22. · kamo-shared-library

    Worksite, jangkar yurisdiksi

    Nama Worksite, bukan Area Kerja: TeamAnggota. Lokasi Kerja adalah ada kantor / remote enum dan simbol kedua dengan nama yang akan bertabrakan di setiap grep. zoneId adalah string IANA bebas daripada TimezoneType karena enum 's 27 nilai tidak dapat mencakup sebuah multi- negara majikan, dan NOT NULL karena itu adalah hanya dapat dipercaya daerah lapisan - setiap org dalam produksi duduk di tersentuh PASIFIC default.

  23. · kamo-shared-library

    Revisi tugas dan efektif tertanggal

    Punches akan referensi ASSIGNMENT, bukan anggota. Itulah yang membuat posisi tetap, 29 CFR 778.115 berat - tingkat reguler rata-rata, multi- situs yurisdiksi dan biaya pekerjaan ekspresibel sama sekali. managerAnggota Id snapshotted dari TeamAnggota .manager di waktu revisi sehingga reorganisasi tidak dapat menulis ulang siapa yang menyetujui apa. Pencari daftar sengaja tidak dibangun di atas kuiri anggota _ hak _ yang diterapkan: adalah TeamAnggota-diketik, sehingga menghilangkan grant -semua pemilik org dan kembali apa-apa untuk Anggota TERMINATED yang hak penerapannya dicabut -- tepatnya orang yang timecard terakhir HR masih harus menghasilkan.

  24. · kamo-shared-library

    Effective- tanggal, tambahkan - hanya tingkat gaji

    Tidak ada kompensasi karyawan ada di mana saja di platform ini sebelum entitas ini. Diperlukan: lembur dihitung terhadap tingkat reguler FLSA, CA memerlukan tingkat pada pernyataan upah, dan ekspor tanpa tarif memberikan gaji tidak ada yang bisa dikonsumsi. Harga adalah ROW baru. Tingkat efektif di dalam periode yang diekspor menghasilkan penyesuaian retro, tidak pernah menulis ulang diam. Tidak pernah terkena via / api / keamanan / anggota / {id} -- titik akhir pemeriksaan tidak tepat di Jadi menempatkan harga di dalamnya akan bocor setiap gaji di perusahaan.

  25. · kamo-shared-library

    Tambahkan - hanya punch log dan acara audit

    Keduanya dilayani oleh antarmuka Repositori NARROW, bukan JpaRepositori: deleteAllInBatch dan besar JPQL bypass entity callback, sehingga bentuk antarmuka adalah apa yang membuat tambahan-hanya nyata daripada nasihat. Secara instan + IANA zone + tanggal bisnis semua dipertahankan, sehingga durasi dihitung dari instant dan DST adalah benar secara gratis -- sebuah shift 22: 00-06 adalah 7 jam lintas spring-forward dan 9 di falls-back, ketika pengurangan jam dinding Menghitung 8 untuk keduanya. updatable = false secara sengaja TIDAK digunakan di kolom punch beku: Hibernasi akan diam-diam mengabaikan mereka dari UPDATE daripada gagal.

  26. · kamo-shared-library

    Timezone-of-record resolver

    Otoritas urutan situs kerja - > anggota - > org - > UTC. Situs kerja menang karena wag-and-hour rules follow where the work is PERFORMED. Sebuah sensus produksi sesi ini menemukan semua 13 organ pada PASIFIC yang tak tersentuh baku dan 38 dari 63 anggota dengan tidak ada zona waktu sama sekali, sedangkan yang penduduk span PASIFIC, EASTERN, ARIZONA, UTC dan INDIA -- 13,5 jam menyebar. org karena itu bukan sumber yang dapat digunakan dari kebenaran, itulah sebabnya WorkSite.zoneId TIDAK NULL dan membawa berat badan. Jatuh kembali ke UTC daripada string * * 'GMT', yang Eropa / London dan mengamati BST. Sebuah zona situs unparseable jatuh melalui daripada melempar: menolak untuk menyelesaikan zona akan menolak untuk merekam waktu benar-benar bekerja.

  27. · kamo-shared-library

    Penjaga penolakan WORM bersama

    @ Kolom (updatable = false) TIDAK menegakkan immutabilitas -- Hibernasi diam-diam Abaikan kolom dari UPDATE dan tulisan basi sepertinya berhasil. Satu-satunya penjaga yang bekerja adalah @ PreUpdate yang melempar.

  28. · kamo-shared-library

    Domain enums and points-in-time version resolver

    Enums are all @ Enurated (STRING) at the call site: ORDINAL emits a numerik jangkauan CHECK berisi AND, dimana schemaCleanupRunner 's IN-list menyapu sengaja melompat dan yang kemudian harus diperluas oleh tangan pada setiap nilai baru. Resolver memecahkan oleh jendela yang CONTAINS instan, tidak pernah oleh baris-later- baris, dan terus menutup jendela dalam set kandidat - supersession tertutup every window but the current one, so an open-rows- only query return nothing for Setiap sejarah instan, melanggar pembayaran retro dan audit rekonstruksi. Tumpang tindih melempar bukan menebak.

  29. · kamo-internal

    Tunjukkan anggota yang membayar kursi mereka, dan berhenti menawarkan yang kedua

    Titik akhir cakupan dikirim dengan kunci terjemahan dan tidak ada komponen, sehingga Pertanyaan itu menjawab - yang membayar untuk kursi saya - masih punya tempat untuk diminta. Seat CoveragePanel menanyakannya, dan jawabannya memberi makan panel pembayaran diri di sampingnya: seseorang yang kursinya sudah ditutupi oleh organisasi mereka atau kelompok tidak lagi menawarkan kesempatan untuk membeli lain pada kartu mereka sendiri. Tawaran itu tidak pengetahuan tentang cakupan ada sama sekali, sehingga ditunjukkan kepada semua orang. Rencana kelompok juga dapat dibatalkan sekarang, yang membuat kelompok dengan Rencana menghapus - menghapus salah satu yang masih titik pada langganan hidup Menolak jadi tuduhan tidak yatim piatu. Menambahkan seseorang organisasi sudah membayar untuk datang kembali menolak daripada Diam-diam tidak melakukan apa-apa, sehingga tombol menjelaskan sendiri.

  30. · BillingService

    Biarkan rencana kelompok dibatalkan, dan berhenti dua kali membayar untuk satu orang

    Tiga celah dalam apa yang dikirim terakhir: Sebuah kelompok dengan rencana tidak pernah bisa dihapus. hapus () menolak ketika hidup berlangganan ada - benar, karena baris grup adalah satu-satunya hal yang menunjuk pada berlangganan Stripe - tapi tidak ada cara untuk membatalkan, sehingga keamanan adalah mati end. cancelPlan () melepaskan kursi pertama, sehingga daftar tidak bisa terus Mengklaim orang memegang kursi yang sudah tidak ada lagi. Menambahkan seseorang organisasi sudah membeli kursi sekarang ditolak kecuali TakeOverFromOrg mengatakan sebaliknya. Itu adalah cara kedua untuk dikenakan biaya dua kali untuk Satu orang dan tidak ada yang menangkapnya: gabungan Anggota Subscription adalah per- langganan dan AccountLicense tidak menyatakan sama sekali. Pindah seseorang dari RUU organisasi ke sebuah kelompok adalah hal yang nyata manajer tidak, sehingga diperbolehkan - sengaja daripada secara tidak sengaja. BillingGroupScopeInterceptor mengikat permintaan setiap / api / billing / {uuid} / * * ke organisasi penelepon. Penangan sudah memeriksa, dan ini tidak ganti mereka; itu ada karena pemeriksaan per- handler dan sebuah grup sekarang memiliki Sub- sumber daya yang menghabiskan uang. Rute berikutnya menambahkan inherits apa-apa kecuali sesuatu di atasnya berlaku aturan. Deliberately lebih sempit daripada penangan: ini mengendap organisasi mana, bukan yang di dalamnya mungkin bertindak, sehingga dua tidak bisa melayang ke dalam jawaban berbeda. Sebuah id grup tidak dikenal melewati sehingga penangan menjawab "tidak ditemukan" daripada mengkonfirmasi id ada di suatu tempat.

Alam semestamu menunggu.

Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.

Gratis selamanya — tidak diperlukan kartu kredit