# -*- coding: utf-8 -*-
"""以对方合同为底本，生成《农村自建房施工合同（修订版）》docx"""
from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

BODY='宋体'; HEAD='黑体'
RED=RGBColor(0xC0,0x00,0x00); GRAY=RGBColor(0x60,0x60,0x60)
B='＿＿＿＿＿＿'
doc=Document()
sec=doc.sections[0]
sec.page_width, sec.page_height = Cm(21.0), Cm(29.7)
sec.top_margin=Cm(2.3); sec.bottom_margin=Cm(2.0); sec.left_margin=Cm(2.5); sec.right_margin=Cm(2.3)
st=doc.styles['Normal']; st.font.name=BODY; st.font.size=Pt(10.5)
st.element.rPr.rFonts.set(qn('w:eastAsia'), BODY)
st.paragraph_format.line_spacing_rule=WD_LINE_SPACING.MULTIPLE
st.paragraph_format.line_spacing=1.4; st.paragraph_format.space_after=Pt(2)

def sf(run,name=BODY,size=10.5,bold=False,color=None):
    run.font.name=name; run.font.size=Pt(size); run.bold=bold
    run._element.rPr.rFonts.set(qn('w:eastAsia'),name)
    if color: run.font.color.rgb=color

def P(text='',size=10.5,bold=False,align='left',indent=0.0,fl=0.0,font=BODY,
      sb=0,sa=2,color=None):
    p=doc.add_paragraph()
    pf=p.paragraph_format
    pf.left_indent=Cm(indent); pf.first_line_indent=Cm(fl)
    pf.space_before=Pt(sb); pf.space_after=Pt(sa)
    p.alignment={'left':WD_ALIGN_PARAGRAPH.LEFT,'center':WD_ALIGN_PARAGRAPH.CENTER,
                 'right':WD_ALIGN_PARAGRAPH.RIGHT,'just':WD_ALIGN_PARAGRAPH.JUSTIFY}[align]
    for i,seg in enumerate(text.split('**')):
        if not seg: continue
        sf(p.add_run(seg),font,size,bold or (i%2==1),color)
    return p

def TAG(t,kind):
    """修订标记"""
    p=doc.add_paragraph(); p.paragraph_format.space_before=Pt(2); p.paragraph_format.space_after=Pt(1)
    sf(p.add_run(t),HEAD,9,True,RED if kind in ('修订','新增','删除') else GRAY)
    return p

def H1(t): P(t,15,True,align='center',font=HEAD,sb=10,sa=8)
def H2(t): P(t,12,True,font=HEAD,sb=9,sa=4)
def H3(t): P(t,10.5,True,font=HEAD,sb=5,sa=2)
def HR():
    p=doc.add_paragraph(); p.paragraph_format.space_before=Pt(2); p.paragraph_format.space_after=Pt(4)
    pPr=p._p.get_or_add_pPr(); b=OxmlElement('w:pBdr'); bt=OxmlElement('w:bottom')
    bt.set(qn('w:val'),'single'); bt.set(qn('w:sz'),'6'); bt.set(qn('w:color'),'888888')
    b.append(bt); pPr.append(b)

def TBL(rows,widths=None,size=9.0,header=True):
    t=doc.add_table(rows=0,cols=len(rows[0])); t.style='Table Grid'
    t.alignment=WD_TABLE_ALIGNMENT.CENTER
    for ri,row in enumerate(rows):
        cells=t.add_row().cells
        for ci,txt in enumerate(row):
            cells[ci].text=''
            p=cells[ci].paragraphs[0]
            p.paragraph_format.space_before=Pt(1); p.paragraph_format.space_after=Pt(1)
            p.paragraph_format.line_spacing=1.12
            for i,seg in enumerate(str(txt).split('**')):
                if not seg: continue
                sf(p.add_run(seg),BODY,size,(header and ri==0) or (i%2==1))
    if widths:
        for r in t.rows:
            for ci,w in enumerate(widths): r.cells[ci].width=Cm(w)
    return t

def FOOT():
    f=doc.sections[0].footer; p=f.paragraphs[0]; p.alignment=WD_ALIGN_PARAGRAPH.CENTER
    sf(p.add_run('第 '),BODY,9)
    e=OxmlElement('w:fldSimple'); e.set(qn('w:instr'),'PAGE'); p._p.append(e)
    sf(p.add_run(' 页 / 共 '),BODY,9)
    e2=OxmlElement('w:fldSimple'); e2.set(qn('w:instr'),'NUMPAGES'); p._p.append(e2)
    sf(p.add_run(' 页'),BODY,9)
