53 Commits
Author SHA1 Message Date
余则霖 823757ce36 人力资源条目 2026-08-01 21:02:41 +08:00
余则霖 9ae907ac53 minor update 2026-07-31 22:27:12 +08:00
余则霖 0e43828961 minor update 2026-07-31 21:58:40 +08:00
余则霖 0618ff1eb2 v16更新 2026-07-31 10:49:19 +08:00
余则霖 9c89d16285 修复after_install里的is_complete api在某些版本报错问题 2026-06-28 16:44:51 +08:00
余则霖 062aec8391 fix icon path 2026-05-15 13:23:27 +08:00
余则霖 19bbe3a79d minor change 2026-05-15 11:45:21 +08:00
余则霖 f0ff283d29 强制在after install 运行设置16版图标注逻辑 2026-05-14 19:07:07 +08:00
余则霖 fa21d0d835 满足上架官方应用市场要求的版本依赖说明 2026-05-11 18:16:55 +08:00
余则霖 aa32f32df1 icon handling 2026-05-09 22:32:38 +08:00
余则霖 cd9d1dcc8f continue handle v16 workspact and desktop icon 2026-05-09 22:11:44 +08:00
余则霖 cdcc7ea7a3 add workspace icon 2026-05-09 21:10:06 +08:00
余则霖 ab62417804 minor update 2026-04-30 19:17:17 +08:00
余则霖 563cf5a08d 资产负责表显示时不应该强行变正数 2026-04-28 20:54:05 +08:00
余则霖 45be544a75 convert db.sql to query builder 2026-04-17 21:37:43 +08:00
余则霖 5664c3c0a2 remove incorrect validation in bs and pl settings 2026-04-14 19:55:53 +08:00
余则霖 89846ad161 remove unused queries 2026-04-14 12:54:11 +08:00
余则霖 59752c1e37 去掉monkey patch 2026-03-27 20:39:58 +08:00
余则霖 f9a6a8f4b7 少量汉化 2026-03-18 16:30:32 +08:00
余则霖 46c6fb05f6 更新16版汉化 2026-03-15 17:50:11 +08:00
余则霖 0e3ba44db3 资产负债报表取期初金额时自动剔除了期末结账凭证问题 2026-03-15 12:24:53 +08:00
余则霖 a427bd9379 Merge branch 'master' of https://gitee.com/yuzelin/erpnext_china 2026-03-07 17:41:40 +08:00
余则霖 7d4977e88e minor change 2026-03-07 17:38:56 +08:00
余则霖 24fb03a72c !6 update erpnext_china/erpnext_china/report/bs_and_pl_missing_account/bs_and_pl_missing_account.py.
Merge pull request !6 from N/A
2026-03-05 06:35:21 +00:00
余则霖 8df1c29e6f !7 update erpnext_china/erpnext_china/doctype/cash_flow/cash_flow.py.
Merge pull request !7 from N/A
2026-03-05 06:34:29 +00:00
丰茂德 00c3f1e5d9 update erpnext_china/erpnext_china/doctype/cash_flow/cash_flow.py.
如果是0的话不会报错,Frappe 内置的浮点数转换工具,能自动把 None 转为 0.0




