mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-13 18:28:38 +02:00
Add quality control process for supplier deliveries
Introduce a new 'requires_control' flag for suppliers, enabling a quality control workflow for deliveries. This includes UI updates, database schema changes, and API endpoints to manage and track control validation. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/e7P7sOc
This commit is contained in:
1 parent
b643ea5fa8
commit
a2ab38a412
7 files changed
+97
-6
No files matched your search
@@ -1655,6 +1655,40 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
||||
}
|
||||
});
|
||||
|
||||
// Marquer le contrôle d'une livraison comme effectué
|
||||
app.put('/api/deliveries/:id/control', isAuthenticated, async (req: any, res) => {
|
||||
try {
|
||||
const user = await storage.getUserWithGroups(req.user.claims ? req.user.claims.sub : req.user.id);
|
||||
if (!user) {
|
||||
return res.status(404).json({ message: "User not found" });
|
||||
}
|
||||
|
||||
const id = parseInt(req.params.id);
|
||||
if (isNaN(id)) {
|
||||
return res.status(400).json({ message: "Invalid delivery ID" });
|
||||
}
|
||||
|
||||
// Vérifier que la livraison existe
|
||||
const delivery = await storage.getDeliveryById(id);
|
||||
if (!delivery) {
|
||||
return res.status(404).json({ message: "Delivery not found" });
|
||||
}
|
||||
|
||||
// Vérifier les permissions
|
||||
if (!hasPermission(user.role, 'deliveries', 'edit')) {
|
||||
return res.status(403).json({ message: "Insufficient permissions" });
|
||||
}
|
||||
|
||||
// Mettre à jour le contrôle
|
||||
await storage.markDeliveryControlValidated(id, user.id);
|
||||
|
||||
res.json({ message: "Delivery control validated successfully" });
|
||||
} catch (error) {
|
||||
console.error("Error validating delivery control:", error);
|
||||
res.status(500).json({ message: "Failed to validate delivery control" });
|
||||
}
|
||||
});
|
||||
|
||||
// Route pour diagnostiquer le cache des livraisons
|
||||
app.get('/api/cache/diagnosis', isAuthenticated, async (req: any, res) => {
|
||||
try {
|
||||
|
||||
@@ -1165,6 +1165,15 @@ export class DatabaseStorage implements IStorage {
|
||||
await db.update(deliveries).set(updateData).where(eq(deliveries.id, id));
|
||||
}
|
||||
|
||||
async markDeliveryControlValidated(id: number, userId: string): Promise<void> {
|
||||
await db.update(deliveries).set({
|
||||
controlValidated: true,
|
||||
controlValidatedBy: userId,
|
||||
controlValidatedAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
}).where(eq(deliveries.id, id));
|
||||
}
|
||||
|
||||
// User-Group operations
|
||||
async getUserGroups(userId: string): Promise<UserGroup[]> {
|
||||
return await db.select().from(userGroups).where(eq(userGroups.userId, userId));
|
||||
|
||||
Reference in new issue
Block a user