* 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