123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- $PBExportHeader$uo_outware_gj.sru
- forward
- global type uo_outware_gj from uo_outware
- end type
- end forward
- global type uo_outware_gj from uo_outware
- end type
- global uo_outware_gj uo_outware_gj
- forward prototypes
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
- public function integer c_sec_auditing (long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit)
- public function integer sec_auditing (long arg_wagemth, long arg_wageid, boolean arg_ifcommit, ref string arg_msg)
- end prototypes
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);//====================================================================
- // Function: c_auditing(arg_ifcommit,arg_msg)
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // value boolean arg_ifcommit
- // reference string arg_msg
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2003.11.19
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- long rslt = 1,cnt = 0,i
- long ls_newid
- datetime null_dt
- setnull(null_dt)
- if outwareid = 0 then
- rslt = 0
- arg_msg = "没有审核对象"
- goto ext
- end if
- if it_newbegin or it_updatebegin then
- rslt = 0
- arg_msg = "编辑状态下不可以执行审核"
- goto ext
- end if
- if flag = 0 then
- rslt = 0
- arg_msg = "单据还未审核"
- goto ext
- end if
- if balcflag=1 then
- rslt = 0
- arg_msg = "单据已经结存,不能撤审"
- goto ext
- end if
- if secflag = 1 then
- rslt = 0
- arg_msg = "单据已经财务审核,不能撤审"
- goto ext
- end if
- UPDATE u_outware
- SET Auditingrep = '',
- Auditingdate = :null_dt,
- flag = 0
- WHERE u_outware.outwareid = :outwareid
- and flag = 1
- and secflag = 0 using commit_transaction;
- if commit_transaction.sqlcode <> 0 then
- rslt = 0
- arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.sqlerrtext
- goto ext
- elseif commit_transaction.sqlnrows = 0 then
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"
- goto ext
- end if
- for i=1 to it_mxbt
- if p_update_mtrlware ( outwaremx[i].mtrlwareid, outwaremx[i].mtrlid, &
- outwaremx[i].mtrlcode, storageid, outwaremx[i].plancode,&
- outwaremx[i].status, 0 - outwaremx[i].qty,0,0 - outwaremx[i].costamt,&
- outwaremx[i].planprice, outwaremx[i].sptid, outwaremx[i].dxflag,&
- outwaremx[i].woodcode, outwaremx[i].pcode,arg_msg,0 - outwaremx[i].costamt)=0 then
- rslt=0
- goto ext
- end if
- next
- flag = 0
- ext:
- if rslt = 0 then
- rollback using commit_transaction;
- elseif rslt = 1 and arg_ifcommit then
- commit using commit_transaction;
- end if
- arg_msg = '扣费品领用单,'+ arg_msg
- return rslt
- end function
- public function integer c_sec_auditing (long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit);//====================================================================
- // Function: c_sec_auditing()
- //--------------------------------------------------------------------
- // Description:
- //--------------------------------------------------------------------
- // Arguments:
- // value long arg_wageid
- // value long arg_wagemth
- // reference string arg_msg
- // value boolean arg_ifcommit
- //--------------------------------------------------------------------
- // Returns: integer
- //--------------------------------------------------------------------
- // Author: yyx Date: 2004.10.19
- //--------------------------------------------------------------------
- // Modify History:
- //
- //====================================================================
- Long cnt = 0,i
- Int rslt = 1
- DateTime null_server_dt
- SetNull(null_server_dt)
- SELECT count(*) INTO :cnt
- FROM u_outware
- WHERE wagemth = :arg_wagemth
- AND relid = :arg_wageid
- AND secflag = 1
- AND billtype = 10;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询扣费单失败'
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '该月的扣费单未审核,不用撤审!'
- GOTO ext
- END IF
- SELECT count(*) INTO :cnt FROM u_gz_wage
- Where wagemth = :arg_wagemth AND Auditingflag = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询工资表失败'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月的工资表已审核,不能撤审!'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt FROM u_gz_wageitem Where useflag = 1 AND wageid = :arg_wageid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询工资项目失败'
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '不存在该工资项目'
- GOTO ext
- END IF
- UPDATE u_outware SET
- secflag = 0,
- secauditingrep = '',
- secAuditingdate = :null_server_dt,
- wagemth = :arg_wagemth
- WHERE wagemth = :arg_wagemth
- AND billtype = 10
- AND relid = :arg_wageid
- AND flag = 1
- AND secflag = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '审核扣费单失败,原因>>'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_gz_wagemx Set wageamt = 0 Where wageid = :arg_wageid AND wagemth = :arg_wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新工资表失败!原因:'+sqlca.SQLErrText
- GOTO ext
- END IF
- secflag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- arg_msg = '扣费品领用单,'+ arg_msg
- RETURN rslt
- end function
- public function integer sec_auditing (long arg_wagemth, long arg_wageid, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- Long cnt = 0,i
- Decimal ls_emp_sumwage
- datastore ds_emp_sumgjwage
- Long li_year,li_month
- uo_wage u_wage
- u_wage = CREATE uo_wage
- li_year = Long(Left(String(arg_wagemth),4))
- li_month = Long(Right(String(arg_wagemth),2))
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_outware
- WHERE wagemth = :arg_wagemth
- AND billtype = 10
- AND relid = :arg_wageid
- AND flag = 1
- AND secflag = 1;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询扣费单明细失败!'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月的扣费品单已审核,审核前请先执行撤审!'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_gz_wageitem Where useflag = 1 AND wageid = :arg_wageid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询工资项目失败!'
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '不存在该工资项目!'
- GOTO ext
- END IF
- ds_emp_sumgjwage = CREATE datastore
- ds_emp_sumgjwage.DataObject = 'dw_emp_sumgjwage'
- ds_emp_sumgjwage.SetTransObject(sqlca)
- IF ds_emp_sumgjwage.Retrieve(li_year,li_month,arg_wageid) <= 0 THEN
- rslt = 0
- arg_msg = '本月没有扣费单可审核或查询计件单失败'
- GOTO ext
- END IF
- FOR i = 1 TO ds_emp_sumgjwage.RowCount()
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = ds_emp_sumgjwage.Object.sumwage[i]
- IF u_wage.f_setwagemxdata(arg_wagemth,ds_emp_sumgjwage.Object.u_outware_empid[i],arg_wageid,ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- UPDATE u_outware SET
- secflag = 1,
- secauditingrep = :publ_operator,
- secAuditingdate = getdate(),
- wagemth = :arg_wagemth
- WHERE year(outdate) <= :li_year
- AND month(outdate) <= :li_month
- AND billtype = 10
- AND relid = :arg_wageid
- AND flag = 1
- AND secflag = 0;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '审核扣费单失败,原因>>'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- secflag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- DESTROY u_wage
- arg_msg = '扣费品领用单,'+ arg_msg
- RETURN rslt
- end function
- on uo_outware_gj.create
- call super::create
- end on
- on uo_outware_gj.destroy
- call super::destroy
- end on
|