Actualités comptables
Constructeurs : attention aux travaux non chiffrés ou mal chiffrés dans un CCMI !

Constructeurs : attention aux travaux non chiffrés ou mal chiffrés dans un CCMI !

Publiée le lundi 24 octobre 2022 à 05h46 dans Actu Juridique

Deux personnes passent un contrat de construction de maison individuelle (CCMI) avec un constructeur, lui précisant qu’ils se réserveront certains travaux de plus ou moins grande ampleur : peintures intérieures, clôtures, portail et places de stationnement. Ces travaux doivent-ils, en tout état de cause, être chiffrés par le constructeur ? Réponse du juge.


CCMI : attention au chiffrage des travaux

Deux personnes concluent un contrat de construction d’une maison individuelle (CCMI) avec fourniture de plan avec un constructeur. Des réserves sont émises à la réception mais… aucun correctif n’est apporté par le constructeur, ce qui incite les maîtres de l’ouvrage (donc les propriétaires) à demander au juge de l’y contraindre.

Ils en profitent également pour demander le remboursement de travaux mal chiffrés, voire non chiffrés, par le constructeur dans la notice descriptive, qu’ils avaient prévu de faire eux-mêmes.

« Pas de remboursement ! », répond le constructeur, qui rappelle que :

  • les travaux de peintures intérieures en question ne sont pas indispensables à l’utilisation de la maison ;
  • seuls les éléments présents dans la notice descriptive du contrat entrent dans le champ des travaux contractuels. Or, ici, le coût des clôtures, du portail et des places de stationnement était mentionné les plans… qui indiquaient également que ces travaux restaient à la charge des clients !

Ce qui n’est pas l’avis du juge, qui rappelle à son tour que le maître de l’ouvrage doit être exactement informé du coût total de la construction projetée pour lui éviter de s’engager dans une opération qu’il ne pourra mener à son terme !

La loi prévoit, en effet, que tous les travaux prévus par le contrat de construction doivent être chiffrés, même si le maître de l’ouvrage s’en réserve l’exécution et même s’ils ne sont pas indispensables à l’implantation de la maison ou à son utilisation.

Par conséquent, faute d’avoir été suffisamment précis dans le contrat, la peinture, le portail, les clôtures et les places de stationnement sont donc mis à la charge du constructeur !

Source : Arrêt de la Cour de cassation, 3e chambre civile, du 12 octobre 2022, no 21-12507

CCMI : mieux vaut plus chiffrer que pas assez ! © Copyright WebLex - 2022

Plan d'accès

Plus d’informations ?

Sotorec

  • Sotorec
    267 bd. du Docteur Charles Barnier
    83000 Toulon
  • 04 94 09 17 02
  • +33494895133

Vous avez des questions ?

loader

Chargement, veuillez patienter…
  • Mémoire utilisée par PHP : 2,94 Mo
  • Pic mémoire allouée par PHP : 4,10 Mo
  • Temps d'execution du script : 0.388 s
  • Lang :
  • Path : actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi
  • Route : newsItem
  • $okt->page->module : news
  • $okt->page->action : item
ID Query Time
1
SET NAMES utf8mb4
0.00018
2
SELECT u.*, g.*, o.logged, o.csrf_token, o.prev_url FROM
oktopusV1_core_users AS u INNER JOIN
oktopusV1_core_users_groups AS g ON g.group_id=u.group_id
LEFT JOIN oktopusV1_core_users_online AS o ON
o.ident='3.215.16.238' WHERE u.id=1
0.00073
3
UPDATE oktopusV1_core_users_online SET logged=1716571418,
prev_url='https://www.sotorec-experts-comptables.com/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi'
WHERE ident='3.215.16.238'
0.00025
4
UPDATE oktopusV1_mod_news SET active = 1
                           WHERE active = 3 AND NOW() >
created_at 
0.00044
5
UPDATE oktopusV1_mod_news SET active = 0
                              WHERE active = 1 AND end_at !=
"0000-00-00 00:00:00" 
                              AND NOW() > end_at 
