def addContent1(document,context,startYear,path): addTitle(document, "七、企业合并及合并财务报表", 1, False) addTitle(document, "(一)子企业情况", 2, True) df = filterDateFrame("子企业情况-国有企业",path,conditions=("持股比例(%)",)) # df = pd.read_excel(path, sheet_name="子企业情况-国有企业") dc = df.to_dict("split") addTable(document, dc, style=6)
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)
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)
def addTax(document, context, path): companyType = context["report_params"]["companyType"] if companyType == "国有企业": addTitle(document, "六、税项", 1, False) else: addTitle(document, "五、税项", 1, False) addTitle(document, "(一)主要税种及税率", 2, True) df = pd.read_excel(path, sheet_name="主要税种及税率") dc = df.to_dict("split") addTable(document, dc, style=5) for content in context["tax"]["policy"]: addParagraph(document, content, "paragraph") addTitle(document, "(二)税收优惠及批文", 2, True) if len(context["tax"]["taxPreference"]) == 0: addParagraph(document, "无。", "paragraph") else: for content in context["tax"]["taxPreference"]: addParagraph(document, content, "paragraph")
def addChange(document, num, context, currentpath, parentpath): # 公司类型 companyType = context["report_params"]["companyType"] # 报告日期 reportDate = context["report_params"]["reportDate"] # 获取报告起始日 startYear = reportDate[:4] # 合并报表还是单体报表 reportType = context["report_params"]["type"] if companyType == "国有企业": addTitle(document, "五、会计政策、会计估计变更以及差错更正的说明", 1, False) addTitle(document, "(一)会计政策变更", 2, True) implementionOfNewStandards = { "新金融工具准则": "《企业会计准则第22号——金融工具确认和计量(2017年修订)》(财会〔2017〕7号)、《企业会计准则第23号——金融资产转移(2017年修订)》(财会〔2017〕8号)、《企业会计准则第24号——套期会计(2017年修订)》(财会〔2017〕9号),于2017年5月2日发布了《企业会计准则第37号——金融工具列报(2017年修订)》(财会〔2017〕14号)(以下合称“新金融工具准则”)", "新收入准则": "《企业会计准则第14号——收入(2017年修订)》(财会〔2017〕22号)(以下简称“新收入准则”)", "新租赁准则": "《企业会计准则第21号——租赁(2018年修订)》(财会[2018]35号)(以下简称“新租赁准则”)" } newStandardFuncs = { "新金融工具准则": addNewFinancialInstrumentsChange, "新收入准则": addNewIncomeCriteria, "新租赁准则": addNewLeaseCriteria, } if len(context["standardChange"] ["implementationOfNewStandardsInThisPeriod"]) > 0: # 新准则 desc = [] for newStandard in context["standardChange"][ "implementationOfNewStandardsInThisPeriod"]: desc.append(implementionOfNewStandards[newStandard]) if len(desc) == 1: ImplementationOfNewStandardsDesc = "财政部于 2017年颁布了{},本公司于{}年1月1日起开始执行前述准则。".format( desc[0], startYear) elif len(desc) == 2: ImplementationOfNewStandardsDesc = "财政部于 2017年颁布了{},本公司于{}年1月1日起开始执行前述准则。".format( desc[0] + "和" + desc[1], startYear) elif len(desc) == 3: ImplementationOfNewStandardsDesc = "财政部于 2017年颁布了{},本公司于{}年1月1日起开始执行前述准则。".format( desc[0] + "," + desc[1] + "和" + desc[2], startYear) else: ImplementationOfNewStandardsDesc = "" addParagraph(document, ImplementationOfNewStandardsDesc, "paragraph") num = 1 for newStandard in context["standardChange"][ "implementationOfNewStandardsInThisPeriod"]: newStandardFuncs[newStandard](document, "{}、执行{}导致的会计政策变更".format( num, newStandard), currentpath, parentpath, context) num += 1 else: addParagraph(document, "本公司{}年度无应披露的会计政策变更。".format(startYear), "paragraph") addTitle(document, "(二)会计估计变更", 2, True) addParagraph(document, "本公司{}年度无应披露的会计估计变更。".format(startYear), "paragraph") addTitle(document, "(三)重要前期差错更正", 2, True) addParagraph(document, "本公司{}年度无应披露的重要前期差错更正。".format(startYear), "paragraph") else: addTitle(document, "({})会计政策、会计估计变更以及差错更正的说明".format(to_chinese(num)), 2, True) addParagraph(document, "1、会计政策变更", "paragraph") implementionOfNewStandards = { "新金融工具准则": "《企业会计准则第22号——金融工具确认和计量(2017年修订)》(财会〔2017〕7号)、《企业会计准则第23号——金融资产转移(2017年修订)》(财会〔2017〕8号)、《企业会计准则第24号——套期会计(2017年修订)》(财会〔2017〕9号),于2017年5月2日发布了《企业会计准则第37号——金融工具列报(2017年修订)》(财会〔2017〕14号)(以下合称“新金融工具准则”)", "新收入准则": "《企业会计准则第14号——收入(2017年修订)》(财会〔2017〕22号)(以下简称“新收入准则”)", "新租赁准则": "《企业会计准则第21号——租赁(2018年修订)》(财会[2018]35号)(以下简称“新租赁准则”)" } newStandardFuncs = { "新金融工具准则": addNewFinancialInstrumentsChange, "新收入准则": addNewIncomeCriteria, "新租赁准则": addNewLeaseCriteria, } if len(context["standardChange"] ["implementationOfNewStandardsInThisPeriod"]) > 0: # 新准则 desc = [] for newStandard in context["standardChange"][ "implementationOfNewStandardsInThisPeriod"]: desc.append(implementionOfNewStandards[newStandard]) if len(desc) == 1: ImplementationOfNewStandardsDesc = "财政部于 2017年颁布了{},本公司于{}年1月1日起开始执行前述准则。".format( desc[0], startYear) elif len(desc) == 2: ImplementationOfNewStandardsDesc = "财政部于 2017年颁布了{},本公司于{}年1月1日起开始执行前述准则。".format( desc[0] + "和" + desc[1], startYear) elif len(desc) == 3: ImplementationOfNewStandardsDesc = "财政部于 2017年颁布了{},本公司于{}年1月1日起开始执行前述准则。".format( desc[0] + "," + desc[1] + "和" + desc[2], startYear) else: ImplementationOfNewStandardsDesc = "" addParagraph(document, ImplementationOfNewStandardsDesc, "paragraph") num = 1 for newStandard in context["standardChange"][ "implementationOfNewStandardsInThisPeriod"]: newStandardFuncs[newStandard](document, "{}、执行{}导致的会计政策变更".format( num, newStandard), currentpath, parentpath, context) num += 1 else: addParagraph(document, "本公司{}年度无应披露的会计政策变更。".format(startYear), "paragraph") addParagraph(document, "2、会计估计变更", "paragraph") addParagraph(document, "本公司{}年度无应披露的会计估计变更。".format(startYear), "paragraph") addParagraph(document, "3、重要前期差错更正", "paragraph") addParagraph(document, "本公司{}年度无应披露的重要前期差错更正。".format(startYear), "paragraph")
def addContent4(document,context,startYear,path): addTitle(document, "(四)子公司所采用的会计政策与母公司不一致的说明", 2, True) addParagraph(document, "不适用", "paragraph")
def addContent3(document,context,startYear,path): addTitle(document, "(三)母公司直接或通过其他子公司间接拥有被投资单位半数以上表决权但未能对其形成控制的原因", 2, True) df = filterDateFrame("半数以上表决权但未控制-国有企业", path, conditions=("持股比例(%)",)) # df = pd.read_excel(path, sheet_name="半数以上表决权但未控制-国有企业") dc = df.to_dict("split") addTable(document, dc, style=6)
def addContent13(document,context,startYear,path): addTitle(document, "(十三)纳入合并财务报表范围的结构化主体的相关信息", 2, True) addParagraph(document,context["combine"]["structuredSubject"],"paragraph")
def addContent12(document,context,startYear,path): addTitle(document, "(十二)子公司向母公司转移资金的能力受到严格限制的情况", 2, True) addParagraph(document,context["combine"]["theAbilityOfSubsidiaryToTransferFundsToItsParentCompanyIsStrictlyRestricted"],"paragraph")
def addContent2(document,context,startYear,path): addTitle(document, "(二)母公司拥有被投资单位表决权不足半数但能对被投资单位形成控制的原因", 2, True) df = filterDateFrame("表决权不足半数但能形成控制-国有企业", path, conditions=("持股比例(%)",)) # df = pd.read_excel(path, sheet_name="表决权不足半数但能形成控制-国有企业") dc = df.to_dict("split") addTable(document, dc, style=6)
def addContent11(document,context,startYear,path): addTitle(document, "(十一)本年发生的吸收合并", 2, True) df = filterDateFrame("本年发生的吸收合并-国有企业", path, conditions=("资产金额",)) # df = pd.read_excel(path, sheet_name="本年发生的吸收合并-国有企业") dc = df.to_dict("split") addTable(document, dc, style=6)
def addContent9(document,context,startYear,path): addTitle(document, "(九)本年发生的非同一控制下企业合并情况", 2, True) df = filterDateFrame("本年发生的非同一控制下企业合并情况-国有企业", path, conditions=("账面净资产",)) # df = pd.read_excel(path, sheet_name="本年发生的非同一控制下企业合并情况-国有企业") dc = df.to_dict("split") addTable(document, dc, style=6)
def addContent7(document,context,startYear,path): addTitle(document, "(七)本年新纳入合并范围的主体", 2, True) df = filterDateFrame("本年新纳入合并范围的主体-国有企业", path, conditions=("年末净资产",)) # df = pd.read_excel(path, sheet_name="本年新纳入合并范围的主体-国有企业") dc = df.to_dict("split") addTable(document, dc, style=6)
def addContent5(document,context,startYear,path): addTitle(document, "(五)子公司与母公司会计期间不一致的说明", 2, True) addParagraph(document,context["combine"]["statementOnInconsistencyOfAccountingPeriodBetweenSubsidiaryCompanyAndParentCompany"],"paragraph")