+++ /dev/null
-CREATE OR REPLACE FUNCTION invsell_apply_all() RETURNS integer
-AS $BODY$
-DECLARE
- v_cnt integer;
-
-BEGIN
-
--- find all the matches that we can update, and make the changes.
- SELECT COUNT(invsell_invhist_id) into v_cnt FROM
- invsell
-
- WHERE
- ROUND(invsell_current_totalcost,2) != ROUND(invsell_calc_totalcost,2)
- AND
- invsell_is_estimate = false ;
-
-
-
- IF (v_cnt < 1) THEN
- RETURN 0;
- END IF;
-
- SELECT invsell_invhist_id INTO v_cnt
- FROM
- invsell
-
- WHERE
- ROUND(invsell_current_totalcost,2) != ROUND(invsell_calc_totalcost,2)
- AND
- invsell_is_estimate = false
- ORDER BY
- invsell_invhist_id ASC
- LIMIT 1 ;
-
- RAISE NOTICE 'APPLY INVSELL TO %', v_cnt;
--- updates invhist and gltrans
- PERFORM
- invsell_apply_invsell(
- v_cnt
-
- ) as result;
-
-
- RETURN v_cnt;
-
-END;
-$BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100;
-
-ALTER FUNCTION invsell_apply_all()
- OWNER TO admin;
-
-
-
-
-
-
-
-
-
-
-
-
-
-CREATE OR REPLACE FUNCTION invsell_apply_invsell(integer) RETURNS integer
-AS $BODY$
-DECLARE
- i_invsell_invhist_id ALIAS FOR $1;
- v_mininvsell_transdate timestamp with time zone;
-
-
-BEGIN
- --RAISE NOTICE 'invsell_apply_invsell:i_invsell_invhist_id =%', i_invsell_invhist_id;
--- find all the matches that we can update, and make the changes.
-
- --RAISE NOTICE 'invsell_apply';
--- updates invhist and gltrans
- PERFORM
- invsell_apply(
- invsell_invhist_id,
- invhist_id
- ) as result
- FROM
- invhist
- INNER JOIN
- invdepend ON invhist_id = invdepend_invhist_id
- INNER JOIN
- invsell ON invdepend_parent_id = invsell_invhist_id
-
- WHERE
- invsell_invhist_id = i_invsell_invhist_id;
-
-
--- updates invhist and itemsite.
- --RAISE NOTICE 'invsell_apply_order';
-
- PERFORM
- invsell_apply_order (
- invsell_invhist_id
- ) as result
- FROM
- invsell
- WHERE
- invsell_invhist_id = i_invsell_invhist_id;
-
- --RAISE NOTICE 'calc min';
- SELECT min(invsell_transdate)
- INTO v_mininvsell_transdate
- FROM invsell
- WHERE
- invsell_itemsite_id = (
- SELECT invsell_itemsite_id FROM invsell WHERE invsell_invhist_id = i_invsell_invhist_id LIMIT 1
- );
-
- -- on invsell
-
- --RAISE NOTICE 'asset trialbal';
- PERFORM
- invsell_apply_trialbal (
- costcat_asset_accnt_id,
- v_mininvsell_transdate
- ) as result
- FROM
- invsell
- LEFT JOIN itemsite ON itemsite_id = invsell_itemsite_id
- LEFT JOIN costcat ON costcat_id = itemsite_costcat_id
- WHERE
- invsell_invhist_id = i_invsell_invhist_id;
-
- -- on invsell
- --RAISE NOTICE 'shipasset trialbal';
- PERFORM
- invsell_apply_trialbal (
- costcat_shipasset_accnt_id,
- v_mininvsell_transdate
- ) as result
- FROM
- invsell
- LEFT JOIN itemsite ON itemsite_id = invsell_itemsite_id
- LEFT JOIN costcat ON costcat_id = itemsite_costcat_id
- WHERE
- invsell_invhist_id = i_invsell_invhist_id;
-
- -- on invsell
- --RAISE NOTICE 'Cogs trialbal';
- PERFORM
- invsell_apply_trialbal (
- resolvecosaccount(invsell_itemsite_id, cohead_cust_id),
- v_mininvsell_transdate
- ) as result
-
- FROM
- invsell
- LEFT JOIN cohead ON
- cohead_number = CASE strpos(invsell_ordnumber, '-')
- WHEN 0 THEN invsell_ordnumber
- ELSE substr(invsell_ordnumber, 1, strpos(invsell_ordnumber, '-') - 1)
- END
- WHERE
- invsell_invhist_id = i_invsell_invhist_id;
- RETURN 1;
-
-END;
-$BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100;
-
-ALTER FUNCTION invsell_apply_invsell(integer)
- OWNER TO admin;
-
-