Sage100/src/components/forms/ProductFamilyFormModal.jsx
2026-01-20 11:05:50 +03:00

90 lines
3.4 KiB
JavaScript

import React from 'react';
import FormModal, { FormSection, FormField, Input, Select, Textarea } from '@/components/FormModal';
import { z } from 'zod';
import { toast } from '@/components/ui/use-toast';
const ProductFamilyFormModal = ({ isOpen, onClose, initialData, onSubmit }) => {
const handleSubmit = (e) => {
e.preventDefault();
// Simulate form submission
setTimeout(() => {
if (onSubmit) {
onSubmit(initialData ? { ...initialData } : { id: Math.random() });
}
onClose();
toast({
title: initialData ? "Famille modifiée" : "Famille créée",
description: "Les informations ont été enregistrées avec succès.",
variant: "success"
});
}, 500);
};
return (
<FormModal
isOpen={isOpen}
onClose={onClose}
title={initialData ? `Modifier ${initialData.name}` : "Nouvelle famille d'articles"}
onSubmit={handleSubmit}
size="lg"
>
<FormSection title="Informations générales" description="Identification de la famille">
<FormField label="Code famille" required>
<Input defaultValue={initialData?.code} placeholder="EX: FAM-001" />
</FormField>
<FormField label="Intitulé" required>
<Input defaultValue={initialData?.name} placeholder="Ex: Ordinateurs" />
</FormField>
<FormField label="Catégorie">
<Select defaultValue={initialData?.category || 'produit'}>
<option value="produit">Produit Stocké</option>
<option value="service">Service</option>
<option value="consommable">Consommable</option>
</Select>
</FormField>
<FormField label="Couleur (Tag)">
<Select defaultValue={initialData?.color || 'bg-blue-100 text-blue-800'}>
<option value="bg-blue-100 text-blue-800">Bleu</option>
<option value="bg-green-100 text-green-800">Vert</option>
<option value="bg-purple-100 text-purple-800">Violet</option>
<option value="bg-orange-100 text-orange-800">Orange</option>
<option value="bg-gray-100 text-gray-800">Gris</option>
<option value="bg-red-100 text-red-800">Rouge</option>
</Select>
</FormField>
<FormField label="Description" fullWidth>
<Textarea rows={3} defaultValue={initialData?.description} placeholder="Description interne..." />
</FormField>
</FormSection>
<FormSection title="Règles par défaut" description="Appliquées aux nouveaux articles">
<FormField label="Taux TVA par défaut">
<Select defaultValue="20">
<option value="20">20%</option>
<option value="10">10%</option>
<option value="5.5">5.5%</option>
<option value="0">0%</option>
</Select>
</FormField>
<FormField label="Compte comptable vente">
<Input placeholder="707..." />
</FormField>
<FormField label="Compte comptable achat">
<Input placeholder="607..." />
</FormField>
<FormField label="Unité par défaut">
<Select defaultValue="pcs">
<option value="pcs">Pièce</option>
<option value="h">Heure</option>
<option value="kg">Kg</option>
<option value="l">Litre</option>
<option value="m">Mètre</option>
</Select>
</FormField>
</FormSection>
</FormModal>
);
};
export default ProductFamilyFormModal;