123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353 |
- $PBExportHeader$f_find_mtrl.srf
- global type f_find_mtrl from function_object
- end type
- forward prototypes
- global function integer f_find_mtrl (string arg_mtrlcode, long arg_storageid, ref s_mtrldef_array arg_s_mtrldef)
- end prototypes
- global function integer f_find_mtrl (string arg_mtrlcode, long arg_storageid, ref s_mtrldef_array arg_s_mtrldef);Int rslt = 1
- Long cnt = 0
- String ls_like_mtrlcode
- String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_mtrltype
- Long ll_mtrlid
- String ls_prdpackcode
- Decimal ld_packqty,ld_planprice,ld_lmbuyprice,ld_lmsaleprice
- Decimal ld_rate_buy,ls_rate_scll,ls_rate_sale
- String ls_mtrlsectype,ls_zxmtrlmode,ls_usermtrlmode,ls_barcode,ls_mtrlengname
- Boolean if_find = False
- Int li_statusflag,li_woodcodeflag,li_pcodeflag
- Long ll_statustype,ll_woodcodetype,ll_pcodetype
- String ls_status_config,ls_woodcode_config,ls_pcode_config
- Int li_ifcustom,li_status_check,li_woodcode_check,li_pcode_check
- Long ll_configcodetype
- String ls_configcode,ls_configname,ls_mtrlcolor
- String ls_priceformula
- String ls_qtyformula
- string ls_unit_scll,ls_unit_sale,ls_unit_buy
- long ls_buydec,ls_wfjgdec,ls_sclldec,ls_saledec,ls_buyunit,ls_wfjgunit,ls_scllunit,ls_saleunit //ls_rate_scll,ls_rate_sale,
- String ls_strcheckaddqty
- Decimal ld_net_weight
- Decimal ld_gross_weight
- Decimal ld_cubage
- String ls_handtype
- IF Pos(Trim(arg_mtrlcode),'%') = 0 THEN
- ls_like_mtrlcode = '%'+ Trim(arg_mtrlcode) + '%'
- ELSE
- ls_like_mtrlcode = Trim(arg_mtrlcode)
- END IF
- IF arg_storageid = -1 THEN
- SELECT u_mtrldef.mtrlid
- INTO :ll_mtrlid
- FROM u_mtrldef
- Where ( u_mtrldef.mtrlcode = :arg_mtrlcode Or u_mtrldef.mtrlname = :arg_mtrlcode Or u_mtrldef.barcode = :arg_mtrlcode )
- and (isuse = 1);
- IF sqlca.SQLCode <> 0 THEN
- SELECT count(*) INTO :cnt
- FROM u_mtrldef
- Where ( u_mtrldef.mtrlcode Like :ls_like_mtrlcode Or u_mtrldef.mtrlname Like :ls_like_mtrlcode Or u_mtrldef.barcode Like :ls_like_mtrlcode)
- and (isuse = 1) ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF cnt <> 1 THEN
- rslt = 0
- GOTO ext
- ELSE
- SELECT u_mtrldef.mtrlid
- INTO
- :ll_mtrlid
- FROM u_mtrldef
- Where ( u_mtrldef.mtrlcode Like :ls_like_mtrlcode Or u_mtrldef.mtrlname Like :ls_like_mtrlcode Or u_mtrldef.barcode Like :ls_like_mtrlcode)
- and (isuse = 1) ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- ELSE
- if_find = True
- END IF
- END IF
- ELSE
- if_find = True
- END IF
- ELSE
- SELECT u_mtrldef.mtrlid
- INTO :ll_mtrlid
- FROM u_mtrldef LEFT OUTER JOIN
- u_mtrl_storage ON u_mtrldef.mtrlid = u_mtrl_storage.mtrlid
- WHERE ( u_mtrldef.mtrlcode = :arg_mtrlcode OR u_mtrldef.mtrlname = :arg_mtrlcode OR u_mtrldef.barcode = :arg_mtrlcode)
- and (u_mtrldef.isuse = 1)
- And ( u_mtrl_storage.storageid = :arg_storageid Or :arg_storageid = -1 );
-
- IF sqlca.SQLCode <> 0 THEN
- SELECT count(*) INTO :cnt
- FROM u_mtrldef LEFT OUTER JOIN
- u_mtrl_storage ON u_mtrldef.mtrlid = u_mtrl_storage.mtrlid
- WHERE ( u_mtrldef.mtrlcode LIKE :ls_like_mtrlcode OR u_mtrldef.mtrlname LIKE :ls_like_mtrlcode OR u_mtrldef.barcode LIKE :ls_like_mtrlcode)
- and (u_mtrldef.isuse = 1)
- And ( u_mtrl_storage.storageid = :arg_storageid Or :arg_storageid = -1 );
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- IF cnt = 0 THEN
- rslt = 0
- GOTO ext
- ELSEIF cnt > 1 THEN
- SELECT u_mtrldef.mtrlid
- INTO :ll_mtrlid
- FROM u_mtrldef LEFT OUTER JOIN
- u_mtrl_storage ON u_mtrldef.mtrlid = u_mtrl_storage.mtrlid
- WHERE ( u_mtrldef.mtrlcode LIKE :ls_like_mtrlcode OR u_mtrldef.mtrlname LIKE :ls_like_mtrlcode OR u_mtrldef.barcode LIKE :ls_like_mtrlcode)
- and (u_mtrldef.isuse = 1)
- And ( u_mtrl_storage.storageid = :arg_storageid Or :arg_storageid = -1 );
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- ELSE
- if_find = True
- END IF
- ELSE
-
- SELECT u_mtrldef.mtrlid
- INTO :ll_mtrlid
- FROM u_mtrldef LEFT OUTER JOIN
- u_mtrl_storage ON u_mtrldef.mtrlid = u_mtrl_storage.mtrlid
- WHERE ( u_mtrldef.mtrlcode LIKE :ls_like_mtrlcode OR u_mtrldef.mtrlname LIKE :ls_like_mtrlcode OR u_mtrldef.barcode LIKE :ls_like_mtrlcode)
- and (u_mtrldef.isuse = 1)
- And ( u_mtrl_storage.storageid = :arg_storageid Or :arg_storageid = -1 );
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- GOTO ext
- ELSE
- if_find = True
- END IF
- END IF
- ELSE
- if_find = True
- END IF
- END IF
- IF if_find THEN
-
- SELECT u_mtrldef.mtrlid,
- u_mtrldef.mtrlcode,
- u_mtrldef.mtrlname,
- u_mtrldef.unit,
- u_mtrldef.mtrlmode,
- u_mtrldef.planprice,
- u_mtrldef.mtrltype,
- u_mtrldef.mtrlsectype,
- u_mtrldef.zxmtrlmode,
- u_mtrldef.prdpackcode,
- u_mtrldef.packqty,
- u_mtrldef.lmbuyprice,
- u_mtrldef.lmsaleprice,
- u_mtrldef.unit_buy,
- u_mtrldef.rate_buy,
- u_mtrldef.barcode,
- u_mtrldef.statusflag,
- u_mtrldef.woodcodeflag,
- u_mtrldef.pcodeflag,
- u_mtrldef.statustype,
- u_mtrldef.woodcodetype,
- u_mtrldef.pcodetype,
- u_mtrldef.ifcustom,
- u_mtrldef.status_check,
- u_mtrldef.woodcode_check,
- u_mtrldef.pcode_check,
- u_mtrldef.configcodetype,
- u_mtrldef.configcode,
- u_mtrldef.configname,
- u_mtrldef.mtrlcolor,
- u_mtrldef.status_config,
- u_mtrldef.woodcode_config,
- u_mtrldef.pcode_config,
- u_mtrldef.priceformula,
- u_mtrldef.qtyformula,
- u_mtrldef.buyunit,
- u_mtrldef.wfjgunit,
- u_mtrldef.scllunit,
- u_mtrldef.saleunit,
- u_mtrldef.buydec,
- u_mtrldef.wfjgdec,
- u_mtrldef.sclldec,
- u_mtrldef.saledec,
-
- u_mtrldef.unit_scll,
- u_mtrldef.unit_sale,
- u_mtrldef.rate_scll,
- u_mtrldef.rate_sale,
- u_mtrldef.mtrlengname,
- u_mtrldef.strcheckaddqty,
- u_mtrldef.net_weight,
- u_mtrldef.gross_weight,
- u_mtrldef.cubage,
- u_mtrldef.handtype
- INTO :ll_mtrlid,
- :ls_mtrlcode,
- :ls_mtrlname,
- :ls_unit,
- :ls_mtrlmode,
- :ld_planprice,
- :ls_mtrltype,
- :ls_mtrlsectype,
- :ls_zxmtrlmode,
- :ls_prdpackcode,
- :ld_packqty,
- :ld_lmbuyprice,
- :ld_lmsaleprice,
- :ls_unit_buy,
- :ld_rate_buy,
- :ls_barcode,
- :li_statusflag,
- :li_woodcodeflag,
- :li_pcodeflag,
- :ll_statustype,
- :ll_woodcodetype,
- :ll_pcodetype,
- :li_ifcustom,
- :li_status_check,
- :li_woodcode_check,
- :li_pcode_check,
- :ll_configcodetype,
- :ls_configcode,
- :ls_configname,
- :ls_mtrlcolor,
- :ls_status_config,
- :ls_woodcode_config,
- :ls_pcode_config,
- :ls_priceformula,
- :ls_qtyformula,
- :ls_buyunit,
- :ls_wfjgunit,
- :ls_scllunit,
- :ls_saleunit,
- :ls_buydec,
- :ls_wfjgdec,
- :ls_sclldec,
- :ls_saledec,
-
- :ls_unit_scll,
- :ls_unit_sale,
- :ls_rate_scll,
- :ls_rate_sale,
- :ls_mtrlengname,
- :ls_strcheckaddqty,
- :ld_net_weight,
- :ld_gross_weight,
- :ld_cubage,
- :ls_handtype
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :ll_mtrlid;
-
-
- arg_s_mtrldef.mtrlid[1] = ll_mtrlid
- arg_s_mtrldef.mtrlcode[1] = ls_mtrlcode
- arg_s_mtrldef.mtrlname[1] = ls_mtrlname
- arg_s_mtrldef.unit[1] = ls_unit
- arg_s_mtrldef.mtrlmode[1] = ls_mtrlmode
- arg_s_mtrldef.planprice[1] = ld_planprice
- arg_s_mtrldef.mtrltype[1] = ls_mtrltype
- arg_s_mtrldef.mtrlsectype[1] = ls_mtrlsectype
- arg_s_mtrldef.zxmtrlmode[1] = ls_zxmtrlmode
- arg_s_mtrldef.usermtrlmode[1] = ls_usermtrlmode
- arg_s_mtrldef.prdpackcode[1] = ls_prdpackcode
- arg_s_mtrldef.packqty[1] = ld_packqty
- arg_s_mtrldef.lmbuyprice[1] = ld_lmbuyprice
- arg_s_mtrldef.lmsaleprice[1] = ld_lmsaleprice
- arg_s_mtrldef.unit_buy[1] = ls_unit_buy
- arg_s_mtrldef.rate_buy[1] = ld_rate_buy
- arg_s_mtrldef.barcode[1] = ls_barcode
- arg_s_mtrldef.mtrlengname[1] = ls_mtrlengname
- arg_s_mtrldef.strcheckaddqty[1] = ls_strcheckaddqty
- arg_s_mtrldef.handtype[1] = ls_handtype
-
-
- arg_s_mtrldef.statusflag[1] = li_statusflag
- arg_s_mtrldef.woodcodeflag[1] = li_woodcodeflag
- arg_s_mtrldef.pcodeflag[1] = li_pcodeflag
-
- arg_s_mtrldef.statustype[1] = ll_statustype
- arg_s_mtrldef.woodcodetype[1] = ll_woodcodetype
- arg_s_mtrldef.pcodetype[1] = ll_pcodetype
- arg_s_mtrldef.ifcustom[1] = li_ifcustom
- arg_s_mtrldef.status_check[1] = li_status_check
- arg_s_mtrldef.woodcode_check[1] = li_woodcode_check
- arg_s_mtrldef.pcode_check[1] = li_pcode_check
- arg_s_mtrldef.configcodetype[1] = ll_configcodetype
- arg_s_mtrldef.configcode[1] = ls_configcode
- arg_s_mtrldef.configname[1] = ls_configname
- arg_s_mtrldef.mtrlcolor[1] = ls_mtrlcolor
- arg_s_mtrldef.status_config[1] = ls_status_config
- arg_s_mtrldef.woodcode_config[1] = ls_woodcode_config
- arg_s_mtrldef.pcode_config[1] = ls_pcode_config
- arg_s_mtrldef.priceformula[1] = ls_priceformula
- arg_s_mtrldef.qtyformula[1] =ls_qtyformula
- arg_s_mtrldef.buyunit[1] = ls_buyunit
- arg_s_mtrldef.wfjgunit[1] = ls_wfjgunit
- arg_s_mtrldef.scllunit[1] = ls_scllunit
- arg_s_mtrldef.saleunit[1] = ls_saleunit
- arg_s_mtrldef.buydec[1] = ls_buydec
- arg_s_mtrldef.wfjgdec[1] = ls_wfjgdec
- arg_s_mtrldef.sclldec[1] = ls_sclldec
- arg_s_mtrldef.saledec[1] = ls_saledec
- arg_s_mtrldef.unit_scll[1] = ls_unit_scll
- arg_s_mtrldef.unit_sale[1] = ls_unit_sale
- arg_s_mtrldef.rate_scll[1] = ls_rate_scll
- arg_s_mtrldef.rate_sale[1] = ls_rate_sale
-
- arg_s_mtrldef.net_weight[1] = ld_net_weight
- arg_s_mtrldef.gross_weight[1] = ld_gross_weight
- arg_s_mtrldef.cubage[1] = ld_cubage
-
-
- IF arg_s_mtrldef.statusflag[1] = 4 THEN
- arg_s_mtrldef.status[1] = ls_status_config
- ELSE
- arg_s_mtrldef.status[1] = ""
- END IF
- IF arg_s_mtrldef.woodcodeflag[1] = 4 THEN
- arg_s_mtrldef.woodcode[1] = ls_woodcode_config
- ELSE
- arg_s_mtrldef.woodcode[1] = ""
- END IF
- IF arg_s_mtrldef.pcodeflag[1] = 4 THEN
- arg_s_mtrldef.pcode[1] = ls_pcode_config
- ELSE
- arg_s_mtrldef.pcode[1] = ""
- END IF
-
- IF arg_s_mtrldef.statusflag[1] = 2 THEN
- SELECT name
- into :ls_status_config
- from u_mtrl_configure
- where u_mtrl_configure.mtrlid = :ll_mtrlid and u_mtrl_configure.DefaultPZ = 1;
- arg_s_mtrldef.status[1] = ls_status_config
- END IF
-
-
- END IF
- ext:
- RETURN rslt
- end function
|