分类目录归档:PHP

全球使用最多的网站开发技术

进销存系统如何处理“同种商品的不同进价”的问题讨论汇总

我先说说我的处理方法:
1,要求客户严格按照先进先出的原则卖货
2,系统也按照这个原则出货,每次销售时都根据这个原则查到出售手机的入库单号,从而得到成本价
不过这样做不仅麻烦,而且不容易保持,就是说,如果客户有哪次卖没有按照先进先出的原则,拿错了,利润的计算就无法准确了

1

这是财务上的记账原则,先进先出和移动加权,其实有哪种记账都是一样的,主要看财务是采用哪种方式。
对于先进先出,我以为做的时候将所有的放库都放在一个批次表(这里记录商品的成本价及批次号),当出库时就按先进先出做就可以了。对于客户不按先进先出拿货,这个就是管理上的问题了,可以为每个批次进行编号(条码等)以防止拿错货,而且像手机等都有唯一编号吧,像超市百货中基本都采用条码管理的。
对于移动加权也是一样,就是把总成本 /总数量得到平均成本,这个值是一直在变的
对于我个人来说,我还是喜欢先进先出的原则

2

实际上这个问题当中,只是一个退货价格和退货处理的问题。个人的意见是即使是货物退还给厂家,那么对于商家也是存在成本投入的,所以这个退货,更合适的方法是以进货平均价格退(卖)给厂家。
从买方来说,则希望把最高的价格退给厂家,而对厂家来说,则更希望退回来的价格最低。

所以在产生纠纷,而事先在合同当中没有进行约定的情况下,并且没有办法区分是哪一次购买的情况下,一般以平均价格进行裁定。除非不同批次的货特存在质的差异,这个差异包括生产日期,如果合同当中有标明生产日期的话。
就这个问题,以前我们做系统的时候,也有客户提出过疑意。他们一开始就如楼主那样,以为进货的时候是什么价格退货也是什么价格。而我们提出来的是,比如你当月一日从厂家购入,此时市值可能是10000,但是你退还的时间并不是当天,此时你就有10000的成本在占用,当你到当月二十九日退货的时候,实际上你这10000的成本就被整整占用了28天。所以从成本的角度来讲,你的这10000的投入还是仍然应该算是你本月的成本投入。并不能把这10000万的投入当作从来没有发生过。

3

使用批号执行先进先出原则进行库存管理是对的。只是这个利润统计,个人意见不赞同需要如此明细。至少同质商品完全可以归结到一起。
那么就形成三个部分:已卖出产品的成本+已卖出产品的最终售价+存货成本
如果完全按照先进先出原则,我们做个假设:
1日 采购 300件 单价120元
9日 销售 250件 单价150元
21日 采购 200件 单价128元
23日 销售 150件 单价151元

这个月形成的就是:
已卖产品成本:120*250+120*50+128*100
已卖产品销货:150*250+151*50+151*100
存货成本:128*100

这个时候你就会发现,本月已经完成的销售当中的平均成本是:122,平均售价:150.375,平均利润:28.375,而剩下的存货成本却变成了:128,这合理吗?同样的进货为什么单位成本却完全不一样?
接着:
次月8日 销售 100件 单价152元

平均成本:128,平均售价:152,平均利润:24,存货成本:0

再来看两个月的报表,同样的进货,后一个月实际销售价格比前一个月的涨了150.375,但是利润却还下滑了4.375,这合理吗?

为什么会出现这种情况呢?原因就在于,你实际上把前一个月的成本分派到了下一个月

反过来,我们如果使用平均成本就不一样:
当月:
平均成本:123.2,平均售价:150.375,平均利润:27.175,存货平均成本:123.2
次月:
平均成本:123.2,平均售价:152,平均利润:28.8,存货平均成本:0

这样才真正反应了后一个月比前一个月的的价格走势。

4

对于实际成本当中的两种计算方式,我这里所采用的是移动加权平均法。如果你觉得你对成本会计很在行的话,也不妨给大家分析分析。本身就是一种讨论,但是我不希望用一种没有任何依据的方式,而使用某种“隐讳”的字眼来进行否定。成本的计算,本身就是一项很复杂,甚至是一直存在争议的。也正因为如此才有了如此种种因惯用而形成的规则。之所以有如此多种计算方式,那就是因为各有各的理,各自所反应的问题不一样。这里还只是从实际成本出发,如果从标准成本来看,那就更加复杂,价格的大幅波动对于标准成本的估算,绝对是一个考验。

5

楼主…这种情况.千万不要用先进先出…这个苦头我是吃大了..

强烈建议使用个别计价法,我单位的库存系统就是这样,我们在做开发的时候,先进先出在计算平均价格方面,每个月都有误差.每个月都要额外的生成一个平账单(有时候会出现0数量,但是还有金额的情况),来保持帐目平衡,很麻烦.

个别计价法简单的说,就是进来是什么价格,计算成本的时候,就是什么价格.出去的时候就是什么价格…
进来的商品,记录了单号,数量和价格.出去的商品,除了数量之外,价格是有个选择的界面,选择对应的入库单据.然后把价格从对应的入库单据带过来.然后出库(销售)的时候价格也放在出库单这边,也可以不放,然后计算利润的时候,直接(销售价格-原始价格)/原始价格,就是利润值了.

但是,我们负责财务模块的同事也说过,合理的选择不同的计价方式,可以合理的避税…这个是后话了..不过,我实施的经验就是,个别计价法比先进先出更容易实现,并且数据更准确.

6

