Bonjour à tous

Je travaille depuis presque 1 ans sur une futur extension pour des frais de notes interne

J'ai du le remanier a plusieurs reprises

Actuellement, toutes mes frais avec journéees supplementaire fonctionne sauf les frais de repas

Quand je declare les differents frais de repas, seul le 1 er repas si plusieurs jours st enregistrée dans la BDD , les journées supplémtaire ne sont pas prise en consideration.

Je pense que l'erreur vienne de ma boucle mais j'ai beau boucler sur une autre variable , rien n'y fais

est ce que ma BDD est mal construite ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
 foreach ($dates as $index => $dates) {
            // Récupération des valeurs pour chaque jour
 
            $date = isset($dates[$index]) ? $dates[$index] : null;
 
            $montant_repas_midi = isset($montants_repas_midi[$index]) ? $montants_repas_midi[$index] : null;
            $montant_repas_soir = isset($montants_repas_soir[$index]) ? $montants_repas_soir[$index] : null;
            $style_restauration_midi = isset($repas_midi_types[$index]) ? $repas_midi_types[$index] : null;
            $style_restauration_soir = isset($repas_soir_types[$index]) ? $repas_soir_types[$index] : null;
 
            $montant_repas_midi_ht = isset($montants_repas_midi_ht[$index]) ?  $montants_repas_midi_ht[$index] : null;
            $montant_repas_midi_5 = isset($montants_repas_midi_5[$index]) ? $montants_repas_midi_5[$index] : null;
            $montant_repas_midi_10 = isset($montants_repas_midi_10[$index]) ? $montants_repas_midi_10[$index] : null;
            $montant_repas_midi_20 = isset($montants_repas_midi_20[$index]) ? $montants_repas_midi_20[$index] : null;
 
            $montant_repas_soir_ht = isset($montants_repas_soir_ht[$index]) ?  $montants_repas_soir_ht[$index] : null;
            $montant_repas_soir_5 = isset($montants_repas_soir_5[$index]) ? $montants_repas_soir_5[$index] : null;
            $montant_repas_soir_10 = isset($montants_repas_soir_10[$index]) ? $montants_repas_soir_10[$index] : null;
            $montant_repas_soir_20 = isset($montants_repas_soir_20[$index]) ? $montants_repas_soir_20[$index] : null;
 
            // Gestion des pièces jointes pour le repas du midi
            $piece_jointe_midi = null;
            if (!empty($pieces_jointes_repas_midi['name'][$index])) {
                $_FILES['single_piece'] = [
                    'name'     => $pieces_jointes_repas_midi['name'][$index],
                    'type'     => $pieces_jointes_repas_midi['type'][$index],
                    'tmp_name' => $pieces_jointes_repas_midi['tmp_name'][$index],
                    'error'    => $pieces_jointes_repas_midi['error'][$index],
                    'size'     => $pieces_jointes_repas_midi['size'][$index],
                ];
 
                $file_path = upload_file_avec_traitements($_FILES['single_piece']);
                if (!is_wp_error($file_path)) {
                    $uploaded_file_id = media_handle_upload('single_piece', 0);
                    if (!is_wp_error($uploaded_file_id)) {
                        $piece_jointe_midi = wp_get_attachment_url($uploaded_file_id);
                    } else {
                        error_log("Erreur fichier repas midi upload : " . $uploaded_file_id->get_error_message());
                    }
                } else {
                    error_log("Erreur traitement fichier repas midi : " . $file_path->get_error_message());
                }
            }
 
            // Gestion des pièces jointes pour le repas du soir
            $piece_jointe_soir = null;
            if (!empty($pieces_jointes_repas_soir['name'][$index])) {
                $_FILES['single_piece'] = [
                    'name'     => $pieces_jointes_repas_soir['name'][$index],
                    'type'     => $pieces_jointes_repas_soir['type'][$index],
                    'tmp_name' => $pieces_jointes_repas_soir['tmp_name'][$index],
                    'error'    => $pieces_jointes_repas_soir['error'][$index],
                    'size'     => $pieces_jointes_repas_soir['size'][$index],
                ];
 
                $file_path = upload_file_avec_traitements($_FILES['single_piece']);
                if (!is_wp_error($file_path)) {
                    $uploaded_file_id = media_handle_upload('single_piece', 0);
                    if (!is_wp_error($uploaded_file_id)) {
                        $piece_jointe_soir = wp_get_attachment_url($uploaded_file_id);
                    } else {
                        error_log("Erreur fichier repas soir  upload  : " . $uploaded_file_id->get_error_message());
                    }
                } else {
                    error_log("Erreur traitement fichier repas soir : " . $file_path->get_error_message());
                }
            }
 
 
 
                $insert_data_combined = [
                    'demande_frais_id' => $demande_frais_id,
                    'date_evenement'   =>  $date,
                    'montant_repas_midi' => $montant_repas_midi,
                    'montant_repas_soir' => $montant_repas_soir,
                    'piece_jointe_repas_midi' => $piece_jointe_midi,
                    'piece_jointe_repas_soir' => $piece_jointe_soir,
                    'style_restauration_midi' => $style_restauration_midi,
                    'style_restauration_soir' => $style_restauration_soir,
                    'montant_ht_midi'=>  $montant_repas_soir_ht,
                    'tva_5_5_midi'=> $montant_repas_midi_5,
                    'tva_10_midi'=>$montant_repas_midi_10,
                    'tva_20_midi'=>$montant_repas_midi_20,
                    'montant_ht_soir'=>  $montant_repas_soir_ht,
                    'tva_5_5_soir'=> $montant_repas_soir_5,
                    'tva_10_soir'=>$montant_repas_soir_10,
                    'tva_20_soir'=>$montant_repas_soir_20,
                ];
 
                error_log("Données pour $date_evenement : " . json_encode($insert_data_combined));
 
                $has_data = 
                !empty($montant_repas_midi) || 
                !empty($montant_repas_soir) || 
                !empty($piece_jointe_midi) || 
                !empty($piece_jointe_soir) || 
                !empty($style_restauration_midi) || 
                !empty($style_restauration_soir) || 
                !empty($montant_repas_midi_ht) || 
                !empty($montant_repas_midi_5) || 
                !empty($montant_repas_midi_10) || 
                !empty($montant_repas_midi_20) || 
                !empty($montant_repas_soir_ht) || 
                !empty($montant_repas_soir_5) || 
                !empty($montant_repas_soir_10) || 
                !empty($montant_repas_soir_20);
 
                error_log(print_r($insert_data_combined, true));
 
            if ($has_data) {
                $wpdb->insert($wpdb->prefix . 'monlogiciel_repas_frais', $insert_data_combined);
            }
 
                if ($wpdb->last_error) {
                    error_log("Erreur d'insertion SQL : " . $wpdb->last_error);
                }