araccnt_id ASC
LIMIT 1;
-
- -- we now have the base amount..
-
- --- Bank receipt should be exactly this amount.
- -- AR + Customer Deposit
-
- SELECT
- gltrans_id,
- gltrans_amount * -1.0,
- ROUND( _ar.aropen_amount / _ar.aropen_curr_rate, 3 ) - ROUND(gltrans_amount * -1.0, 3),
- v_diff
- INTO
- v_gl_id,
- v_gltrans_amount,
- v_diff
- FROM
- gltrans
-
- WHERE
- gltrans_docnumber = _ar.aropen_docnumber
- AND
- gltrans_doctype = 'DM'
- AND
- gltrans_accnt_id = v_ar_accnt_id
- AND
- gltrans_source = 'A/R'
- AND
- gltrans_journalnumber = _ar.aropen_journalnumber;
-
-
- IF NOT FOUND THEN
-
- IF _ar.aropen_amount = 0.00 THEN
- RAISE NOTICE 'skip aropen, zero dollar';
- RETURN 'SKIP';
- END IF;
-
- RAISE EXCEPTION 'aropen is missing gltrans in A/R account aropen_id=%' ,i_aropen_id;
- END IF;
-
-
- IF (v_gl_misc_id IS NULL) THEN
--- UPDATE gltrans SET gltrans_misc_id = i_aropen_id WHERE gltrans_id = v_gl_id;
- END IF;
-
- -- if currency rate is off...
- IF v_diff != 0.00 THEN
-
- v_new_rate := _ar.aropen_amount / v_gltrans_amount;
-
- RAISE NOTICE 'aropen_id % change currency rate from % to %', i_aropen_id, _ar.aropen_curr_rate ,v_new_rate ;
-
- UPDATE
- aropen
- SET
- aropen_curr_rate = v_new_rate
- WHERE
- aropen_id = i_aropen_id;
- END IF;
-
- RAISE NOTICE 'VERIFIED % diff=%',i_aropen_id, v_diff;
- RETURN 'DONE' || i_aropen_id;
END
$BODY$