个别计价确实是简单、准确、明了,但是会苦了会计。如果某一个月利润冲上了天,而某一个月又落到了地狱(当然只是打个比方),软件开发人员的简单,对于会计那压力就不是一点点。对于企业那更是一个头两个大,赚得不多,还要赔上赋税。

7

建议LZ先到会计学习一下记帐方法,主要有工业会计和非工业会计,有着很大的区别。
其中重点知识:进价、零售价、折扣价,进价成本/库存成本/销售毛利/净利润的单价、数量和金额
在了解这些后,你的问题就解决得差不多了。所谓的进进出出,都是面向解决记帐凭证的管理,至于表现出的业务,进货、销售以及退货等的管理,都是表面的应用。
在深入的数据分析中,就是会计的核心思想了。

8

我们给生产企业做了几套仓库系统,由于不同进价的材料太多,价格每天都在波动,所以就都采用月移动平均法。
这几套软件在每月结帐前先做一次金额结算,计算出各物料的加权单价。未结算前出库单只影响数量。以此做出来的帐目会比较精准。
先进先出法不可避免有很多人为误差。

9

价格如何乱,系统并不会去关心。象价格波动过大的商品,更不可能象楼上说的那样进行个别计价。

我打个比较特殊的比方,当然也是有非常多企业运营过程当中所面临的,仅供大家分析参考。

A市场经理,在1季度,第一次进货2000,进价是1500,销售掉1900,售价是2500(很有利润空间),第二次进货是10000(比较飘飘然),进价是2100(涨了,涨得很疯),按照个别计价,那么他所创建的利润就相当高了,1900 * (2500 – 1500)=190万

但是他留下存货是1500 * 100 + 2100 * 10000
A市场经理走人了,B市场经理进来,市场开始不景气,第一次销售1000,售价只有2200,第二次销售 2000,售价 2100,第三次销售 5000,售价只有1900
于是他的利润为:(2200 – 1500) * 100 + (2200-2100) * 900 + (2100-2100)*2000 + (1900-2100) * 5000 = -84万

然后B市场经理自然地受到了公司的极大批评,而B市场经理却觉得很委屈:凭什么A市场经理的决策失误却要他来承担?
B市场经理接手的这个烂摊子是谁留下的?很自然的就让人想到了A,可是按账面看,A可以创造了巨大的“利润”,为什么说他留下的是烂摊子?

10

1.成本计算是有规定的,你只能从现有的方法中,选择一种或多种
2.去找一份Oracle ERP的成本会计student guide看看,然后选择一种成本计算方法

11

对仓库来说 只做进和出两总操作
计算利润也就是计算成本
3种方式 加权平均 先进先出 后进先出 期初的时候选定一种成本计算方式 以后不可更改

退货出库和调拨出库都是是出库的一种
退货入库和调拨入库也走是入库的一种
还有盘点时的盈亏出库/入库 及级报废出库等等
都是只价格不同 操作上没区别

至于利润 其实不是进销存关心的事 仓管只需要管数量
钱是财务的事 财务关心的每期的每笔支出 和收入 不可能细化到某条库存

12

移动平均计价法是财务进行成本核算得一种方式,存在一下四个特点:
1、采购需要重新计算成本价、采购退回是红字采购,是采购的一种。
2、销售不影响成本计算,销售退回是红字销售,是销售的一种。
3、存在成本转利润的问题,当存在库存数量为零,而库存成本不为零,需要进行结转,将成本结转为利润。
4、单据的计算顺序会影响单据的成本核算。

只要遵循上面的4各特点,怎么算都不会错。

13

1 看来你很反对使用先进先出法来进行会计上的核算,但我只是强调一句,针对手机销售这个行业,目前的运作模式,只有先进先出是最能体现其行业运作特点并进一步支持其业务的一种核算方法。

2 你举了许多例子,当然,从数据上看没有问题。但是,你这是个凭空想象的案例,其实没有任何意义。也没有说服力。因为它根本就不符合手机销售这个行业的特点。当然,我的客户中手机行业只是几家,不能完全代表所有的手机销售商,所以我仅限于我了解的行业需求。

想强调一点,做管理软件绝对不能闭门造车,无论什么时候,都应该深入了解这个行业的经营模式之后再进行所谓的需求分析。没有针对特定企业的实际业务模型的调研,不明白为什么要如此做,就想当然的认为自己的方式最好,这种工作的方法是不可行的。做出来的东西对企业没有什么好处。

14

摘抄一些关于“先进先出”成本计算方法的小知识,供参考(标红的是我提面讨论当中比较强调的)

什么是先进先出法?
先进先出法是存货的计价方法之一。它是根据先购入的商品先领用或发出的假定计价的。用先进先出法计算的期末存货额,比较接近市价。

先进先出法是以先购入的存货先发出这样一种存货实物流转假设为前提,对发出存货进行计价的一种方法。采用这种方法,先购入的存货成本在后购入的存货成本之前转出,据此确定发出存货和期末存货的成本。

例如:

假设库存为零,1日购入A产品100个 单价2元;3日购入A产品50个 单价3元;

5日销售发出A产品50个,则发出单价为2元,成本为100元。

先进先出法假设先入库的材料先耗用,期末库存材料就是最近入库的材料,因此发出材料按先入库的材料的单位成本计算。

