Exemplo n.º 1
0
def addContent1(document, currentpath, parentpath, context):
    reportType = context["report_params"]["type"]
    # 报告日期
    reportDate = context["report_params"]["reportDate"]
    # 获取报告起始日
    startYear = reportDate[:4]
    companyType = context["report_params"]["companyType"]

    if companyType == "国有企业":
        addParagraph(document, "(1)首次执行日前后金融资产分类和计量对比表", "paragraph")
    else:
        addParagraph(document, "①首次执行日前后金融资产分类和计量对比表", "paragraph")
    if reportType == "合并":
        # 添加合并报表影响
        addParagraph(document, "对本集团的影响:".format(startYear), "paragraph")
        df = pd.read_excel(currentpath, sheet_name="首次执行日前后金融资产分类和计量对比表")
        dc = df.to_dict("split")
        titles = [["原金融工具准则", "nan", "nan", "新金融工具准则 ", "nan", "nan"],
                  ["项目", "计量类别", "账面价值", "项目", "计量类别", "账面价值"]]
        titleLength = len(titles)
        rowLength = len(dc["index"]) + titleLength
        columnLength = len(dc["columns"])
        table = createBorderedTable(document, rowLength, columnLength)
        addCombineTableTitle(table, titles)
        addCombineTableContent(table, dc, titleLength)
        #     添加母公司影响
        addParagraph(document, "对本公司的影响:".format(startYear), "paragraph")
        df = pd.read_excel(parentpath, sheet_name="首次执行日前后金融资产分类和计量对比表")
        dc = df.to_dict("split")
        titles = [["原金融工具准则", "nan", "nan", "新金融工具准则 ", "nan", "nan"],
                  ["项目", "计量类别", "账面价值", "项目", "计量类别", "账面价值"]]
        titleLength = len(titles)
        rowLength = len(dc["index"]) + titleLength
        columnLength = len(dc["columns"])
        table = createBorderedTable(document, rowLength, columnLength)
        addCombineTableTitle(table, titles)
        addCombineTableContent(table, dc, titleLength)
    else:
        df = pd.read_excel(currentpath, sheet_name="首次执行日前后金融资产分类和计量对比表")
        dc = df.to_dict("split")
        titles = [["原金融工具准则", "nan", "nan", "新金融工具准则 ", "nan", "nan"],
                  ["项目", "计量类别", "账面价值", "项目", "计量类别", "账面价值"]]
        titleLength = len(titles)
        rowLength = len(dc["index"]) + titleLength
        columnLength = len(dc["columns"])
        table = createBorderedTable(document, rowLength, columnLength)
        addCombineTableTitle(table, titles)
        addCombineTableContent(table, dc, titleLength)
Exemplo n.º 2
0
def addFinancialStatementsList(document,
                               name,
                               titles,
                               oldRecords,
                               context,
                               lastSection=True,
                               display=True):
    # 报告类型
    reportType = context["report_params"]["type"]
    isParent = False
    if reportType == "合并":
        if "合并" not in name:
            isParent = True
    num = getNoteNum(context, isParent)

    addTableTitle(document, name)
    addFirstLine(document, context)
    document.add_section(start_type=0)
    newRecords = FilterFsNewRecords(display, oldRecords)
    table = createBorderedTable(document,
                                len(newRecords),
                                4,
                                innerLine="single")
    table.columns[0].width = Cm(7)
    setFsHeaderList(table, titles)

    for key in range(1, len(newRecords)):
        addFsTableLineList(table, key, newRecords, num)

    document.add_section(start_type=0)
    add_last_line(document)
    if lastSection:
        document.add_section()