FOOT()

# ==================== 封面标题 ====================
H1('农村自建房施工合同')
P('（修订版）',11,align='center',sa=6)
P('本合同供双方确认施工范围、价款、工期、质量、安全责任及验收事项使用',10,align='center',sa=8)
P('说明：本修订版以双方此前磋商所使用的合同文本为基础，**仅就其中不合理、与法律法规不符或约定不明之处作出修改**，'
  '其余条款尽量保持原表述。文中**红色〔修订〕〔新增〕**标记仅供双方核对，正式签署时可删除。',
  9.5,align='left',color=GRAY,sa=8)

# ==================== 首部 ====================
H3('甲方（建房人）')
P('姓名：文泽志　　身份证号：51012319681216253X')
P('联系电话：13551110207　　住址：'+B)
P()
H3('乙方（承揽人）')
P('姓名：江剑凯　　身份证号：'+B+f'（乙方为建筑施工企业的，填写统一社会信用代码：{B}）')
P('联系电话：13258212263　　通讯地址：'+B)
TAG('〔新增〕乙方应属下列三类之一（勾选一项并填写证书编号）','新增')
P('☐ 农村建筑工匠　　《农村建筑工匠培训合格证书》编号：'+B,indent=0.6)
P('☐ 建造师　　　　　《建造师执业资格证书》编号：'+B,indent=0.6)
P('☐ 建筑施工企业　　企业名称：'+B+'　资质证书编号：'+B,indent=0.6)
P('　　　　　　　　　统一社会信用代码：'+B+'　法定代表人：'+B,indent=0.6)
P('依据：《四川省农村住房建设管理办法》第十四条、《成都市农村住房建设质量安全管理办法》第十条、'
  '《成都市温江区规范农村宅基地审批和住房建设管理实施细则》第二十三条。',9,color=GRAY,indent=0.6,sa=0)
P('**特别说明：本项所称"建筑施工企业资质"，指建筑业企业资质（施工总承包／专业承包／施工劳务）；'
  '工程设计资质不属于本条所指的施工资质。**乙方为设计企业的，不得作为本工程的施工承揽人。',9,color=GRAY,indent=0.6,sa=6)

P('甲方把修建私人房屋的工程承包给乙方施工，依据《中华人民共和国民法典》**《中华人民共和国建筑法》'
  '《四川省农村住房建设管理办法》《成都市农村住房建设质量安全管理办法》**等法律法规，结合本房屋修建的具体情况，'
  '为明确双方权利与义务，遵循平等、自愿、公平和诚实信用的原则，在合理合法范围内经双方协商签订如下合同：',fl=0.0)
TAG('〔修订〕原表述为"依据《中华人民共和国民法典》"，补充了本工程实际适用的上位法规（省级规章与市级办法）','修订')

HR()

# ==================== 一、工程概况 ====================
H2('一、工程概况')
P('工程地点：四川省成都市温江区**和盛镇**'+B+'村'+B+'号。')
P('建房类型：农村自建住宅（原址翻建）。')
P('建筑层数：**2** 层（两层及以下农村低层住房），另设坡屋顶；不含地下室。')
P('建筑面积：约 **277.2** 平方米，最终按双方确认的实际施工面积结算。面积计算规则按'
  '**《建筑工程建筑面积计算规范》（GB/T 50353）**执行。')
P('结构形式：**砖混**结构，以乙方提供图纸经甲方确认的图纸、施工方案或双方书面确认为准。')
TAG('〔新增〕补两项审批文号与图纸来源（开工申报必需，且影响质量责任划分）','新增')
P('乡村建设规划许可证证号：'+B+'；宅基地批准书编号：'+B+'。')
P('施工图纸来源：☐ 温江区住房和城乡建设主管部门提供的**免费通用设计图集**（图集编号：'+B+'）'
  '　☐ 甲方委托设计单位出具的施工图（设计单位：'+B+'）')
P('说明：依据《四川省农村住房建设管理办法》第十三条、《成都市农村住房建设质量安全管理办法》第七条，'
  '市、区住建主管部门应编制通用设计图集供建房人**免费选用**。',9,color=GRAY,sa=6)
