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:
Mattia Tollari 2018-10-10 10:09:57 +02:00
parent e894bf5e12
commit d0ac7293a3
5 changed files with 63 additions and 52 deletions

View File

@ -89,9 +89,9 @@ BEGIN
INPUT CODTAB S_TIPODOCSEL
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo SDI@10" S12
DISPLAY "Tipo SDI@10" S3[37,40]
OUTPUT S_TIPODOCSEL CODTAB
OUTPUT S_TIPODOCSDI S12
OUTPUT S_TIPODOCSDI S3[37,40]
CHECKTYPE FORCED
FLAG "UPA"
END

View File

@ -26,18 +26,26 @@
void set_connection(SSimple_query& s)
{
#ifdef DBG
if (s.sq_connect("TESTCAMPO2012@campo_fp",
"fp",
"fp",
TSDB_MSSQL) != NOERR)
fatal_box("Impossibile connettersi al DB esterno");
#elif
TString ip = ini_get_string(CONFIG_DITTA, "fp", "ip");
if (ip.upper() != "TESTCAMPO2012")
{
if (s.sq_connect("TESTCAMPO2012@campo_fp",
"fp",
"fp",
TSDB_MSSQL) != NOERR)
fatal_box("Impossibile connettersi al DB esterno");
}
else
{
#endif
if (s.sq_connect(
TString() << ini_get_string(CONFIG_DITTA, "fp", "ip") << "@" << ini_get_string(CONFIG_DITTA, "fp", "db"),
ini_get_string(CONFIG_DITTA, "fp", "usr"),
decode(ini_get_string(CONFIG_DITTA, "fp", "psw")),
TSDB_MSSQL) != NOERR)
fatal_box("Impossibile connettersi al DB esterno");
#ifdef DBG
}
#endif
}
@ -165,10 +173,10 @@ bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString&
bool enapec = false;
if (coddest.empty())
{
coddest = "0000000";
// Controllo se ha la pec
if (pec.full())
{
coddest = "0000000";
enapec = true;
}
// Controllo se è straniero
@ -176,9 +184,8 @@ bool get_coddest(const char tipocf, const long codcf, TString& coddest, TString&
{
coddest = "XXXXXXX";
}
else
return false;
}
// Dopo la versione 1.2 torna sempre true
return true;
}
@ -206,31 +213,10 @@ inline const TString& no_special(char a)
case '\'':
r << "''";
break;
case '\\':
r << "\\\\";
break;
default:
r << a;
}
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;
}
TString& TPaf_record::remove_string()
TString& TPaf_record::remove_string(bool id_riga)
{
TString& query = get_tmp_string().cut(0);
query << "DELETE FROM " << _table << " WHERE ";
@ -370,6 +356,8 @@ TString& TPaf_record::remove_string()
const TVariant& var = get(fld);
if (!var.is_null())
{
if (!id_riga && TString(fld).find("RIFNUMLINEA") > 0)
continue;
if (nkf++ > 0)
query << " AND ";
query << fld << '=' << var2str(fld, var);
@ -1026,10 +1014,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
paf0700f.set("P7_GESTIONE", "D");
// <DatiBollo>
if (doc.get_real("BOLLI") > ZERO)
{
paf0700f.set("P7_IMPORTOBOLLO", doc.get("BOLLI"));
}
paf0700f.set("P7_IMPORTOBOLLO", doc.get("BOLLI"));
// </DatiBollo>
// <DatiCassaPrevidenziale>
@ -1202,6 +1187,8 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
paf1900f.set("PY_KEYBODYFATT", bfatt);
remove(paf1900f); // Cancella tutte le righe articoli del documento
if(doc.is_fattura())
doc.set_riga_esenzione();
long riga = 0;
TString16 codivadefault;
@ -1226,7 +1213,11 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
remove(paf3000f);
paf3000f.set("PT_RIFNUMLINEA", riga);
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
// <CodiceArticolo>
@ -1244,11 +1235,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
if (art.codice().full())
{
tmp.cut(0) << art.codice(); // Fixed_string di merda
ok &= add_row_art("Codice interno", tmp, paf1900f);
}
if (rdoc->tipo().codice() == "14")
{
ok &= add_row_art("Codice cliente", rdoc->get("CODARTALT"), paf1900f);
ok &= add_row_art("Codice articolo", tmp, paf1900f);
}
}
// </CodiceArticolo>
@ -1413,6 +1400,30 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
paf1800f.set("PI_GESTIONE", "D");
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>
@ -1471,6 +1482,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
remove(paf2400f); // Cancella i dati pagamento
TPagamento& pag = doc.pagamento();
doc.scadenze_recalc(); // Ricalcola array delle rate
TString_array& scad = doc.scadenze();
const int nrate = scad.items(); // Conta rate generate

View File

@ -54,7 +54,7 @@ public:
TString& insert_string();
bool insert();
TString& remove_string();
TString& remove_string(bool id_riga = false);
bool remove();
bool search();
bool search(const char* k1, const char* k2, const char* k3 = NULL);

View File

@ -663,7 +663,7 @@ CREATE TABLE PAA3000F (
PT_KEYHEADERFATT CHAR(20) NOT NULL DEFAULT '' ,
PT_KEYBODYFATT CHAR(50) NOT NULL DEFAULT '' ,
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 '' ) ;
ALTER TABLE PAA3000F
@ -1755,6 +1755,10 @@ CREATE INDEX PAF2900F_KEY
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
ON PAF3100F (PH_KEYPRGINVIO ASC , PH_KEYHEADERFATT ASC , PH_KEYBODYFATT ASC )
;
@ -1765,4 +1769,4 @@ CREATE INDEX PAF3200F_KEY
CREATE INDEX PAFW300F_KEY
ON PAFW300F (PW_KEYPRGINVIO ASC , PW_KEYHEADERFATT ASC , PW_KEYBODYFATT ASC)
;
;

View File

@ -83,9 +83,4 @@ ALTER TABLE PAFW300F ADD CONSTRAINT PAFW300F_TLLNNAPRV1 DEFAULT '19700101 00:00:
UPDATE PAFW300F SET PW_UPAG = '19700101 00:00:00' WHERE PW_UPAG IS NULL;
ALTER TABLE PAFW300F ALTER COLUMN PW_UPAG DATETIME NOT NULL;
-- 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) ;
-- TLLNNAPRV -> Tolla non approva