先进先出法的运用
先进先出法是指根据先购进的存货先发出的成本流转假设对存货的发出和结存进行计价的方法。以先进先出法计价的库存的商品存货则是最后购进的商品存货。市场 经济环境下,各种商品的价格总是有所波动的,在物价上涨过快的前提下,由于物价快速上涨,先购进的存货其成本相对较低,而后购进的存货成本就偏高。这样发 出存货的价值就低于市场价值,产品销售成本偏低,而期末存货成本偏高。但因商品的售价是按近期市价计算,因而收人较多,销售收人和销售成本不符合配比原则,以此计算出来的利润就偏高,形成虚增利润,实质为“存货利润”。

因为虚增了利润,就会加重企业所得税负担,以及向投资人分红增加,从而导致企业现金流出量增加。但是从筹资角度来看,较多的利润、较高的存货价值、较高的流动比率意味着企业财务状况良好,这对博取社会公众对企业的信任,增强投资人的投资信心,而且利润的大小往往是评价一个企业负责人政绩的重要标尺。不少企业按利润水平的高低来评价企业管理人员的业绩,并根据评价结果来奖励管理人员。此时,管理人员往往乐于采用先进先出法,因为,这样做会高估任职期间的利润水平,从而多得眼前利益。

运用先进先出法的注意事项
先进先出法,期末材料按照最接近的单位成本计算,比较接近目前的市场价格,因此资产负债表可以较为真实地反映财务状况;但是由于本期发出材料成本是按照较早购入材料的成本进行计算的,所以计入产品成本的直接材料费用因此可能被低估,等到这些产品销售出去就会使利润表的反映不够真实。

先进先出法的适用性
根据谨慎性原则的要求,先进先出法适用于市场价格普遍处于下降趋势的商品。因为采用先进先出法,期末存货余额按最后的进价计算,使期末存货的价格接近于当 时的价格,真实的反映了企业期末资产状况;期末存货的帐面价格反映的是最后购进的较低的价格,对于市场价格处于下降趋势的产品,符合谨慎原则的要求,能抵御物价下降的影响,减少企业经营的风险,消除了潜亏隐患,从而避免了由于存货资金不实而虚增企业帐面资产。这时如果采用后进先出法,在库存物资保持一定余 额的条件下,帐面的存货计价永远是最初购进的高价,这就造成了存货成本的流转与实物流转的不一致。

先进先出法的优缺点
其优点是使企业不能随意挑选存货计价以调整 当期利润,缺点是工作量比较繁琐,特别对于存货进出量频繁的企业更是如此。而且当物价上涨时,会高估企业当期利润和库存存货价值;反之,会低估企业存货价 值和当期利润。

在通货膨胀情况下, 先进先出法会虚增利润,增加企业的税收负担,不利于企业资本保全。而且,先进先出法对发出的材料要逐笔进行计价并登记明细账的发出与结存,核算手续比较烦琐。

15

进销存软件
这个看定位了吧
定位成记帐,库存管理等。而不是一个 利润走势分析 的软件

库存-商品名、批号、进货价、零售价基本可以 【记录】 已发生的 商品在库存环节发生的过程了
-----------------------------
至于 同种手机 不同批号 进价不一样
完全可以在 库存表中 添加 批号项的
在零售开单时,必须选择对应批号的产品,就解决了

换句话说。同种手机不同批号。对数据库而言,看成两种不同的商品进行处理
-----------------------------
月底查
无非是对产生销售行为的产品 统计出 进货价×数量 和 零售价×数量
而已

至于利润走势分析。这个应该是另外一个话题了吧

16

1、销售成本的核算就看公司是否一定要用到先进先出、或者按批次核算,用批次核算的话,公司的管理是否能跟得上,就是同一部手机进货价格是不一样,在出货时,公司的员工是否能区分哪一部手机是最新进来,即公司的管理有没有达到这一层,如果没有达到,趁早不要去想什么先进先出和批次成本核算。如果真的要先进先出核算的话,就看要不要对实物,即哪一部是先进仓,如果要对到一点只能用批次来做,用批次来做就很容易实现成本和利润的(因为销售的时候记录每一个批号),但是用批次也带一来几个麻烦,每个月底的盘点就很难设计了。如果不对应实物,但是成本按先进先出来核算的话,那你在设计时,进仓、盘点、采购退货就要有一个已出数量,然后写一个存储过程来对每一个进仓的商品进行反填已出数量,这样就可以实现先进先出的。但是在系统设计时,要注意没有货时,也可以销售,那时的成本要考虑怎么计算,你可以参考我写的成本核算的文章:http://blog.csdn.net/fstao/archive/2008/02/14/2095329.aspx
2、如果用加权平均核算的话,就要考虑到一点就是月底库存金额与月底库存金额可能会不一致,但是根据会计原理这样计算是没有错的,这个你也要花费一些时间与用户说明白。用月平均核算成本就不会出现这种问题的。

16

很多朋友都提到一个严格按照,先进先出法进行销售。但是,我就碰到过几家店子存在这样一种情况:比如同一款号的手机,前一批次进来的还没有卖完,里面的软件是低版本的(例如去年的S40 3th Edition),这时客户在购买的时候,就会直接提出要新的。但是既然是同样的价格,同样型号的手机,你没有理由不卖给他,不是么?当然客户没有提出来的情况下,肯定是执行着先进先出,而有客户要求换的时候,那可能就会被打乱。

17

从财务会计的角度看关键在于会计周期,从管理会计和销售管理的角度看关键在于是否要考虑时间标签。
具体来说,从财务会计的角度看根本不必考虑什么先进先出,不信去问问专业会计,所有有会计证的人都懂财务会计。而从管理会计的角度看国内所有中小企业搞得什么先进先出都是假行家的伪科学(您听说过的Dell、HP、Walmart根本就没有这一套),而国际大公司的财务管理模型里真正能用上时间标签的全球不超过100家。顺便说一下有会计证的听说过管理会计的不到10%,而这10%里真正懂一点的又不超过10%,也就是说100个专业会计也不超过1个懂一点管理会计的。