Exemplo n.º 3
0
Arquivo: combine.py Projeto: litufu/ar
def addContent6(document,context,startYear,path):
    df = filterDateFrame("本年不再纳入合并范围原子公司的情况-国有企业", path, conditions=("持股比例(%)",))
    # df = pd.read_excel(path, sheet_name="本年不再纳入合并范围原子公司的情况-国有企业")
    dc = df.to_dict("split")
    addTitle(document, "(六)本年不再纳入合并范围的原子公司", 2, True)
    if len(dc["data"])==0:
        addParagraph(document, "不适用", "paragraph")
    else:
        addParagraph(document,"1、本年不再纳入合并范围原子公司的情况","paragraph")
        addTable(document, dc, style=6)
        addParagraph(document,"2、原子公司在处置日和上一会计期间资产负债表日的财务状况","paragraph")
        df = filterDateFrame("原子公司在处置日和上一会计期间资产负债表日的财务状况-国有企业", path, conditions=("处置日资产总额"),)
        # df = pd.read_excel(path, sheet_name="原子公司在处置日和上一会计期间资产负债表日的财务状况-国有企业")
        dc = df.to_dict("split")
        if len(dc["data"])==0:
            addParagraph(document, "不适用", "paragraph")
        else:
            titles = [["原子公司名称","处置日","处置日","nan","nan","上期末","nan","nan"],["nan","nan","资产总额","负债总额","所有者权益总额","资产总额","负债总额","所有者权益总额"]]
            titleLength = len(titles)
            rowLength = len(dc["index"]) + titleLength
            columnLength = len(dc["columns"])
            table = createBorderedTable(document,rowLength,columnLength)
            addCombineTableTitle(table,titles)
            addContentToCombineTitle(document, dc, table, titleLength, style=3)
        addParagraph(document,"3、原子公司本年年初至处置日的经营成果","paragraph")
        df = filterDateFrame("原子公司本年年初至处置日的经营成果-国有企业", path, conditions=("本年初至处置日净利润"), )
        # df = pd.read_excel(path, sheet_name="原子公司本年年初至处置日的经营成果-国有企业")
        dc = df.to_dict("split")
        if len(dc["data"])==0:
            addParagraph(document, "不适用", "paragraph")
        else:
            titles = [["原子公司名称","处置日","本年初至处置日","nan","nan"],["nan","nan","收入","费用","净利润"]]
            titleLength = len(titles)
            rowLength = len(dc["index"]) + titleLength
            columnLength = len(dc["columns"])
            table = createBorderedTable(document,rowLength,columnLength)
            addCombineTableTitle(table,titles)
            addContentToCombineTitle(document, dc, table, titleLength, style=3)
Exemplo n.º 4
0
Arquivo: combine.py Projeto: litufu/ar
def addContent8(document,context,startYear,path):
    addTitle(document, "(八)本年发生的同一控制下企业合并情况", 2, True)
    df = filterDateFrame("本年发生的同一控制下企业合并情况-国有企业", path, conditions=("合并日账面净资产",))
    # df = pd.read_excel(path, sheet_name="本年发生的同一控制下企业合并情况-国有企业")
    dc = df.to_dict("split")
    if len(dc["data"])==0:
        addParagraph(document, "不适用", "paragraph")
    else:
        titles = [["公司名称","合并日","合并日确定依据","合并日账面净资产","交易对价","实际控制人","本年初至合并日的相关情况","nan","nan","nan"],["nan","nan","nan","nan","nan","nan","收入","净利润","现金净增加额","经营活动现金流量净额"]]
        titleLength = len(titles)
        rowLength = len(dc["index"]) + titleLength
        columnLength = len(dc["columns"])
        table = createBorderedTable(document,rowLength,columnLength)
        addCombineTableTitle(table,titles)
        addContentToCombineTitle(document, dc, table, titleLength, style=3)
Exemplo n.º 5
0
def addOnwerEquityState(document,
                        name,
                        oldRecords,
                        context,
                        period,
                        display=True):
    addTableTitle(document, name)
    addFirstLine(document, context)
    document.add_section(start_type=0)
    newRecords = FilterOsNewRecords(display, oldRecords)
    table = createBorderedTable(document,
                                len(newRecords) + 3,
                                16,
                                innerLine="single")
    # 设置表头内容
    setOwnerHeaderState(table, period)

    for key in range(1, len(newRecords)):
        addOsTableLineState(table, key, newRecords)
    # 删除全部为0的列
    zero_column_num = get_zero_column_num(newRecords)
    delete_columns(table, zero_column_num)
    # 删除空白行标题,标题第四行
    row3 = table.rows[3]
    cell3Text = [cell.text for cell in row3.cells]
    # 列标题长度
    column_length = len(table.columns)
    if len(set(cell3Text)) == 1 and list(set(cell3Text))[0] == "":
        row3._element.getparent().remove(row3._element)
        titles = get_os_table_titles(table, 3)
        combineTitles(titles,
                      table, [[2, column_length - 2], [2, column_length - 1]],
                      lastLine=False)
    else:
        titles = get_os_table_titles(table, 4)
        combineTitles(titles,
                      table, [[2, column_length - 2], [2, column_length - 1]],
                      lastLine=True)

    document.add_section(start_type=0)
    add_last_line(document)