#13: formular de facturare unificat - etapa curenta
Squash al branch-ului de lucru plan13-s2. Clase: ofacturare (nucleul formularului unificat), ofacturare_comun, ferestre_cere_date, ocomenzi, caut_ora (lista de preturi in combo-urile de cautare), omodificari. Programe: ofacturare impartit - ofacturare_antet, ofacturare_rutare_scriere si ogrid_latimi sunt fisiere noi; oproceduri_facturare primeste discountul pe linie si cota standard de TVA cand articolul nu are cota pe politica. Documentatie: capcana SQLExec no_data_found, conventia de encoding, depanarea testelor VFP si regulile de lucru - conflictele cu modificarile venite din alte proiecte sunt rezolvate pastrand ambele parti. Loguri de rulare a testelor scoase din versionare; testele raman. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
This commit is contained in:
@@ -125,6 +125,8 @@ TRY
|
||||
|
||||
*----- PROCEDURI (mock amessagebox PRIMUL) -----
|
||||
SET PROCEDURE TO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\mock_amessagebox.prg"
|
||||
*-- CdocGasesteIdVanzare: dovada de scriere pe jonctiunea serie_act + nract
|
||||
SET PROCEDURE TO "D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat\lib_comparatie_documente.prg" ADDITIVE
|
||||
SET PROCEDURE TO proceduri_comune ADDITIVE
|
||||
SET PROCEDURE TO quitapp ADDITIVE
|
||||
SET PROCEDURE TO init_program ADDITIVE
|
||||
@@ -406,7 +408,10 @@ FUNCTION CreeazaDocument
|
||||
|
||||
PRIVATE poDate, poGeneratorNumere, poDateGestiuneDest, pnTotalDiscountAvize
|
||||
LOCAL lnIdSet, lcSqlCursor, lcCursor, lnSucces, lnIdVanzareRezultat
|
||||
LOCAL lcSerieAlocata, lnNractAlocat
|
||||
lnIdVanzareRezultat = 0
|
||||
lcSerieAlocata = ''
|
||||
lnNractAlocat = 0
|
||||
pnTotalDiscountAvize = 0
|
||||
|
||||
update_jtva_coloane([JV], [jtva_coloane_temp])
|
||||
@@ -460,6 +465,8 @@ FUNCTION CreeazaDocument
|
||||
poDate.nract = poGeneratorNumere.aloca_numar(poDate.nIdTipDoc, NULL)
|
||||
poGeneratorNumere.verifica_numar(poDate.nIdTipDoc, poDate.nract)
|
||||
gnIdUtil = -3
|
||||
lcSerieAlocata = ALLTRIM(TRANSFORM(NVL(poDate.serie_act, [])))
|
||||
lnNractAlocat = poDate.nract
|
||||
DO S8Log WITH ' numar alocat: serie_act=[' + TRANSFORM(NVL(poDate.serie_act,[])) + '] nract=' + TRANSFORM(poDate.nract)
|
||||
|
||||
IF poDate.tva_incasare = 0
|
||||
@@ -513,8 +520,13 @@ FUNCTION CreeazaDocument
|
||||
*-- crsarticole vine cu Buffering optimistic pe rand (3) - REPLACE fara TABLEUPDATE() ramane
|
||||
*-- in bufferul local si e pierdut la urmatoarea citire/mutare de recno (verificat empiric:
|
||||
*-- REPLACE arata cantitate=1 imediat, dar orice citire ulterioara arata iar 0).
|
||||
*-- Lista de preturi a articolului e in EURO (tip_valuta=1), iar do_scrie_articole
|
||||
*-- trimite pe ramura aceea vpretftva, derivat din pret_val - fortand doar pret,
|
||||
*-- documentul iesea cu VANZARI_DETALII.PRET=0. Se forteaza perechea, coerent cu cursul.
|
||||
SELECT (lcCursor)
|
||||
REPLACE ALL cantitate WITH 1
|
||||
REPLACE ALL cantitate WITH 1, ;
|
||||
pret_val WITH IIF(tip_valuta = 1, 100, 0), ;
|
||||
pret WITH IIF(tip_valuta = 1, ROUND(100 * IIF(NVL(curs, 0) = 0, 1, curs) / IIF(NVL(multiplicator, 0) = 0, 1, multiplicator), gnPPretV), 100)
|
||||
=TABLEUPDATE(.T., .T., lcCursor)
|
||||
GO TOP
|
||||
DO S8Log WITH ' dupa fix cantitate: ' + lcCursor + '.cantitate=' + TRANSFORM(cantitate)
|
||||
@@ -580,11 +592,14 @@ FUNCTION CreeazaDocument
|
||||
ENDDO
|
||||
DO S8Log WITH ' do_termin() -> ' + TRANSFORM(lnScris) + ' (frm_alte_date tratat=' + TRANSFORM(glDlgTratat8) + ') poDate.nid_vanzare=' + TRANSFORM(NVL(poDate.nid_vanzare,0))
|
||||
|
||||
IF lnScris
|
||||
lnIdVanzareRezultat = NVL(poDate.nid_vanzare, 0)
|
||||
ELSE
|
||||
*-- do_termin() intoarce mereu .T. (_frm_base.vc2:363, DoDefault fara RETURN) si nid_vanzare
|
||||
*-- ramane santinela la esec: singura dovada e randul din VANZARI, pe serie_act + nract.
|
||||
lnIdVanzareRezultat = CdocGasesteIdVanzare(lcSerieAlocata, lnNractAlocat)
|
||||
IF lnIdVanzareRezultat < 0
|
||||
lnIdVanzareRezultat = 0
|
||||
ENDIF
|
||||
DO S8Log WITH ' verificare in VANZARI pe ' + lcSerieAlocata + ' ' + TRANSFORM(lnNractAlocat) + ;
|
||||
' -> id_vanzare=' + TRANSFORM(lnIdVanzareRezultat)
|
||||
|
||||
IF TYPE('goFrm8') = 'O' AND !ISNULL(goFrm8)
|
||||
goFrm8.Release()
|
||||
|
||||
Reference in New Issue
Block a user