196 lines
9.3 KiB
Markdown
196 lines
9.3 KiB
Markdown
# 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
|
|
```
|