TAG('〔修订〕原"工程地点：省__市/县__乡/镇__村"未约定面积计算规则，现补 GB/T 50353','修订')

# ==================== 二、承包方式 ====================
H2('二、承包方式')
P('本工程采用以下第 **1** 种方式：①**包工包料**；②包工不包料；③其他：'+B+'。（在序号上划√选定，只能选一项）')
P('乙方包工包料的，主要材料的品牌、规格、等级按本合同附件《材料清单》《主材报价单》执行。')
TAG('〔修订〕原"第__种方式"的序号栏未填写（仅手写"包工包料"），易生歧义；现明确序号并补充材料档次依据','修订')

# ==================== 三、承包范围 ====================
H2('三、承包范围')
P('乙方承包范围包括：原房屋拆除（回填所需土及建渣外运不包含）主体施工、条形基础，红砖墙体砌筑构造柱圈梁、'
  '现浇板，内外墙基础装饰、地面瓷砖铺贴等双方约定内容。')
P('内墙涂料：包含普通乳胶漆施工，颜色以甲方确认样品为准。')
P('室内瓷砖：包含普通800×800mm瓷砖铺贴，瓷砖款式、颜色由甲方在乙方提供样品中确认。')
P('外墙瓷砖：包含基础款外墙瓷砖铺贴，不包含高档砖、异形砖、文化石、真石漆、艺术涂料等升级项目。')

TAG('〔修订〕檐口——原条款自相矛盾（既限"不超过350mm"，又以"超过600mm"为增项起点，350~600mm 区间无约定）','修订')
P('檐口：常规檐口外挑尺寸**不超过 350mm**，已包含在本合同价款内；外挑尺寸在 **350mm 至 600mm** 之间的，'
  '超出 350mm 的部分按 **'+B+' 元/延米**另行计价；正面檐口外挑**超过 600mm** 的，超出部分按前述单价据实结算，'
  '并须经甲方书面同意后施工；未经甲方书面同意的，超出部分甲方不予计价。',fl=0.0)

TAG('〔修订〕基础——原"折算或另行确认"无单价、无程序；同时补充乙方的地质踏勘义务（法定义务）','修订')
P('基础：基础深度以正负零以下 **1.5m** 为标准，已包含在本合同价款内；超过 1.5m 的部分，'
  '由双方现场共同确认实际工程量并**签署书面《工程变更单》**后，按《工程变更单》约定的单价另行计价。',fl=0.0)
P('乙方应根据建房地块的地质条件，采取必要的技术选择适合修建本房屋的地基持力层，'
  '依照技术规范和设计文件要求选择地基基础形式和埋置深度，并在基槽开挖前将踏勘情况与选型依据书面告知甲方。',fl=0.0)

TAG('〔修订〕层高、顶面围墙——原条款只写"按实际增加面积/工程量测算"，无单价、无程序','修订')
P('层高：双方约定层高标准为一层 **3.6m**、二层 **3.3m**（以图纸标注为准），已包含在本合同价款内；'
  '超过上述标准部分，按双方签署的《工程变更单》约定的单价另行计价。')
P('顶面围墙：顶面围墙高度**不超过 60cm**，已包含在本合同价款内；超过 60cm 部分，'
  '按双方签署的《工程变更单》约定的单价另行计价。')
P('水电工程：本合同价款包含水电材料（日丰灰色管子、水电开槽、布管、穿线、配电箱、灯具、开关插座、'
  '给排水管道）及人工费用。其他项目如需乙方施工，双方另行签订补充协议。')