总之,如果不懂财务会计在这个问题上基本上就没有发言权,而如果不了解管理会计的基本概念您的讨论也就是自娱自乐而不会帮助到企业的。

18

我说说我对这个系统的理解
你要处理的商品是电子产品,这个商品有它的一些特点不同如其他产品
1、电子产品价格变化较快
2、存在保修、退货、退库等问题,一般情况下不同批次的产品反点数不一样。
由于这个特点我建议将成本核算与商品管理分别处理。
1、产品管理:应记录批次号、机身号(每部手机都有个机身号,商家保修退库好象都是以这个号为依据的)
2、成本管理:建议按移动加权平均成本计算。由于这类产品价格市场变化较快,无论是先进先出、还是后进先出或简单平均法都不能真实的反应库存成本情况。因为你不可能要求客户一定要买你先批次的产品,更不能保证你的卖出价就一定会比你库存中最早批次的进价高。

19

加工型企业?
要从材料到成品一线跟踪下去是相当复杂的,甚至有时候无法完成跟踪。如果只是为了进行材料品质的跟踪,那应该在于QC。采购要进行检验,用料尽量遵守先进先出原则,周期性盘点,生产完成(包括成品和半成品)需要进行检验。从多个环节把关进行控制。
如果可以做到的话,可以对采购、生产、用料、销售,做好批次控管,这样可以大致做到跟踪。

20

销,返利,返佣,这些不只是手机销售当中有,众多行业都存在,而其中保健品(OTC)销售当中更显突出。
促销通常可以归为两类,一类是搭售(这个虽然从法律上来讲是不允许的,但是却又是普遍存在的),搭售也有称之为捆绑销售,特点是,只要你购买产品就可以得到一份同类或不同类的附售品,如买蚊香送蚊香片;另一类,则是根据购买的量附送一定的赠品,包括如买二送一等等一类的。
根据前类的一个转化,就存在一个返利,这个就包括节日折扣等,特点跟前面的搭售不同的是,它没有实物参与,而是直接在原来商品的基础上面做一个价格的折算,其中计算公式则众多了。
而返佣,也叫做贿赂,这虽然说应该算是违反商业规则的,但也是普遍存在的。

但是这些都是实施细节,并且也是众多系统,不管是零售,还是规模销售都需要处理的问题,而且都要计入销售成本,至少是利润(各单位各系统处理方式不一样),而其中跨单位的搭售,相对更为复杂,目前法律上已经禁止。

我还是那句话,这些都不成为采用个别计价的必要。并且如果在搭售的时候,使用个别计价会使得设计更加的复杂化。

21

掺和一下,楼主只需按自己思路做就好了,入库单上包含“单号、商品单价、入库量、商品批次号、批次销售量”及其他相关条件,销售时根据“商品和商品批次号”销售,销售总量填充“批次销售量”,批次销售量=入库量时表示该单入库商品销售完毕,原则上不能退货;小于时可以退货。统计库存用“入库量”合计-“批次销售量”合计得出;退货也是入库单一种,入库量为负数,值=“入库单上的入库量”-“入库单上的批次销售量”。
不过这样就需要软件使用企业增加一个岗位:仓管员,必须明确其发单责任,不然容易混乱。
这是根据楼主给出的条件的一些操作方法,参照的是一些在用的零售软件操作思路,仅供参考。

22

哈哈。也来混一下。
楼主有个基本原则搞混了。楼上僵哥也提到了:移动加权平均法是计算库存成本的方法。先进先出,这个是管理库存出入的方法。

你这里没有提到客户的会计需要按什么方法来计算他的库存成本。也就是库存单价。

你目前的思路是 商品销售价格-商品进货价格=商品利润,这个是单个商品的思路。财务的思路是:当月销售总额-当月库存总额-当月进货总额-。。。=利润。通常的进销存也不帮财务计算利润。因为我们理解的利润根本不是财务要的利润。

你一定要利润,这里我觉得应该等于 销售金额-出库金额。
补充一个,如果批号不同。你为了计算方便可以在计算库存成本的时候看成不同商品。但他们同属一类。这样给财务看的是类的库存金额,在处理退换货的时候,把它看成不同商品。

23

