sync SVN r18031
This commit is contained in:
@@ -16878,13 +16878,17 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
|
||||
*<PropValue>
|
||||
BorderStyle = 1
|
||||
cDirectie = "RUL_SURSA"
|
||||
cdirectie = "RUL_SURSA"
|
||||
DoCreate = .T.
|
||||
Height = 480
|
||||
Name = "frm_sincronizare_articole"
|
||||
oFormArticole = .F.
|
||||
oformarticole = .F.
|
||||
Width = 700
|
||||
_shape1.Height = 29
|
||||
_shape1.Left = 0
|
||||
_shape1.Name = "_shape1"
|
||||
_shape1.Top = 0
|
||||
_shape1.Width = 708
|
||||
_shape1.ZOrderSet = 1
|
||||
_shape2.Height = 29
|
||||
_shape2.Left = 636
|
||||
@@ -16926,13 +16930,17 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
Top = 108, ;
|
||||
Width = 668, ;
|
||||
ZOrderSet = 2, ;
|
||||
Column1.ColumnOrder = 1, ;
|
||||
Column1.ControlSource = "ALLTRIM(propunere_afisata.denumire) + ' (' + ALLTRIM(propunere_afisata.codmat) + ')'", ;
|
||||
Column1.DynamicForeColor = "IIF(ALLTRIM(propunere_afisata.actiune)='N-A',RGB(150,150,150),RGB(0,0,0))", ;
|
||||
Column1.FontSize = 9, ;
|
||||
Column1.Name = "cArticolProp", ;
|
||||
Column1.ReadOnly = .T., ;
|
||||
Column1.Width = 180, ;
|
||||
Column2.ColumnOrder = 2, ;
|
||||
Column2.ControlSource = "propunere_afisata.cantitate_veche", ;
|
||||
Column2.DynamicForeColor = "IIF(ALLTRIM(propunere_afisata.actiune)='N-A',RGB(150,150,150),RGB(0,0,0))", ;
|
||||
Column2.FontSize = 9, ;
|
||||
Column2.Format = "R", ;
|
||||
Column2.InputMask = (get_mask(12,gnPCANT)), ;
|
||||
Column2.Name = "cCantVecheProp", ;
|
||||
@@ -16940,6 +16948,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
Column2.Width = 100, ;
|
||||
Column3.ControlSource = "propunere_afisata.cantitate_noua", ;
|
||||
Column3.DynamicForeColor = "IIF(ALLTRIM(propunere_afisata.actiune)='N-A',RGB(150,150,150),RGB(0,0,0))", ;
|
||||
Column3.FontSize = 9, ;
|
||||
Column3.Format = "R", ;
|
||||
Column3.InputMask = (get_mask(12,gnPCANT)), ;
|
||||
Column3.Name = "cCantNouaProp", ;
|
||||
@@ -16947,6 +16956,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
Column3.Width = 100, ;
|
||||
Column4.ControlSource = "propunere_afisata.pret_vechi", ;
|
||||
Column4.DynamicForeColor = "IIF(ALLTRIM(propunere_afisata.actiune)='N-A',RGB(150,150,150),RGB(0,0,0))", ;
|
||||
Column4.FontSize = 9, ;
|
||||
Column4.Format = "R", ;
|
||||
Column4.InputMask = (get_mask(12,gnPPRET)), ;
|
||||
Column4.Name = "cPretVechiProp", ;
|
||||
@@ -16954,6 +16964,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
Column4.Width = 100, ;
|
||||
Column5.ControlSource = "propunere_afisata.pret_nou", ;
|
||||
Column5.DynamicForeColor = "IIF(ALLTRIM(propunere_afisata.actiune)='N-A',RGB(150,150,150),RGB(0,0,0))", ;
|
||||
Column5.FontSize = 9, ;
|
||||
Column5.Format = "R", ;
|
||||
Column5.InputMask = (get_mask(12,gnPPRET)), ;
|
||||
Column5.Name = "cPretNouProp", ;
|
||||
@@ -16961,6 +16972,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
Column5.Width = 100, ;
|
||||
Column6.ControlSource = "propunere_afisata.actiune", ;
|
||||
Column6.DynamicForeColor = "IIF(ALLTRIM(propunere_afisata.actiune)='N-A',RGB(150,150,150),RGB(0,0,0))", ;
|
||||
Column6.FontSize = 9, ;
|
||||
Column6.Name = "cActiuneProp", ;
|
||||
Column6.ReadOnly = .T., ;
|
||||
Column6.Width = 88
|
||||
@@ -16975,6 +16987,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
*< END OBJECT: BaseClass="header" />
|
||||
|
||||
ADD OBJECT 'grdPropunere.cArticolProp.Header1' AS header WITH ;
|
||||
Alignment = 2, ;
|
||||
Caption = "Articol", ;
|
||||
FontName = "Arial", ;
|
||||
FontSize = 9, ;
|
||||
@@ -17052,7 +17065,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
OPTION2.Top = 24
|
||||
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="optiongroup" />
|
||||
|
||||
PROCEDURE ActualizeazaCapeteColoane
|
||||
PROCEDURE actualizeazacapetecoloane
|
||||
*!* capetele coloanelor spun singure ce e sursa si ce se suprascrie, in loc de "vechi/nou" plus o
|
||||
*!* legenda separata - se refac la fiecare schimbare de directie
|
||||
LOCAL lcTinta, lcSursa
|
||||
@@ -17066,7 +17079,7 @@ DEFINE CLASS frm_sincronizare_articole AS frm_termin_renunt OF "_frm_child.vcx"
|
||||
ENDWITH
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE ConstruiesteEnumerare
|
||||
PROCEDURE construiesteenumerare
|
||||
*!* propunere_sincronizare se recreeaza la fiecare apel, deci gridul nu poate sta legat de el;
|
||||
*!* continutul se copiaza in propunere_afisata, cursorul stabil creat in Load
|
||||
LOCAL lnAreaOrigine, lnAplicabile
|
||||
|
||||
88
docs/conventie_mediu_oracle.md
Normal file
88
docs/conventie_mediu_oracle.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Conventii - mediul Oracle de dev/test
|
||||
|
||||
Regula lui Marius, 20.08.2026. Se aplica **de fiecare data**, si sesiunii principale, si
|
||||
subagentilor. Nu e context, e conventie de lucru.
|
||||
|
||||
## 1. Nu se spune "baza"
|
||||
|
||||
Termenul e vag si a produs deja o intrebare care n-ar fi trebuit sa existe: *"ce este baza? care
|
||||
schema?"*. Se scrie intotdeauna **schema + instanta**, explicit:
|
||||
|
||||
> "se ruleaza pe schema `MARIUSM_AUTO` de pe `ROA_CENTRAL`"
|
||||
|
||||
nu "se ruleaza pe baza". Acelasi lucru in rapoarte, in handoff-uri, in propuneri si in mesaje.
|
||||
|
||||
## 2. Pe dev/test se lucreaza NUMAI cu ROA_CENTRAL
|
||||
|
||||
Instanta: **`ROA_CENTRAL`**. Schemele permise, singurele doua:
|
||||
|
||||
| Schema | Ce este |
|
||||
|---|---|
|
||||
| **`MARIUSM_AUTO`** | schema **de firma** - datele si pachetele de business (`VANZARI`, `VANZARI_DETALII`, `JTVA_COLOANE`, `PACK_FACTURARE`...). Aici se lucreaza pe functionalitate. |
|
||||
| **`CONTAFIN_ORACLE`** | schema **comuna tuturor schemelor de firma**: pachete comune, actualizarea bazei de date, utilizatori, drepturi de utilizator, nomenclatorul de firme. Se creeaza **pe fiecare server**. |
|
||||
|
||||
Nimic altceva. Daca o sarcina pare sa ceara altceva, se intreaba intai.
|
||||
|
||||
Modelul de retinut: fiecare firma are schema ei (in dev/test, `MARIUSM_AUTO`), iar
|
||||
`CONTAFIN_ORACLE` sta alaturi, o singura data per server, si deserveste toate schemele de firma.
|
||||
Deci o modificare in `CONTAFIN_ORACLE` e **transversala peste toate firmele de pe acel server** -
|
||||
se trateaza cu grija corespunzatoare, nu ca o schimbare locala.
|
||||
|
||||
## 3. Schema `ACN` nu se foloseste si nu se citeaza
|
||||
|
||||
Nu se interogheaza, nu se ia ca sursa de adevar, nu se pomeneste in rapoarte ca element de
|
||||
comparatie. Daca apare in rezultatul unei interogari pe `ALL_OBJECTS`/`ALL_SOURCE`, se **filtreaza
|
||||
din start**, nu se comenteaza.
|
||||
|
||||
Consecinta practica pentru interogarile de dictionar: se pune **intotdeauna** filtrul de `owner`.
|
||||
Fara el, randurile mai multor scheme se intercaleaza si output-ul devine ilizibil - capcana deja
|
||||
platita o data la citirea unui corp de pachet din `ALL_SOURCE`.
|
||||
|
||||
```sql
|
||||
select text from all_source
|
||||
where owner = 'MARIUSM_AUTO' -- niciodata fara aceasta linie
|
||||
and name = 'PACK_FACTURARE'
|
||||
and type = 'PACKAGE BODY'
|
||||
order by line;
|
||||
```
|
||||
|
||||
## 4. Conectare
|
||||
|
||||
```
|
||||
& 'D:\ROA\instantclient_19_18\sqlplus.exe' -L -S 'MARIUSM_AUTO/ROMFASTSOFT@ROA_CENTRAL' '@fisier.sql'
|
||||
```
|
||||
|
||||
Fisierul `.sql` se scrie in **ASCII**. SQL trimis prin pipe din PowerShell e spart de BOM.
|
||||
|
||||
## 5. Ce inseamna "se ruleaza un script de pachet"
|
||||
|
||||
Scripturile din `D:\ROA\DATABASE\SCRIPTURI_CLAR\` **nu modifica date** - inlocuiesc **cod stocat in
|
||||
Oracle** (`CREATE OR REPLACE PACKAGE` + `PACKAGE BODY`). De retinut:
|
||||
|
||||
- Efectul e **imediat si pentru toti cei conectati**. Nu seamana cu VFP, unde fiecare statie ruleaza
|
||||
propriul `.exe`.
|
||||
- Se recreeaza si **specificatia**, nu doar corpul - asta invalideaza obiectele dependente, care se
|
||||
recompileaza la prima folosire.
|
||||
- **Nu exista "undo".** Revenirea inseamna rularea unei versiuni anterioare a pachetului.
|
||||
- Scripturile sunt scrise **necalificat** (`CREATE OR REPLACE PACKAGE "PACK_FACTURARE"`, fara
|
||||
`CONNECT`, fara prefix de schema). Deci **se aplica schemei cu care esti conectat**, nu au tinta
|
||||
proprie. Schema tinta o decide exclusiv sirul de conectare.
|
||||
- Rularea unui script pe orice schema **se face doar la cererea explicita a lui Marius**. Un agent
|
||||
scrie scriptul; nu il aplica.
|
||||
|
||||
## 6. Stare constatata pe `ROA_CENTRAL`, 20.08.2026
|
||||
|
||||
Reper istoric, constatat din ROAFACTURARE; de reconfirmat daca a trecut timp. Punctele 1-5
|
||||
sunt conventia propriu-zisa si se aplica in toate produsele ROA.
|
||||
|
||||
```
|
||||
DB_NAME: ROA server: 4e73d257c791 alias TNS: ROA_CENTRAL
|
||||
```
|
||||
|
||||
- `MARIUSM_AUTO` isi detine **propriile tabele** (`VANZARI_DETALII`, `JTVA_COLOANE` sunt TABLE in
|
||||
schema, nu sinonime catre alta schema). Deci cifrele obtinute conectat ca `MARIUSM_AUTO` sunt ale
|
||||
datelor din `MARIUSM_AUTO`.
|
||||
- `CONTAFIN_ORACLE` are 393 de obiecte si **nu** detine `VANZARI_DETALII`/`JTVA_COLOANE` - coerent
|
||||
cu rolul ei: infrastructura comuna (utilizatori, drepturi, firme, actualizare), nu date de firma.
|
||||
- `MARIUSM_AUTO.PACK_FACTURARE`: PACKAGE si PACKAGE BODY **VALID**, corpul modificat ultima data
|
||||
**20.08.2026 08:43** (aplicarea scriptului `ff_2026_08_20_01`, garda `FACT-025`).
|
||||
@@ -107,6 +107,8 @@
|
||||
- `GO` pe un `Recno()` capturat/primit ca parametru -> `conventie_go_recno.md`;
|
||||
- `ALTER TABLE` pe cursorul intors de `goExecutor.oExecute()` -> `conventie_goexecutor_alter_table.md`;
|
||||
- testare UI / prin MCP -> `testare-ui-vfp.md`, `testare-vfp-mcp.md`;
|
||||
- te conectezi la Oracle pe dev/test, alegi schema sau rulezi un script de pachet ->
|
||||
`conventie_mediu_oracle.md`;
|
||||
- garzi pe valori NULL din Oracle -> `conventie_null_vfp.md`;
|
||||
- export date din Oracle -> `oracle_export.md`;
|
||||
- actualizarea ROA nu se finalizeaza (job update, PACK_UPDATE) -> `depanare-pack-update.md`;
|
||||
|
||||
Reference in New Issue
Block a user