Files
comun/utile/Teste/editare_factura/mock_incarca_linii_prefix.prg
Marius Mutu 8e022d332e #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
2026-09-09 21:38:25 +03:00

58 lines
2.7 KiB
Plaintext

* mock_incarca_linii_prefix.prg
* Control negativ pentru FACT-008: versiunea DINAINTE de reparatie a lui
* IncarcaLiniiFacturaEditare (fara Cont in crsarticole_editare / REPLACE si fara re-derivarea lui
* pretv_orig din RUL). Se incarca INAINTEA lui ofacturare_editare.prg in SET PROCEDURE, deci
* castiga la nume duplicat. Nu atinge niciun fisier de productie.
FUNCTION IncarcaLiniiFacturaEditare
LPARAMETERS toDate, tnIdVanzare
LOCAL llInValuta, lnCursDoc, lnMultDoc, lnIdTemp, lnGestionabil
llInValuta = (toDate.in_valuta = 1)
lnCursDoc = Nvl(toDate.Curs,1)
lnMultDoc = Nvl(toDate.multiplicator,1)
IncarcaArticoleFactura(m.tnIdVanzare, 'crsarticole_doc')
IF Used('crsarticole_editare')
Use In crsarticole_editare
ENDIF
SELECT id_vanzare_det, id_articol, explicatie, Nvl(denumire,[]) As denumire, lot, serie, codmat, id_jtva_coloana, taxcode, ;
pret_achizitie, cantitate, proc_tvav, pret_cu_tva, id_vanzare_set, id_gestiune, id_ctr, id_valuta, nume_val, in_stoc, ;
id_pol, pretd, id_valutad, ;
Nvl(curs, m.lnCursDoc) As curs, Nvl(multiplicator, m.lnMultDoc) As multiplicator, ;
Iif(m.llInValuta, Round(pret * Nvl(curs, m.lnCursDoc) / Nvl(multiplicator, m.lnMultDoc), gnPPretV), pret) As pret, ;
Iif(m.llInValuta, pret, 0) As pret_val, ;
Iif(m.llInValuta, Round(discount_unitar * Nvl(curs, m.lnCursDoc) / Nvl(multiplicator, m.lnMultDoc), gnPPretV), discount_unitar) As discount_unitar, ;
Iif(m.llInValuta, discount_unitar, 0) As discount_unitar_val, ;
Iif(m.llInValuta,1,0) As tip_valuta, ;
Cast(.Null. As N(10)) As id_jtva_coloana_ex, Space(50) As codmatf, Space(50) As codbare, Space(10) As um, Space(50) As numar_contract ;
FROM crsarticole_doc INTO CURSOR crsarticole_editare READWRITE
creeaza_facturacrs('crsfactura')
prelucreaza_facturacrs('crsarticole_editare','crsfactura',0,0,0)
*!* gestionabil vine din nomenclatorul curent, nu din id_gestiune; id_gestiune, Cont, id_pol/
*!* pretd/id_valuta_d si vvaldiminuatctva (total in valuta cu tva, cf. oproceduri_facturare.prg:2282)
*!* nu sunt in lista de insert a lui prelucreaza_facturacrs
SELECT crsarticole_editare
SCAN
lnIdTemp = id_vanzare_det
lnGestionabil = Iif(Nvl(in_stoc,0) <> 0, 1, 0)
SELECT crsfactura
REPLACE gestionabil WITH m.lnGestionabil, ;
id_gestiune WITH Nvl(crsarticole_editare.id_gestiune, -1000), ;
id_pol WITH crsarticole_editare.id_pol, ;
pretd WITH crsarticole_editare.pretd, ;
id_valuta_d WITH crsarticole_editare.id_valutad, ;
vvaldiminuatctva WITH vvaldiminuatftva + vvaldiminuattva ;
FOR id_temp = m.lnIdTemp
SELECT crsarticole_editare
ENDSCAN
Use In crsarticole_doc
Use In crsarticole_editare
RETURN .T.
ENDFUNC