OODO有关账户account模块学习
一、记账凭证(Account Move)
会计上的记账凭证,也叫会计分录,在Odoo中叫“Account Move”。Account Move直译是“账户移动”,之前解释过复式库存管理的核心概念“库存移动(Stock Move)”,Account Move和Stock Move有些相似。
什么是会计?这里不想给会计下个严格的学术上的定义,简单的说,会计是从资金变动的角度记录经济活动,并以此记录为基础,对经济活动进行统计分析、核算监督。任何经济活动,都伴随着财物变动,例如采购,物资从供应商“移动”到本公司,资金从本公司“移动”到供应商。Odoo中管这种“财物移动”叫“账户移动(Account Move)”,中国会计上叫分录,或记账凭证,其意为财物从这个账户移动到那个账户。
通过上述的例子,可以得出几个结论:
1)账户移动(会计分录)从经济活动产生,如采购、销售、生产领料、成品入库等,都会产生相应的会计分录。
2)恰当的设置好系统参数,系统能够自动生成相应的会计分录。
3)为了让系统自动产生会计分录,需要预先设置账户(会计科目),并告诉系统,哪个经济活动对应到哪个账户的资金变动。
4)根据一段时间内(会计上叫会计分期,在中国是一个月)的账户移动记录,可以很容易统计各个账户的增减额,从而判断该段时间内经济活动的盈亏情况。各个账户的增减额,就是“资产负债表”,该段时间的盈亏情况,就是“损益表”。
二、凭据(Invoice)
凭据(Invoice),会计上叫原始凭证。会计记账(填写会计分录,或者说账户移动)必须有依据,不能凭空登帐。例如,前述的采购下单时候的会计分录,会计必须看到采购部门的采购传票才可记账,付款分录必须看到出纳拿到的供应商发票才可记账。采购传票、供应商发票就是原始凭证,Odoo中原始凭证叫凭据(Invoice)。
在Odoo中,凭据(Invoice)是沟通业务部门和财务部门的桥梁。
Odoo的凭据有四种,采购凭据(Supplier Invoice),客户凭据(Customer Invoice)、采购退货凭据(Supplier Credit Note or Supplier Refund)、销售退货凭据(Customer Credit Note or Customer Refund)。采购凭据在采购订单确认时生成,客户凭据在销售订单确认时生成。这四种凭据,Odoo内部都是通过account_invoice对象实现 的,只是显示界面有所不同。account_invoice对象,包含了对应经济活动的财务处理(记账、开票、支付或收款)需要的所有信息。包括交易产 品、数量、金额,业务伙伴(供应商和客户),交易日期,记账账户,税金账户,分类账(Journal,后面再讲),等等。
三、归类账(Journal)
经济活动林林总总,会计分录种类和数量众多。如果将所有的会计分录都在一个窗口上显示,对会计工作不是很方便。归类帐(Journal)就是用于分类显示会计分录(Account Move)。例如,选择销售归类帐(Sales Journal),双击打开,则显示的都是销售业务相关的会计分录。
除了分类显示会计分录外,归类帐还有如下一些作用:
1)默认借方、贷方科目:可以设置Journal的默认借方、贷方科目,这样,当你在Journal中输入会计凭证的时候,例如,只要输入借方科目,系统会自动用Journal的默认贷方科目生成贷方记帐。输入贷方科目则系统自动生成借方记帐。
2)指定凭证号生成方法:Odoo支持多种会计分录的凭证号生成方法,每个Journal可以指定不同的凭证号生成方法,该Journal中的会计分录都将用指定的方法生成凭证号。
3)其他一些控制会计分录的参数设置。
在Odoo中,必须配置销售归类帐(Sales Journal)、采购归类账(Purchase Journal)、现金归类账(Cash Journal),通常还会配置库存归类账(Stock Journal)。 顾名思义,当系统从销售订单自动生成的销售相关分录归类于Sales Journal,当系统从采购订单自动生成的采购相关分录归类于Purchase Journal,当系统从银行对账单自动生成的支付相关分录归类于Cash Journal,当系统从出入库单自动生成的库存相关分录归类于Stock Journal。
四、支付(Payment)和核销(reconcile)
Odoo的支付,有两种模式,一是单个支付,一是批量支付。单个支付,直接在凭据(Invoice)上按“Payment(支付)”按钮,系统会弹出支付画面,输入支付信息。系统自动核销(reconcile)该凭据上的应收/应付账款,生成相应支付分录。这个模式适合于没有专职出纳的小公司。
批量支付,Odoo提供一个支付画面,逐行输入每笔收/支信息,包括“业务伙伴”、“金额”等。输入好以后,确认该支付单,系统可以自动或手动查找 每笔支付对应的凭据(Invoice),核销相关“应收/应付账款”,生成支付会计分录。支付相关会计分录通常是,借:应付账款,贷:银行存款。这个模式 适合于有专职出纳的公司,出纳批量处理收支事务。
Odoo的支付管理功能,输入好各支付行后,也可以让系统生成银行支付电子文件。或者将一个大额支付拆成多个银行帐号支付。
Odoo提供自动或手动核销(reconcile)功能。例如,支付时候,系统会自动匹配业务伙伴的“应 付账款”,用支付金额核销对应“应付账款”,并且,标记该应付账款对应的凭据(Invoice)为已支付(自动勾上Invoice上的属性 “Paid/Reconciled”)。只要是可核销科目(科目设置画面上,勾上属性”Recocile”),系统就会试图自动核销。常见的可核销科目是 “应付账款”和“应收账款”。
五、财务重要参数配置
Odoo的财务模块比较复杂,要配置的参数比较多,下面简单介绍一些重要参数:
1)会计分期(Periods):这个配置比较简单,中国的话,按自然年,每个月一个分期,十二个分期。
2)归类账(Journal):前面介绍过了,系统至少要配置销售归类帐、采购归类账、现金归类账。
3)会计科目(Account):根据财务部的规定,一级科目大概有七、八十个,再加上公司自己的二级、三级等科目,设置到系统中。
4)税种(Taxes):当你设置好了Taxes,Odoo会用设置好的税种计算方法,自动在采购、销售等业务生成的会计分录中增加“增值税”等税务记账条目。
5)应税设定(Fiscal Position):通常,在产品信息中设定销售、采购该产品应缴纳的税种。之后,在销售订单、采购订单中,系统会自动采用产品上设定的税种计税。但是, 有时候,同一产品,针对不同类型客户,其计税方式不同。例如,某产品内销时要计消费税,但外销时不计消费税。那么,对于外销客户,应该采用不同于产品上设 定的计税方法计税。Fiscal Position就是处理这种情况的。
6)付款条件(Payment Term):当你设置好了付款条件,Odo会按销售订单上选择的付款条件,及时提醒财务人员注意收款/付款。在付款条件中,可以设置什么时间、收/付多少,或收/付百分之多少。
此外,在业务伙伴和产品上还要设置几个和财务科目相关的属性,这些属性告诉系统如何自动生成相关会计科目。
业务伙伴相关属性设置:
Account Receivable:和客户发生的销售业务记账凭证中,应收账款对应的会计科目,通常是“1014 应收账款”。销售业务中,系统会根据这里的设置自动生成会计分录。
Account Payable:和业务伙伴发生的采购业务记账凭证中,应付账款对应的会计科目,通常是“2011 应付账款”。
Fiscal Position:应税设定。当指定客户的应税设定后,系统会根据应税设定中指定的替换规则将产品中设定的税种换成别的税种计算税额。应税设定在财务模块中设置。
Payment Term:付款条件,如30日内付全款,或者10日内付30%,20日内再付30%,余款2月内付清。当设置好付款方式后,如该客户未按时付款,系统会自动报警。付款条件在财务模块中设置。
Total Receivable:该业务伙伴的应收账款总额,这个是系统自动显示,不可修改。
Total Payable:该业务伙伴的应付账款的总额,这个是系统自动显示,不可修改。
产品相关属性设置:
Income Account: 产品收入科目,产品销售业务的会计分录的贷方,通常是“6001 主营业务收入”。借方是应收账款。
Expense Account: 产品成本科目,产品采购业务的会计分录的借方。对于商业流通企业,通常是“1042 在途物资”。贷方是应付账款。
Stock Output Account: 产品出库科目,产品出库时会计分录的借方,贷方是库存管理中库位设置时指定的科目。对于商业流通企业,通常是“6015 主营业务成本”,贷方通常是“1036 库存商品”。
Stock Input Account: 产品入库科目,产品入库时会计分录的贷方,借方是库存管理中库位设置时指定的科目。对于商业流通企业,通常是“1042 在途物资”,借方通常是“1036 库存商品”。
Sale Taxes: 产品销售时的税种。销售订单默认采用此处的税种计算税额。税种在财务模块中设置。
Purchase Taxes: 产品采购时的税种。采购订单默认采用此处的税种计算税额。税种在财务模块中设置。
六、分析会计(Analytic Account)
分析会计(Analytic Account),有时候也叫管理会计(Management Account)、成本会计(Cost Account)。要理解分析会计,首先要理解,为什么要分析会计。例如,在财务会计上,和成本相关的一级科目主要有:销售成本和生产成本。如果要按部门 计算销售成本,或者按产品类型计算生产成本。在财务会计上,这个要求的实现相当麻烦,这意味着在各个成本相关科目上都要增加很多以部门名、产品名为名称的 二级、三级会计科目,科目增多了,意味着计算量也急剧增加。此类问题,需要用分析会计的方法解决。
分析会计解决问题的原理是,对于每一笔收入或支出的账务记录,都增加一个分析会计科目,表示收入或成本分配于该科目。分析会计科目可以是部门名(如按部门 核算制造成本的情形)、产品名(如按产品分配成本或收入的情形)、客户名、项目名,等等。例如,在每张采购订单上记录以产品名称为名的分析科目,这样,系 统就能自动记录,该笔采购成本应算到哪个产品。在每张制造订单上也记录分析科目(产品名),系统会自动将该张制造单的成本分配到该产品。
Odoo分析会计实现成本核算的具体方法是,例如前述的销售订单,如果单子上记录有以产品名为名的分析科目,则采购订单对应的凭据(Invoice)确认时候,系统同时自动生成财务会计分录和分析会计分录,如下例:
财务会计分录 金额 | 分析会计 金额
借:原材料 1000 | 产品A -1000
贷:应付账款 1000 | - -
在系统数据库中的动作是,系统在 account_move_line 数据表中增加两条记录,分别是财务会计分录的借方和贷方。同时在analytic_account_move_line 数据表中增加一条记录,是分析会计的“产品A -1000”,表示产品A上分配1000元费用,该记录和“借:原材料 1000”互相关联。贷方“贷:应付账款 1000”没有对应的分析会计记录。注意,分析会计分录不分借方、贷方,只记金额,如果是收入,金额记”+”,费用则记”-”。
如果每一笔采购订单都记录了对应产品,那么,如果要统计产品A的原材料成本,只要统计analytic_account_move_line 数据表中,分析科目为“产品A”,关联财务科目为“原材料”,且金额为负数的所有记录之金额和,即得一段时期产品A应分配的原材料成本。如果在制造单上也 记录了以产品名为名的分析科目,则统计分析科目为“产品A”,关联财务科目为“制造费用”,且金额为负数的所有记录之金额和,即得一段时期产品A应分配的 制造成本。
再看看人力成本的分析。对于服务型企业,如软件开发公司、咨询企业、法律事务所等等,通常他们是以“案子”(Case or Project)进行收费。为了计量案子是否盈利,需要知道每个案子的成本。服务企业,案子的成本主要是人力成本。人力成本的计量有两个因素,一个是员工 级别,一个是工作时间。员工级别可以用员工工资计量,如资深员工综合月工资是4万,每月工作时间150小时,则每小时成本是266元。
要求每个员工每天必须填写“工作时间表(Time Sheet)”,时间表上逐项记录该员工一天的工作时间安排,如“案子A 工作时间3小时;案子B 工作时间2小时”。这里案子A、案子B就是实现设置好的以案子名为名的分析会计科目,员工填写Time Sheet时候,从系统选择案子科目。如此,当Time Sheet确认时候,系统自动计算员工在每个案子上的成本(小时成本 * 小时数),并生成分析会计分录,关联到相应财务会计分录(管理费用 or 营业成本 等等)
OODO有关账户account模块学习的更多相关文章
- Day5 - Python基础5 常用模块学习
Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...
- # nodejs模块学习: express 解析
# nodejs模块学习: express 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子 ...
- eos开发(三)使用cleos命令行客户端操作EOS——关于钱包wallet和账户account
好了,上一节我们已经讲了关于wallet的一些基础操作,基本了解了怎么去创建一个钱包,怎么去查看钱包.上锁和解锁钱包等,这一节咱们就来开始操作账户account吧. 上一节讲到了每一个account都 ...
- 【转】Python模块学习 - fnmatch & glob
[转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...
- pythone函数基础(7)第三方模块学习
一,time模块学习 import time # print(int(time.time()))#时间戳# res = time.strftime('%Y-%m-%d %H:%M:%S')#取当前格式 ...
- python中confIgparser模块学习
python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...
- Python logging 模块学习
logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
- EOS开发基础之三:使用cleos命令行客户端操作EOS——关于钱包wallet和账户account
好了,上一节我们已经讲了关于wallet的一些基础操作,基本了解了怎么去创建一个钱包,怎么去查看钱包.上锁和解锁钱包等,这一节咱们就来开始操作账户account吧. 上一节讲到了每一个account都 ...
- Python 日期时间处理模块学习笔记
来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...
随机推荐
- C++/Qt网络通讯模块设计与实现(四)
在C++/Qt网络通讯模块设计与实现(三)中提到了一个概念,即接受者所依附的线程:关注我微信公众号的技术朋友留言对该概念还是不解,这节就单独讲述这个概念的理论与实际应用,这种应用无处不在,因为与Qt的 ...
- FastDFS 使用流程
一.什么是FastDFS? FastDFS 是用 C 语言编写的一款开源的分布式文件系统,对文件进行管理,主要功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡 ...
- react中的虚拟DOM,jsx,diff算法。让代码更高效
在react中当你的状态发生改变时,并不是所有组件的内容销毁再重建,能复用的就复用 react 组件其实 就是按照层级划分的 找到两棵任意的树之间最小的修改是一个复杂度为 O(n^3) 的问题. 你可 ...
- 在EF Core中为数据表按列加密存储
假设有User表 public class User : Entity<int> { public int Id { get; set; } public string UserName ...
- MySQL 8.0:无锁可扩展的 WAL 设计
这篇文章整理自MySQL官方文档,介绍了8.0在预写式日志上实现上的修改,观点总结如下: 在8.0以前,为了保证flush list的顺序,redo log buffer写入过程需要加锁,无法实现并行 ...
- Python3.8环境安装PyHook3
Python3.8环境安装PyHook3 1. 安装python对应版本的pyhook3网 址:https://pypi.org/project/PyHook3/#files如果没有对应版本,请下载 ...
- linux 给lvm磁盘扩容
目录 linux 给lvm磁盘扩容 扩容步骤 确认可用空间 创建新的物理卷 将物理卷添加到现有的卷组中 扩展逻辑卷 linux 给lvm磁盘扩容 早上到公司发现磁盘满了,挂载点是一个lvm 跟领导确认 ...
- 【python爬虫】爬取美女图片
一,导入包文件 os:用于文件操作.这里是为了创建保存图片的目录 re:正则表达式模块.代码中包含了数据处理,因此需要导入该模块 request:请求模块.通过该模块向对方服务器发送请求获取数据包 l ...
- LAL v0.35.4发布,OBS支持RTMP H265推流,我跟了
Go语言流媒体开源项目 LAL 今天发布了v0.35.4版本. LAL 项目地址:https://github.com/q191201771/lal 老规矩,简单介绍一下: ▦ 一. OBS支持RTM ...
- Java中的自动装箱与自动拆箱
前言 在Java中,基本数据类型与其对应的封装类之间可以进行自动转换,这种特性称为自动装箱(autoboxing)和自动拆箱(unboxing).自动装箱和自动拆箱使得我们在使用基本数据类型时更加方便 ...