123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403 |
- $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_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)
- public function integer sec_auditmx (long arg_scid, long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- public function integer c_sec_auditmx (long arg_scid, long arg_billid, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer c_sec_auditing (long arg_wageid, long arg_wagemth, ref string arg_msg, boolean arg_ifcommit);Long cnt = 0,i
- Int rslt = 1
- DateTime null_server_dt
- SetNull(null_server_dt)
- IF f_check_wage_audit(arg_wagemth,-1,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :arg_wageid
- AND wagemth = :arg_wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '该月份该工资项目已开工资变更单,不能撤审'
- GOTO ext
- END IF
- uo_wage u_wage
- u_wage = CREATE uo_wage
- 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 = '查询扣费单失败,原因>>'+sqlca.SQLErrText
- 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 = '查询工资项目失败,原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '不存在该工资项目,原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF u_wage.f_wage_clear(arg_wageid,arg_wagemth,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- UPDATE u_outware SET
- secflag = 0,
- secauditingrep = '',
- secAuditingdate = :null_server_dt,
- wagemth = 0
- 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
- secflag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- DESTROY u_wage
- 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 = '查询扣费单明细失败!原因:'+sqlca.SQLErrText
- // 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 = '查询工资项目失败!原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '不存在该工资项目!原因>>'+sqlca.SQLErrText
- 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
- RETURN rslt
- end function
- public function integer sec_auditmx (long arg_scid, long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt = 0,i
- Decimal ls_emp_sumwage
- uo_wage u_wage
- u_wage = CREATE uo_wage
- Long ll_wagemth
- IF getinfo(arg_scid,arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF secflag = 1 THEN
- rslt = 0
- arg_msg = '单据还已经财审,操作取消'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*) INTO :cnt
- FROM u_gz_wageitem Where useflag = 1 AND wageid = :relid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询工资项目失败!原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '不存在该工资项目!原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- ll_wagemth = Year(Date(outdate)) * 100 + Month(Date(outdate))
- FOR i = 1 TO it_mxbt
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = outwaremx[i].qty * outwaremx[i].fprice * outwaremx[i].rebate
- IF u_wage.f_setwagemxdata(ll_wagemth,cusid,relid,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 = :ll_wagemth
- WHERE scid = :arg_scid
- AND outwareid = :arg_billid
- AND billtype = 10
- 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
- RETURN rslt
- end function
- public function integer c_sec_auditmx (long arg_scid, long arg_billid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt = 0,i
- Decimal ls_emp_sumwage
- DateTime null_server_dt
- SetNull(null_server_dt)
- uo_wage u_wage
- u_wage = CREATE uo_wage
- Long ll_wagemth
- IF getinfo(arg_scid,arg_billid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF secflag = 0 THEN
- rslt = 0
- arg_msg = '单据还没有财审,操作取消'
- GOTO ext
- END IF
- ll_wagemth = Year(Date(outdate)) * 100 + Month(Date(outdate))
- IF f_check_wage_audit(ll_wagemth,-1,arg_msg) = 0 THEN
- rslt = 0
- arg_msg = arg_msg + ',不能撤审'
- GOTO ext
- END IF
- //检查该月份,该工资项目是否已开工资变更单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_wage_change
- WHERE wageid = :relid
- AND wagemth = :ll_wagemth;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询该月份该工资项目是否已开工资变更单失败'+"~n"+sqlca.SQLErrText
- 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 = :relid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询工资项目失败!原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- IF cnt = 0 THEN
- rslt = 0
- arg_msg = '不存在该工资项目!原因>>'+sqlca.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 TO it_mxbt
- ls_emp_sumwage = 0.00
- ls_emp_sumwage = outwaremx[i].qty * outwaremx[i].fprice * outwaremx[i].rebate
- IF u_wage.f_setwagemxdata(ll_wagemth,cusid,relid,0 - ls_emp_sumwage,arg_msg,FALSE) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- NEXT
- UPDATE u_outware SET
- secflag = 0,
- secauditingrep = '',
- secAuditingdate = :null_server_dt,
- wagemth = 0
- WHERE scid = :arg_scid
- and outwareid = :arg_billid
- AND billtype = 10
- AND flag = 1
- AND secflag = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '审核扣费单失败,原因>>'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- secflag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- DESTROY u_wage
- RETURN rslt
- end function
- on uo_outware_gj.create
- call super::create
- end on
- on uo_outware_gj.destroy
- call super::destroy
- end on
|