# ==================== 四、包含与不包含项目 ====================
H2('四、包含与不包含项目')
TAG('〔修订〕原条款把"包含"与"不包含"混在一句话中，"不包含部分吊顶、造型装饰"语义含混；现拆分为两张清单，内容不变','修订')
P('**（一）以下项目已包含在本合同价款内：**')
P('1. 报建手续费用、设计费（**报建由甲方以户为单位依法申请，乙方协助办理**）；',indent=0.6)
P('2. 水电工程及相关材料、人工；',indent=0.6)
P('3. 门窗、防盗入户门、室内门、栏杆、楼梯扶手；',indent=0.6)
P('4. 厨卫洁具、灯具、开关插座、厨卫吊顶、乳胶漆、瓷砖。',indent=0.6)
P('**（二）以下项目不包含在本合同价款内：**')
P('1. 部分吊顶、造型装饰；',indent=0.6)
P('2. 宅基地审批、测绘、规划审批、检测费等行政或第三方费用；',indent=0.6)
P('3. 因甲方变更设计、增加工程量、提高材料档次产生的费用。',indent=0.6)
TAG('〔修订〕解决正文与附件《费用范围》的直接冲突：附件把"外墙装饰造型、门窗、室内装修"列为"包含"，正文则列为"不包含"','修订')
P('**（三）特别确认：**本合同价款**不包含**外墙装饰造型、真石漆、艺术涂料、文化石等升级项目。'
  '原附件《费用范围》中"外墙装饰造型、门窗、室内装修｜包含"的表述，**以本条为准**。')
P('**（四）** 除本条（一）项及本合同另有约定外，乙方不得另行收费。')

# ==================== 五、价款与付款 ====================
H2('五、工程价款及付款方式')
TAG('〔新增〕原合同仅有"合同总价暂定为人民币__元"，未约定单价与计价方式，与第一条"按实际施工面积结算"无法衔接','新增')
P('5.1　计价方式与合同总价：本工程按建筑面积计价，单价人民币 '+B+' 元/平方米（大写：'+B+'）；'
  '暂定总价人民币 '+B+' 元（大写：'+B+'）。竣工结算总价按双方确认的实际施工面积计算。')
P('5.2　付款方式（每次付款以乙方完成对应节点、并经双方书面（含微信）确认为前提）：')
TBL([
 ['序号','付款节点','比例'],
 ['1','合同签订后 7 日内（备料款）','30%'],
 ['2','基础完成并经验收合格后 7 日内','20%'],
 ['3','主体封顶并经验收合格后 7 日内','25%'],
 ['4','内外墙及瓷砖、屋面防水完成并经验收合格后 7 日内','15%'],
 ['5','竣工验收合格后 7 日内','7%'],
 ['6','缺陷责任期满后 7 日内（质量保证金）','3%'],
 ['','合计','100%'],
],widths=[1.4,11.0,2.2])
P('5.3　支付方式：银行转账至乙方指定账户（户名：'+B+'　开户行：'+B+'　账号：'+B+'），以转账凭证为付款依据。')
TAG('〔修订〕原付款条款五个节点金额全部留空；现按合理进度设置并预留 3% 质量保证金'
    '（该比例与《四川省农村住房建设施工合同（示范文本）》"剩余金额（不高于合同总价款的3%）作为工程质量保修金"一致）','修订')
P('5.4　增项与变更：增减工程量、材料升级、设计变更，以及基础深度、层高、正面檐口、顶面围墙等'
  '超过本合同约定标准产生的增项费用，**须由双方共同签署书面《工程变更单》**（写明项目、工程量、单价、'
  '金额及对工期的影响）后结算；**未经双方书面签署的，任何一方均不得单方主张增项费用**。')
TAG('〔修订〕保留原条款"须经双方书面或现场签字确认后结算"的双方确认原则，将"现场签字"明确为书面《工程变更单》，'
    '并补入"双方均不得单方主张"，做到对等','修订')

# ==================== 六、工期 ====================
H2('六、工期')
P('开工日期：'+B+' 年 '+B+' 月 '+B+' 日。')
P('竣工日期：'+B+' 年 '+B+' 月 '+B+' 日。总工期 '+B+' 个日历天。')
TAG('〔修订〕原顺延条款把"材料供应延误"列为顺延事由，而包工包料下材料由乙方采购，等于乙方可自行制造顺延事由；'
    '同时原条款未设程序、也未规定甲方原因停工时乙方的索赔权，对双方均不公平','修订')
P('6.1　因下列**非乙方原因**导致停工，工期相应顺延：')
for s in ['① 不可抗力；','② 气象部门发布暴雨、大风、高温等预警信号，且实际连续影响施工超过 8 小时；',
          '③ 停电、停水致停工；','④ 政府政策检查、行政指令致停工；','⑤ 甲方未按约付款；',
          '⑥ 甲方变更设计；','⑦ 甲方负责供应的材料未及时到场（限包工不包料情形）。']:
    P(s,indent=0.6,size=10)