Traceback with variables (most recent call last):
  File "apps/frappe/frappe/app.py", line 120, in application
    response = frappe.api.handle(request)
      request = <Request 'http://fjnb.fengmaode.top/api/method/frappe.desk.form.save.savedocs' [POST]>
      response = None
      rollback = True
      e = TypeError("unsupported operand type(s) for -: 'NoneType' and 'NoneType'")
  File "apps/frappe/frappe/api/__init__.py", line 52, in handle
    data = endpoint(**arguments)
      request = <Request 'http://fjnb.fengmaode.top/api/method/frappe.desk.form.save.savedocs' [POST]>
      endpoint = <function handle_rpc_call at 0x7f05c7187a60>
      arguments = {'method': 'frappe.desk.form.save.savedocs'}
  File "apps/frappe/frappe/api/v1.py", line 40, in handle_rpc_call
    return frappe.handler.handle()
      method = 'frappe.desk.form.save.savedocs'
      frappe = <module 'frappe' from 'apps/frappe/frappe/__init__.py'>
  File "apps/frappe/frappe/handler.py", line 53, in handle
    data = execute_cmd(cmd)
      cmd = 'frappe.desk.form.save.savedocs'
      data = None
  File "apps/frappe/frappe/handler.py", line 86, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
      cmd = 'frappe.desk.form.save.savedocs'
      from_async = False
      server_script = None
      method = <function savedocs at 0x7f05c4f73560>
  File "apps/frappe/frappe/__init__.py", line 1758, in call
    return fn(*args, **newargs)
      fn = <function savedocs at 0x7f05c4f73560>
      args = ()
      kwargs = {'doc': '{"docstatus":0,"doctype":"Cash Flow","name":"new-cash-flow-atvfarhlik","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","company":"临沂市丰境电子商务有限责任公司","month":"3","items":[{"docstatus":0,"doctype":"Cash Flow Item","name":"new-cash-flow-item-irbetrlihv","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","manual_split":0,"voucher_type":"","cost_center":"主 - 丰境","parent":"new-cash-flow-atvfarhlik","parentfield":"items","parenttype":"Cash Flow","idx":1,"__unedited":false,"account":"5001_fj - 主营业务收入 - 丰境","cash_flow_code":"1"},{"docstatus":0,"doctype":"Cash Flow Item","name":"new-cash-flow-item-ncakubzghz","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","manual_split":0,"voucher_type":"","cost_center":"主 - 丰境","parent":"new-cash-flow-atvfarhlik","parentfield":"items","parenttype":"Cash Flow","idx":2,"__unedited":false,"account":"2000_fj - 负债类-负债 - 丰境","cash_flow_code":"16"}],"cash_flow_subtotal":[],"fiscal_year":"2026","idx":0}', 'action': 'Save', 'cmd': 'frappe.de...
      newargs = {'doc': '{"docstatus":0,"doctype":"Cash Flow","name":"new-cash-flow-atvfarhlik","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","company":"临沂市丰境电子商务有限责任公司","month":"3","items":[{"docstatus":0,"doctype":"Cash Flow Item","name":"new-cash-flow-item-irbetrlihv","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","manual_split":0,"voucher_type":"","cost_center":"主 - 丰境","parent":"new-cash-flow-atvfarhlik","parentfield":"items","parenttype":"Cash Flow","idx":1,"__unedited":false,"account":"5001_fj - 主营业务收入 - 丰境","cash_flow_code":"1"},{"docstatus":0,"doctype":"Cash Flow Item","name":"new-cash-flow-item-ncakubzghz","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","manual_split":0,"voucher_type":"","cost_center":"主 - 丰境","parent":"new-cash-flow-atvfarhlik","parentfield":"items","parenttype":"Cash Flow","idx":2,"__unedited":false,"account":"2000_fj - 负债类-负债 - 丰境","cash_flow_code":"16"}],"cash_flow_subtotal":[],"fiscal_year":"2026","idx":0}', 'action': 'Save'}
  File "apps/frappe/frappe/utils/typing_validations.py", line 32, in wrapper
    return func(*args, **kwargs)
      args = ()
      kwargs = {'doc': '{"docstatus":0,"doctype":"Cash Flow","name":"new-cash-flow-atvfarhlik","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","company":"临沂市丰境电子商务有限责任公司","month":"3","items":[{"docstatus":0,"doctype":"Cash Flow Item","name":"new-cash-flow-item-irbetrlihv","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","manual_split":0,"voucher_type":"","cost_center":"主 - 丰境","parent":"new-cash-flow-atvfarhlik","parentfield":"items","parenttype":"Cash Flow","idx":1,"__unedited":false,"account":"5001_fj - 主营业务收入 - 丰境","cash_flow_code":"1"},{"docstatus":0,"doctype":"Cash Flow Item","name":"new-cash-flow-item-ncakubzghz","__islocal":1,"__unsaved":1,"owner":"1060778506@qq.com","manual_split":0,"voucher_type":"","cost_center":"主 - 丰境","parent":"new-cash-flow-atvfarhlik","parentfield":"items","parenttype":"Cash Flow","idx":2,"__unedited":false,"account":"2000_fj - 负债类-负债 - 丰境","cash_flow_code":"16"}],"cash_flow_subtotal":[],"fiscal_year":"2026","idx":0}', 'action': 'Save'}
      apply_condition = <function whitelist.<locals>.innerfn.<locals>.<lambda> at 0x7f05c4f734c0>
      func = <function savedocs at 0x7f05c4f93a60>
  File "apps/frappe/frappe/desk/form/save.py", line 39, in savedocs
    doc.save()
      doc = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      action = 'Save'
  File "apps/frappe/frappe/model/document.py", line 378, in save
    return self._save(*args, **kwargs)
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      args = ()
      kwargs = {}
  File "apps/frappe/frappe/model/document.py", line 400, in _save
    return self.insert()
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      ignore_permissions = None
      ignore_version = None
  File "apps/frappe/frappe/model/document.py", line 309, in insert
    self.run_before_save_methods()
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      ignore_permissions = None
      ignore_links = None
      ignore_if_duplicate = False
      ignore_mandatory = None
      set_name = None
      set_child_names = True
  File "apps/frappe/frappe/model/document.py", line 1140, in run_before_save_methods
    self.run_method("validate")
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
  File "apps/frappe/frappe/model/document.py", line 1011, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      method = 'validate'
      args = ()
      kwargs = {}
      fn = <function Document.run_method.<locals>.fn at 0x7f059c364ea0>
  File "apps/frappe/frappe/model/document.py", line 1371, in composer
    return composed(self, method, *args, **kwargs)
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      args = ()
      kwargs = {}
      hooks = [<function apply at 0x7f059c4ad3a0>, <function check_for_running_deletion_job at 0x7f059c7dede0>]
      method = 'validate'
      doc_events = {'*': {'on_update': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.core.doctype.file.utils.attach_files_to_document', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply', 'frappe.automation.doctype.assignment_rule.assignment_rule.update_due_date', 'frappe.core.doctype.user_type.user_type.apply_permissions_for_non_standard_user_type', 'frappe.search.sqlite_search.update_doc_index'], 'after_rename': ['frappe.desk.notifications.clear_doctype_notifications'], 'on_cancel': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply'], 'on_trash': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.search.sqlite_search.delete_doc_index'...
      handler = 'erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record.check_for_running_deletion_job'
      composed = <function Document.hook.<locals>.compose.<locals>.runner at 0x7f059c367f60>
      compose = <function Document.hook.<locals>.compose at 0x7f059c367e20>
      f = <function Document.run_method.<locals>.fn at 0x7f059c364ea0>
  File "apps/frappe/frappe/model/document.py", line 1353, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      method = 'validate'
      args = ()
      kwargs = {}
      add_to_return_value = <function Document.hook.<locals>.add_to_return_value at 0x7f059c365080>
      fn = <function Document.run_method.<locals>.fn at 0x7f059c364ea0>
      hooks = (<function apply at 0x7f059c4ad3a0>, <function check_for_running_deletion_job at 0x7f059c7dede0>)
  File "apps/frappe/frappe/model/document.py", line 1008, in fn
    return method_object(*args, **kwargs)
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      args = ()
      kwargs = {}
      method_object = <bound method CashFlow.validate of <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>>
      method = 'validate'
  File "apps/erpnext_china/erpnext_china/erpnext_china/doctype/cash_flow/cash_flow.py", line 14, in validate
    self.sync_subtotal()
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
  File "apps/erpnext_china/erpnext_china/erpnext_china/doctype/cash_flow/cash_flow.py", line 62, in sync_subtotal
    subtotal_by_type_map[cash_flow_type] += row.debit - row.credit
      self = <CashFlow: 临沂市丰境电子商务有限责任公司_2026_3>
      cash_flow_codes = [{'code': '1', 'cash_flow_name': '销售产成品、商品、提供劳务收到的现金', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': None, 'is_outflow': 0}, {'code': '2', 'cash_flow_name': '收到的其他与经营活动有关的现金', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': None, 'is_outflow': 0}, {'code': '3', 'cash_flow_name': '购买原材料、商品、接受劳务支付的现金', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': None, 'is_outflow': 1}, {'code': '4', 'cash_flow_name': '支付的职工薪酬', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': None, 'is_outflow': 1}, {'code': '5', 'cash_flow_name': '支付的税费', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': None, 'is_outflow': 1}, {'code': '6', 'cash_flow_name': '支付的其他与经营活动有关的现金', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': None, 'is_outflow': 1}, {'code': '7', 'cash_flow_name': '经营活动产生的现金流量净额', 'cash_flow_type': '一、经营活动产生的现金流量:', 'formula': 'type_subtotal', 'is_outflow': 0}, {'code': '8', 'cash_flow_name': '收回短期投资、长期债券投资和长期股权投资收到的现金', 'cash_flow_type': '二、投资活动产生的现金流量:', 'formula': None, 'is_outflow': 0}, {'code': '9', 'c...
      code_type_map = {'1': '一、经营活动产生的现金流量:', '2': '一、经营活动产生的现金流量:', '3': '一、经营活动产生的现金流量:', '4': '一、经营活动产生的现金流量:', '5': '一、经营活动产生的现金流量:', '6': '一、经营活动产生的现金流量:', '7': '一、经营活动产生的现金流量:', '8': '二、投资活动产生的现金流量:', '9': '二、投资活动产生的现金流量:', '10': '二、投资活动产生的现金流量:', '11': '二、投资活动产生的现金流量:', '12': '二、投资活动产生的现金流量:', '13': '二、投资活动产生的现金流量:', '14': '三、筹资活动产生的现金流量:', '15': '三、筹资活动产生的现金流量:', '16': '三、筹资活动产生的现金流量:', '17': '三、筹资活动产生的现金流量:', '18': '三、筹资活动产生的现金流量:', '19': '三、筹资活动产生的现金流量:', '20': '四、现金净增加额', '21': '', '22': '五、期末现金余额'}
      subtotal_by_code_map = {'1': 0}
      subtotal_by_type_map = {'一、经营活动产生的现金流量:': 0}
      row = <CashFlowItem: qqjkdgu2ik parent=临沂市丰境电子商务有限责任公司_2026_3>
      cash_flow_code = '1'
      cash_flow_type = '一、经营活动产生的现金流量:'
builtins.TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'

Signed-off-by: 丰茂德 <14475558+feng-maode@user.noreply.gitee.com>
2026-03-05 06:05:25 +00:00
丰茂德 b107adafd4 update erpnext_china/erpnext_china/report/bs_and_pl_missing_account/bs_and_pl_missing_account.py.
Signed-off-by: 丰茂德 <14475558+feng-maode@user.noreply.gitee.com>
2026-03-04 13:05:25 +00:00
余则霖 e3d99fd418 minor update 2026-03-01 12:12:34 +08:00
余则霖 10a396278e !2 update erpnext_china/translations/zh.csv.
Merge pull request !2 from 笑熬浆糊/master
2026-03-01 04:08:51 +00:00
余则霖 bce6580b23 !3 update erpnext_china/chart_of_accounts/company_default/utils.py.
Merge pull request !3 from N/A
2026-03-01 04:00:45 +00:00
丰茂德 840613334c update erpnext_china/chart_of_accounts/company_default/utils.py.
如果没有进入if他就会报错,











【Traceback with variables (most recent call last):
  File "apps/erpnext_china/erpnext_china/chart_of_accounts/company_default/utils.py", line 35, in set_default_accounts
    return values
      company_name = '临沂市丰境电子商务有限责任公司'
      file_path = 'apps/erpnext_china/erpnext_china/chart_of_accounts/company_default/default_accounts.csv'
      in_file = <_io.TextIOWrapper name='apps/erpnext_china/erpnext_china/chart_of_accounts/company_default/default_accounts.csv' mode='r' encoding='utf-8'>
      data = [['default_bank_account', '银行存款'], ['default_cash_account', '库存现金'], ['default_payable_account', '应付账款'], ['default_payable_account', '应付账款-供应商款'], ['default_payable_account', '应付账款-结算'], ['default_payroll_payable_account', '应付职工薪酬-职工工资'], ['default_payroll_payable_account', '职工工资'], ['default_receivable_account', '应收账款'], ['round_off_account', '财务费用-圆整差异'], ['write_off_account', '营业外支出-坏账损失'], ['exchange_gain_loss_account', '财务费用-汇兑损益'], ['exchange_gain_loss_account', '财务费用_汇兑差额'], ['unrealized_exchange_gain_loss_account', '财务费用-汇兑损益'], ['default_income_account', '主营业务收入'], ['default_income_account', '销售商品收入'], ['default_expense_account', '主营业务成本'], ['default_expense_account', '销售商品成本'], ['default_expense_claim_payable_account', '其他应付款'], ['default_discount_account', '财务费用-现金折扣'], ['default_inventory_account', '原材料'], ['stock_adjustment_account', '生产成本-库存调整'], ['stock_adjustment_account', '制造企业成本-库存调整'], ['stock_received_but_not_billed', '应付账款-暂估库存'], ['default_provisional_account', '...
      company_doc = <Company: 临沂市丰境电子商务有限责任公司>
      account_map = {}
builtins.UnboundLocalError: cannot access local variable 'values' where it is not associated with a value】

Signed-off-by: 丰茂德 <14475558+feng-maode@user.noreply.gitee.com>
2026-02-28 16:03:50 +00:00
笑熬浆糊 d31571bf99 update erpnext_china/translations/zh.csv.
科目表Dr词条翻译修正

Signed-off-by: 笑熬浆糊 <qinyanwan@qq.com>
2026-02-27 02:56:04 +00:00
余则霖 1a5e35b581 Payment在采购订单,销售订单与销售发票中汉化调整 2026-02-04 23:56:26 +08:00
余则霖 39ff2f14d0 增加资产负债与损益报表设置计算公式引用参数校验 2026-01-25 09:36:16 +08:00
余则霖 b429e1886d fix cash flow save error 2026-01-20 23:37:40 +08:00
余则霖 573606d5cd !1 bug fix for translations
Merge pull request !1 from allen.xu/master
2026-01-15 04:16:50 +00:00
余则霖 403d3ea5c2 translation update 2026-01-15 12:14:44 +08:00
xu.gui 416e233f51 bug fix for translations 2026-01-15 08:03:59 +08:00
余则霖 d22b4d1797 翻译条目修订 2026-01-14 19:55:02 +08:00
余则霖 f8355f5619 translation update 2026-01-13 17:06:00 +08:00
余则霖 5ea6aa8aa2 添加16版缺少的翻译 2026-01-13 11:40:50 +08:00
余则霖 02eb2876af update translation 2026-01-13 10:36:31 +08:00
余则霖 7b35bf158a fix readme typo 2026-01-08 12:16:28 +08:00
余则霖 2af293fbc8 add missing translation for v16 2026-01-07 22:37:44 +08:00
余则霖 64a72f19d1 remove not exist doctype from workspace 2026-01-07 21:17:03 +08:00
余则霖 da7ed8ab9d 16版workspace中加了type字段 2026-01-07 16:14:49 +08:00
余则霖 4fb31fc098 修复trial balance参数变化的影响 2026-01-07 14:44:47 +08:00
余则霖 68bea88c26 custom field and property setter update 2026-01-07 12:23:54 +08:00
余则霖 e2a62c0322 add base_document monkey patches 2026-01-07 11:08:43 +08:00
余则霖 9e891c8f39 workspace label use english 2026-01-07 10:52:45 +08:00