0.01681
6
SELECT r.*, rl.*, COUNT(p.id) AS num_posts FROM
oktopusV1_mod_news_categories AS r LEFT JOIN
oktopusV1_mod_news_categories_locales AS rl ON
r.id=rl.category_id LEFT JOIN oktopusV1_mod_news AS p ON
r.id=p.category_id WHERE 1 AND rl.language='fr'  GROUP BY
r.id ORDER BY nleft asc 
0.02579
7
SELECT p.id, p.user_id, p.category_id, p.active, p.selected,
p.created_at, p.updated_at, p.end_at, p.images, p.files,
p.tpl, p.visit, pl.language, pl.title, pl.subtitle,
pl.title_tag, pl.title_seo, pl.slug, pl.content,
pl.content_short, pl.meta_description, pl.meta_keywords,
pl.words, u.username, u.lastname, u.firstname, rl.title AS
category_title, rl.slug AS category_slug, r.items_tpl AS
category_items_tpl FROM oktopusV1_mod_news AS p  LEFT OUTER
JOIN oktopusV1_core_users AS u ON u.id=p.user_id  INNER JOIN
oktopusV1_mod_news_locales AS pl ON p.id=pl.post_id AND
pl.language='fr'  LEFT OUTER JOIN
oktopusV1_mod_news_categories AS r ON r.id=p.category_id 
LEFT OUTER JOIN oktopusV1_mod_news_categories_locales AS rl
ON r.id=rl.category_id AND rl.language='fr' WHERE 1  AND
pl.language='fr'  AND
pl.slug='constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi'
ORDER BY p.selected DESC, p.created_at DESC 
0.00149
8
SELECT f.id, f.user_id, f.active, f.token, f.created_at,
f.updated_at, f.tpl, f.config_general, f.config_style,
f.config_date,
                              fl.language, fl.title,
fl.title_tag, fl.title_seo, fl.slug, fl.meta_description,
fl.meta_keywords, fl.beforedate, fl.afterdate FROM
oktopusV1_mod_facebook AS f  INNER JOIN
oktopusV1_mod_facebook_locales AS fl ON f.id=fl.id_facebook
AND fl.language='fr' WHERE 1  AND fl.language='fr' AND
f.active=1 ORDER BY f.created_at DESC 
0.00029
9
SELECT r.*, rl.*, COUNT(p.id) AS num_items FROM
oktopusV1_mod_galleries AS r LEFT JOIN
oktopusV1_mod_galleries_locales AS rl ON r.id=rl.gallery_id
LEFT JOIN oktopusV1_mod_galleries_items AS p ON
r.id=p.gallery_id WHERE 1 AND rl.language='fr' AND
r.active=1  GROUP BY r.id ORDER BY nleft asc 
0.00023
10
SELECT m.*, 
                              ml.language, ml.title,