P('6.2　**顺延程序**：顺延事由发生后 **3 日**内，受影响一方应书面向对方提出并附证明材料，'
  '经对方书面确认后方可顺延；逾期未提出的，视为不顺延。')
P('6.3　**因乙方自身原因（含材料采购与供应延误、施工人员组织不力、乙方资金不到位）导致的停工，'
  '不属于顺延事由**，由乙方承担相应责任。')
P('6.4　**因甲方原因导致停工连续超过 15 日的，乙方有权要求顺延工期，并有权就停工损失向甲方主张赔偿。**')
P('6.5　因不可抗力持续超过 60 日致合同无法履行的，任何一方均有权解除合同，双方按已完成工程量结算。')

# ==================== 七、质量要求 ====================
H2('七、质量要求')
P('1：根据甲方需求设计户型图纸施工。施工过程发现图纸有不合理部分应及时与甲方沟通，在取得甲方同意后再施工。')
TAG('〔修订〕原"柱、梁、墙角误差不超过3cm"（30mm）约为国家规范允许偏差的 3 倍，等于把不合格工程预先认定为合格，'
    '且低于国家标准（《成都市农村住房建设质量安全管理办法》第八条要求满足国家、省、市技术规范和标准）','修订')
P('2：主体结构建好后的房屋墙面应平整，墙壁无空鼓、无裂痕、无渗水；**柱、梁、墙面的轴线位置、垂直度、'
  '表面平整度等允许偏差，按 GB 50204《混凝土结构工程施工质量验收规范》、'
  'GB 50203《砌体结构工程施工质量验收规范》规定的允许偏差执行**。')
P('3：钢筋制作符合规范，钢筋、混凝土按合同标准用料。')
P('4：墙体砌24厘米红砖实心墙，卫生间隔墙砌18厘米红砖实心墙。')
TAG('〔修订〕原"主体质保30年，因地质沉降…与乙方无关"存在两处问题：①"30年"无依据且与第十条自相矛盾；'
    '②把"地质沉降"（多因基础施工不到位）与滑坡、泥石流并列免责，与四份法规规定的承揽人地质踏勘义务冲突。'
    '现改为按过错划分责任、不可抗力双向免责','修订')
P('5：保修期按国家规定执行，具体见本合同第十条。**因乙方未按技术规范履行地质踏勘、地基基础选型与施工义务，'
  '导致房屋不均匀沉降、墙体开裂的，由乙方负责修复并赔偿损失**；因地震、滑坡、泥石流等不可抗力造成的问题，'
  '双方按不可抗力处理；因甲方使用不当或第三方原因造成的，由相应责任方承担。')

# ==================== 八、安全责任 ====================
H2('八、安全责任（甲乙双方责任）')
P('**甲方责任**')
P('1：负责调解影响正常施工和材料运输遇到的人为纠纷问题。')
P('2：随时与乙方保持通讯畅通，及时在自建房管理软件上验收，对有异议的地方及时提出整改意见。'
  '在施工过程乙方发现有不合理部分应及时与甲方沟通确定方案。')
P('3：地基平整，保障水、电、路通。')
P('4：按照合同约定的付款方式支付款项。')
P('**乙方责任**')
P('1：按施工进度及时准备建房所需的建材，组织工人按时进场施工。')
P('2：安排施工人员的生活。')
TAG('〔新增〕原条款"非乙方的施工人员所发生的事故责任与乙方无关"，在乙方转包或分包时会使责任落空'
    '（实际施工人受伤时，房主可能承担选任过失责任）；现补投保要求与禁止转包条款，同时第三人损害改按原因归属，对双方对等','新增')
P('3：施工期间应做好安全措施，组织工人安全施工，**由乙方为全部施工人员购买建筑意外伤害保险**'
  '（每人保额不低于人民币 '+B+' 万元），并在开工前将保单复印件交甲方备存；乙方工人安全由乙方负责。')
P('4：**乙方不得将本工程转包或分包**；确需分包的，须经甲方书面同意，并由乙方对分包方及其人员的行为与安全'
  '承担连带责任。')
P('5：因一方原因造成**第三人**（含相邻房屋、村道、公共管线等）人身或财产损害的，由该方承担赔偿责任；'
  '因乙方施工造成损害的，由乙方承担，甲方因此被追责或索赔的，乙方应予赔偿。')
P('6：乙方及其人员的工资、劳保由乙方自行解决；因乙方拖欠工资致其人员向甲方主张权利的，由乙方承担责任。')

