Flux Noutăți & Rsaquo; Forumuri & Rsaquo; Ajutor SmartCash Retail Management System & Rsaquo; Re: Programul este bun la cine nu foloseste & Rsaquo; Reply To: cauza problemei si solutia ei

  • roPopa

    Membru
    8 noiembrie 2007 la 12:30

    Am descoperit ca aceasta problema se datoreaza unui Upgrade defectuos.
    In baza de date nu s-a efectuat o modificare a unui trigger care introducea acea factura pentru urmarire.
    Din acesat cauza in momentul de fata si acel trigger introducea o factura la urmarire si programul facea acest lucru.

    Am descoperit acest lucru foarte tarziu deoarece din toate informatiile care ne parveneau nimeni nu a spus ca rezulta 2 recorduri in urmarire furnizori ci doar ca se dubleaza valoarea.
    valoarea dublata inseamna cu totul altceva si noi am cautat in mod gresit cauza acestei probleme.

    Solutia este trecerea la baza de date 319 pentru noile instalari de magazine.
    Pentru cele deja instalate cu v 318/8.0.0.107, scriptul care repara acesta problema este urmatorul.

    ALTER TRIGGER REC_AU
    ACTIVE AFTER UPDATE POSITION 0
    AS
    DECLARE VARIABLE VARIDRECITEM INTEGER;
    DECLARE VARIABLE VARIDFURN INTEGER;
    DECLARE VARIABLE VARIDCLIENT INTEGER;
    DECLARE VARIABLE VARIDMAG INTEGER;
    DECLARE VARIABLE VARIDINV INTEGER;
    DECLARE VARIABLE VARDATAFACT TIMESTAMP;
    DECLARE VARIABLE VARNRFACTURA VARCHAR(20);
    DECLARE VARIABLE VARDATANIR TIMESTAMP;
    DECLARE VARIABLE VARNIR INTEGER;
    DECLARE VARIABLE VARPRETACH NUMERIC(15, 5);
    DECLARE VARIABLE VARVALUTA NUMERIC(15, 5);
    DECLARE VARIABLE VARARTNR INTEGER;
    DECLARE VARIABLE VARIDSTORE INTEGER;
    DECLARE VARIABLE VARTYPEVALUTA VARCHAR(20);
    BEGIN
    /* TRIGGER TEXT */
    IF (NEW.STARE OLD.STARE) THEN BEGIN
    FOR SELECT R.IDFURN, R.DATAFACT, R.NRFACT, R.DATANIR, R.NIR, O.IDCLIENT, R.IDSTORE, R.IDINV
    FROM REC R
    LEFT JOIN OUT O ON O.NRSCHIMB = R.NRSCHIMB
    WHERE R.IDREC = NEW.IDREC
    INTO :VARIDFURN, :VARDATAFACT, :VARNRFACTURA, :VARDATANIR, :VARNIR, :VARIDCLIENT, :VARIDMAG
    , :VARIDINV
    DO BEGIN
    BREAK;
    END
    FOR SELECT RI.PRETACH, RI.ARTNR, NEW.IDWHERE, RI.PAVAL, RI.IDRECITEM, RI.VALUTA FROM RECITEMS RI
    WHERE NEW.IDREC = RI.IDREC
    INTO :VARPRETACH, :VARARTNR, :VARIDSTORE, :VARVALUTA, :VARIDRECITEM, :VARTYPEVALUTA
    DO BEGIN
    EXECUTE PROCEDURE INSERTUPDATELASTPRETACH(:VARIDRECITEM, :VARPRETACH, :VARDATAFACT, :VARIDFURN, :VARARTNR
    , :VARIDSTORE, :VARDATANIR, :VARNRFACTURA, :VARNIR, :VARVALUTA
    , :VARIDCLIENT, :VARIDMAG, :VARIDINV, :VARTYPEVALUTA);
    END
    END
    END
    ^