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
58 lines
2.7 KiB
Plaintext
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
|