OpenERP应用和开发基础(第二版)开班了
-
企业管理软件中,最常见的功能要求是数据访问。如员工信息查询修改,产品订单编辑等。其次是工作流开发。工作流是企业层级协作关系在软件中的体现,如请假单审批,销售订单审批等,在管理软件中都是以工作流来实现。再次是报表开发。系统中的数据,需要以各种形式汇总统计、输出到纸上,送交不同的人或机构。
classqingjia_qingjd(osv.osv):<br />_name = 'qingjia.qingjd'<br />_description = '请假单'<br />_columns = {<br />'shenqr':fields.many2one('hr.employee', '申请人', required=True),<br />'tians': fields.float('请假天数', required=True),<br />'kaisrq': fields.date('开始日期', required=True),<br />'shiyou': fields.text('请假事由'),<br />'active': fields.boolean('有效'),<br />'state': fields.selection([('draft','草稿'),('wait_prove','待批'),('proved','已批'),('rejected','被拒')], '状态', required=True)<br />}<br />qingjia_qingjd()
可能你也看出来了,这个代码中其实就是定义了请假单对象的几个字段。在OpenERP中,简单的对象,你只要定义对象的各个字段,系统会自动为你创建数据库表,自动生成CRUD的数据库操作代码。因此,只要上述代码,你不必另外在数据库中创建Table,也不必写Insert、Select、Delete、Update等数据库操作代码,这些都留给OpenERP帮你去搞定。
接下来是用户界面的开发,即View。OpenERP中,用户界面的开发不要写任何代码。它是用XML格式定义用户界面。如下是请假单查询界面和请假单编辑、审批界面。
[attach=1]
[attach=2]
这两个界面,在OpenERP中,你只要写如下几行XML即可。<br /><record model="ir.ui.view"id="view_qingjd_tree"><br /><field name="name">请假单</field><br /><fieldname="model">qingjia.qingjd</field><br /><fieldname="type">tree</field><br /><field name="arch"type="xml"><br /><tree string="请假单"><br /><field name="shenqr"select="1"/><br /><field name="tians"/><br /><field name="kaisrq"select="1"/><br /><field name="shiyou"/><br /><field name="state"<br />select="1"/><br /></tree><br /></field><br /></record><br /><!-- 表单视图代码从略 --><br />
最后是触发菜单的开发,在OpenERP中,叫做Action,也就是MVC中的C,Controller。OpenERP的Action也不用写代码,是用XML定义的。
[attach=3]
上述请假菜单,只需下述几行XML即可。<br /><!-- 菜单和Action --><br /><record model="ir.ui.menu"id="menu_qingjia_main"><br /><field name="name">请假申请</field><br /></record><br /><recordmodel="ir.actions.act_window"id="action_qingjia_myqingjd"><br /><field name="name">我的请假单</field><br /><fieldname="res_model">qingjia.qingjd</field><br /><fieldname="domain">[('shenqr.user_id','=',uid)]</field><br /></record><br />
-
补充一点:对于本例中的简单视图,甚至连用于描述视图的XML都不用写,系统会自动为你生成视图。
当然这样的视图很简单,死板,这里特别用来说明OpenERP的定制可以如此简单。 -
[b]采购[/b](purchasing):是指企业在一定的条件下从供应市场获取产品或服务作为企业资源, 以保证企业生产及经营活动正常开展的一项企业经营活动。根据各行业采购工作的通性和个性,可将采购管理工作分为四类:
[b]生产性采购[/b],就是采购这个物品是直接为了公司生产运营所需。而生产性采购又分为两类, 第1类是原材料性采购(MRP性物料采购)。所采购的此类物料是本企业所生产的产品的组成部分或中间体产品。第2类是零配件的采购(MRO性采购,就是维修,维护、修理、运作),这些零配件是为了保障机器能正常生产运作所需要的维修、更换配件。
[b]商贸性采购[/b],像沃尔玛这样的零售商,它们的采购不属于生产性采购,属于商贸性采购。商贸性采购和生产性采购最大的区别是,批发商、零售商在采购物品时,采购什么商品并不十分重要,重要的是采购的东西必须保证能赚钱。笔笔都得赚钱,不赚钱就没有必要采购进货。西瓜不赚钱,可以采购苹果。但是对于生产性采购来讲就不行,这个产品我们公司只能用这个原材料。我做饼干的,只能买面粉,不能说面粉太贵就不买了,不买就停产了。所以生产性并不保证每次采购都赚钱,而且采购的盈利性也不能直接反应出来的。
[b]一般日常用品性采购[/b],像办公用品采购,还有行政采购等。其特点是采购品类繁杂,但采购金额小。其所采购的物品主要是保障公司的正常行政办公所用。
[b]项目性采购[/b],有时候,我们的采购工作属于项目性采购,比如说买一台设备,盖一个车间等。项目性采购的主要特点是一次性。很少有重复性的采购。这就意味着每次采购的流程都得重新开始,以往的经验和关系很少能用到。
一般的ERP软件,都只支持生产性采购中的MRP性物料采购,专业采购软件,可能支持所有类型的采购业务。OpenERP的采购,主要也是MRP性物料采购。不过,可能存在其它模块支持别的采购管理,如办公用品的请领、采购。本书的采购,如不特别说明,指的是MRP性物料采购。
采购的日常工作有,接收采购计划、询价/议价、决定、下PO(采购单)、审核、跟催、收货、付款、退货。相关的单据有:请购单、采购计划、采购单、询价单,进货单等。简单的说,采购部门接收其它各部门的采购要求,定期汇总采购物品,作成采购计划。根据采购计划,分别和相应的供应商询价、议价。向选定的供应商下单(通常是传真,供应商签字后再回传回来)。而后跟踪供应商及时发货,货到后验货、入库。货有问题的话,要求供应商换货、退货。
采购的财务处理,供应商的发票送至财务部门。采购部门向财务部门申请付款,或者出具供应商签字确认过的采购单复印件至财务部门,代替付款申请。仓库收货后将入库单亦送至财务部门。财务部门凭此三单(采购部门的付款申请、供应商发票、仓库的入库单),核对三单一致后,记录会计帐务,制定付款计划,按计划付款。
当采用OpenERP后,典型的采购流程大致是这样的。采购员在系统中新建一张采购单,输入要采购的物品的规格型号、价格等,而后和供应商Email或电话沟通,进一步敲定价格等。采购员提交采购单,经理审批。审批后,采购员打印采购单,传真给供应商,供应商签字确认,回传。采购员点击采购单上的“供应商通过”按钮,表示供应商已确认。此时,系统自动生成2张单子,一是供应商凭证(Invoice),送至财务部门,财务部门据此审核供应商发票并安排付款计划。当财务收到供应商发票,确认供应商凭证后,系统会自动生成此采购业务对应的记账凭证。二是收货单(Incoming Packing List),送至仓管部门,仓管部门据此验货、收货。 -
企业的销售工作是非常重要的,销售旺盛,才能带动其他部门和工作的快速发展。企业的销售工作,通常分成两大块,营销管理和销售管理。营销管理是为了实现各种组织目标,创造、建立和保持与目标市场之间的有益交换和联系而设计的方案的分析、计划、执行和控制。销售管理是计划、执行及控制企业的销售活动,以达到企业的销售目标。简而言之,营销是在企业和目标市场间营造一个良好的交换气氛,销售是在企业和目标市场间完成具体的产品交换。
营销管理的工作有:(1)发现和评价市场机会;(2)细分市场和选择目标市场;(3)发展市场营销组合和决定市场营销预算;(4)执行和控制市场营销计划。通常,在ERP软件中,对营销工作的支持是CRM(客户关系管理)模块的功能。
销售管理的工作有:(1)制定销售计划及相应的销售策略;(2)建立销售组织并对销售人员进行培训;(3)制定销售人员的个人销售指标,将销售计划转化为销售业绩;(4)对销售计划的成效及销售人员的工作表现进行评估。在ERP软件中,对销售管理工作的支持,通常也是CRM模块的范畴。ERP软件中的销售模块,通常是指,对具体的销售业务工作的支持,即报价、成交、发货、收款、记账的具体业务工作的支持。
ERP软件里的销售,通常是指面向机构的销售,而不是面向普通消费者的零售。零售在ERP软件中,通常是POS(Point Of Sale)模块的功能。面向机构的销售业务的基本过程是:挂牌标价→洽谈业务→签订合同→收取货款和发运商品→开具发票及提单→提供售后服务和客户回访。
挂牌标价。企业向外发布产品和价格信息。
洽谈业务。挂牌标价后,企业销售人员就开始和有购买意向的客户进行交易条件的洽谈。
签订合同,销售订单是销售合同的一种。
收取货款和发运商品。
开具增值税专用发票。
开具发货单。发货单是购货方提取商品的凭证,也是供货方开展销售业务的内部凭证。
提供售后服务和客户回访。商品售出以后,企业应根据具体情况提供良好的售后服务,如送货上门、安装调试、维修保养、使用指导等等。除此之外,还应定期回访,听取顾客对产品及服务的建议和意见,以便更好地改进产品、完善服务。在软件中,这部分销售相关的内容通常属于CRM(客户关系管理)的范畴。[size=99px]]
-
先说采购记账。例如北京鹏瑞公司,是一商贸类型的公司,他们从北京维佳科技公司购入A产品100件,单价1500,单价未含税,增值税17%。那么,对应这笔业务,会计上要做如下记账凭证:
借:1406 库存商品 150000
2015 应交税费 - 201501[size=99px]应交增值税(销项税)[/size] 1700当对方付款后,根据银行回单,会计上记账如下:
借: 1002 银行存款 21700
贷: 1014 应收账款 - 101401 上海福达公司 21700采用OpenERP后,确认销售订单时,系统会自动生成销售凭证。财务部门确认销售凭证时,系统自动生成上述记账凭证(根据设置的不同,也可以不自动生成,而是手工录入)。出纳收到款后,可以手工录入收款凭证。也可以利用系统的对账单功能,录入收款额,选择应收发票(Invoice),冲销(Reconcile)发票上的应收账款,系统自动生成收款的记账凭证。
如果采用ERP软件处理购销业务中的财务管理,首先必须建立会计科目表(Chart OfAccount)。上述简单的购销业务,需要建立下述科目表:
[table=341][tr][td=2,1,162]
[align=center][b][size=99px]] -
老肖再次用清晰的语言,组织良好的文档给我们展示openerp的魅力。
在老肖的努力下,论坛里技术讨论已经蔚然成风,感谢老肖,向你致敬。