Blana lucre

Povestea noptilor pierdute
RSS

Blana umbla la impozite

clock July 4, 2009 01:07 by author djonexx
"Salut,
 
m-am gandit ca s-ar potrivi pe site urmatoarea faza:
 
Se iau 2 apartamente pe care proprietarul le declara la primarie pentru stabilirea impozitelor. Pentru primul se plateste impozit normal, pentru urmatoarele se aplica majorari. Se vinde prima proprietate. Cea de-a 2-a ramane impozitata la cota marita. Daca vrei ca programul sa functioneze corect ar trebui sa le vinzi in ordine inversa cumpararii. Ceea ce nu intotdeauna se intampla. La masini e la fel ca la imobile. Impozitare a la Cluj.
zice Radu.
Nu pot decat sa fiu de acord cu el. Specificatiile par OK, implementarea probabil a fost facuta dupa o bere.


Very deterministic

clock July 1, 2009 05:58 by author djonexx

"Salut,

Cautand prin cod la lucru am dat peste functia asta foarte interesanta si m-am gandit direct la tine.

Functia returneaza 1 daca in tabela vf_su_pos exista un record cu valoarea coloanei no_pos_rgp egala cu cea a parametrului si 0 altfel.

Comentariile sunt in franceza ... daca trebe le traduc ;)
...


CREATE OR REPLACE FUNCTION pc_bas_is_pos_rgp (p_no_pos VARCHAR2)
RETURN NUMBER
DETERMINISTIC
IS
    v_version          su_ano_his.version%TYPE := '@(#) VERSION 01a $Revision$';
    v_nom_obj          su_ano_his.nom_obj%TYPE := 'pc_bas_is_pos_rgp';
    v_etape            su_ano_his.txt_ano%TYPE := 'Declare';
    v_cod_err_su_ano    su_ano_his.cod_err_su_ano%TYPE := NULL;
    err_except          EXCEPTION;
    v_ret              NUMBER := 0; -- variable de retour.
    v_is_pos_rgp        BOOLEAN := FALSE; -- variable indiquant si c'est un poste de regroupement.

    -- ----------------------
    -- Curseur permettant de recuperer les postes regroupes sous le poste p_no_pos.
    -- ----------------------
    CURSOR c_pos_rgp (x_no_pos su_pos.no_pos%TYPE) IS
        SELECT no_pos
          FROM vf_pc_pos
        WHERE no_pos_rgp = x_no_pos;

    r_pos_rgp          c_pos_rgp%ROWTYPE;

BEGIN
    v_etape := '-- Debut --';
    IF su_global_pkv.v_niv_dbg >= 3 THEN
        su_bas_put_debug(v_nom_obj||' : p_no_pos = ' || p_no_pos);
    END IF;

    v_etape := '-- Rch si il existe un(des) poste(s) regroupe sous le poste p_no_pos --';
    FOR r_pos_rgp IN c_pos_rgp(p_no_pos)
    LOOP
        EXIT WHEN v_is_pos_rgp = TRUE;
        IF v_is_pos_rgp <> TRUE THEN
            v_is_pos_rgp := TRUE;
        END IF;
    END LOOP;

    IF v_is_pos_rgp = TRUE THEN
        v_ret := 1;
    ELSE
        v_ret := 0;
    END IF;

    RETURN v_ret;
END;
"

Este musai.



Aci lucre blana

Avem un scop: sa afisam perle, mostre ale logicii infailibile din IT din cauza carora stam la servici mai mult decat e nevoie.

Cum poti contribui si tu:
- Trimite blana zilnica la blana [at] blana-lucre.ro Smile
sau
- Cere un cont de editor, trimitand mail la blana [at ] blana-lucre.ro

Sign in