sync SVN r18194
This commit is contained in:
@@ -12067,18 +12067,31 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE actualizeazacontoare
|
||||
LOCAL loCoada, loContor
|
||||
Thisform.LockScreen = .T.
|
||||
LOCAL loCoada, loContor, lcFiltruVechi, lnRecnoVechi
|
||||
SELECT crsFacturi
|
||||
*!* filtrul se scoate doar cat se numara si se pune inapoi ca atare: o bifa nu schimba apartenenta la filtru, deci nu e nevoie de reconstruirea lui
|
||||
lcFiltruVechi = Filter()
|
||||
lnRecnoVechi = Recno('crsFacturi')
|
||||
SET FILTER TO
|
||||
loCoada = Createobject('CoadaContabilizareEF')
|
||||
loContor = loCoada.ContorBifate('crsFacturi')
|
||||
Thisform.AplicaFiltruDeCompletat()
|
||||
SELECT crsFacturi
|
||||
If !Empty(m.lcFiltruVechi)
|
||||
SET FILTER TO &lcFiltruVechi
|
||||
Endif
|
||||
Try
|
||||
Go m.lnRecnoVechi
|
||||
Catch
|
||||
Go Top
|
||||
Endtry
|
||||
This.lblContorBifate.Caption = Alltrim(Str(loContor.nGata)) + ' din ' + Alltrim(Str(loContor.nTotal)) + ' gata de import - ' + Alltrim(Str(loContor.nBifate)) + ' bifate - ' + Alltrim(Transform(loContor.nSuma, '999,999,999.99')) + ' lei' + IIF(loContor.nIndividual > 0, ' - ' + Alltrim(Str(loContor.nIndividual)) + ' se importa doar individual', '')
|
||||
This.chkDeCompletat.Caption = ALLTRIM(IIF(EMPTY(NVL(This.chkDeCompletat.Tag,'')), This.chkDeCompletat.Caption, This.chkDeCompletat.Tag)) + IIF((loContor.nTotal - loContor.nGata) > 0, ' (' + ALLTRIM(STR(loContor.nTotal - loContor.nGata)) + ')', '')
|
||||
This.chkCuGestiune.Caption = ALLTRIM(IIF(EMPTY(NVL(This.chkCuGestiune.Tag,'')), This.chkCuGestiune.Caption, This.chkCuGestiune.Tag)) + IIF(loContor.nGestiune > 0, ' (' + ALLTRIM(STR(loContor.nGestiune)) + ')', '')
|
||||
This.Cmd_executa1.Caption = Iif(loContor.nImport > 1, '\<Import ' + Alltrim(Str(loContor.nImport)) + ' bifate', '\<Import factura')
|
||||
This.Cmd_BifeazaTot1.Caption = Iif(loContor.nBifate > 0, '\<Deselecteaza toate', '\<Selecteaza toate')
|
||||
This.Cmd_Anulare1.Caption = '\<Anuleaza ' + Alltrim(Str(loContor.nAnulare)) + ' documente'
|
||||
Thisform.LockScreen = .F.
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE actualizeazalipsurilista
|
||||
@@ -12829,7 +12842,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_bifeazatot
|
||||
* bifeaza toate facturile eligibile vizibile; daca exista deja bifate, le debifeaza pe toate
|
||||
* bifeaza toate facturile eligibile vizibile si cele deja importate; daca exista deja bifate, le debifeaza pe toate
|
||||
LOCAL lcSelect, lnRecno, llDebifeaza
|
||||
lcSelect = SELECT()
|
||||
SELECT crsFacturi
|
||||
@@ -12840,7 +12853,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
IF m.llDebifeaza
|
||||
REPLACE ales WITH 0
|
||||
ELSE
|
||||
IF NVL(eligibil_lot, 1) = 1
|
||||
IF NVL(eligibil_lot, 1) = 1 OR NVL(id_fact, 0) <> 0
|
||||
REPLACE ales WITH 1
|
||||
ENDIF
|
||||
ENDIF
|
||||
@@ -15300,6 +15313,7 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
LPARAMETERS nColIndex
|
||||
|
||||
If Inlist(This.RowColChange, 1, 3)
|
||||
Thisform.LockScreen = .T.
|
||||
Local lnIdVechi, lnRecnoNou
|
||||
lnIdVechi = 0
|
||||
If Used('crsDetaliiFacturi')
|
||||
@@ -15324,12 +15338,18 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.CompleteazaFactura() && cap factura
|
||||
Thisform.actualizeaza_grid2()
|
||||
Thisform.CompleteazaDetaliiFactura() && detalii factura
|
||||
Thisform.LockScreen = .F.
|
||||
Endif
|
||||
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE grdFacturi.cAles._checkbox1.InteractiveChange
|
||||
IF Used('crsFacturi') And !Eof('crsFacturi')
|
||||
*!* bifa e permisa doar pe randuri eligibile sau deja importate (anulare in lot)
|
||||
IF This.Value = 1 And Nvl(crsFacturi.eligibil_lot,1) = 0 And Nvl(crsFacturi.id_fact,0) = 0
|
||||
This.Value = 0
|
||||
RETURN
|
||||
ENDIF
|
||||
REPLACE ales WITH IIF(This.Value=1,1,0) IN crsFacturi
|
||||
ENDIF
|
||||
Thisform.ActualizeazaContoare()
|
||||
@@ -15340,35 +15360,6 @@ DEFINE CLASS frm_import_efactura AS _frmbase OF "_frm_base.vcx"
|
||||
This.ToolTipText = IIF(EMPTY(NVL(crsFacturi.motiv_lot,'')), '', ALLTRIM(crsFacturi.motiv_lot))
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE grdFacturi.cAles._checkbox1.When
|
||||
RETURN (NVL(crsFacturi.eligibil_lot,1) # 0)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE grdFacturi.MouseMove
|
||||
Lparameters nButton, nShift, nXCoord, nYCoord
|
||||
Local lnWhere, lnRelRow, lnRelCol, lnRecnoSalvat, lnDelta, lcTip
|
||||
|
||||
This.GridHitTest(m.nXCoord, m.nYCoord, @lnWhere, @lnRelRow, @lnRelCol)
|
||||
lcTip = ''
|
||||
If m.lnWhere = 3 And Used('crsFacturi')
|
||||
lnRecnoSalvat = Recno('crsFacturi')
|
||||
lnDelta = m.lnRelRow - This.ActiveRow
|
||||
Try
|
||||
Select crsFacturi
|
||||
Skip m.lnDelta
|
||||
If !Bof() And !Eof()
|
||||
lcTip = Alltrim(Nvl(motiv_lot,''))
|
||||
Endif
|
||||
Catch
|
||||
Endtry
|
||||
Try
|
||||
Go m.lnRecnoSalvat In crsFacturi
|
||||
Catch
|
||||
Endtry
|
||||
Endif
|
||||
This.ToolTipText = m.lcTip
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Lb_titlu_alb_b121.RightClick
|
||||
This.Parent.chkTest.Visible = .T.
|
||||
ENDPROC
|
||||
|
||||
@@ -46,6 +46,7 @@ atingi zona X, citeste fisierul Y"). Restul se deschid doar la declansator.
|
||||
| `sold-neexigibil-reportat-jc2007-jv2007.md` | interogari pe sold TVA neexigibil |
|
||||
| `view-uri-efactura.md` | view-urile `ANAF_VEFACTURA_*` si potrivirea eFacturilor cu registrul de TVA |
|
||||
| `machete-note-xrequest-explicatii.md` | schimbi ce campuri cere o operatie la introducere (`XREQUEST`/`XITEMS`/`XNOTE`); explicatie, explicatia4, explicatia5 |
|
||||
| `incasari-plati-valuta-diferita.md` | incasare/plata in alta valuta decat a facturii (seturile 10600-10603); ce se pune la valute si cursuri |
|
||||
| `email-thunderbird.md` | citirea mailurilor de pe conturile romfast |
|
||||
|
||||
`onboarding\` — proceduri rulate o singura data per proiect (inrolare in fluxul git-text,
|
||||
|
||||
40
docs/incasari-plati-valuta-diferita.md
Normal file
40
docs/incasari-plati-valuta-diferita.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Incasare/plata intr-o valuta diferita de cea a facturii
|
||||
|
||||
Cazul: factura emisa in EUR, clientul vireaza GBP. Meniu: Trezorerie > "3. Banca in valuta" >
|
||||
Incasari > "Incasari clienti valuta diferita 411" (`Meniuri\banca3.mn2:53`) -> `lans(10600)`.
|
||||
Seturile 10600-10603 acopera banca valuta/lei x incasare/plata (`COMUN\programe\pmenu.prg:11-15`).
|
||||
Macheta nu e o forma fixa: e generata din Oracle (`XREQUEST`/`XITEMS`) prin `actbaza2007`
|
||||
(`COMUN\clase\baza.vc2:3352`) - vezi `machete-note-xrequest-explicatii.md`.
|
||||
|
||||
## Ce se completeaza (leul e pivot: ambele cursuri sunt fata de RON)
|
||||
|
||||
| Camp `poAct` | Ce e | In exemplu |
|
||||
|---|---|---|
|
||||
| `id_valuta` / `nume_val` | valuta **facturii** | EUR |
|
||||
| `id_valuta2` / `nume_val2` | valuta in care se **incaseaza efectiv** | GBP |
|
||||
| `suma_3` | cursul valutei facturii | curs EUR/RON al zilei |
|
||||
| `suma_22` | suma incasata, in valuta de incasare | suma din extras, in GBP |
|
||||
| `suma_32` | cursul valutei de incasare | curs GBP/RON al zilei |
|
||||
| `suma_22a` | **calculat**: suma convertita in valuta facturii | echivalent EUR |
|
||||
|
||||
`suma_2` (itemul 11) e superseded: daca setul contine itemul 81 (`suma_22`), itemul 11 nu mai
|
||||
apare si `poAct.suma_2` nu exista. Initializarile: `COMUN\programe\pmenu.prg:376-387`.
|
||||
|
||||
## Invariante
|
||||
|
||||
- Lista de facturi e filtrata `i.id_valuta IN (poAct.id_valuta, poAct.id_valuta2)`
|
||||
(`COMUN\clase\baza.vc2:10552`), deci **primul camp trebuie sa fie valuta facturii**, altfel
|
||||
factura nu apare.
|
||||
- Soldul afisat in formularul de alegere e **mereu in valuta facturii** (coloanele `*VAL*` din
|
||||
`vireg_parteneri`, `baza.vc2:10593`). Nu se converteste vizual in valuta incasata - nu se
|
||||
compara cu suma din extras.
|
||||
- Conversia trece prin lei: `suma_22 = (suma_2 * suma_3) / suma_32`
|
||||
(`COMUN\clase\baza.vc2:10855-10862`, `Case '.SUMA_32'$M`). Ce nu acopera `suma_22a` din soldul
|
||||
facturii ramane sold sau iese ca diferenta de curs - soldul nu se "ajusteaza", raportul
|
||||
cursurilor decide.
|
||||
|
||||
## Nelamurit
|
||||
|
||||
Textul exact al etichetelor vazute de utilizator e in `XITEMS.LABEL_ITEM` (Oracle), nu in codul
|
||||
VFP; semantica de mai sus e din cod. Daca macheta nu cere un curs pentru valuta facturii,
|
||||
verifica itemii setului 10600 in `XREQUEST`.
|
||||
Reference in New Issue
Block a user