sync SVN r18238
This commit is contained in:
195
docs/prompt_integrare_13_anaf.md
Normal file
195
docs/prompt_integrare_13_anaf.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# Prompt de integrare pentru sesiunea planului #13 (frm_facturare_articole2)
|
||||
|
||||
Copiaza tot ce e sub linie in sesiunea #13.
|
||||
|
||||
---
|
||||
|
||||
Integreaza in lucrul tau modificarile facute de alta sesiune Claude (branch `anaf-factura` din COMUN, pe calculatorul lui Marius) pentru verificarea automata ANAF a clientului pe factura. Sunt aprobate si testate headless + UI de paritate; nu le reproiecta, doar integreaza-le peste versiunea ta.
|
||||
|
||||
## Ce atinge `COMUN\clase\ofacturare.vc2`
|
||||
- `frm_facturare_articole2` (S2, commit `5cf1010`) - 10 linii, doar apeluri catre `oAntet`:
|
||||
- `Activate`: dupa blocul `aseaza_totaluri`, daca `This.oAntet.lVerificaLaActivare` -> `This.oAntet.VerificaANAFAutomat(This, .T.)`.
|
||||
- `Init`: in ramura cu `poDate.id_client <> 0` (dupa ToolTipText `'Id client: '`) -> `.oAntet.MarcheazaVerificareLaActivare()`.
|
||||
- `Clb_dataact.TEXT_SIMPLU1.LostFocus` si `Clb_dataireg.Text_simplu1.LostFocus`: `Thisform.oAntet.LaSchimbareData(Thisform)` inainte de `Return` pe ramura aviz si la finalul metodei.
|
||||
- `frm_date_factura` (dialogul vechi deschis din Comenzi; S2b, commit `79fb578`): proprietate `oantet`, `Activate` nou, `oAntet` creat in `Init`, `MarcheazaVerificareLaActivare`, `LaSchimbareData` pe LostFocus date, `do_cauta_client(tcCui)` cu filtru + verificare/reset, `do_verifica` delegat la `This.oAntet.do_verifica(This)`.
|
||||
|
||||
Diff-ul exact (text FoxBin2Prg) e mai jos. Daca metodele tale din `frm_facturare_articole2` s-au mutat sau rescris, pastreaza intentia: aceleasi apeluri, in aceleasi momente (dupa totaluri la Activate; dupa completarea clientului in Init; dupa recalcularea datelor la LostFocus).
|
||||
|
||||
**Curatenie la integrare (dupa `558ccda`):** butonul de verificare nu mai pune nicio intrebare, deci in `frm_date_factura.do_cauta_client` linia `This.oAntet.PuneFiltruCui(m.loHash, m.tcCui)` si `Lparameters tcCui` (adaugate de S2b, diff-ul de mai jos) sunt redundante - `tcCui` vine mereu gol. Scoate-le la integrare (si `PuneFiltruCui` din `ofacturare_antet.prg`, care ramane fara apelant). Diff-ul de mai jos e cel initial `6acd1ea..79fb578`; restul modificarilor de dupa sunt doar in `.prg` si `.bmp`.
|
||||
|
||||
## Dependente (fara ele apelurile dau eroare)
|
||||
Toata logica e in `COMUN\programe\ofacturare_antet.prg` (clasa `oAntetFacturare`: `VerificaANAFAutomat`, `LaSchimbareData`, `MarcheazaVerificareLaActivare`, `ReseteazaIndicator`, `AplicaRezultatButon`, `PuneFiltruCui`, `lFormVechi`...) si in modificarile S0/S1a din fisierele ANAF (`ANAF_StarePartener` cu parametrul 8 `tlIstoricIntai`, `ocautare.prg`). Deci ai nevoie de TOT branch-ul `anaf-factura` (commit-uri `5e7b11d..558ccda` peste `ca8e7ca sync SVN r18221`), nu doar de `.vc2`. Branch-ul NU e pushat - cere-i lui Marius sa-l publice (push pe gitea romfast/comun) sau sa decida alta cale; nu reconstrui `ofacturare_antet.prg` din memorie.
|
||||
Produsele care deschid aceste formulare trebuie sa aiba `SET PROCEDURE TO ofacturare_antet.prg ADDITIVE` (ROAFACTURARE si ROAACNPRO il au; daca #13 aduce formularele in alt produs, adauga-l acolo).
|
||||
|
||||
## Procedura
|
||||
1. Merge / cherry-pick `anaf-factura` peste branch-ul tau; conflictele in `ofacturare.vc2` se rezolva manual pe text, pastrand ambele seturi.
|
||||
2. Write-back o singura data, din textul unit (skill `roa-vfp-text-edit`, `-ProjectRoot` explicit), verificare prin reconversie.
|
||||
3. Regresie: `COMUN\utile\Teste\anaf_factura\test_s2_declansatori.prg`, `test_s2b_dialog_vechi.prg`, `test_s3_buton_manual.prg` (headless), `test_s4_indicator_ui.ps1` si `test_s4_dialog_vechi_ui.ps1` (UI).
|
||||
4. Observatie deschisa: `Init` face `SetFocus`, care declanseaza `Activate` inca din Init, deci primul HTTP ANAF poate rula inainte ca formularul sa fie desenat (vezi raportul S4, defect 1). Nu il repara fara decizia lui Marius.
|
||||
|
||||
## Diff `ofacturare.vc2` (`6acd1ea..79fb578`)
|
||||
|
||||
```diff
|
||||
diff --git a/clase/ofacturare.vc2 b/clase/ofacturare.vc2
|
||||
index 21d37aa..4540ef4 100644
|
||||
--- a/clase/ofacturare.vc2
|
||||
+++ b/clase/ofacturare.vc2
|
||||
@@ -8689,6 +8689,7 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
*p: nsoldlei && Sold lei client
|
||||
*p: nsoldvaluta && sold vauta client
|
||||
*p: ntip
|
||||
+ *p: oantet && Verificarea ANAF si cautarile de antet (oAntetFacturare, ofacturare_antet.prg).
|
||||
*</DefinedPropArrayMethod>
|
||||
|
||||
*<PropValue>
|
||||
@@ -9092,6 +9093,15 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
Width = 118
|
||||
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
|
||||
|
||||
+ PROCEDURE Activate
|
||||
+ DoDefault()
|
||||
+ If Vartype(This.oAntet) = "O"
|
||||
+ If This.oAntet.lVerificaLaActivare
|
||||
+ This.oAntet.VerificaANAFAutomat(This, .T.)
|
||||
+ Endif
|
||||
+ Endif
|
||||
+ ENDPROC
|
||||
+
|
||||
PROCEDURE do_cauta_altele
|
||||
Do Case
|
||||
Case Thisform.nid_tip=2
|
||||
@@ -9154,9 +9164,11 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_cauta_client
|
||||
+ Lparameters tcCui
|
||||
Local loCauta
|
||||
loHash = GetHash([cTitlu=>Clienti??cCont=>4111??lAdaugCorespondente=>1??lVerificaANAF=>1])
|
||||
loHash.SetValue('dDataDoc', Iif(Type('poDate.dataact') = 'D', poDate.dataact, {}))
|
||||
+ This.oAntet.PuneFiltruCui(m.loHash, m.tcCui)
|
||||
loCauta = CautPartenerContabilitate(loHash)
|
||||
If !Empty(Nvl(loCauta.id_part,0)) And !Empty(loCauta.denumire)
|
||||
If loCauta.id_part <> poDate.id_client
|
||||
@@ -9196,6 +9208,7 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
This.ct_clb_lucrare.SetFocus()
|
||||
|
||||
This.ct_clb_nume_client.clb_TX_CAUTARE.text_SIMPLU1.ToolTipText = 'Id client: ' + TRANSFORM(poDate.id_client)
|
||||
+ This.oAntet.VerificaANAFAutomat(This, .F.)
|
||||
Else
|
||||
poDate.listaid = []
|
||||
poDate.descriere = []
|
||||
@@ -9205,6 +9218,7 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
this.nSoldLei = 0
|
||||
this.nSoldValuta = 0
|
||||
+ This.oAntet.ReseteazaIndicator(This)
|
||||
this.txtSoldLei.Refresh()
|
||||
Endif
|
||||
*!* modificare v 2.0.70
|
||||
@@ -9593,18 +9607,7 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE do_verifica
|
||||
- Local loDate As "empty"
|
||||
- Local lnOptiune, lnRaspuns, loPartener
|
||||
-
|
||||
- lnOptiune = 1
|
||||
- loPartener = Null
|
||||
- loDate = Createobject("empty")
|
||||
-
|
||||
- AddProperty(loDate, "denumire", poDate.nume_client)
|
||||
- AddProperty(loDate, "cod_fiscal", poDate.cod_fiscal)
|
||||
- AddProperty(loDate, "tip_verificare", "ANAF_SERVICIU_WEB")
|
||||
-
|
||||
- lnRaspuns = VerificaCodFiscal(loDate, @lnOptiune, @loPartener)
|
||||
+ Return This.oAntet.do_verifica(This)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE inainte_de_do_termin
|
||||
@@ -9741,6 +9744,8 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
|
||||
This.lCopiere = (TYPE('toFactura') = 'O') && copiere factura
|
||||
llCopiere = This.lCopiere
|
||||
+ This.oAntet = Createobject('oAntetFacturare')
|
||||
+ This.oAntet.lFormVechi = .T.
|
||||
|
||||
lnObiecte = 16 && ROACONTRACTE v 2.0.42 : 16
|
||||
Dimension laPozitii(lnObiecte, 3)
|
||||
@@ -9938,6 +9943,8 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
this.nSoldValuta = loSoldClient.sold_valuta
|
||||
this.txtSoldLei.Refresh()
|
||||
This.ct_clb_nume_client.clb_TX_CAUTARE.text_SIMPLU1.ToolTipText = 'Id client: ' + TRANSFORM(poDate.id_client)
|
||||
+ This.oAntet.MarcheazaVerificareLaActivare()
|
||||
+ This.txtCodFiscal.Refresh()
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
@@ -9965,6 +9972,7 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
Endif
|
||||
*!* modificare v 2.0.56 ^
|
||||
|
||||
+ Thisform.oAntet.LaSchimbareData(Thisform)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Clb_dataireg.Text_simplu1.LostFocus
|
||||
@@ -9983,6 +9991,7 @@ DEFINE CLASS frm_date_factura AS _frmbase OF "_frm_base.vcx"
|
||||
*!* modificare v 2.0.56
|
||||
Endif
|
||||
*!* modificare v 2.0.56 ^
|
||||
+ Thisform.oAntet.LaSchimbareData(Thisform)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Clb_nract.Text_simplu1.LostFocus
|
||||
@@ -18238,6 +18247,11 @@ DEFINE CLASS frm_facturare_articole2 AS _frmbase OF "_frm_base.vcx"
|
||||
This.ltotaluri_asezate = .T.
|
||||
This.aseaza_totaluri()
|
||||
Endif
|
||||
+ If Vartype(This.oAntet) = "O"
|
||||
+ If This.oAntet.lVerificaLaActivare
|
||||
+ This.oAntet.VerificaANAFAutomat(This, .T.)
|
||||
+ Endif
|
||||
+ Endif
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE actualizeaza_tipincasare
|
||||
@@ -21579,6 +21593,7 @@ DEFINE CLASS frm_facturare_articole2 AS _frmbase OF "_frm_base.vcx"
|
||||
.nSoldValuta = loSoldClient.sold_valuta
|
||||
.txtSoldLei.Refresh()
|
||||
.ct_clb_nume_client.clb_tx_cautare.text_simplu1.ToolTipText = 'Id client: ' + Transform(poDate.id_client)
|
||||
+ .oAntet.MarcheazaVerificareLaActivare()
|
||||
Endif
|
||||
Do Case
|
||||
Case poDate.in_valuta = 1 And .ct_clb_valuta.Top < .clb_fdoc.Top And Empty(Nvl(poDate.nume_valuta, ''))
|
||||
@@ -21941,6 +21956,7 @@ DEFINE CLASS frm_facturare_articole2 AS _frmbase OF "_frm_base.vcx"
|
||||
If Thisform.oAntet.EsteAviz()
|
||||
poDate.zi_curs = poDate.dataact
|
||||
Thisform.clb_zi_curs.Refresh()
|
||||
+ Thisform.oAntet.LaSchimbareData(Thisform)
|
||||
Return
|
||||
Endif
|
||||
*!* modificare v 2.2.4 : daca scadenta nu e automata, atunci poate modifica data scadenta propusa
|
||||
@@ -21957,6 +21973,7 @@ DEFINE CLASS frm_facturare_articole2 AS _frmbase OF "_frm_base.vcx"
|
||||
Endif
|
||||
*!* modificare v 2.0.56 ^
|
||||
|
||||
+ Thisform.oAntet.LaSchimbareData(Thisform)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Clb_dataireg.Text_simplu1.LostFocus
|
||||
@@ -21965,6 +21982,7 @@ DEFINE CLASS frm_facturare_articole2 AS _frmbase OF "_frm_base.vcx"
|
||||
Thisform.clb_dataact.Refresh()
|
||||
poDate.zi_curs = poDate.dataact
|
||||
Thisform.clb_zi_curs.Refresh()
|
||||
+ Thisform.oAntet.LaSchimbareData(Thisform)
|
||||
Return
|
||||
Endif
|
||||
poDate.dataact = poDate.dataireg
|
||||
@@ -21982,6 +22000,7 @@ DEFINE CLASS frm_facturare_articole2 AS _frmbase OF "_frm_base.vcx"
|
||||
*!* modificare v 2.0.56
|
||||
Endif
|
||||
*!* modificare v 2.0.56 ^
|
||||
+ Thisform.oAntet.LaSchimbareData(Thisform)
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE clb_fdoc.cboFdoc.Init
|
||||
```
|
||||
Reference in New Issue
Block a user