你说的问题和我公司的业务有点类似,不同的是你做的是手机业务我做的是药品业务,对品种的流向控制要求更严格(国家对药品有严格的法律规定的)。同一品种可能来自不同的上游供货商(也可能是厂家),进货价不一样,进货的批号更是不一样,由于各自的销售政策(有些厂家规定某一批次只能向某种类型的单位销售,错了是违约的),同时药品的GSP管理办法中规格要求每一批次的流向都是明确的,有些药品可能要经过销售、退回、再销售、再退回。。。。的流向,每次都不能错,要不是这样,如果药品有问题你就不知道找谁去了。如果简单的象楼上有的方法处理根本不可能解决的这种问题(不做企业管理的人不会有很深的体会,现在很多情况是写软件的不去管理,搞管理的不懂写软件,写出来的东西符合书本,不符合企业经营)。处理这类问题要分清业务和财务是有区别的,由于现在关于财务的书大多以工业企业为例子,不大适合现在的商业单位。对于商业单位的财务的发生,是全局(抽象)的不针对具的某一具体的商品,财务的数据只是业务数据的一个方面的反应,但业务又是非常复杂,不单单是财务数据能包含和代替的(我记得有个财务方面的教授所就的,财务只是公开的数据反应,更多的是要关心数据的真实组成)。
比如我们药品销售是要求(只列出与这个问题有关联的):
1、适合GSP管理,做到每批药品的购、销、存及药品报损要十分清楚;
2、对药品的到票,到证(特殊商品有特殊的证件),来货的单位的合法性要十分清楚(有可能上次进货时还是合格的,下次就过不合格了);
3、对财务要做到每对批货的调价,退补等(有的药品对不同批号厂家要求销售的对象是不同的,出了错是违约的行为);
4、对特殊药品(如麻药等)国家严格控制的要对销售单位严格控制;
5、对各供货单位的付款要严格按合同期限(有的是到货后三个月等,有的是销售后才付,特别是销售后才付这类,因为我们下属还有一个零售连锁公司,财务是分离的,但数据又要连续);
6、对不同的销售单位实行不同的销售价格(成本核算不一样);
。。。。。。。。。。
我的处理方法很简单就是对每个入库的药品给一个唯一的ID号,这个号码不论是在购、销、存中任一个环节都是不变的,(实际上就是财务上的个别计价方法)。至于药品名称的和其它属性只是对这个ID的一个说明而已。这样上述所有的问题都解决了,而我们写程序的要做的是在后台做好一切,让操作者感觉不到这个ID的存在,对操作者来说只有药品。对是否是先进先出等只是一个查询排序的问题(ID号本身都具有时间性的)由开票人员自己定制,而财务数据只是业务数据的另一个查询。最重要的是这样做对后期做更高级的分析做好的数据准备。
结果很简单,可能有很多人不赞成,我想这也是可以理解的,不同的业务有不同的处理方法,不同的企业文化有不同的要求,要不然都统一成一个模式, 做程序的不就没饭吃了,事实上,我这套软件帮助我们公司过了2次GSP认证,一次是国家级认证,在药品的流向上没有出现任何问题。另外这样做简化了财务数据的录入(因为每个货品的业务是明确的),公司由原来的十几个会计裁了一大半只剩4个会计

24

人建议的方法是产品管理与价格管理分离,虽然说价格离不开产品,但是会其它因素制约,特别象生活必须品和药品一类,由政府指导价或者直接定价的产品,这个价格更得分离管理。除了库存有流水,价格也会形成一个流水。

产品的跟踪,在比较多的行业都存在。但是跟踪的依据不是库存,而是进和销,当一批产品进来的时候,对个别进行跟踪的必要性不太大,当然,条码(这里我把商品的唯一编码统称为条码)的明细还是要入库管理的。而只有当一个产品报废、退库、销售才需要进行个别跟踪。这个时候不管是报废还是退库,还是销售,实际上应该直接与产品的来源相关系,而不是库存,因为库存出货之后,就不复存在。这是内部的管理。对外的还有一个售后的服务。应该要建立起一个售后服务记录。而售后服务当中有存在换货的情况,采用类似于财务作账的模式“一借一贷”,同时在销货售单(也称销售单)当中注明其相应的售后服务记录,换句话说,售后服务是完全为销售服务的。

对于楼上朋友说的,专品专售,这个可以级别(实际也就是一个特殊的标识),从而跟CRM系统进行关联。

25

就手机行业而言,要比药品要简单,条码在药品行业是不准确的(不能反应批号,对零售这种先拿货后开票是可以的,但对批发是先开票后发货是不太合适的),而且近1/3的品种是没有条码,另外由于药品生产量大,有可能产生这样的情况,同一批号有可能在两家商业公司中进到,当然这种情况很少,但只要有一个,所有的数据都会变成不可信
关键的一点是不要把业务和财务混为一谈,尽管最终是归一的

26

信息管理作为管理的一部分,是没有内外区别,区别在于书本与实际,作为软件是对经营管理过程中的一个工具,应该也必须体现企业的具体的经营者的思想,企业文化,不能让管理让位于软件,而是让软件服务于管理者,如何处理数据的复杂是程序设计者去做的,对于使用者,他要的是结果而不是过程,软件要给企业带来效益,才能体现价值。就我认为,现代计算机完全可以胜任个别计价的方式记录数据,当然这种方式不适合所有情况,比如我们下属的一个酒店,我在写酒店管理的菜品销售以及物品的购销存就是用移动平均法做的(而且在之前我在酒店兼任了好几个月的经理,对每个环节的管理都直接参与),因为这符合酒店管理的实际情况,这时就不能用个别计价了,因为大多数据业务是不需要售后服务,购进的物品也没有具体的归属(你不能把一斤肉归到某一菜品中)。
所以具体问题具体分析,就楼主的问题我认为个别记录的方法较为合适。

27