# ==================== 九、验收 ====================
H2('九、验收')
P('工程完成后，乙方通知甲方验收。甲方应在接到通知后 **7** 日内组织验收。')
TAG('〔修订〕原"逾期未验收且实际使用房屋的，视为验收合格"一律推定合格，剥夺甲方质量异议权，对甲方显失公平；'
    '但完全不设期限对乙方也不公平。现设催告程序＋结构性问题 2 年异议期，双向平衡','修订')
P('9.1　甲方逾期未组织验收的，乙方可书面催告；经催告后 7 日内甲方仍不组织验收、且**无正当理由**的，'
  '视为验收合格。但**涉及地基基础、主体结构、屋面防水等结构性或隐蔽性质量问题的，'
  '甲方仍有权自竣工验收合格之日起 2 年内提出异议**，乙方应负责修复。')
TAG('〔新增〕隐蔽工程与关键环节验收（省办法第十六条、市质量安全办法第十四条、温江区细则第二十七条的强制要求）','新增')
P('9.2　下列工序在覆盖或浇筑前，乙方应提前 **24 小时**书面通知甲方查验：'
  '**开挖验槽、地基基础、钢筋绑扎、构造柱、圈梁、屋面、主体结构**及管线预埋、防水层施工前及闭水试验。'
  '查验合格并经双方签字、拍照留证后方可进行下一步工序。')
P('未经甲方查验即覆盖的，甲方有权要求剥离复验，**费用由责任方承担**；甲方接到通知后未按时到场查验的，'
  '乙方可自行查验并留存影像资料，甲方事后不得以此拒绝确认。',indent=0.6,size=10)
P('镇人民政府（街道办事处）依规定到场进行的**验槽、建筑基础施工、主体施工**三个关键环节检查，'
  '双方均应配合；检查发现的问题整改合格后方可继续施工。',indent=0.6,size=10)
P('9.3　验收发现问题的，乙方应在双方书面确认之日起 **15** 日内维修整改并报甲方复验。')
TAG('〔修订〕原"验收发现问题的，乙方应在约定期限内维修整改"中"约定期限"从未约定，现明确为 15 日','修订')

# ==================== 十、质保 ====================
H2('十、质保')
TAG('〔修订〕原第十条"主体结构质量保修按法律及当地规定执行"＋"装饰装修工程质保期为__个月"（空白），'
    '与第七条 5"主体质保30年"自相矛盾；现统一按国家规定列明（亦符合《成都市农村住房建设质量安全管理办法》'
    '第十一条"承揽人应当执行国家住宅建筑保修期限的相关规定"）','修订')
P('10.1　**保修期（自竣工验收合格之日起计算）：**')
TBL([
 ['保修项目','保修期'],
 ['地基基础工程和主体结构工程','设计文件规定的该工程合理使用年限'],
 ['屋面防水工程、有防水要求的卫生间、外墙面的防渗漏','5 年'],
 ['装饰装修工程','2 年'],
 ['电气管线、给排水管道、设备安装','2 年'],
],widths=[8.5,6.0])
P()
P('10.2　**保修响应**：保修期内出现质量缺陷，甲方通知乙方后，乙方应在 **48 小时**内到场、**7 日**内修复完毕'
  '（重大质量问题可另行约定期限）。乙方逾期不处理的，甲方有权另请第三方维修整改，'
  '费用从质量保证金中扣除，不足部分由乙方补足。')
P('10.3　因甲方使用不当、第三方施工破坏、甲方自行改动造成的问题，不属于乙方保修范围。')

# ==================== 十一、违约责任 ====================
H2('十一、违约责任')
TAG('〔修订〕原条款两个违约金比例全部空白，且甲方按"应付款"、乙方按"合同总价"，基数不同、均无上限；'
    '更重要的是原文只规定了乙方在甲方逾期付款时的解除权，完全没有甲方解除权。现作对等化修订','修订')
P('11.1　甲方未按约定期限和金额付款的，每逾期一日按**逾期金额的 0.05%**（万分之五）向乙方支付违约金；'
  '逾期超过 **30** 日的，乙方有权暂停施工，工期相应顺延；逾期超过 **60** 日的，乙方有权解除合同。')
