#13: formular de facturare unificat - etapa curenta

Squash al branch-ului de lucru plan13-s2.

Cod: clasa noua ofacturare_util (geometrie si utilitare de formular), inrolata in
roafacturare.prg; meniul "Facturare (nou)" plat, cu reparatia literalului peste
limita VFP de 255 de caractere care impiedica compilarea metodei.

Livrare: changelog 2.11.19, marcajul de versiune DB pentru scripturile finale din
SCRIPTURI_CLAR\2026\09, inventarul livrarii in docs/livrare_13.md si registrul de
erori deschise. Documentatia de lucru a etapei (cercetare, rapoarte, handoff-uri,
snapshot-uri de scripturi si backup-uri de rollback) a fost scoasa din arbore.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
This commit is contained in:
2026-09-09 21:30:51 +03:00
parent 87063b06a8
commit 104c24ec20
80 changed files with 5585 additions and 27852 deletions

View File

@@ -32,11 +32,14 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
*< OBJECTDATA: ObjPath="Page2.Cw8" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page2.Pict_liniuta2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page2.Cw9" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page2.Cw10" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page2.Pict_liniuta1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page3.Pict_meniu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page3.Cw1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page3.Cw4" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page3.Cw3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page3.Cw2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page3.Cw5" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page4.Pict_meniu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page4.Cw1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Page4.Cw4" UniqueID="" Timestamp="" />
@@ -244,6 +247,16 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
Label_item1.WordWrap = .T.
*< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" />
ADD OBJECT 'Page2.Cw10' AS cw WITH ;
Left = 5, ;
Name = "Cw10", ;
nid_cw = 10, ;
TabIndex = 10, ;
Top = 250, ;
Label_item1.Caption = "Facturare (nou)", ;
Label_item1.Name = "Label_item1"
*< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" />
ADD OBJECT 'Page2.Cw2' AS cw WITH ;
Left = 5, ;
Name = "Cw2", ;
@@ -348,6 +361,13 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
LABEL_ITEM1.WordWrap = .T.
*< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" />
ADD OBJECT 'Page2.Pict_liniuta1' AS pict_liniuta WITH ;
Left = 6, ;
Name = "Pict_liniuta1", ;
Picture = ..\comun\grafice\f3.jpg, ;
Top = 239
*< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="image" />
ADD OBJECT 'Page2.Pict_liniuta2' AS pict_liniuta WITH ;
Left = 6, ;
Name = "Pict_liniuta2", ;
@@ -411,6 +431,16 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
Label_item1.WordWrap = .T.
*< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" />
ADD OBJECT 'Page3.Cw5' AS cw WITH ;
Left = 5, ;
Name = "Cw5", ;
nid_cw = 5, ;
TabIndex = 5, ;
Top = 106, ;
Label_item1.Caption = "Avize (nou)", ;
Label_item1.Name = "Label_item1"
*< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" />
ADD OBJECT 'Page3.Pict_meniu1' AS pict_meniu WITH ;
Height = 473, ;
Left = 2, ;
@@ -619,6 +649,9 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
_grdrow1.cAgent.Header1.Name = "Header1", ;
_grdrow1.cAgent.Name = "cAgent", ;
_grdrow1.cAgent.Text1.Name = "Text1", ;
_grdrow1.cCodFiscal.Header1.Name = "Header1", ;
_grdrow1.cCodFiscal.Name = "cCodFiscal", ;
_grdrow1.cCodFiscal.Text1.Name = "Text1", ;
_grdrow1.cComanda_externa.Header1.Name = "Header1", ;
_grdrow1.cComanda_externa.Name = "cComanda_externa", ;
_grdrow1.cComanda_externa.Text1.Name = "Text1", ;
@@ -641,6 +674,9 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
_grdrow1.cFacturat.Name = "cFacturat", ;
_grdrow1.cFacturat._checkbox1.Alignment = 2, ;
_grdrow1.cFacturat._checkbox1.Name = "_checkbox1", ;
_grdrow1.cIdPart.Header1.Name = "Header1", ;
_grdrow1.cIdPart.Name = "cIdPart", ;
_grdrow1.cIdPart.Text1.Name = "Text1", ;
_grdrow1.cLucrare.Header1.Name = "Header1", ;
_grdrow1.cLucrare.Name = "cLucrare", ;
_grdrow1.cLucrare.Text1.Name = "Text1", ;
@@ -690,6 +726,9 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
_grdrow2.cNrCrt.Header1.Name = "Header1", ;
_grdrow2.cNrCrt.Name = "cNrCrt", ;
_grdrow2.cNrCrt.Text1.Name = "Text1", ;
_grdrow2.cNumeListaPreturi.Header1.Name = "Header1", ;
_grdrow2.cNumeListaPreturi.Name = "cNumeListaPreturi", ;
_grdrow2.cNumeListaPreturi.Text1.Name = "Text1", ;
_grdrow2.cPret.Header1.Name = "Header1", ;
_grdrow2.cPret.Name = "cPret", ;
_grdrow2.cPret.Text1.Name = "Text1", ;
@@ -697,6 +736,9 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
_grdrow2.cPret_cu_tva.Name = "cPret_cu_tva", ;
_grdrow2.cPret_cu_tva._checkbox1.Alignment = 2, ;
_grdrow2.cPret_cu_tva._checkbox1.Name = "_checkbox1", ;
_grdrow2.cPTVA.Header1.Name = "Header1", ;
_grdrow2.cPTVA.Name = "cPTVA", ;
_grdrow2.cPTVA.Text1.Name = "Text1", ;
_grdrow2.Height = 367, ;
_grdrow2.Left = 173, ;
_grdrow2.Name = "_grdrow2", ;
@@ -734,7 +776,8 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
Cmd_executa4.Top = 425, ;
But_factura1.Name = "But_factura1", ;
BUT_START_CRITERII1.Name = "BUT_START_CRITERII1", ;
BUT_RESET_CRITERII1.Name = "BUT_RESET_CRITERII1"
BUT_RESET_CRITERII1.Name = "BUT_RESET_CRITERII1", ;
But_attach1.Name = "But_attach1"
*< END OBJECT: ClassLib="..\comun\clase\ocomenzi.vcx" BaseClass="container" />
ADD OBJECT 'Page6.Ct_lucrari_detalii1' AS ct_lucrari_detalii WITH ;
@@ -883,6 +926,45 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
DO facturare_lista_de_preturi IN oproceduri_facturare.prg
ENDPROC
PROCEDURE Page2.Cw10.do_actiune
Private plFacturareNoua
plFacturareNoua = .T.
lcOptiuni = 'In lei;Retur factura in lei;Restaurant;Marfa in custodie - fara descarcare K;Marfa in custodie - cu descarcare K;\-;Invoice;Credit note;Factura fiscala in valuta;Retur factura in valuta'
lcOptiuni = m.lcOptiuni + ';\-;Contract: Factura lei;Contract: Invoice;Contract: Factura fiscala in valuta;\-;Pe baza de comanda;Din aviz'
lnOptiune = xmenu(m.lcOptiuni)
DO CASE
CASE m.lnOptiune = 1
factureaza(1)
CASE m.lnOptiune = 2
factureaza(8)
CASE m.lnOptiune = 3
factureaza(45)
CASE m.lnOptiune = 4
factureaza(49)
CASE m.lnOptiune = 5
factureaza(48)
CASE m.lnOptiune = 7
factureaza(5)
CASE m.lnOptiune = 8
factureaza(7)
CASE m.lnOptiune = 9
factureaza(10)
CASE m.lnOptiune = 10
factureaza(9)
CASE m.lnOptiune = 12
DO facturare_contracte WITH 'FACTURA LEI' IN oproceduri_facturare.prg
CASE m.lnOptiune = 13
DO facturare_contracte WITH 'INVOICE' IN oproceduri_facturare.prg
CASE m.lnOptiune = 14
DO facturare_contracte WITH 'FACTURA VALUTA' IN oproceduri_facturare.prg
CASE m.lnOptiune = 16
goComanda = ''
DO facturare_comenzi IN oproceduri_facturare.prg
CASE m.lnOptiune = 17
DO facturare_avize IN oproceduri_facturare.prg
ENDCASE
ENDPROC
PROCEDURE Page2.Cw2.do_actiune
lnOptiune = xmenu('Factura lei;Invoice;Factura fiscala in valuta')
DO CASE
@@ -941,6 +1023,22 @@ DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx"
DO aviz_subunitati.mpr
ENDPROC
PROCEDURE Page3.Cw5.do_actiune
Private plFacturareNoua
plFacturareNoua = .T.
lnOptiune = xmenu('C<>tre clien<65>i;C<>tre clien<65>i <20>n custodie;C<>tre clien<65>i debitori;Transfer <20>ntre subunit<69><74>i')
DO CASE
CASE m.lnOptiune = 1
This.Parent.Cw1.do_actiune()
CASE m.lnOptiune = 2
This.Parent.Cw2.do_actiune()
CASE m.lnOptiune = 3
This.Parent.Cw3.do_actiune()
CASE m.lnOptiune = 4
This.Parent.Cw4.do_actiune()
ENDCASE
ENDPROC
PROCEDURE Page4.Cw1.do_actiune
lnOptiune = xmenu('Vizualizare \<standard;Vizualizare \<experimentala (mai rapida)')
If Empty(m.lnOptiune)