Patch level : 12.0 no-patch
Files correlati : Commento : - Sistemato caricamento record nelle tabelle (va sempre messo keyprginvio a blank o il pafparse esplode) - Creati indici custom per campo così da riconoscere le chiavi principali di una tabella
This commit is contained in:
parent
900c3ea035
commit
b64b76058a
@ -385,11 +385,15 @@ bool TPaf_record::insert()
|
||||
TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
|
||||
{
|
||||
TString q;
|
||||
q << "SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = '" << table <<
|
||||
"' ORDER BY ORDINAL_POSITION";
|
||||
q << "SELECT col.[name] FROM sys.columns AS col \
|
||||
inner JOIN sys.index_columns AS idx on col.[object_id] = idx.[object_id] AND col.[column_id] = idx.[column_id] \
|
||||
inner join sys.indexes as K on idx.[index_id] = K.[index_id] \
|
||||
where K.[name] = '" << table << "_KEY' \
|
||||
AND idx.[object_id] = object_id('" << table << "') \
|
||||
ORDER BY index_column_id ASC";
|
||||
for (bool ok = db().sq_set_exec(q); ok; ok = db().sq_next())
|
||||
{
|
||||
_key.add(db().sq_get("COLUMN_NAME"));
|
||||
_key.add(db().sq_get("name"));
|
||||
}
|
||||
CHECKS(!_key.empty_items(), "Invalid primary key for table ", table);
|
||||
}
|
||||
@ -973,6 +977,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
{
|
||||
// <Datipec>
|
||||
TPaf_record paf3200f("PAF3200F");
|
||||
paf3200f.set("PU_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf3200f.set("PU_KEYHEADERFATT", hfatt);
|
||||
paf3200f.set("PU_KEYBODYFATT", bfatt);
|
||||
paf3200f.remove();
|
||||
@ -983,6 +988,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// <CedentePrestatore>
|
||||
TPaf_record paf0200f("PAF0200F");
|
||||
paf0200f.set("P2_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf0200f.set("P2_KEYHEADERFATT", hfatt);
|
||||
paf0200f.set("P2_KEYBODYFATT", bfatt);
|
||||
paf0200f.remove();
|
||||
@ -1054,6 +1060,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
// <CessionarioCommittente>
|
||||
|
||||
TPaf_record paf0400f("PAF0400F");
|
||||
paf0400f.set("P4_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf0400f.set("P4_KEYHEADERFATT", hfatt);
|
||||
paf0400f.set("P4_KEYBODYFATT", bfatt);
|
||||
paf0400f.remove();
|
||||
@ -1088,6 +1095,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// <DatiGenerali>
|
||||
TPaf_record paf0700f("PAF0700F");
|
||||
paf0700f.set("P7_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf0700f.set("P7_KEYHEADERFATT", hfatt);
|
||||
paf0700f.set("P7_KEYBODYFATT", bfatt);
|
||||
paf0700f.remove();
|
||||
@ -1116,6 +1124,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// <ScontoMaggiorazione>
|
||||
TPaf_record paf0900f("PAF0900F");
|
||||
paf0900f.set("P9_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf0900f.set("P9_KEYHEADERFATT", hfatt);
|
||||
paf0900f.set("P9_KEYBODYFATT", bfatt);
|
||||
paf0900f.remove();
|
||||
@ -1150,6 +1159,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// <DatiGenerali>
|
||||
TPaf_record paf2700f("PAF2700F");
|
||||
paf2700f.set("PQ_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf2700f.set("PQ_KEYHEADERFATT", hfatt);
|
||||
paf2700f.set("PQ_KEYBODYFATT", bfatt);
|
||||
paf2700f.remove();
|
||||
@ -1174,24 +1184,28 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// Azzera contratti
|
||||
TPaf_record paf1000f("PAF1000F");
|
||||
paf1000f.set("P0_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1000f.set("P0_KEYHEADERFATT", hfatt);
|
||||
paf1000f.set("P0_KEYBODYFATT", bfatt);
|
||||
paf1000f.remove();
|
||||
|
||||
// Azzera convenzioni
|
||||
TPaf_record paf1100f("PAF1100F");
|
||||
paf1100f.set("PA_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1100f.set("PA_KEYHEADERFATT", hfatt);
|
||||
paf1100f.set("PA_KEYBODYFATT", bfatt);
|
||||
paf1100f.remove();
|
||||
|
||||
// Azzera ordini
|
||||
TPaf_record paf1200f("PAF1200F");
|
||||
paf1200f.set("PB_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1200f.set("PB_KEYHEADERFATT", hfatt);
|
||||
paf1200f.set("PB_KEYBODYFATT", bfatt);
|
||||
paf1200f.remove();
|
||||
|
||||
// Azzera DDT
|
||||
TPaf_record paf1600f("PAF1600F");
|
||||
paf1600f.set("PF_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1600f.set("PF_KEYHEADERFATT", hfatt);
|
||||
paf1600f.set("PF_KEYBODYFATT", bfatt);
|
||||
paf1600f.remove();
|
||||
@ -1260,16 +1274,19 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
// <DatiBeniServizi>
|
||||
|
||||
TPaf_record paf1800f("PAF1800F");
|
||||
paf1800f.set("PI_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1800f.set("PI_KEYHEADERFATT", hfatt);
|
||||
paf1800f.set("PI_KEYBODYFATT", bfatt);
|
||||
paf1800f.remove(); // Cancella tutte le righe documento
|
||||
|
||||
TPaf_record paf2000f("PAF2000F");
|
||||
paf2000f.set("PJ_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf2000f.set("PJ_KEYHEADERFATT", hfatt);
|
||||
paf2000f.set("PJ_KEYBODYFATT", bfatt);
|
||||
paf2000f.remove(); // Cancella tutti gli sconti di riga
|
||||
|
||||
TPaf_record paf1900f("PAF1900F");
|
||||
paf1900f.set("PY_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1900f.set("PY_KEYHEADERFATT", hfatt);
|
||||
paf1900f.set("PY_KEYBODYFATT", bfatt);
|
||||
paf1900f.remove(); // Cancella tutte le righe articoli del documento
|
||||
@ -1288,6 +1305,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc)
|
||||
{
|
||||
paf1800f.reset();
|
||||
paf1800f.set("PI_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1800f.set("PI_KEYHEADERFATT", hfatt);
|
||||
paf1800f.set("PI_KEYBODYFATT", bfatt);
|
||||
paf1800f.set("PI_NUMEROLINEA", ++riga);
|
||||
@ -1300,6 +1318,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
if (art.ok())
|
||||
{
|
||||
paf1900f.reset();
|
||||
paf1900f.set("PY_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1900f.set("PY_KEYHEADERFATT", hfatt);
|
||||
paf1900f.set("PY_KEYBODYFATT", bfatt);
|
||||
paf1900f.set("PY_KEYNLINEA", riga);
|
||||
@ -1394,6 +1413,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
// <DatiDDT>
|
||||
TPaf_record paf1600f("PAF1600F");
|
||||
paf1600f.reset();
|
||||
paf1600f.set("PF_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1600f.set("PF_KEYHEADERFATT", hfatt);
|
||||
paf1600f.set("PF_KEYBODYFATT", bfatt);
|
||||
paf1600f.set("PF_RIFNUMLINEA", (long)r);
|
||||
@ -1407,6 +1427,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
{
|
||||
// <DatiOrdineAcquisto>
|
||||
TPaf_record paf1000f("PAF1000F");
|
||||
paf1000f.set("P0_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf1000f.set("P0_KEYHEADERFATT", hfatt);
|
||||
paf1000f.set("P0_KEYBODYFATT", bfatt);
|
||||
paf1000f.set("P0_RIFNUMLINEA", (long)r);
|
||||
@ -1498,6 +1519,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// <DatiRiepilogo>
|
||||
TPaf_record paf2200f("PAF2200F");
|
||||
paf2200f.set("PL_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf2200f.set("PL_KEYHEADERFATT", hfatt);
|
||||
paf2200f.set("PL_KEYBODYFATT", bfatt);
|
||||
paf2200f.remove(); // Cancella tutte le righe di riepilogo IVA
|
||||
@ -1532,6 +1554,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
|
||||
// <DatiPagamento>
|
||||
TPaf_record paf2400f("PAF2400F");
|
||||
paf2400f.set("PN_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf2400f.set("PN_KEYHEADERFATT", hfatt);
|
||||
paf2400f.set("PN_KEYBODYFATT", bfatt);
|
||||
paf2400f.remove(); // Cancella i dati pagamento
|
||||
@ -1547,6 +1570,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
paf2400f.insert();
|
||||
|
||||
TPaf_record paf2500f("PAF2500F");
|
||||
paf2500f.set("PO_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf2500f.set("PO_KEYHEADERFATT", hfatt);
|
||||
paf2500f.set("PO_KEYBODYFATT", bfatt);
|
||||
paf2500f.remove(); // Cancella tutte le rate
|
||||
@ -1589,6 +1613,7 @@ bool TDoc2Paf::elabora(TDocumentoEsteso& doc)
|
||||
}
|
||||
|
||||
TPaf_record paf2600f("PAF2600F");
|
||||
paf2600f.set("PP_KEYPRGINVIO", ""); // Ci pensa SiAggFP
|
||||
paf2600f.set("PP_KEYHEADERFATT", hfatt);
|
||||
paf2600f.set("PP_KEYBODYFATT", bfatt);
|
||||
paf2600f.remove(); // Cancella eventuali allegati
|
||||
|
@ -1,3 +1,4 @@
|
||||
|
||||
CREATE TABLE FPCDD00F (
|
||||
PV_AMBIENTE CHAR(10),
|
||||
PV_DESCAMPO1 CHAR(20),
|
||||
@ -1104,10 +1105,6 @@ CREATE TABLE PAF2000F (
|
||||
PJ_PERCSCONTO NUMERIC(6, 2),
|
||||
PJ_IMPORTOSCONTO NUMERIC(15, 2),
|
||||
PJ_GESTIONE CHAR(1)) ;
|
||||
|
||||
ALTER TABLE PAF2000F
|
||||
ADD CONSTRAINT PAF2000Q
|
||||
UNIQUE( PJ_KEYPRGINVIO , PJ_KEYHEADERFATT , PJ_KEYBODYFATT ) ;
|
||||
|
||||
CREATE TABLE PAF2100F (
|
||||
PK_KEYPRGINVIO CHAR(10),
|
||||
@ -1120,10 +1117,6 @@ CREATE TABLE PAF2100F (
|
||||
PK_RIFNUMERO NUMERIC(21, 5),
|
||||
PK_RIFDATA DATE,
|
||||
PK_GESTIONE CHAR(1)) ;
|
||||
|
||||
ALTER TABLE PAF2100F
|
||||
ADD CONSTRAINT PAF2100Q
|
||||
UNIQUE( PK_KEYPRGINVIO , PK_KEYHEADERFATT , PK_KEYBODYFATT ) ;
|
||||
|
||||
CREATE TABLE PAF2200F (
|
||||
PL_KEYPRGINVIO CHAR(10),
|
||||
@ -1142,10 +1135,6 @@ CREATE TABLE PAF2200F (
|
||||
PL_ERREST CHAR(1),
|
||||
PL_DETRAIBILE NUMERIC(6, 2),
|
||||
PL_DEDUCIBILE CHAR(2)) ;
|
||||
|
||||
ALTER TABLE PAF2200F
|
||||
ADD CONSTRAINT PAF2200Q
|
||||
UNIQUE( PL_KEYPRGINVIO , PL_KEYHEADERFATT , PL_KEYBODYFATT ) ;
|
||||
|
||||
CREATE TABLE PAF2300F (
|
||||
PM_KEYPRGINVIO CHAR(10),
|
||||
@ -1206,9 +1195,6 @@ CREATE TABLE PAF2500F (
|
||||
PO_ERRINT CHAR(1),
|
||||
PO_ERREST CHAR(1)) ;
|
||||
|
||||
ALTER TABLE PAF2500F
|
||||
ADD CONSTRAINT PAF2500Q
|
||||
UNIQUE( PO_KEYPRGINVIO , PO_KEYHEADERFATT , PO_KEYBODYFATT ) ;
|
||||
|
||||
CREATE TABLE PAF2600F (
|
||||
PP_KEYPRGINVIO CHAR(10),
|
||||
@ -1539,7 +1525,7 @@ CREATE INDEX PAF0301I
|
||||
ON PAF0300F ( P3_KEYHEADERFATT ASC , P3_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0401I
|
||||
CREATE INDEX PAF0401I
|
||||
ON PAF0400F ( P4_KEYHEADERFATT ASC , P4_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
@ -1653,4 +1639,134 @@ CREATE INDEX PAF3201I
|
||||
|
||||
CREATE INDEX PAFW301L
|
||||
ON PAFW300F ( PW_KEYHEADERFATT ASC , PW_KEYBODYFATT ASC , PW_TIPODOC ASC , PW_TIPONUM ASC , PW_NUMERO ASC , PW_DATA ASC )
|
||||
;
|
||||
|
||||
|
||||
-- Indici essenziali al funzionamento di Campo
|
||||
CREATE INDEX PAF0100F_KEY
|
||||
ON PAF0100F ( P1_KEYPRGINVIO ASC , P1_KEYHEADERFATT ASC , P1_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0200F_KEY
|
||||
ON PAF0200F (P2_KEYPRGINVIO ASC , P2_KEYHEADERFATT ASC , P2_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0300F_KEY
|
||||
ON PAF0300F (P3_KEYPRGINVIO ASC , P3_KEYHEADERFATT ASC , P3_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0400F_KEY
|
||||
ON PAF0400F (P4_KEYPRGINVIO ASC , P4_KEYHEADERFATT ASC , P4_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0500F_KEY
|
||||
ON PAF0500F (P5_KEYPRGINVIO ASC , P5_KEYHEADERFATT ASC , P5_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0600F_KEY
|
||||
ON PAF0600F (P6_KEYPRGINVIO ASC , P6_KEYHEADERFATT ASC , P6_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0700F_KEY
|
||||
ON PAF0700F (P7_KEYPRGINVIO ASC , P7_KEYHEADERFATT ASC , P7_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0800F_KEY
|
||||
ON PAF0800F (P8_KEYPRGINVIO ASC , P8_KEYHEADERFATT ASC , P8_KEYBODYFATT ASC , P8_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF0900F_KEY
|
||||
ON PAF0900F (P9_KEYPRGINVIO ASC , P9_KEYHEADERFATT ASC , P9_KEYBODYFATT ASC , P9_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1000F_KEY
|
||||
ON PAF1000F (P0_KEYPRGINVIO ASC , P0_KEYHEADERFATT ASC , P0_KEYBODYFATT ASC , P0_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1100F_KEY
|
||||
ON PAF1100F (PA_KEYPRGINVIO ASC , PA_KEYHEADERFATT ASC , PA_KEYBODYFATT ASC , PA_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1200F_KEY
|
||||
ON PAF1200F (PB_KEYPRGINVIO ASC , PB_KEYHEADERFATT ASC , PB_KEYBODYFATT ASC , PB_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1300F_KEY
|
||||
ON PAF1300F (PC_KEYPRGINVIO ASC , PC_KEYHEADERFATT ASC , PC_KEYBODYFATT ASC , PC_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1400F_KEY
|
||||
ON PAF1400F (PD_KEYPRGINVIO ASC , PD_KEYHEADERFATT ASC , PD_KEYBODYFATT ASC , PD_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1500F_KEY
|
||||
ON PAF1500F (PE_KEYPRGINVIO ASC , PE_KEYHEADERFATT ASC , PE_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1600F_KEY
|
||||
ON PAF1600F (PF_KEYPRGINVIO ASC , PF_KEYHEADERFATT ASC , PF_KEYBODYFATT ASC , PF_RIFNUMLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1700F_KEY
|
||||
ON PAF1700F (PG_KEYPRGINVIO ASC , PG_KEYHEADERFATT ASC , PG_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1800F_KEY
|
||||
ON PAF1800F (PI_KEYPRGINVIO ASC , PI_KEYHEADERFATT ASC , PI_KEYBODYFATT ASC , PI_NUMEROLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF1900F_KEY
|
||||
ON PAF1900F (PY_KEYPRGINVIO ASC , PY_KEYHEADERFATT ASC , PY_KEYBODYFATT ASC , PY_KEYNLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2000F_KEY
|
||||
ON PAF2000F (PJ_KEYPRGINVIO ASC , PJ_KEYHEADERFATT ASC , PJ_KEYBODYFATT ASC , PJ_KEYNLINEA ASC , PJ_KEYNLINAR ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2100F_KEY
|
||||
ON PAF2100F (PK_KEYPRGINVIO ASC , PK_KEYHEADERFATT ASC , PK_KEYBODYFATT ASC , PK_KEYNLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2200F_KEY
|
||||
ON PAF2200F (PL_KEYPRGINVIO ASC , PL_KEYHEADERFATT ASC , PL_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2300F_KEY
|
||||
ON PAF2300F (PM_KEYPRGINVIO ASC , PM_KEYHEADERFATT ASC , PM_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2400F_KEY
|
||||
ON PAF2400F (PN_KEYPRGINVIO ASC , PN_KEYHEADERFATT ASC , PN_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2500F_KEY
|
||||
ON PAF2500F (PO_KEYPRGINVIO ASC , PO_KEYHEADERFATT ASC , PO_KEYBODYFATT ASC , PO_RIGA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2600F_KEY
|
||||
ON PAF2600F (PP_KEYPRGINVIO ASC , PP_KEYHEADERFATT ASC , PP_KEYBODYFATT ASC , PP_NUMEROLINEA ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2700F_KEY
|
||||
ON PAF2700F (PQ_KEYPRGINVIO ASC , PQ_KEYHEADERFATT ASC , PQ_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2800F_KEY
|
||||
ON PAF2800F (PR_KEYPRGINVIO ASC , PR_KEYHEADERFATT ASC , PR_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF2900F_KEY
|
||||
ON PAF2900F (PS_KEYPRGINVIO ASC , PS_KEYHEADERFATT ASC , PS_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF3100F_KEY
|
||||
ON PAF3100F (PH_KEYPRGINVIO ASC , PH_KEYHEADERFATT ASC , PH_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAF3200F_KEY
|
||||
ON PAF3200F (PU_KEYPRGINVIO ASC , PU_KEYHEADERFATT ASC , PU_KEYBODYFATT ASC )
|
||||
;
|
||||
|
||||
CREATE INDEX PAFW300F_KEY
|
||||
ON PAFW300F (PW_KEYPRGINVIO ASC , PW_KEYHEADERFATT ASC , PW_KEYBODYFATT ASC , PW_TIPODOC ASC , PW_TIPONUM ASC , PW_NUMERO ASC , PW_DATA ASC )
|
||||
;
|
Loading…
x
Reference in New Issue
Block a user