Files
BRISTO/resources/views/contracts/create.blade.php
jeremy bayse 89a369964d Premier commit
2026-02-09 11:27:21 +01:00

136 lines
7.0 KiB
PHP

@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card shadow-sm">
<div class="card-header bg-primary text-white">Nouveau Contrat</div>
<div class="card-body">
<form method="POST" action="{{ route('contracts.store') }}">
@csrf
<div class="mb-3">
<label for="name" class="form-label">Nom du Contrat</label>
<input type="text" class="form-control" id="name" name="name" required placeholder="ex: Maintenance Serveurs">
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="provider" class="form-label">Fournisseur</label>
<input type="text" class="form-control" id="provider" name="provider" required>
</div>
<div class="col-md-6">
<label for="municipality_id" class="form-label">Commune Affectée</label>
<select class="form-select" id="municipality_id" name="municipality_id">
<option value="">Global / Agglomération</option>
@foreach($municipalities as $municipality)
<option value="{{ $municipality->id }}">{{ $municipality->name }} ({{ $municipality->zip_code }})</option>
@endforeach
</select>
</div>
</div>
<div class="mb-3">
<label for="reference" class="form-label">Référence</label>
<input type="text" class="form-control" id="reference" name="reference">
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="start_date" class="form-label">Date Début</label>
<input type="date" class="form-control" id="start_date" name="start_date" required>
</div>
<div class="col-md-6">
<label for="end_date" class="form-label">Date Fin (Optionnel)</label>
<input type="date" class="form-control" id="end_date" name="end_date">
</div>
</div>
<div class="row mb-3">
<div class="col-md-6">
<label for="amount" class="form-label">Montant ()</label>
<input type="number" step="0.01" class="form-control" id="amount" name="amount">
</div>
<div class="col-md-6">
<label for="type" class="form-label">Type</label>
<select class="form-select" id="type" name="type" required>
<option value="microsoft_365">Microsoft 365</option>
<option value="fiber">Fibre / Internet</option>
<option value="domain">Nom de Domaine</option>
<option value="software">Logiciel / Licence</option>
<option value="hardware">Matériel</option>
<option value="consulting">Prestation Intellectuelle</option>
<option value="other">Autre</option>
</select>
</div>
</div>
<div id="m365-fields" class="mb-3 p-3 bg-light border rounded" style="display: none;">
<h6>Détails Microsoft 365</h6>
<div class="row">
<div class="col-md-6">
<label class="form-label">Niveau de Licence</label>
<select class="form-select" name="meta[m365_license_level]">
<option value="">Sélectionner...</option>
@foreach($licenseLevels as $level)
<option value="{{ $level->name }}">{{ $level->name }}</option>
@endforeach
</select>
</div>
<div class="col-md-6">
<label class="form-label">Nombre de Licences</label>
<input type="number" class="form-control" name="meta[m365_quantity]" placeholder="ex: 10">
</div>
</div>
</div>
<div class="mb-3">
<label for="notes" class="form-label">Notes</label>
<textarea class="form-control" id="notes" name="notes" rows="3"></textarea>
</div>
<hr>
<h5>Méta-données supplémentaires</h5>
<div id="meta-fields">
<div class="row mb-2">
<div class="col-md-5">
<input type="text" class="form-control" name="meta[key1]" placeholder="Clé (ex: Débit)">
</div>
<div class="col-md-5">
<input type="text" class="form-control" name="meta[value1]" placeholder="Valeur (ex: 1Gbps)">
</div>
</div>
</div>
<div class="d-grid gap-2 mt-4">
<button type="submit" class="btn btn-primary">Créer le Contrat</button>
<a href="{{ route('contracts.index') }}" class="btn btn-link text-muted">Annuler</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const typeSelect = document.getElementById('type');
const m365Fields = document.getElementById('m365-fields');
function toggleFields() {
if (typeSelect.value === 'microsoft_365') {
m365Fields.style.display = 'block';
} else {
m365Fields.style.display = 'none';
}
}
typeSelect.addEventListener('change', toggleFields);
toggleFields(); // Initial check
});
</script>
@endsection