ml.title_tag, ml.title_seo, ml.slug, ml.meta_description,
ml.meta_keywords, ml.content FROM oktopusV1_mod_map AS m 
LEFT JOIN oktopusV1_mod_map_locales AS ml ON m.id=ml.id_map
AND ml.language='fr' WHERE 1  AND ml.language='fr' AND
m.active=1 ORDER BY m.created_at DESC 
0.00025
11
SELECT p.id, p.user_id, p.category_id, p.active,
p.created_at, p.updated_at, p.images, p.files, p.tpl,
p.position, pl.language, pl.title, pl.subtitle,
pl.title_tag, pl.title_seo, pl.slug, pl.content,
pl.meta_description, pl.meta_keywords, pl.words, rl.title AS
category_title, rl.slug AS category_slug, rl.title_tag AS
category_title_tag, r.items_tpl AS category_items_tpl,
p.recipients_to, p.recipients_cc, p.recipients_bcc,
p.from_to, p.captcha, p.conversion_google, p.from_copy,
pl.subject FROM oktopusV1_mod_pages AS p  INNER JOIN
oktopusV1_mod_pages_locales AS pl ON p.id=pl.page_id AND
pl.language='fr'  LEFT OUTER JOIN
oktopusV1_mod_pages_categories AS r ON r.id=p.category_id 
LEFT OUTER JOIN oktopusV1_mod_pages_categories_locales AS rl
ON r.id=rl.category_id AND rl.language='fr' WHERE 1  AND
pl.language='fr' AND p.active=1 ORDER BY p.created_at DESC 
0.00037
12
UPDATE oktopusV1_mod_news SET visit=visit+1 WHERE id=14744
0.00080
13
SELECT t.active, t.ord, t.id, t.parent_id, t.nleft,
t.nright, t.level, l.title, l.title_tag, l.title_seo,
l.slug, l.content, l.meta_description, l.meta_keywords FROM
oktopusV1_mod_news_categories AS t JOIN
oktopusV1_mod_news_categories_locales AS l ON t.id =
l.category_id AND l.language = "fr" WHERE t.id = 3
0.00020
14
SELECT t.active, t.ord, t.id, t.parent_id, t.nleft,
t.nright, t.level, l.title, l.title_tag, l.title_seo,
l.slug, l.content, l.meta_description, l.meta_keywords FROM
oktopusV1_mod_news_categories AS t JOIN
oktopusV1_mod_news_categories_locales AS l ON t.id =
l.category_id AND l.language = "fr" WHERE nleft <= 2 AND
nright >= 3 ORDER BY level
0.00018
15
 SELECT t.*,
                            DATE_FORMAT(t.date_creation,
'%d/%m/%Y %H:%i:%s') as date_creation_fr,
                            DATE_FORMAT(t.date_modification,
'%d/%m/%Y %H:%i:%s') as date_modification_fr
                       FROM oktopusV1_mod_slideshow_type t
                       WHERE 1 AND CASE 
                                       WHEN t.choix_rubrique
= 1 THEN
                                           t.rubrique LIKE
'%\'/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi\'%'
                                       WHEN t.choix_rubrique
= 2 THEN
                                          
                   (  SELECT COUNT(t.id_type) FROM
oktopusV1_mod_slideshow_type t
                      WHERE t.choix_rubrique = 1 AND
t.rubrique LIKE
'%\'/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi\'%'
AND t.actif = 1
                   ) = 0
                
                                           AND
                                           t.rubrique NOT
LIKE
'%\'/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi\'%'
                                       ELSE     
                                          
                   (  SELECT COUNT(t.id_type) FROM
oktopusV1_mod_slideshow_type t
                      WHERE t.choix_rubrique = 1 AND
t.rubrique LIKE
'%\'/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi\'%'
AND t.actif = 1
                   ) = 0
                 
                                   END AND actif = '1' ORDER
BY nom 
0.00078
16
SELECT m.*, 
                              ml.language, ml.title,
ml.title_tag, ml.title_seo, ml.slug, ml.meta_description,
ml.meta_keywords, ml.content FROM oktopusV1_mod_map AS m 
LEFT JOIN oktopusV1_mod_map_locales AS ml ON m.id=ml.id_map
AND ml.language='fr' WHERE 1  AND m.id = 2  AND
ml.language='fr' AND m.active=1 ORDER BY m.created_at DESC 
0.00022
17
SELECT f.id, f.active, f.type, f.category, f.ord, f.html_id,
f.colonne, f.picto, f.options, f.info_personnelle, fl.title,
fl.legend, fl.description, fl.value FROM
oktopusV1_mod_contact_fields f LEFT JOIN
oktopusV1_mod_contact_fields_locales AS fl ON
fl.field_id=f.id AND fl.category=f.category WHERE 1  AND
f.active>0  AND f.category = "insert" AND fl.language='fr'
ORDER BY ord ASC 
0.00022
18
SELECT p.*, pl.*,
                         DATE_FORMAT(p.debut, '%d/%m/%Y') as
debut_fr,
                         DATE_FORMAT(p.fin, '%d/%m/%Y') as
fin_fr,
                         DATE_FORMAT(p.date_creation,
'%d/%m/%Y %H:%i:%s') as date_creation_fr,
                         DATE_FORMAT(p.date_modification,
'%d/%m/%Y %H:%i:%s') as date_modification_fr
                      FROM oktopusV1_mod_home_popup p
                      LEFT JOIN
