Podrška #25872
ZatvorenModul LD, korekcija semafora i scatter() gather() funkcija, identifikacija rizičnih dijelova
30%
Povezani tiketi 2 (0 otvoreno — 2 zatvorenih)
Izmjenjeno od Saša Vranić prije oko 13 godina
- Prioritet promijenjeno iz Normalan u Urgentno
Izmjenjeno od Saša Vranić prije oko 13 godina
==================================================================================== F18 bug report: 24.12.11 15:53:42 ==================================================================================== Verzija programa: 0.9.25 23.12.2011 0.9.82 Podsistem : BASE GenKod : 1 OpSistKod: 0 Opis : Argument error ImeFajla : Operacija : UPPER Argumenti : CALL STACK: --- -------------------------------------------------------------------------------- 1 (b)F18_INIT_APP / 77 2 UPPER / 0 3 (b)UPDATE_REC_SERVER_AND_DBF / 319 4 ASCAN / 0 5 UPDATE_REC_SERVER_AND_DBF / 319 6 LD_UNOS_OBRACUNA / 75 7 (b)LD_OBRACUN / 22 8 MENU_SC / 985 9 LD_OBRACUN / 30 10 (b)TLDMOD_MMENUSTANDARD / 106 11 MENU_SC / 985 12 TLDMOD:MMENUSTANDARD / 145 13 TLDMOD:MMENU / 94 14 TLDMOD:RUN / 149 15 MAINLD / 31 16 MAIN / 56 --- -------------------------------------------------------------------------------- /---------- BEGIN PostgreSQL vars --------/ server_version : 9.1.1 TimeZone : Europe/Skopje /---------- END PostgreSQL vars --------/ USED() = false == END OF BUG REPORT ==
Izmjenjeno od Saša Vranić prije oko 13 godina
Izmjenjeno od Saša Vranić prije oko 13 godina
ispravio ove greške
sada imam grešku
==================================================================================== F18 bug report: 24.12.11 16:14:17 ==================================================================================== Verzija programa: 0.9.25 23.12.2011 0.9.82 Podsistem : BASE GenKod : 14 OpSistKod: 0 Opis : Variable does not exist ImeFajla : Operacija : MJESEC Argumenti : NIL CALL STACK: --- -------------------------------------------------------------------------------- 1 (b)F18_INIT_APP / 77 2 (b)FIELDBLOCK / 0 3 UPDATE_REC_SERVER_AND_DBF / 367 4 LD_UNOS_OBRACUNA / 78 5 (b)LD_OBRACUN / 22 6 MENU_SC / 985 7 LD_OBRACUN / 30 8 (b)TLDMOD_MMENUSTANDARD / 106 9 MENU_SC / 985 10 TLDMOD:MMENUSTANDARD / 145 11 TLDMOD:MMENU / 94 12 TLDMOD:RUN / 149 13 MAINLD / 31 14 MAIN / 56 --- -------------------------------------------------------------------------------- /---------- BEGIN PostgreSQL vars --------/ server_version : 9.1.1 TimeZone : Europe/Skopje /---------- END PostgreSQL vars --------/ USED() = false == END OF BUG REPORT ==
Izmjenjeno od Saša Vranić prije oko 13 godina
Izmjenjeno od Saša Vranić prije oko 13 godina
ovo neće proraditi a evo i razloga
Izmjenjeno od Saša Vranić prije oko 13 godina
nakon korekcije sa veznog tiketa sada imam ovu grešku
==================================================================================== F18 bug report: 27.12.11 10:43:50 ==================================================================================== Verzija programa: 0.9.26 26.12.2011 0.9.91 Podsistem : BASE GenKod : 1 OpSistKod: 0 Opis : Argument error ImeFajla : Operacija : array assign Argumenti : CALL STACK: --- -------------------------------------------------------------------------------- 1 (b)F18_INIT_APP / 77 2 UPDATE_REC_SERVER_AND_DBF / 370 3 LD_UNOS_OBRACUNA / 78 4 (b)LD_OBRACUN / 22 5 MENU_SC / 985 6 LD_OBRACUN / 30 7 (b)TLDMOD_MMENUSTANDARD / 106 8 MENU_SC / 985 9 TLDMOD:MMENUSTANDARD / 145 10 TLDMOD:MMENU / 94 11 TLDMOD:RUN / 149 12 MAINLD / 31 13 MAIN / 56 --- -------------------------------------------------------------------------------- /----- SERVER connection info: ---------- / host/database/port/schema : localhost / bringout_test / 5432 / fmk user : vsasa F18 client required server db >= : 4.0.8 / 40008 Actual knowhow ERP server db version : 4.0.8 / 40008 /---------- BEGIN PostgreSQL vars --------/ server_version : 9.1.1 TimeZone : Europe/Skopje /---------- END PostgreSQL vars --------/
Izmjenjeno od Saša Vranić prije oko 13 godina
dobro, nakon silnih korekcija na veznom tiketu, snimanje obračuna sada radi
međutim ono što sam uočio je da se na serveru sada pojavljuju 2 obračuna, 3 obračuna, tj. koliko puta ponovim isti obračun, znači ne briše ga !
Izmjenjeno od Saša Vranić prije oko 13 godina
pa da, logično
values se sada promjenilo ako su numeričke vrijednosti
{"godina", 2}
umjesto samo
"godina"
i ovaj izraz sada ne radi također
https://github.com/knowhow/F18_knowhow/blob/c3764a865dab4a7055d/common/f18_db.prg#L345
Izmjenjeno od Saša Vranić prije oko 13 godina
interesantno je to, ovo dobijam kao del izraz
delete from fmk.ld_ld where godina=NULL and mjesec=NULL and idradn='ZELJKA' itd...
jednostavno, ovaj where izraz ne zna da protumači kod ovih numeričkih vrijednosti
Izmjenjeno od Saša Vranić prije oko 13 godina
normalno, zato što _sql_quote() ne zna da radi sa numeričkim vrijednostima....
Izmjenjeno od Saša Vranić prije oko 13 godina
hm, da
where izraz će ovdje napuniti sa varijablama iz values hash matrice
https://github.com/knowhow/F18_knowhow/blob/c3764a865dab4a7055d4b/ld/ld_obracun_unos.prg#L73
i on to ne uradi kako treba zato što postoji ovo _sql_quote
Izmjenjeno od Saša Vranić prije oko 13 godina
što znači da u where izrazu za numeričke vrijednosti mora da postoji STR konverzija
ovako:
https://github.com/knowhow/F18_knowhow/blob/8b5061769768eeff4cd/ld/ld_obracun_unos.prg#L74
Izmjenjeno od Saša Vranić prije oko 13 godina
nakon ovoga provjerio, postoji samo jedan obracun na serveru i fino je azuriran u dbf
Izmjenjeno od Saša Vranić prije oko 13 godina
Kod unosa kredita postoji jedna kvaka i dilema
to je ovaj dio koda
https://github.com/knowhow/F18_knowhow/blob/8b5061769768eeff4c/ld/ld_krediti.prg#L118
naime, šta se ovdje dešava:
for ..... append blank replace xzx.... next
i sada tu bi trebalo postaviti ovakav kod
for ..... append blank _vals := dbf_get_rec() _vals["xzx"] := xzz .... update_rec_server_and_dbf(nil, _vals) next
međutim, funkcija update radi del pa insert i zahtjeva where itd...
potrebna nam je varijanta klasičnog appenda
znači insert_rec_server_and_dbf() funkcija
Izmjenjeno od Saša Vranić prije oko 13 godina
praktično to je dio koda koji se koristi kod azuriranja fakture recimo
Izmjenjeno od Saša Vranić prije oko 13 godina
znači, varijanta je da se napravi u ld_semaphores.prg funkcija kao što se koristi kod azuriranja fakt
Izmjenjeno od Ernad Husremović prije oko 13 godina
vsasa
pokazuješ na kod gdje se dešavao ovo
append prazan
stavi zapis čiji je identifikator set polja: (idradn, mjesec, godina). Polja vrijednosti su su idkred, iznos, naosnovu
ne treba dodavati to što govoriš nego ...
Izmjenjeno od Ernad Husremović prije oko 13 godina
simbolički kod, "_" varijable lokalne i sadrže vrijednosti polja:
append blank
_rec := dbf_get_rec()
_rec[idradn] := _id_radn
_rec[mjesec] := _mjesec
_rec[godina] := _godina
_rec[idkred] := _idkred
_rec[iznos] := _iznos
_rec[naosnovu] := _naosnovu
update_rec_server_and_dbf( _rec, ... )
pri čemu je where blok (idradn, mjesec, godina)
Izmjenjeno od Ernad Husremović prije oko 13 godina
where će pobrisati u ovom slučaju ništa, ali bi u slučaju neke nekonzistencije izbrisao neki dupli zapis sa identifikatorom (idradn, mjesec, godina)
Izmjenjeno od Ernad Husremović prije oko 13 godina
mislim da si jednu veoma bitnu stvari ispustio iz "priče" ... to je stavljanje ovih polja where_block, fields u gADBF-s ...
Izmjenjeno od Ernad Husremović prije oko 13 godina
AADD( gaDbfs, { F_SIFK , "SIFK" , "sifk", { |param| sifk_from_sql_server(param) }, "IDS", {"id", "oznaka"}, <<<<<<< fields { |x| "ID=" + _sql_quote(x["id"]) + " AND OZNAKA=" + _sql_quote(x["oznaka"]) }, <<<<<<< were_block "ID2" }) <<<<<<<<<< INDEX TAG
Izmjenjeno od Ernad Husremović prije oko 13 godina
sifv:
AADD( gaDbfs, { F_SIFV , "SIFV" , "sifv", { | param | sifv_from_sql_server( param ) }, "IDS", {"id", "oznaka", "idsif", "naz"}, <<<<<<<<< fields koja identificiraju zapis tabele { |x| "ID=" + _sql_quote(x["id"]) + " AND OZNAKA=" + _sql_quote(x["oznaka"]) + " AND IDSIF=" + _sql_quote(x["idsif"] + " AND NAZ=" + _sql_quote(x["naz"])) }, <<<<<<<< where_block "ID" }) <<<<<<<<< INDEX TAG
Izmjenjeno od Ernad Husremović prije oko 13 godina
to znači, kada jednom staviš u gADBFs za tabelu ld_krediti odgovarajući fields, where_block, index tag
više to ne moraš navoditi u update_server_dbf_and_rec funkciji
Izmjenjeno od Saša Vranić prije oko 13 godina
ah da...
evo to bi trebalo biti ovako:
https://github.com/knowhow/F18_knowhow/blob/c1d6da18a02ccccc4e7/ld/ld_krediti.prg#L118
sad sam vidio to za gadbfs i where, ok, ubacit ću tamo
Izmjenjeno od Saša Vranić prije oko 13 godina
da, kod kredita je specifično to što imamo
- idradn
- idkred
- naosnovu
- godina
- mjesec
praktično sva polja su identična sem mjeseca, tj. mjesec mora biti u where uslovu inače ću uvijek pobrisati sve
Izmjenjeno od Ernad Husremović prije oko 13 godina
Saša Vranić je napisao/la:
da, kod kredita je specifično to što imamo
- idradn
- idkred
- naosnovu
- godina
- mjesec
praktično sva polja su identična sem mjeseca, tj. mjesec mora biti u where uslovu inače ću uvijek pobrisati sve
hoćeš reći "identifikator".
Pretpostavljam da sva polja osim iznosa čine identifikator zapisa
Izmjenjeno od Ernad Husremović prije oko 13 godina
Saša Vranić je napisao/la:
ah da...
evo to bi trebalo biti ovako:
https://github.com/knowhow/F18_knowhow/blob/c1d6da18a02ccccc4e7/ld/ld_krediti.prg#L118
kod koji si mi pokazao izgleda mi loše. imaš globalne varijable koje ti ne trebaju.
Ali i da ostanu globalne varijable kod mi izgleda neispravan.
kažeš
_mjesec := nTekMj <<<<<<<<<<<<< globalne varijable setuješ _godina := nTekGodina _idkred := cIdKred _iznos := nIRata _naosnovu := cOsnov _vals := get_dbf_global_memvars() <<<<<<< ova će funkcija sve gornje varijable promijeniti i setovati ih vrijednostima iz dbf polja tako da je gornji kod van funkcije ! _fields := { "idradn", { "mjesec", 2 }, { "godina", 4 }, "idkred", "naosnovu" } ...
Izmjenjeno od Saša Vranić prije oko 13 godina
Izmjenjeno od Saša Vranić prije oko 13 godina
ali cekaj malo
imamo:
set_dbf_global_memvars - kreira public varijable na osnovu strukture dbf-a
get_dbf_global_memvars - puni hash matricu iz vrijednosti public varijabli
nisi upravu !
Izmjenjeno od Saša Vranić prije oko 13 godina
međutim, bilo kako bilo i sa ovim ispravljenim ovo ne radi uopšte !
evo grešaka
==================================================================================== F18 bug report: 27.12.11 13:13:08 ==================================================================================== Verzija programa: 0.9.26 26.12.2011 0.9.91 Podsistem : BASE GenKod : 1 OpSistKod: 0 Opis : Argument error ImeFajla : Operacija : STR Argumenti : CALL STACK: --- -------------------------------------------------------------------------------- 1 (b)F18_INIT_APP / 77 2 STR / 0 3 (b)NOVIKREDIT / 136 4 UPDATE_REC_SERVER_AND_DBF / 400 5 NOVIKREDIT / 136 6 (b)LD_KREDITI / 23 7 MENU_SC / 985 8 LD_KREDITI / 48 9 (b)TLDMOD_MMENUSTANDARD / 114 10 MENU_SC / 985 11 TLDMOD:MMENUSTANDARD / 145 12 TLDMOD:MMENU / 94 13 TLDMOD:RUN / 149 14 MAINLD / 31 15 MAIN / 56 --- -------------------------------------------------------------------------------- /----- SERVER connection info: ---------- / host/database/port/schema : localhost / bringout_test / 5432 / fmk user : vsasa F18 client required server db >= : 4.0.8 / 40008 Actual knowhow ERP server db version : 4.0.8 / 40008
i ova:
==================================================================================== F18 bug report: 27.12.11 13:13:08 ==================================================================================== Verzija programa: 0.9.26 26.12.2011 0.9.91 Podsistem : BASE GenKod : 1 OpSistKod: 0 Opis : Argument error ImeFajla : Operacija : + Argumenti : CALL STACK: --- -------------------------------------------------------------------------------- 1 (b)F18_INIT_APP / 77 2 (b)NOVIKREDIT / 136 3 UPDATE_REC_SERVER_AND_DBF / 400 4 NOVIKREDIT / 136 5 (b)LD_KREDITI / 23 6 MENU_SC / 985 7 LD_KREDITI / 48 8 (b)TLDMOD_MMENUSTANDARD / 114 9 MENU_SC / 985 10 TLDMOD:MMENUSTANDARD / 145 11 TLDMOD:MMENU / 94 12 TLDMOD:RUN / 149 13 MAINLD / 31 14 MAIN / 56 --- -------------------------------------------------------------------------------- /----- SERVER connection info: ---------- / host/database/port/schema : localhost / bringout_test / 5432 / fmk user : vsasa F18 client required server db >= : 4.0.8 / 40008 Actual knowhow ERP server db version : 4.0.8 / 40008 /---------- BEGIN PostgreSQL vars --------/ server_version : 9.1.1 TimeZone : Europe/Skopje /---------- END PostgreSQL vars --------/ USED() = false == END OF BUG REPORT ==
Izmjenjeno od Saša Vranić prije oko 13 godina
Izmjenjeno od Ernad Husremović prije oko 13 godina
Saša Vranić je napisao/la:
normalno, zato što _sql_quote() ne zna da radi sa numeričkim vrijednostima....
to nisam znao. mislio sam da zna.
Izmjenjeno od Ernad Husremović prije oko 13 godina
Ernad Husremovic retab radi vsasa Ernad Husremovic set fileencoding=utf-8, gdje je moguće Ernad Husremovic govorim o ld_krediti.prg Ernad Husremovic set order to 2 Ernad Husremovic ne smije ostajati Ernad Husremovic treba biti set order to TAG "2" Ernad Husremovic poredak fields mora biti Ernad Husremovic u skladu sa tagom Ernad Husremovic //"2","idradn+idkred+naosnovu+str(godina)+str(mjesec)" 2:25 PM vzeljka ok vsasa ok, onda ću se prebaciti na rg vsasa eto sam ubacio u a_dbfs ove dodatne uslove matrice Ernad Husremovic vrati to Ernad Husremovic ja radim na tome rekao sam ti
Izmjenjeno od Saša Vranić prije oko 13 godina
znam za ordere, nisam tu primjetio pa zato nisam ni ispravio
Izmjenjeno od Ernad Husremović prije oko 13 godina
vazdan govorim uradi uradi i na kraju kada kažem ja preuzimam, ti uradiš svoju verziju.
ja dana ...
Izmjenjeno od Ernad Husremović prije oko 13 godina
funkcije bibliotečne STR, VAL trebaju biti velikim slovima
negdje sam napisao
SEEK a+b+c => SEEK a + b + c
Izmjenjeno od Ernad Husremović prije oko 13 godina
radi preglednosti koristiti
update_rec_server_and_dbf( "ld_radkr", _vals )
a ne
update_rec_server_and_dbf( nil, _vals )
Izmjenjeno od Ernad Husremović prije oko 13 godina
SET ORDER TO TAG "1" SEEK STR(_godina, 4) + STR(_mjesec, 2) + _idradn
Izmjenjeno od Ernad Husremović prije oko 13 godina
formatirati matrice kao što sam demonstrirao u o_f18
Izmjenjeno od Ernad Husremović prije oko 13 godina
ne razbijati matrice. imaš editor koji to radi:
AADD(gaDBFs, { F_RADKR , "RADKR" , "ld_radkr", { |alg| ld_radkr_from_sql_server(alg) }, "IDS", { "idradn", "idkred", "naosnovu", {"godina", 4}, {"mjesec", 2 } }, {|x| "idradn=" + _sql_quote(x["idradn"]) + " and mjesec=" + STR(x["mjesec"], 2) + " and godina=" + STR(x["godina"], 4) +i" and idkred=" + _sql_quote(x["idkred"]) + " and naosnovu=" + _sql_quote(x["naosnovu"]) }, "2" } )
Izmjenjeno od Ernad Husremović prije oko 13 godina
SQL izraze piši velikim slovima SELECT, AND, WHERE
Izmjenjeno od Ernad Husremović prije oko 13 godina
Izmjenjeno od Ernad Husremović prije oko 13 godina
_vals - nije uopšte deklarisana lokalna varijabla, masa varijabli koje su privatne komotno mogu biti prebačene na lokalne.
Ova funkcija NoviKredit je morala prvo proći refactoring. Pogrešno je rađeno u startu.
Izmjenjeno od Ernad Husremović prije oko 13 godina
fmk ini zamijeniti sa db parametrima
Izmjenjeno od Ernad Husremović prije oko 13 godina
delete zapisa nije korištena funkcija delete_rec_server_and_dbf
Izmjenjeno od Ernad Husremović prije oko 13 godina
Izmjenjeno od Ernad Husremović prije oko 13 godina
Izmjenjeno od Saša Vranić prije oko 13 godina
- Status promijenjeno iz Novo u Dodijeljeno
Izmjenjeno od Saša Vranić prije skoro 13 godina
- Status promijenjeno iz Dodijeljeno u Zatvoreno
ovo je manje više očišćeno sve