Patch level : 12.0 no-patch
Files correlati : fp Commento : - Sistemato cod sdi in ricerca - Aggiunto bollo - Aggiunto supporto cod dest per chi non ha nulla - Sistemata eliminazione con id riga in chiave - Sistemato SQL
This commit is contained in:
parent
e894bf5e12
commit
d0ac7293a3
@ -89,9 +89,9 @@ BEGIN
|
|||||||
INPUT CODTAB S_TIPODOCSEL
|
INPUT CODTAB S_TIPODOCSEL
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Tipo SDI@10" S12
|
DISPLAY "Tipo SDI@10" S3[37,40]
|
||||||
OUTPUT S_TIPODOCSEL CODTAB
|
OUTPUT S_TIPODOCSEL CODTAB
|
||||||
OUTPUT S_TIPODOCSDI S12
|
OUTPUT S_TIPODOCSDI S3[37,40]
|
||||||
CHECKTYPE FORCED
|
CHECKTYPE FORCED
|
||||||
FLAG "UPA"
|
FLAG "UPA"
|
||||||
END
|
END
|
||||||
|
@ -26,18 +26,26 @@
|
|||||||
void set_connection(SSimple_query& s)
|
void set_connection(SSimple_query& s)
|
||||||
{
|
{
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
if (s.sq_connect("TESTCAMPO2012@campo_fp",
|
TString ip = ini_get_string(CONFIG_DITTA, "fp", "ip");
|
||||||
"fp",
|
if (ip.upper() != "TESTCAMPO2012")
|
||||||
"fp",
|
{
|
||||||
TSDB_MSSQL) != NOERR)
|
if (s.sq_connect("TESTCAMPO2012@campo_fp",
|
||||||
fatal_box("Impossibile connettersi al DB esterno");
|
"fp",
|
||||||
#elif
|
"fp",
|
||||||
|
TSDB_MSSQL) != NOERR)
|
||||||
|
fatal_box("Impossibile connettersi al DB esterno");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#endif
|
||||||
if (s.sq_connect(
|
if (s.sq_connect(
|
||||||
TString() << ini_get_string(CONFIG_DITTA, "fp", "ip") << "@" << ini_get_string(CONFIG_DITTA, "fp", "db"),
|
TString() << ini_get_string(CONFIG_DITTA, "fp", "ip") << "@" << ini_get_string(CONFIG_DITTA, "fp", "db"),
|
||||||
ini_get_string(CONFIG_DITTA, "fp", "usr"),
|
ini_get_string(CONFIG_DITTA, "fp", "usr"),
|
||||||
decode(ini_get_string(CONFIG_DITTA, "fp", "psw")),
|
decode(ini_get_string(CONFIG_DITTA, "fp", "psw")),
|
||||||
TSDB_MSSQL) != NOERR)
|
TSDB_MSSQL) != NOERR)
|
||||||
fatal_box("Impossibile connettersi al DB esterno");
|
fatal_box("Impossibile connettersi al DB esterno");
|
||||||
|
#ifdef DBG
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,10 +173,10 @@ bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString&
|
|||||||
bool enapec = false;
|
bool enapec = false;
|
||||||
if (coddest.empty())
|
if (coddest.empty())
|
||||||
{
|
{
|
||||||
|
coddest = "0000000";
|
||||||
// Controllo se ha la pec
|
// Controllo se ha la pec
|
||||||
if (pec.full())
|
if (pec.full())
|
||||||
{
|
{
|
||||||
coddest = "0000000";
|
|
||||||
enapec = true;
|
enapec = true;
|
||||||
}
|
}
|
||||||
// Controllo se è straniero
|
// Controllo se è straniero
|
||||||
@ -176,9 +184,8 @@ bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString&
|
|||||||
{
|
{
|
||||||
coddest = "XXXXXXX";
|
coddest = "XXXXXXX";
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
// Dopo la versione 1.2 torna sempre true
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,31 +213,10 @@ inline const TString& no_special(char a)
|
|||||||
case '\'':
|
case '\'':
|
||||||
r << "''";
|
r << "''";
|
||||||
break;
|
break;
|
||||||
case '\\':
|
|
||||||
r << "\\\\";
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
r << a;
|
r << a;
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
/*
|
|
||||||
if (a == 'à')
|
|
||||||
return "a''";
|
|
||||||
else if (a == 'è' || a == 'é')
|
|
||||||
return "e''";
|
|
||||||
else if (a == 'ì')
|
|
||||||
return "i''";
|
|
||||||
else if (a == 'ò')
|
|
||||||
return "o''";
|
|
||||||
else if (a == 'ù')
|
|
||||||
return "u''";
|
|
||||||
else if (a == '\'')
|
|
||||||
return "''";
|
|
||||||
else if (a == '\\')
|
|
||||||
return "\\\\";
|
|
||||||
// Se non trovo nulla ritorno il valore
|
|
||||||
return a;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -360,7 +346,7 @@ const TString& TPaf_record::var2str(const TString& fldname, const TVariant& var)
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
TString& TPaf_record::remove_string()
|
TString& TPaf_record::remove_string(bool id_riga)
|
||||||
{
|
{
|
||||||
TString& query = get_tmp_string().cut(0);
|
TString& query = get_tmp_string().cut(0);
|
||||||
query << "DELETE FROM " << _table << " WHERE ";
|
query << "DELETE FROM " << _table << " WHERE ";
|
||||||
@ -370,6 +356,8 @@ TString& TPaf_record::remove_string()
|
|||||||
const TVariant& var = get(fld);
|
const TVariant& var = get(fld);
|
||||||
if (!var.is_null())
|
if (!var.is_null())
|
||||||
{
|
{
|
||||||
|
if (!id_riga && TString(fld).find("RIFNUMLINEA") > 0)
|
||||||
|
continue;
|
||||||
if (nkf++ > 0)
|
if (nkf++ > 0)
|
||||||
query << " AND ";
|
query << " AND ";
|
||||||
query << fld << '=' << var2str(fld, var);
|
query << fld << '=' << var2str(fld, var);
|
||||||
@ -1026,10 +1014,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
paf0700f.set("P7_GESTIONE", "D");
|
paf0700f.set("P7_GESTIONE", "D");
|
||||||
|
|
||||||
// <DatiBollo>
|
// <DatiBollo>
|
||||||
if (doc.get_real("BOLLI") > ZERO)
|
paf0700f.set("P7_IMPORTOBOLLO", doc.get("BOLLI"));
|
||||||
{
|
|
||||||
paf0700f.set("P7_IMPORTOBOLLO", doc.get("BOLLI"));
|
|
||||||
}
|
|
||||||
// </DatiBollo>
|
// </DatiBollo>
|
||||||
|
|
||||||
// <DatiCassaPrevidenziale>
|
// <DatiCassaPrevidenziale>
|
||||||
@ -1202,6 +1187,8 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
paf1900f.set("PY_KEYBODYFATT", bfatt);
|
paf1900f.set("PY_KEYBODYFATT", bfatt);
|
||||||
remove(paf1900f); // Cancella tutte le righe articoli del documento
|
remove(paf1900f); // Cancella tutte le righe articoli del documento
|
||||||
|
|
||||||
|
if(doc.is_fattura())
|
||||||
|
doc.set_riga_esenzione();
|
||||||
|
|
||||||
long riga = 0;
|
long riga = 0;
|
||||||
TString16 codivadefault;
|
TString16 codivadefault;
|
||||||
@ -1227,6 +1214,10 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
paf3000f.set("PT_RIFNUMLINEA", riga);
|
paf3000f.set("PT_RIFNUMLINEA", riga);
|
||||||
paf3000f.set("PT_COMMENTO", descrizione(*rdoc));
|
paf3000f.set("PT_COMMENTO", descrizione(*rdoc));
|
||||||
|
|
||||||
|
// Nel dubbio preparo la riga di descrizione
|
||||||
|
paf1800f.set("PI_QUANTITA", ZERO);
|
||||||
|
paf1800f.set("PI_PREZZOUNIT", ZERO);
|
||||||
|
paf1800f.set("PI_PRZTOTALE", ZERO);
|
||||||
paf1800f.set("PI_ALIQUOTAIVA", "22.00"); // Altrimenti scarta le righe di descrizione
|
paf1800f.set("PI_ALIQUOTAIVA", "22.00"); // Altrimenti scarta le righe di descrizione
|
||||||
|
|
||||||
// <CodiceArticolo>
|
// <CodiceArticolo>
|
||||||
@ -1244,11 +1235,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
if (art.codice().full())
|
if (art.codice().full())
|
||||||
{
|
{
|
||||||
tmp.cut(0) << art.codice(); // Fixed_string di merda
|
tmp.cut(0) << art.codice(); // Fixed_string di merda
|
||||||
ok &= add_row_art("Codice interno", tmp, paf1900f);
|
ok &= add_row_art("Codice articolo", tmp, paf1900f);
|
||||||
}
|
|
||||||
if (rdoc->tipo().codice() == "14")
|
|
||||||
{
|
|
||||||
ok &= add_row_art("Codice cliente", rdoc->get("CODARTALT"), paf1900f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// </CodiceArticolo>
|
// </CodiceArticolo>
|
||||||
@ -1413,6 +1400,30 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
paf1800f.set("PI_GESTIONE", "D");
|
paf1800f.set("PI_GESTIONE", "D");
|
||||||
ok &= insert(paf1800f) && insert(paf3000f);
|
ok &= insert(paf1800f) && insert(paf3000f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Se il bollo va fatto pagare bisogna aggiungere una riga!
|
||||||
|
if(doc.get_bool("ADDBOLLI"))
|
||||||
|
{
|
||||||
|
paf1800f.reset();
|
||||||
|
paf1800f.set("PI_KEYHEADERFATT", hfatt);
|
||||||
|
paf1800f.set("PI_KEYBODYFATT", bfatt);
|
||||||
|
paf1800f.set("PI_NUMEROLINEA", ++riga);
|
||||||
|
|
||||||
|
TPaf_record paf3000f("PAF3000F");
|
||||||
|
paf3000f.set("PT_KEYHEADERFATT", hfatt);
|
||||||
|
paf3000f.set("PT_KEYBODYFATT", bfatt);
|
||||||
|
remove(paf3000f);
|
||||||
|
paf3000f.set("PT_RIFNUMLINEA", riga);
|
||||||
|
paf3000f.set("PT_COMMENTO", "Imposta bollo assolta in modo virtuale");
|
||||||
|
|
||||||
|
paf1800f.set("PI_PREZZOUNIT", doc.get_real("BOLLI"));
|
||||||
|
paf1800f.set("PI_PRZTOTALE", doc.get_real("BOLLI"));
|
||||||
|
set_IVA(doc.codiva_bolli(), paf1800f);
|
||||||
|
ok &= insert(paf1800f) && insert(paf3000f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Controllo plafond
|
||||||
|
|
||||||
// </DatiBeniServizi>
|
// </DatiBeniServizi>
|
||||||
|
|
||||||
|
|
||||||
@ -1471,6 +1482,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
|
|||||||
remove(paf2400f); // Cancella i dati pagamento
|
remove(paf2400f); // Cancella i dati pagamento
|
||||||
|
|
||||||
TPagamento& pag = doc.pagamento();
|
TPagamento& pag = doc.pagamento();
|
||||||
|
|
||||||
doc.scadenze_recalc(); // Ricalcola array delle rate
|
doc.scadenze_recalc(); // Ricalcola array delle rate
|
||||||
TString_array& scad = doc.scadenze();
|
TString_array& scad = doc.scadenze();
|
||||||
const int nrate = scad.items(); // Conta rate generate
|
const int nrate = scad.items(); // Conta rate generate
|
||||||
|
@ -54,7 +54,7 @@ public:
|
|||||||
|
|
||||||
TString& insert_string();
|
TString& insert_string();
|
||||||
bool insert();
|
bool insert();
|
||||||
TString& remove_string();
|
TString& remove_string(bool id_riga = false);
|
||||||
bool remove();
|
bool remove();
|
||||||
bool search();
|
bool search();
|
||||||
bool search(const char* k1, const char* k2, const char* k3 = NULL);
|
bool search(const char* k1, const char* k2, const char* k3 = NULL);
|
||||||
|
@ -663,7 +663,7 @@ CREATE TABLE PAA3000F (
|
|||||||
PT_KEYHEADERFATT CHAR(20) NOT NULL DEFAULT '' ,
|
PT_KEYHEADERFATT CHAR(20) NOT NULL DEFAULT '' ,
|
||||||
PT_KEYBODYFATT CHAR(50) NOT NULL DEFAULT '' ,
|
PT_KEYBODYFATT CHAR(50) NOT NULL DEFAULT '' ,
|
||||||
PT_RIFNUMLINEA NUMERIC(4, 0) NOT NULL DEFAULT 0 ,
|
PT_RIFNUMLINEA NUMERIC(4, 0) NOT NULL DEFAULT 0 ,
|
||||||
PT_COMMENTO VARCHAR NOT NULL DEFAULT '' ,
|
PT_COMMENTO VARCHAR(1000) NOT NULL DEFAULT '' ,
|
||||||
PT_GESTIONE CHAR(1) NOT NULL DEFAULT '' ) ;
|
PT_GESTIONE CHAR(1) NOT NULL DEFAULT '' ) ;
|
||||||
|
|
||||||
ALTER TABLE PAA3000F
|
ALTER TABLE PAA3000F
|
||||||
@ -1755,6 +1755,10 @@ CREATE INDEX PAF2900F_KEY
|
|||||||
ON PAF2900F (PS_KEYPRGINVIO ASC , PS_KEYHEADERFATT ASC , PS_KEYBODYFATT ASC )
|
ON PAF2900F (PS_KEYPRGINVIO ASC , PS_KEYHEADERFATT ASC , PS_KEYBODYFATT ASC )
|
||||||
;
|
;
|
||||||
|
|
||||||
|
CREATE INDEX PAF3000F_KEY
|
||||||
|
ON PAF3000F (PT_KEYPRGINVIO ASC, PT_KEYHEADERFATT ASC, PT_KEYBODYFATT ASC, PT_RIFNUMLINEA ASC)
|
||||||
|
;
|
||||||
|
|
||||||
CREATE INDEX PAF3100F_KEY
|
CREATE INDEX PAF3100F_KEY
|
||||||
ON PAF3100F (PH_KEYPRGINVIO ASC , PH_KEYHEADERFATT ASC , PH_KEYBODYFATT ASC )
|
ON PAF3100F (PH_KEYPRGINVIO ASC , PH_KEYHEADERFATT ASC , PH_KEYBODYFATT ASC )
|
||||||
;
|
;
|
||||||
|
@ -84,8 +84,3 @@ UPDATE PAFW300F SET PW_UPAG = '19700101 00:00:00' WHERE PW_UPAG IS NULL;
|
|||||||
ALTER TABLE PAFW300F ALTER COLUMN PW_UPAG DATETIME NOT NULL;
|
ALTER TABLE PAFW300F ALTER COLUMN PW_UPAG DATETIME NOT NULL;
|
||||||
|
|
||||||
-- TLLNNAPRV -> Tolla non approva
|
-- TLLNNAPRV -> Tolla non approva
|
||||||
|
|
||||||
-- Aggiungo chiave mancante
|
|
||||||
|
|
||||||
CREATE INDEX PAF3000F_KEY
|
|
||||||
ON PAF3000F ( PT_KEYPRGINVIO ASC, PT_KEYHEADERFATT ASC, PT_KEYBODYFATT ASC, PT_RIFNUMLINEA ASC) ;
|
|
Loading…
x
Reference in New Issue
Block a user