对于手机行业的流通形式我不是太清楚,不好断言,所以只是说了自己的想法。我只是就事论事。
但对于药品行业,我想比一般的人有发言权,我就多说两句题外话
首先,药品是不能由销售商来打批号的(如果是要么是假药,要么是合法的药品分装厂家),药品的批号管理是非常严格的,这里我就不讨论GSP管理了,有兴趣的话可以看看;
其次,药品是不能有内部批号的,我从未听说有此一说(本人进入事药品行业有六年了,以前做了七年医生),因为药品必需按外包装上的批号发货;
第三,药品调货是药品行业正常的业务,在同行中由于某个药品缺货在其他批发公司中调货(以前叫调拔),经常会有一批货在几个批发商中转圈,只要对方是合法资质的都是合法的,所以同一批号出现几个商业公司中是正常的;
第四,有问题的品种只会由该批货物的上家来负责,而不管它是从何而来,只要进货时它是合格的(上家去找它的上家);
第五,药品采用个别跟踪的方法就麻药而言已经是有五年的历史了,所有的麻醉药品每一次销售都是要在一个周内上报给国家药监局的,而且去年已经实现对麻药的完全跟踪(每一支药,每一盒都有唯一的代码,就是报损消毁还得有公安人员在场);
第六,药品的流向是要完全可控的,不是随便的,要不然吃药就不放心了,药品的流向药监局是每个月都要来查的(如果有地方不是,只是地方上管理问题,国家是这样规定的,就我们公司来说发错一次批号是要扣10元的)
最后,我只说我实现了的方法,不一定适合别人,只是一种建议,另外也不复杂,尽管我们药品品种现在有近两万个,在库药品品规的话有十万个左右,操作起来没有什么不好的地方
对于药品:
在药品中对某一品种个别调整价格也是常见的,通常是对某一个批号(或者某一时期购进的药品),进行商业推销活动(流向是要发回厂家的),可能根据厂家的要求,厂家在补差价后,进行调整价格,不仅是销售价就是原始进价也要调整,不然品种成本就不对了(不能按财务处理,这种调价处理较一般的复杂)。

28

首先谈谈楼主利润计算的问题:

利润计算的公式大家都很清楚:销售利润 = 销售收入 - 销售成本(为了便于问题的描述,在这里忽略掉税的问题,虽然这里用的名称:销售收入和销售成本都是剔税的概念,下面的讨论就不再涉及税的问题。

销售收入很容易理解:卖了多少钱。

销售成本:这个不太容易理解,最直观的理解就是买来花了多少钱,这就要求我们追踪每一个出售的商品的采购价格,而这往往是复杂的、费事的、没有必要的,更为关键的是容易出错的。

因此,我们有必要来谈谈销售成本的问题,只要把销售成本的问题谈清楚了,利润的问题就没有问题了。
那么,我们换一种思路来理解销售成本的问题,我们可以这样理解销售成本,我们销售的东西值多少钱。

其实这又和另外一个需求吻合了,也就是我们的客户不但要知道我仓库里有多少东西,还希望知道这些东西值多少钱,我们称为库存成本。

好了,销售成本和库存成本的问题都转换成了值多少钱的问题。
然而,值多少钱的问题在现实一般理解中是没有一个定论的,各有各的说法,因此根本无法计算。

还好,在会计上有一些比较规范的定义,那就是商品计价法则。
常用的计价法则有很多种:月末平均、移动平均、先进先出、后进先出、个别计价、末次进价等
商品计价法则虽然有很多种方法,但一个会计年度只能选择其中的一种,一般在一个会计年度之初进行确定,而且必须报税务部门批准,整个会计年度没有特别的情况一般是不允许变更。
还有一个不得不说的问题就是,当库存数量为零时,库存成本也必须为零,但上述各种计价法则的计算结果可能与这个相冲突,因此,会计上有一种转出的操作,可以将多余的库存成本结转成利润。

上面是会计帐务处理的法则,进销存是业务系统,主要为业务管理服务,需要给出的是能够及时准确反映市场情况的信息,同时为了能够表现数据的真实有效性,还必须在相同规则下与帐务数据一致(会计帐务数据具有法律有效性)。

那么,我们在进销存系统中就要采用上述法则提供多种计价方式(业务的管理由管理者决定,因此管理者最有发言权,他只要进销存按照约定的规则给他数据,并确保及时准确,至于决策,并不是进销存软件的事)。

好了,上面说了很多,只是为了说明问题的本质是什么,下面我们看看两种比较常用的计价法则用电脑怎么实现。
1、先进先出法则(如果两个批次的进货,在同一时间的售价不同,我们应该将其视为两种不同的商品,下面讨论的都是基于售价相同的前提)
0)准备:需要建立销售检查点,包含采购序号(注意与采购单号不一样,严格按照采购记帐的顺序生成的),商品号,剩余数量。
1)采购:增加库存数量,增加库存成本(这个很容易吧,不需要多讲)
2)采购退回:视同采购,只不过都是负数,注意:这里会产生转出的问题。
3)销售:减少库存数量,计算销售成本(根据具前面的销售检查点进行计算),减少库存成本(将库存成本减去本次的销售成本),修改销售检查点。
4)销售退回:视同销售,增加库存,计算销售成本时是从销售检查点往前计算,增加库存成本,修改销售检查点。
2、移动平均:
1)采购:增加库存,增加库存成本
2)采购退回:视同采购,注意:这里会产生转出问题。
3)销售:减少库存,计算销售成本(库存成本/库存数量×销售数量),减少库存成本(将库存成本减去本次的销售成本)
4)销售退回:视同销售。

29

数字游戏,用户要求用批次就用批次
裤衩比星星
你买X批号1:100,卖X批号1:150,你买X批号2:1000。你的利润50没错,另有1000的X没记,说你亏本,不正确,只能说你买没记利润的X1000时怎么了?先进先出和移动平均只是一个忽略批号简化算法。

30

 

资料来源:
https://bbs.csdn.net/topics/240033876

延伸案例:进销存设计与分析_成本核算
https://blog.csdn.net/fstao/article/details/2095329

让网站打开速度更快 加快域名dns解析