oktopusV1_mod_home_popup_locales pl ON pl.id_popup =
p.id_popup AND pl.language = 'fr'
                      WHERE 1 AND (
                                        CURDATE() BETWEEN
p.debut AND p.fin
                                        OR (p.debut =
'0000-00-00 00:00:00' AND p.fin = '0000-00-00 00:00:00')
                                    )AND pl.content <> ''
AND (p.rubrique = '' OR p.rubrique LIKE
'%\'/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi\'%')
ORDER BY p.rubrique DESC
0.00088
19
SELECT p.*, pl.*,
                         DATE_FORMAT(p.debut, '%d/%m/%Y') as
debut_fr,
                         DATE_FORMAT(p.fin, '%d/%m/%Y') as
fin_fr,
                         DATE_FORMAT(p.date_creation,
'%d/%m/%Y %H:%i:%s') as date_creation_fr,
                         DATE_FORMAT(p.date_modification,
'%d/%m/%Y %H:%i:%s') as date_modification_fr
                      FROM oktopusV1_mod_home_popup p
                      LEFT JOIN
oktopusV1_mod_home_popup_locales pl ON pl.id_popup =
p.id_popup AND pl.language = 'fr'
                      WHERE 1 AND (
                                        CURDATE() BETWEEN
p.debut AND p.fin
                                        OR (p.debut =
'0000-00-00 00:00:00' AND p.fin = '0000-00-00 00:00:00')
                                    )AND pl.content <> ''
AND (p.rubrique = '' OR p.rubrique LIKE
'%\'/actualite-constructeurs-attention-aux-travaux-non-chiffres-ou-mal-chiffres-dans-un-ccmi\'%')
ORDER BY p.rubrique DESC
0.00084
# type fichier ligne classe fonction message
# 1  Warning /www/al159/www/oktModules/map/inc/class.map.recordset.php 579 oktDebug errorHandler Trying to access array offset on value of type null

#0 mapRecordset->getEmbedAddress( called at [/oktModules/map/inc/class.map.recordset.php:96]


#1 mapRecordset->getScriptSimple( called at [/oktModules/map/inc/class.map.recordset.php:79]


#2 mapRecordset->getScript( called at [/oktThemes/default/templates/map/insert/r-horizontal/template.php:31]


#3 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#4 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#5 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#6 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateRenderer.php:45]


#7 sfTemplateRenderer->__call( called at [/oktThemes/ra157-s/templates/layout.php:132]


#8 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#9 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#10 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#11 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:117]


#12 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#13 oktTemplating->render( called at [/oktModules/news/inc/class.news.controller.php:459]


#14 newsController->newsItem( called at [/oktInc/classes/router/class.oktRouter.php:317]


#15 oktRouter->callRouteHanlder( called at [/oktopus.php:58]

# 2  Warning /www/al159/www/oktModules/map/inc/class.map.recordset.php 579 oktDebug errorHandler Trying to access array offset on value of type null

#0 mapRecordset->getEmbedAddress( called at [/oktModules/map/inc/class.map.recordset.php:96]


#1 mapRecordset->getScriptSimple( called at [/oktModules/map/inc/class.map.recordset.php:79]


#2 mapRecordset->getScript( called at [/oktThemes/default/templates/map/insert/r-horizontal/template.php:31]


#3 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#4 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#5 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#6 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateRenderer.php:45]


#7 sfTemplateRenderer->__call( called at [/oktThemes/ra157-s/templates/layout.php:132]


#8 require( called at [/oktInc/vendor/sfTemplating/sfTemplateRendererPhp.php:36]


#9 sfTemplateRendererPhp->evaluate( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:106]


#10 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#11 oktTemplating->render( called at [/oktInc/vendor/sfTemplating/sfTemplateEngine.php:117]


#12 sfTemplateEngine->render( called at [/oktInc/classes/core/class.oktTemplating.php:60]


#13 oktTemplating->render( called at [/oktModules/news/inc/class.news.controller.php:459]


#14 newsController->newsItem( called at [/oktInc/classes/router/class.oktRouter.php:317]


#15 oktRouter->callRouteHanlder( called at [/oktopus.php:58]