5b7b41aa50
- Flask app with SQLAlchemy, Flask-Login, Flask-Mail - Admin/owner roles, vessel management, charters, work orders - Background launcher (Iniciar.vbs) runs server without terminal window - Root redirect fixed: / → /login - debug=False, use_reloader=False for pythonw.exe compatibility Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
255 lines
15 KiB
HTML
255 lines
15 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Captain Services Agreement</title>
|
|
<style>
|
|
@page { size: letter; margin: 1.8cm 2.2cm; }
|
|
body { font-family: 'Times New Roman', Times, serif; font-size: 11pt; color: #1a1a1a; line-height: 1.55; }
|
|
.header-banner { background: #0a2a3a; color: white; padding: 16px 22px; }
|
|
.header-banner .title { font-size: 17pt; font-weight: bold; color: #c4a747; letter-spacing: 1px; font-family: Arial, sans-serif; }
|
|
.header-banner .sub { font-size: 9pt; color: #aac4d0; margin-top: 3px; font-family: Arial, sans-serif; }
|
|
.gold-bar { background: #c4a747; height: 5px; margin-bottom: 16px; }
|
|
.doc-title { text-align: center; font-size: 14pt; font-weight: bold; color: #0a2a3a; margin: 14px 0 3px; text-transform: uppercase; letter-spacing: 1.5px; font-family: Arial, sans-serif; }
|
|
.doc-ref { text-align: center; font-size: 9pt; color: #666; margin-bottom: 14px; font-family: Arial, sans-serif; }
|
|
.alert-box { background: #fff3cd; border: 2px solid #c4a747; border-radius: 3px; padding: 11px 16px; margin: 12px 0 16px; font-size: 10.5pt; font-weight: bold; color: #7d5a00; text-align: center; font-family: Arial, sans-serif; line-height: 1.6; }
|
|
.section { margin-bottom: 14px; }
|
|
.section-title { background: #0a2a3a; color: #c4a747; padding: 4px 10px; font-size: 9.5pt; font-weight: bold; text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 8px; font-family: Arial, sans-serif; }
|
|
table { width: 100%; border-collapse: collapse; font-size: 10.5pt; }
|
|
th { background: #0a2a3a; color: white; padding: 5px 8px; text-align: left; font-size: 9.5pt; font-family: Arial, sans-serif; }
|
|
td { padding: 5px 8px; border-bottom: 1px solid #ddd; }
|
|
tr:nth-child(even) td { background: #f9f9f9; }
|
|
.total-row td { background: #f0e8cc; font-weight: bold; font-size: 11.5pt; }
|
|
.clause { margin-bottom: 9px; text-align: justify; font-size: 10.5pt; }
|
|
.clause-num { font-weight: bold; color: #0a2a3a; }
|
|
.ic-box { background: #eef6fc; border: 1px solid #b3d9ef; border-radius: 3px; padding: 11px 15px; font-size: 10.5pt; }
|
|
.license-badge { display: inline-block; padding: 2px 10px; border-radius: 8px; font-size: 9.5pt; font-weight: bold; font-family: Arial, sans-serif; }
|
|
.badge-private { background: #e9ecef; color: #495057; }
|
|
.badge-sixpack { background: #cce5ff; color: #004085; }
|
|
.badge-master { background: #f0e8cc; color: #7d5a00; }
|
|
.sig-line { border-top: 1px solid #333; margin-top: 45px; padding-top: 5px; font-size: 9pt; color: #555; font-family: Arial, sans-serif; }
|
|
.footer { margin-top: 18px; border-top: 1px solid #ddd; padding-top: 7px; text-align: center; font-size: 8.5pt; color: #999; font-family: Arial, sans-serif; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="header-banner">
|
|
<div class="title">Captain Services Agreement</div>
|
|
<div class="sub">Independent Contractor Agreement • Private Charter • State of Florida</div>
|
|
</div>
|
|
<div class="gold-bar"></div>
|
|
|
|
<div class="doc-title">Captain Services Agreement</div>
|
|
<div class="doc-ref">
|
|
Reference: Charter Agreement No. CHR-{{ '%04d' | format(charter.id) }} •
|
|
Vessel: {{ vessel.name if vessel else 'N/A' }} •
|
|
Date: {{ charter.start_datetime.strftime('%B %d, %Y') if charter.start_datetime else '________________' }}
|
|
</div>
|
|
|
|
<div class="alert-box">
|
|
THIS AGREEMENT IS ENTERED INTO DIRECTLY BETWEEN THE CHARTERER AND THE CAPTAIN.<br>
|
|
THE VESSEL MANAGEMENT COMPANY IS NOT A PARTY TO THIS AGREEMENT<br>
|
|
AND ASSUMES NO LIABILITY WHATSOEVER UNDER THIS CONTRACT.
|
|
</div>
|
|
|
|
<!-- 1. PARTIES -->
|
|
<div class="section">
|
|
<div class="section-title">1. Parties</div>
|
|
<table>
|
|
<tr>
|
|
<th style="width:50%;">Captain (Independent Contractor)</th>
|
|
<th style="width:50%;">Client (Charterer)</th>
|
|
</tr>
|
|
<tr>
|
|
<td style="vertical-align:top;padding:8px;">
|
|
{% if captain %}
|
|
<strong>{{ captain.name }}</strong><br>
|
|
{% if captain.phone %}Phone: {{ captain.phone }}<br>{% endif %}
|
|
{% if captain.license_number %}License No.: {{ captain.license_number }}<br>{% endif %}
|
|
License Type:
|
|
{% if captain.license_type == 'six_pack' %}
|
|
<span class="license-badge badge-sixpack">USCG Six-Pack (OUPV)</span>
|
|
{% elif captain.license_type == 'master' %}
|
|
<span class="license-badge badge-master">USCG Master 50/100 Ton</span>
|
|
{% else %}
|
|
<span class="license-badge badge-private">Private Captain</span>
|
|
{% endif %}
|
|
{% else %}
|
|
<span style="color:#999;font-style:italic;">Captain not yet assigned</span>
|
|
{% endif %}
|
|
</td>
|
|
<td style="vertical-align:top;padding:8px;">
|
|
<strong>{{ charter.charterer_name }}</strong><br>
|
|
{% if charter.charterer_email %}Email: {{ charter.charterer_email }}<br>{% endif %}
|
|
{% if charter.charterer_phone %}Phone: {{ charter.charterer_phone }}<br>{% endif %}
|
|
ID / Passport No.: _______________________
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- 2. VESSEL & SERVICE DETAILS -->
|
|
<div class="section">
|
|
<div class="section-title">2. Vessel and Service Details</div>
|
|
<table>
|
|
<tr>
|
|
<th>Vessel</th><th>Date</th><th>Departure</th><th>Return</th><th>Duration</th><th>Departure Port</th>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>{{ vessel.name if vessel else '—' }}</strong><br>
|
|
<span style="font-size:9pt;color:#777;">{{ ((vessel.make or '') ~ ' ' ~ (vessel.model or '')) | trim if vessel else '' }}</span>
|
|
</td>
|
|
<td>{{ charter.start_datetime.strftime('%B %d, %Y') if charter.start_datetime else '—' }}</td>
|
|
<td><strong>{{ charter.start_datetime.strftime('%I:%M %p') if charter.start_datetime else '—' }}</strong></td>
|
|
<td><strong>{{ end_dt.strftime('%I:%M %p') if end_dt else '—' }}</strong></td>
|
|
<td>{{ charter.hours | string ~ ' hr' ~ ('s' if charter.hours != 1 else '') if charter.hours else '—' }}</td>
|
|
<td>___________________</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- 3. CAPTAIN'S FEE -->
|
|
<div class="section">
|
|
<div class="section-title">3. Captain's Fee</div>
|
|
<table>
|
|
<tr><th style="width:65%;">Description</th><th style="width:35%;text-align:right;">Amount (USD)</th></tr>
|
|
{% if captain and captain.hourly_rate and charter.hours %}
|
|
<tr>
|
|
<td>Captain's hourly rate: ${{ '%.2f' | format(captain.hourly_rate) }}/hr × {{ charter.hours }} hr{{ 's' if charter.hours != 1 else '' }}</td>
|
|
<td style="text-align:right;">${{ '%.2f' | format(captain.hourly_rate * charter.hours) }}</td>
|
|
</tr>
|
|
<tr class="total-row">
|
|
<td>TOTAL CAPTAIN'S FEE</td>
|
|
<td style="text-align:right;">${{ '%.2f' | format(captain.hourly_rate * charter.hours) }}</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr>
|
|
<td>Fee agreed upon between the parties</td>
|
|
<td style="text-align:right;">$_____________________</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
<div style="font-size:9pt;color:#777;margin-top:5px;">
|
|
All amounts in U.S. Dollars. Payment is due directly from Charterer to Captain.
|
|
The vessel management company has no involvement in this payment.
|
|
Gratuity, if any, is at the sole discretion of the Charterer and is not included above.
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 4. CAPTAIN'S RESPONSIBILITIES -->
|
|
<div class="section">
|
|
<div class="section-title">4. Captain's Responsibilities</div>
|
|
<div class="clause">
|
|
<span class="clause-num">4.1 SAFE OPERATION.</span>
|
|
The Captain shall operate the vessel in a safe and seamanlike manner at all times, in compliance with all applicable federal, state, and local maritime laws and U.S. Coast Guard regulations.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">4.2 PASSENGER CAPACITY.</span>
|
|
The vessel's maximum rated capacity per its official documentation is
|
|
<strong>{{ vessel.max_passengers if vessel and vessel.max_passengers else '___' }} persons total</strong>
|
|
(including captain). The Captain shall ensure that the number of passengers does not exceed
|
|
<strong>{{ (vessel.max_passengers - 1) if vessel and vessel.max_passengers else '___' }} persons</strong>
|
|
at any time. The Captain is solely responsible for enforcing this limit before departure and during the voyage.
|
|
Exceeding the rated capacity is a federal violation and voids the insurance rider.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">4.3 WEATHER AUTHORITY.</span>
|
|
The Captain has sole and final authority to cancel or terminate the voyage at any time if, in the Captain's professional judgment, weather or sea conditions pose an unacceptable risk to the safety of passengers, crew, or the vessel.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">4.4 INCIDENT REPORTING.</span>
|
|
The Captain shall promptly report any accident, injury, damage to the vessel, or contact with another vessel or object to the vessel owner's management company and, if required by law, to the U.S. Coast Guard.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">4.5 PRIVATE USE ENFORCEMENT.</span>
|
|
The Captain acknowledges that this charter is for private recreational use only and shall not knowingly permit any commercial activity aboard the vessel.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">4.6 SOBRIETY.</span>
|
|
The Captain shall not operate the vessel under the influence of alcohol or any controlled substance. The Captain may refuse to depart or may return to port if any passenger's behavior poses a safety risk.
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 5. INDEPENDENT CONTRACTOR STATUS -->
|
|
<div class="section">
|
|
<div class="section-title">5. Independent Contractor Status</div>
|
|
<div class="ic-box">
|
|
<div class="clause" style="margin-bottom:8px;">
|
|
<span class="clause-num">5.1</span>
|
|
The Captain is an <strong>independent contractor</strong> and not an employee, agent, or representative of the vessel management company or the vessel owner. Nothing in this Agreement shall be construed to create an employer-employee relationship between the Captain and any party other than as expressly stated herein.
|
|
</div>
|
|
<div class="clause" style="margin-bottom:8px;">
|
|
<span class="clause-num">5.2</span>
|
|
The Captain is solely responsible for all federal, state, and local income taxes, self-employment taxes, and any other taxes or contributions arising from compensation received under this Agreement.
|
|
</div>
|
|
<div class="clause" style="margin-bottom:0;">
|
|
<span class="clause-num">5.3</span>
|
|
The vessel management company shall have no obligation to provide workers' compensation, unemployment insurance, health insurance, or any other employee benefits to the Captain.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 6. LIABILITY & INDEMNIFICATION -->
|
|
<div class="section">
|
|
<div class="section-title">6. Liability and Indemnification</div>
|
|
<div class="clause">
|
|
<span class="clause-num">6.1</span>
|
|
The Captain shall indemnify and hold harmless the Charterer from any claims arising out of the Captain's gross negligence or willful misconduct during the performance of services under this Agreement.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">6.2</span>
|
|
The Charterer shall indemnify and hold harmless the Captain from any claims arising from the Charterer's or guests' actions, misconduct, or violation of the terms of the Charter Agreement.
|
|
</div>
|
|
<div class="clause">
|
|
<span class="clause-num">6.3</span>
|
|
<strong>The vessel management company and the vessel owner are expressly excluded from any liability arising under this Captain Services Agreement.</strong>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 7. GOVERNING LAW -->
|
|
<div class="section">
|
|
<div class="section-title">7. Governing Law</div>
|
|
<div class="clause" style="margin-bottom:0;">
|
|
This Agreement shall be governed by the laws of the State of Florida and applicable federal maritime law. Any disputes shall be resolved by binding arbitration in Miami-Dade County, Florida.
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 8. SIGNATURES -->
|
|
<div class="section" style="margin-top:20px;">
|
|
<div class="section-title">8. Signatures</div>
|
|
<p style="font-size:10pt;margin-bottom:12px;">
|
|
By signing below, both parties confirm they have read and agree to all terms of this Captain Services Agreement.
|
|
</p>
|
|
<table style="border:none;">
|
|
<tr>
|
|
<td style="width:46%;border:none;vertical-align:bottom;padding:8px 5px;">
|
|
<div style="font-size:10pt;margin-bottom:6px;"><strong>CAPTAIN (Independent Contractor)</strong></div>
|
|
<div style="font-size:10pt;color:#333;margin-bottom:4px;">{{ captain.name if captain else '______________________________' }}</div>
|
|
{% if captain and captain.license_number %}
|
|
<div style="font-size:9.5pt;color:#666;margin-bottom:4px;">License No.: {{ captain.license_number }}</div>
|
|
{% endif %}
|
|
<div style="font-size:9.5pt;color:#666;margin-bottom:40px;">Date: ___________________________</div>
|
|
<div class="sig-line">Captain's Signature</div>
|
|
</td>
|
|
<td style="width:8%;border:none;"></td>
|
|
<td style="width:46%;border:none;vertical-align:bottom;padding:8px 5px;">
|
|
<div style="font-size:10pt;margin-bottom:6px;"><strong>CHARTERER (Client)</strong></div>
|
|
<div style="font-size:10pt;color:#333;margin-bottom:4px;">{{ charter.charterer_name }}</div>
|
|
<div style="font-size:9.5pt;color:#666;margin-bottom:4px;">ID / Passport No.: _______________</div>
|
|
<div style="font-size:9.5pt;color:#666;margin-bottom:40px;">Date: ___________________________</div>
|
|
<div class="sig-line">Charterer's Signature</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="footer">
|
|
Captain Services Agreement • Ref. Charter No. CHR-{{ '%04d' | format(charter.id) }} •
|
|
{{ charter.start_datetime.strftime('%B %d, %Y') if charter.start_datetime else '' }} •
|
|
Vessel: {{ vessel.name if vessel else 'N/A' }} •
|
|
Governing Law: State of Florida
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|