什么是TTL
TTL是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
其他不再赘述,发挥二的性格,我们直奔主题。
用户打开网站的整个流程中,DNS解析时第一环,当用户输入域名并敲回车后,windows系统调用DNS client,寻找到用户配置或者自动分配的DNS IP,之后就开始整个解析过程。
DNS解析,变快有意义吗?
有,呵呵,很多小型网站,DNS解析时间都接近0.5s,甚至我见过一个网站,需要1.2s才可以解析出结果的。这是个非常令人吃惊的数据,因为对于一般网站打开时间超过8s用户即将放弃访问,而对于电子商务网站,4s就是用户忍耐极限。而一般经过优化的小型网站,DNS解析时间都可以控制在200MS左右,而带宽在100M左右的网站,经过优化,DNS解析时间可以控制在50-100ms。
如何优化呢?
首先利用好TTL,因为要尽量多的让用户直接从运营商的DNS缓存中拿到A记录,这样才能保证最快,但是也要保证,当你的服务器出问题时,需要尽快的切换,所以,这个TTL设置也是有一些情况需要综合研究的。
1、 你肯定清楚,自己的服务器有没有多台或者备份。如无备份,那服务器宕机时,你只能生抗,所以,TTL时间对于你来说是越长越好,因为TTL短的目的是服务器发生问题时,可以及时切换,这个对于没有备份的网站基本利用不上。所以,你的TTL设置就是越长越好,当然了,也不能无限长,一般设置TTL 3600即可。
2、 如有备份或者多台服务器,会发生由于服务器宕机需要及时做切换,TTL时间越短,切换越及时,但是TTL时间越短,也就意味着运营商DNS经常缓存不住,一般用户,设置为TTL 600即可,如果对及时切换,要求特别苛刻的网站,设置TTL 120即可。
其次寻找足够热的域名解析商。很多网站,都是自己做一个域名解析服务器,看着自己掌控方便了,但是大错特错,因为你的域名解析服务器,基本上都不被缓存,每次从根服务器询问一圈,绕了大半个地球,才给出最后的结果,那自然会效果很差。所以,要寻找足够热的域名解析商。什么叫热,就是被访问的次数特别多。足够热的话,域名解析服务器的A记录基本上会被各地运营商的DNS一直缓存着。如何判断域名解析商够不够热呢?其实,也很简单,看看这个域名解析商的客户够不够多,他们客户网站够不够热门,访问的人够不够多。
也给大家推荐一个更好的方法,就是找CDN厂商做域名解析。因为CDN厂商服务的客户,有很多是很热很大用户群很多的,所以,这些CDN厂商的域名解析服务器,服务效果那是岗岗的好。
最后是进阶技巧—巧用CNAME。不少网站拥有者,在同样的一个或多个服务器上运营很多小网站;或者自己运营一个网站,但是拆分了很多个二级域名。针对这些情况,严重需要善用CNAME,把所有的这些小网站的域名或者二级域名,cname到一个自己定义的统一域名。然后设置这个cname对应的TTL时间足够长。这样的话,保证网站的第一次解析,可以直接从运营商的DNS缓存中拿到,也就是直接拿到cname后的记录。然后,第二个cname记录,再设置一个相对合理的TTL值。通过这样,变相加热了第二级域名,通过加热的第二级和缓存时间足够长的第一级,最大化的优化DNS解析时间。该技巧,一定要确保,最后A记录得到的IP,可以服务这些原始域名。
例子:
www.abc.com. 7200 IN CNAME hot.abc.com.
hot.abc.com. 600 IN A 127.0.0.1
什么叫拆分域名?
很多网站,在搭建网站的时候,只是申请和购买了一个域名,然后所有内容:图片、js、css、html、php等等,都放在一个域名下。
而拆分域名,指的就是根据不同的应用,而将域名拆分出来。
拆分域名有什么好处?
使用IE6和IE7内核的浏览器,针对同个域名,只会同时发起2个连接。
使用IE8内核的浏览器,针对同个域名,可以同时发起6个连接。
很重要吗?
非常重要,请看图示。
使用IE6打开一个所有内容均在同个域名下的网站

使用IE8打开一个所有内容均在同个域名下的网站

我们看到的是,在IE6的情况下,请求第7个元素,需要0.7s,而在IE8的情况下,0.277就开始请求第7个元素。
由此可以看到,并发连接更多的时候,网页打开速度会更快。

由以上数据可以看到,多个域名,不管是在IE6和IE8的情况下,拆分域名,都会使网站的打开速度变快。
现实中也是如此,新浪、淘宝等大型网站,他们无一不是在拆分域名。
另外,要纠正一个IT人的误区。因为IT人一般都热衷技术,很多人的操作系统等版本都很新,用的都是IE8甚至以上的浏览器。但是整个中国,到目前为止,使用IE6和IE7的用户,仍然非常另IT人震惊的80%左右。所以,拆分域名,基本上可以缩减你20%以上的打开速度。
一个简单的操作,就能带来巨大的效果提升,何乐不为?
当然了,肯定会有人问,拆分域名,那不就会导致域名热度不够,DNS缓存不住的问题吗?这个问题,请看我上一篇博文,已经给出了答案。
按照什么原则拆分域名呢?
个数多少合适?
一般50M以下网页类网站,域名保持在4、5个即可,过多后范围会导致你的维护和使用变得复杂。
100-500M以下网页类网站,域名保持在8-10个左右。
1G以上的网页类网站,域名无所谓个数,保持10个以上,具体个数根据自己的业务和管理特点随心制定。
什么内容放到同个域名下?
页面类:html、htm等
样式类:js、css等
图片类:jpg、png、gif等
动态类:php、asp等
这样的分配方式,将来有利于你进一步优化你的网站,并且在你需要寻找加速工具时,也可以针对性的选择不同的加速方式。