P('11.2　乙方无正当理由逾期竣工的，每逾期一日按**合同总价的 0.05%**（万分之五）向甲方支付违约金；'
  '逾期超过 **30** 日的，甲方有权解除合同。')
P('11.3　双方违约金**累计均不超过合同总价的 10%**；违约金不足以弥补守约方实际损失的，违约方应补足差额。')
P('11.4　任何一方擅自解除合同，应赔偿对方因此造成的实际损失。')
P('11.5　**双方的约定解除权**（除上述外）：')
P('（1）**甲方有权解除**：① 主体结构或屋面防水经有资质机构检测不合格，且乙方拒绝或无法修复的；'
  '② 同一质量问题经甲方书面通知后两次整改仍不合格的；③ 乙方擅自转包或分包的。',indent=0.6,size=10)
P('（2）**乙方有权解除**：① 甲方无正当理由发出停工指令连续超过 30 日的；② 甲方逾期付款超过 60 日的；'
  '③ 因政策或规划原因致本工程无法继续施工、且双方无法就变更达成一致的。',indent=0.6,size=10)

# ==================== 十二、争议解决 ====================
H2('十二、争议解决')
P('双方发生争议，应先协商解决；协商不成的，向**成都市温江区人民法院**提起诉讼。'
  '**败诉方应承担守约方为实现债权支出的律师费、诉讼费、保全费。**')
TAG('〔修订〕原"工程所在地人民法院"未明确具体法院；增加费用承担条款，谁败诉谁承担，对双方对等','修订')

# ==================== 十三、其他 ====================
H2('十三、其他')
P('13.1　本合同未尽事宜，双方可签订书面补充协议，补充协议与本合同具有同等法律效力。')
TAG('〔新增〕原第十三条仅两句，缺附件效力、手写内容、送达、生效形式等基本条款'
    '（上一份合同"署名个人却盖公司章"正是制度漏洞）。以下逐项补齐','新增')
P('13.2　**附件效力**：本合同附件（施工标准清单、材料清单、费用范围、主材报价单）为合同不可分割的组成部分。'
  '**附件与正文不一致的，以正文为准**；正文未约定的，以附件为准；**附件内部不一致的，以标准更高者为准**。')
P('13.3　**手写内容**：本合同任何手写内容，须经双方在该处共同签字或按指印后方为有效；'
  '**单方添加的手写内容不发生效力**。')
P('13.4　**通知与送达**：双方确认本合同首部所载地址、电话为有效通知与送达地址，并适用于诉讼阶段法律文书送达；'
  '通过微信、短信发送至该号码或邮寄至该地址的，均视为有效送达。地址变更应在 3 日内书面通知对方。')
P('13.5　**原文件处理**：双方确认，就本工程此前磋商所使用的《农村自建房施工合同》（2026 年 9 月 10 日）'
  '及其附件**均未成立生效**；本合同签订生效后，前述文件全部终止，双方不得再依据其主张任何权利；'
  '前述文件与本合同不一致的，以本合同为准。')
P('13.6　本合同一式 **叁** 份，甲方执 **壹** 份，乙方执 **壹** 份，报工程所在地镇人民政府存档 **壹** 份。')
P('13.7　**生效**：本合同自甲方签字（或按指印）、**乙方签字（或按指印）；乙方为建筑施工企业的，'
  '还应由法定代表人签字并加盖单位公章**之日起生效。**仅盖章未签字，或仅签字未盖章的，不视为有效签署。**')
P('13.8　本工程为**两层**农村低层住房，双方均应遵守《成都市温江区规范农村宅基地审批和住房建设管理实施细则》'
  '（温农规〔2024〕2 号）关于开工申报、关键环节检查、竣工验收与资料归档的规定。')

doc.add_page_break()
H2('签　署')
P()
P('甲方（签字或按指印）：'+B+'　　　　日期：'+B+' 年 '+B+' 月 '+B+' 日')
P()
P('乙方（签字或按指印）：'+B+'　　　　日期：'+B+' 年 '+B+' 月 '+B+' 日')
P('（乙方为建筑施工企业的，法定代表人签字：'+B)
P('　单位公章：　　　　　　　　　　　　（此处加盖与乙方名称一致的单位公章））',size=9.5)
doc.save('/home/zyw/Downloads/dl-hub/26-合同审查/农村自建房施工合同（修订版·对方底本）.docx')
print('OK 正文已生成')
