Initial commit

This commit is contained in:
gsinghpal
2026-02-22 01:22:18 -05:00
commit 5200d5baf0
2394 changed files with 386834 additions and 0 deletions

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form_fusion_clock" model="ir.ui.view">
<field name="name">res.config.settings.view.form.fusion.clock</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="priority">95</field>
<field name="arch" type="xml">
<xpath expr="//form" position="inside">
<app data-string="Fusion Clock" string="Fusion Clock" name="fusion_clock" groups="fusion_clock.group_fusion_clock_manager">
<!-- Work Schedule -->
<block title="Work Schedule" name="fclk_work_schedule">
<setting string="Default Clock-In Time" help="Scheduled start of shift. Used for penalty and auto clock-out calculations.">
<span class="me-2">Clock-In</span>
<field name="fclk_default_clock_in_time" widget="float_time"
class="text-center" style="width: 6ch;"/>
<span class="ms-2 text-muted">e.g. 09:00 = 9 AM</span>
</setting>
<setting string="Default Clock-Out Time" help="Scheduled end of shift. Used for penalty and auto clock-out calculations.">
<span class="me-2">Clock-Out</span>
<field name="fclk_default_clock_out_time" widget="float_time"
class="text-center" style="width: 6ch;"/>
<span class="ms-2 text-muted">e.g. 17:00 = 5 PM</span>
</setting>
</block>
<!-- Break Settings -->
<block title="Break Settings" name="fclk_break_settings">
<setting string="Auto-Deduct Break" help="Automatically deduct unpaid break from total worked hours. Applies to portal/FAB clock-outs AND manually entered attendance.">
<field name="fclk_auto_deduct_break"/>
<div invisible="not fclk_auto_deduct_break" class="mt8">
<span class="me-2">Break Duration</span>
<field name="fclk_default_break_minutes" class="text-center" style="width: 6ch;"/>
<span class="ms-2">minutes</span>
<span class="ms-3 text-muted">e.g. 30 = half-hour unpaid break</span>
<br/>
<span class="me-2 mt8 d-inline-block">Threshold</span>
<field name="fclk_break_threshold_hours" widget="float_time"
class="text-center" style="width: 6ch;"/>
<span class="ms-2">hours</span>
<span class="ms-3 text-muted">break deducted only if shift exceeds this</span>
<br/>
<button name="action_backfill_breaks" type="object"
string="Apply Break to Past Records"
class="btn btn-secondary mt8" icon="fa-clock-o"
confirm="This will apply break deduction to all past attendance records that are missing it. Continue?"/>
<span class="ms-2 text-muted mt8 d-inline-block">
Applies break to historical records that were entered manually or before break was enabled
</span>
</div>
</setting>
</block>
<!-- Auto Clock-Out & Grace Period -->
<block title="Auto Clock-Out" name="fclk_auto_clockout">
<setting string="Enable Auto Clock-Out" help="Automatically clock out employees who forget to clock out.">
<field name="fclk_enable_auto_clockout"/>
<div invisible="not fclk_enable_auto_clockout" class="mt8">
<span class="me-2">Grace Period</span>
<field name="fclk_grace_period_minutes" class="text-center" style="width: 6ch;"/>
<span class="ms-2">minutes after scheduled end</span>
<br/>
<span class="me-2 mt8 d-inline-block">Max Shift</span>
<field name="fclk_max_shift_hours" widget="float_time"
class="text-center" style="width: 6ch;"/>
<span class="ms-2">hours</span>
<span class="ms-3 text-muted">safety net: force clock-out after this</span>
</div>
</setting>
</block>
<!-- Penalties -->
<block title="Penalty Tracking" name="fclk_penalties">
<setting string="Enable Penalties" help="Track late clock-ins and early clock-outs for each employee.">
<field name="fclk_enable_penalties"/>
<div invisible="not fclk_enable_penalties" class="mt8">
<span class="me-2">Grace</span>
<field name="fclk_penalty_grace_minutes" class="text-center" style="width: 6ch;"/>
<span class="ms-2">minutes before a penalty is logged</span>
</div>
</setting>
</block>
<!-- Pay Period -->
<block title="Pay Period" name="fclk_pay_period">
<setting string="Pay Period Schedule" help="Defines how pay periods are calculated. Weekly and Bi-Weekly require an anchor date below. Semi-Monthly uses 1st-15th and 16th-end. Monthly uses 1st-end.">
<div class="mt8">
<span class="me-2">Schedule</span>
<field name="fclk_pay_period_type" class="d-inline-block"/>
</div>
</setting>
<setting string="Anchor Date" help="The first day of any actual pay period. All periods are calculated forward and backward from this date in weekly or biweekly increments. Not used for Semi-Monthly or Monthly.">
<div class="mt8">
<field name="fclk_pay_period_start" class="d-inline-block"
placeholder="Pick the start of a real pay period"/>
<span class="ms-3 text-muted">
Pick the first day of any real pay period
</span>
</div>
</setting>
<setting string="Current Period Preview" help="Shows the current pay period based on today and the settings above. Use this to verify your anchor date is correct.">
<div class="mt8">
<field name="fclk_pay_period_preview" class="fw-bold text-primary"/>
</div>
</setting>
</block>
<!-- Reports -->
<block title="Reports &amp; Email" name="fclk_reports">
<setting string="Auto-Generate Reports" help="Automatically generate a summary report at the end of each pay period.">
<field name="fclk_auto_generate_reports"/>
</setting>
<setting string="Send Employee Copies" help="Email each employee a copy of their individual timesheet at the end of every pay period.">
<field name="fclk_send_employee_reports"/>
</setting>
<setting string="Manager Report Recipients" help="Comma-separated email addresses. A batch summary of all employees will be sent to these addresses at the end of every pay period.">
<div class="mt8">
<field name="fclk_report_recipient_emails" class="o_input w-100"
placeholder="manager@company.com, hr@company.com"/>
</div>
</setting>
<setting string="Generate Historical Reports" help="Create reports for all past pay periods that have attendance data but no report yet. No emails will be sent for these. Use this after first install or when changing pay period settings.">
<div class="mt8">
<button name="action_backfill_reports" type="object"
string="Generate Historical Reports"
class="btn btn-secondary" icon="fa-history"
confirm="This will create reports for all past pay periods. No emails will be sent. This may take a few minutes depending on the amount of data. Continue?"/>
</div>
</setting>
</block>
<!-- Clock Locations -->
<block title="Clock Locations" name="fclk_locations">
<setting string="Manage Locations" help="Configure geofenced clock-in/out locations with GPS coordinates and allowed radius.">
<div class="mt8">
<button name="%(fusion_clock.action_fusion_clock_location)d" type="action"
string="Manage Locations" class="btn btn-primary" icon="fa-map-marker"/>
</div>
</setting>
</block>
<!-- Google Maps -->
<block title="Google Maps" name="fclk_google_maps">
<setting string="Google Maps API Key" help="Required for geocoding addresses and showing map previews on clock locations.">
<div class="mt8">
<field name="fclk_google_maps_api_key" class="o_input w-100"
placeholder="AIza..." password="True"/>
</div>
</setting>
</block>
<!-- Sounds -->
<block title="Sounds" name="fclk_sounds">
<setting string="Clock Sounds" help="Play an audio chime on clock-in and a different one on clock-out.">
<field name="fclk_enable_sounds"/>
</setting>
</block>
</app>
</xpath>
</field>
</record>
</odoo>