打印机现黄色感叹号,提示unknown device

问题:USB打印机连接电脑变成unknown devide
解决方法:禁用设备管理器的USB2 Enhanced Host Controller。
 
注解:USB2 Enhanced Host Controller
全称因主板不同而异,如: Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller – 1E26
这是 intel主板 的 南桥的USB驱动 ,每个都不一样, 对应不同的主板南桥型号 从后面的 1E26 1E27 等等的编号
 
另: 有可能是计算机静电引发。启用“SiS PCI to USB Enhanced Host Controller”设备,关机后对计算机进行静电释放,重新启动计算机,连接在计算机上的打印机和U盘很快被识别;
追注:计算机静电释放的正确方法:拔除主机上所有的连线(包括电源线,鼠标键盘线,显示器数据线,网线,外接设备连线等),按主机电源开关3-5次,每次按住开关一秒钟,中间间隔1-2秒。
 
 

从Excel中读取数据时获取的数据某些列单元格值为空的原因及解决方案

本文为转载,还没有来得及去核实,权先记录。
 
在用OLE DB,ISAM会尝试读取前8行的数据类型,如果一列中的前8行既有文本类型又有数字类型,那么就取多数的数据类型,其余的返回为空。如果两者一样的数目一样多,那么就取数字类型,文本类型的行返回空值。
即:某一列前8行中
如果5行文本类型,3行数字类型 则返回结果为5行文本类型的数据,3行空值
如果5行数字类型,3行文本类型 则返回结果为5行数字类型的数据,3行空值
如果4行文本类型,4行数字类型 则返回结果为4行数字类型的数据,4行空值
当然8行以后的值按照前面探测的结果,如果跟结果一样的类型返回原来的值,如果相反则返回空值。
如果想在混合类型中返回真实的值,那么就要在连接字符串的扩展属性中加上IMEX=1;这个属性的对应值如下:
0 is Export mode
1 is Import mode
2 is Linked mode (full update capabilities)
微软提醒说,谨慎使用IMEX=1,因为这是导入模式,在这种模式下做数据的添加或者更新结果不可预料,所以在对Excel做Insert 或者Update动作时,不要给这个属性赋值。
那么为什么在IMPort Mode的情况下就是用文本方式读取的那?
请看注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel 下面有个键ImportMixedTypes,它的值是Text,也就是说在导入模式下,混合数据类型统一处理为文本。
这样看似一切OK了,不过当你的数据前八行都是数字,后面的N(N>>8)为文本类型时,即使你把IMEX设为1,后面的文本还是不会显示的。
why?
ISAM还是比较勤快的,即使你跟他交待了在导入模式下使用文本类型,它还是比较关注前八行的情况,如果前八行都为数字,他还是要按数字来处理,这家伙还是比较执著,很想主持公道的。
那咋办?
还是得靠注册表,还是上面的那个路径下有个键TypeGuessRows,其默认键值为8,这就是前八行的来源,你可以把它设为1-16行,当然也可以把它设为0,它不是很勤快吗?那就让它看看所有的行吧!累死个傻小子。如果所有行都是数字,那就是数字了,有一个不是数字那就按文本处理。
以上的理论在我的机子上测试通过,环境是Office2003,Win2000 Sp4

Centos 6.2 配置记录

在Centos 6.2 【64位】上编译安装LAMP几次都不成功,转向RPM包安装,还算顺利地完工了。
问题记录:
1、unpacking of archive failed on file /usr/share/phpMyAdmin/tbl_relation.php;5….
RPM包损坏或者失效,重新找资源下载、安装;搞定;
2、提示依赖程序没安装;
按提示去搜索相应的RPM包安装上去。这里记录几个比较好的RPM包下载网址:

http://pkgs.org/
http://rpms.southbridge.ru/rhel6/
http://rpmfind.net/linux/

3.顺利安装成功,绑定域名,无法访问?
低级错误:配置防火墙、关闭SELINUX、重启;OK;
 
附录:相关配置
一、Apache配置
vi /etc/httpd/conf/httpd.conf 编辑文件
ServerTokens OS  在44行 修改为:ServerTokens Prod (在出现错误页的时候不显示服务器操作系统的名称)
ServerSignature On  在536行 修改为:ServerSignature Off (在错误页中不显示Apache的版本)
Options Indexes FollowSymLinks  在331行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)
#AddHandler cgi-script .cgi 在796行 修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)
AllowOverride None  在338行 修改为:AllowOverride All (允许.htaccess)
AddDefaultCharset UTF-8 在759行 修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)
Options Indexes MultiViews FollowSymLinks 在554行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var 在402行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var (设置默认首页文件,增加index.php)
KeepAlive Off 在76行 修改为:KeepAlive On (允许程序性联机)
MaxKeepAliveRequests 100 在83行 修改为:MaxKeepAliveRequests 1000 (增加同时连接数)
:wq! #保存退出
/etc/init.d/httpd restart 重启
rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页
二、php配置
vi /etc/php.ini #编辑
date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在432行 禁止显示php版本的信息
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入
open_basedir = .:/tmp/ #在380行,设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可注销此行,或者直接写上程序目录路径/var/www/html/www.osyunwei.com/:/tmp/
:wq! #保存退出
/etc/init.d/mysqld restart #重启MySql
/etc/init.d/httpd restart #重启Apche