定单程序修改小记
---
终于完成了订单输入程序的修改!好费劲啊,象一块大石一样压在心头,压了一个星期~~
一方面是程序比较乱,另一方面我不是勇敢的人,碰到困难不是勇于面对,积极的解决。总是一看到困难就先怕了,总想拖啊拖的,但拖来拖去,拖到最后也得硬着头皮去做!
这一个星期基本上没有做什么别的事情,攒了好多别的活啊,这个事情也是拖到今天才完成。
其实这次改的只是一个小功能,但时改了后又发现点别的问题。
本来这个程序原来不是我作的,后来我加了导入生成定单的功能,现在导入定单的程序要修改,当然要我来改了。
但我们这个制作定单实在是很麻烦滴~(不要笑我,我是半路出家,本来不是作程序的,转过来现学现做一共才2年多。),尤其是判断供应商,计算价格,太麻烦了,过程套过程,有时看得真是晕啊!也是睡眠不足的原因,有时一看就头疼了,或者看不了一会,就觉得脑袋不够用了,脑袋真的发酸的,又酸又痛又胀的!
首先要介绍一下,我们公司对外供应零件的地方分为几个供应圈,我们的供应商根据供应圈不同也有会几个不同的供应商。但有的零件是分供应圈的,有的零件不分,只由工厂供应。
制作定单时,首先要判断零件是不是分供应圈的;如果分供应圈,根据接收部门,判断这个部门属于哪个供应圈,然后根据零件编号和供应圈再去找相应的供应商(有个零件供应商表,记录每种零件不同的供应圈,对应的供应商,价格,价格确认状态,交货周期,有效日期范围等。相同零件相同供应圈的供应商以顺序位来决定优先顺序),以及供应商是否有效,然后计算价格,金额等等,生成定单。过程大概就是这个样子。
其实,判断零件供应圈,根据接收部门判断供应圈,再去找供应商的代码原来都有,在公共的单元里,我作定单导入时有的是直接引用的,有的要转过来,因为如果要修改就要转过来,否则会影响原来的程序功能。
对了,我做的导入定单,是根据系统别的程序生成两个的CSV文件,在系统里生成三个表,分别是:定单主表,定单零件表和工程明细表。定单表是定单的共用信息,定单零件表是最主要的,记录这个定单所写的零件,接收部门,数量,供应商,价格,金额等,这个和定单表是一对多的关系;工程明细表记录每个零件所用的具体工程明细,这个和定单零件表又是一对多的关系。
当时做这个导入程序的时候也是很费劲,尤其是用别人的代码,费了好大力气才看懂。过了这么长时间都忘掉了,还要重新读。
这次修改的原因是因为又有了新导入来源,而这个来源没有办法加入接收部门,得要在导入时手动输入。
这个就比较麻烦了,原来导入定单时只需要修改供应商,比较好做些。改了供应商做个触发,调价格计算一下赋值就可以了。但现在还要修改接收部门,所有的过程都要来一遍了。
所有的过程来一遍也无所谓,也很容易的加上了,但是总是得不到合适的结果!因为供应商改了可以直接查找数据计算价格等。但接收部门改了后,同时也应该修改供应商,再查找数据,计算价格等等。有些冲突,有时能得到合适的结果,有时结果却又莫名其妙。
查了又查,改了又改,理了又理,调了又调,最后总算搞定了。
最终采用的原则是:
1,接收部门和供应商都不为空时,修改任何一个,都重新计算,按零件编号,供应圈和供应商在零件供应商表中查找数据。如果有匹配的记录,则触发计算并赋值。如果无匹配的记录,则将计算结果都赋为零。
2,如果接收部门为空,供应商修改后,则不用供应圈条件,直接按零件编号和供应商在零件供应商表中查找优先的数据,触发计算并赋值。
3,如果供应商为空,接收部门修改后,则按零件编号和接收部门对应的供应圈在零件供应商表中查找优先的供应商数据,然后触发计算并赋值。
这个原则也是最后才总结出来的,这样一看就比较清晰,比较简单了。可惜是最后才得出的!
对于制作定单的人来说,首先要保证的是接收部门的正确,可以不保证供应商的正确。
对于第一条原则中,如果接收部门和供应商不匹配,计算结果为零的这种情况,留到贸易部(执行定单的部门,制作定单是制造部)去检查,他们有责任去纠正供应商。而将计算结果都赋为零,也可以提醒他们修改供应商,不修改时是无法进行下一步操作的。
对于第二条中,虽然赋了值,但可能是错误的。但接收部门为空时是无法生成订单,而当再输入接收部门时,又会应用第一条原则。
当然,如果都用第三条原则也是比较省事的,但有时制造部和贸易部会指定供应商,而不按零件供应商表中的优先顺序。所以第一条和第二条是对第三条的补充!
比较完善了!
通过这个小事,也得出个结论:什么事情,你要把它看得难,还没怎么着,就怕了它,它就真的难了;你要把它看得容易,不当回事,一点一点蹋下心来努力地去做,再难的也会变容易。就象老毛说的,在战略上轻视,在战术上重视!
其实这样的情况碰到好多次了,这个道理也早就懂,只是事到临头,总是犯这样的毛病,实在不是个坚强的人呢!
记录一下,警醒一下,以后一定要记着不可再犯!!
没有评论:
发表评论