Merge remote-tracking branch 'origin/R_10_00' into R_10_00
This commit is contained in:
commit
1f21b6b70e
5
cd/test/cg0846.txt
Normal file
5
cd/test/cg0846.txt
Normal file
@ -0,0 +1,5 @@
|
||||
cg2100a.msk
|
||||
cg2fppro.msk
|
||||
|
||||
Cambiata icona ricarica fatture su 'Fatture SDI'
|
||||
Aggiunta importazione percent. e natura iva da ini con f1
|
95
cd/test/cg0846a.ini
Normal file
95
cd/test/cg0846a.ini
Normal file
@ -0,0 +1,95 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[cg2]
|
||||
Edit_23 = cg2 -0
|
||||
File(154) = cg2.exe|X
|
||||
File(167) = cg2fppro.msk|X
|
||||
Patch = 846
|
||||
Versione = 21511200
|
||||
|
||||
[cg99]
|
||||
Kill(0) = batbmsp.msk|x
|
||||
Kill(1) = bastcve.rep|x
|
||||
Kill(2) = batbins.msk|x
|
||||
Kill(3) = bastscc.rep|x
|
||||
Kill(4) = batbcam.msk|x
|
||||
Kill(5) = batbpdb.msk|x
|
||||
Kill(6) = bastver.msk|x
|
||||
Kill(7) = batbcco.msk|x
|
||||
Kill(8) = batbesc.msk|x
|
||||
Kill(9) = batbdpn.msk|x
|
||||
Kill(10) = bastndo.msk|x
|
||||
Kill(11) = bastesc.msk|x
|
||||
Kill(12) = batbndo.msk|x
|
||||
Kill(13) = batbind.msk|x
|
||||
Kill(14) = bastmsp.msk|x
|
||||
Kill(15) = bastreg.rep|x
|
||||
Kill(16) = batbleg.msk|x
|
||||
Kill(17) = bastpor.msk|x
|
||||
Kill(18) = batbpor.msk|x
|
||||
Kill(19) = batbcfi.msk|x
|
||||
Kill(20) = bastcco.msk|x
|
||||
Kill(21) = bastmsp.rep|x
|
||||
Kill(22) = batbtit.msk|x
|
||||
Kill(23) = batbcve.msk|x
|
||||
Kill(24) = batbivd.msk|x
|
||||
Kill(25) = batbscc.msk|x
|
||||
Kill(26) = bastcfi.rep|x
|
||||
Kill(27) = batbarb.msk|x
|
||||
Kill(28) = bastver.rep|x
|
||||
Kill(29) = bastleg.msk|x
|
||||
Kill(30) = bastzon.rep|x
|
||||
Kill(31) = bastleg.rep|x
|
||||
Kill(32) = bastcam.rep|x
|
||||
Kill(33) = batblia.msk|x
|
||||
Kill(34) = batbzon.msk|x
|
||||
Kill(35) = bastvet.rep|x
|
||||
Kill(36) = bastdpn.msk|x
|
||||
Kill(37) = bastivd.msk|x
|
||||
Kill(38) = bastarb.rep|x
|
||||
Kill(39) = bastcam.msk|x
|
||||
Kill(40) = bastntb.msk|x
|
||||
Kill(41) = bastivd.rep|x
|
||||
Kill(42) = bastdpn.rep|x
|
||||
Kill(43) = bastpdb.msk|x
|
||||
Kill(44) = batbinl.msk|x
|
||||
Kill(45) = bastesc.rep|x
|
||||
Kill(46) = bastreg.msk|x
|
||||
Kill(47) = batbreg.msk|x
|
||||
Kill(48) = bastzon.msk|x
|
||||
Kill(49) = bastarb.msk|x
|
||||
Kill(50) = batblia.msk|x
|
||||
Kill(51) = cgtbcon.msk|x
|
||||
Kill(52) = batbnot.msk|x
|
||||
Kill(53) = batbdel.msk|x
|
||||
Kill(54) = batbvet.msk|x
|
||||
Kill(55) = batbtra.msk|x
|
||||
Kill(56) = bastnot.rep|x
|
||||
Kill(57) = bastpdb.rep|x
|
||||
Kill(58) = bastscc.msk|x
|
||||
Kill(59) = bastcco.rep|x
|
||||
Kill(60) = batbntb.msk|x
|
||||
Kill(61) = bastvet.msk|x
|
||||
Kill(62) = batbver.msk|x
|
||||
Kill(63) = bastcfi.msk|x
|
||||
Kill(64) = batblbu.msk|x
|
||||
Kill(65) = bastntb.rep|x
|
||||
Kill(66) = bastcve.msk|x
|
||||
Kill(67) = bastndo.rep|x
|
||||
Kill(68) = bastnot.msk|x
|
||||
Kill(69) = bastpor.rep|x
|
||||
|
||||
[cg]
|
||||
Data = 25-06-2019
|
||||
Descrizione = Contabilita' Generale
|
||||
Dischi = 1
|
||||
Moduli = ba
|
||||
OEM =
|
||||
Patch = 846
|
||||
PostProcess = bainst -0 CG
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/cg0846a1.zip
Normal file
BIN
cd/test/cg0846a1.zip
Normal file
Binary file not shown.
6
cd/test/fp0840.txt
Normal file
6
cd/test/fp0840.txt
Normal file
@ -0,0 +1,6 @@
|
||||
fp0.exe
|
||||
fp0500a.msk
|
||||
|
||||
- Sistemata maschera
|
||||
- Aggiunti operatori logici AND(&&) e OR(||) nelle condizioni
|
||||
- Aggiunto READ a tabella tipo documento
|
20
cd/test/fp0840a.ini
Normal file
20
cd/test/fp0840a.ini
Normal file
@ -0,0 +1,20 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[fp1]
|
||||
File(0) = fp0.exe|X
|
||||
File(5) = fp0500a.msk|X
|
||||
Patch = 840
|
||||
Versione = 21511200
|
||||
|
||||
[fp]
|
||||
Data = 25-06-2019
|
||||
Descrizione = Fattura Elettronica
|
||||
Dischi = 1
|
||||
Moduli = cg,ve
|
||||
OEM =
|
||||
Patch = 840
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/fp0840a1.zip
Normal file
BIN
cd/test/fp0840a1.zip
Normal file
Binary file not shown.
6
cd/test/fp0842.txt
Normal file
6
cd/test/fp0842.txt
Normal file
@ -0,0 +1,6 @@
|
||||
fp0.exe
|
||||
fp0400a.msk
|
||||
|
||||
Corretta visualizzazione totale doc. con solo 2 cifre dec.
|
||||
Aggiunto numero fornitore nel log da fatture annullate
|
||||
Aggiunto controllo contabilizzazione senza cod. fornitore
|
20
cd/test/fp0842a.ini
Normal file
20
cd/test/fp0842a.ini
Normal file
@ -0,0 +1,20 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[fp1]
|
||||
File(0) = fp0.exe|X
|
||||
File(4) = fp0400a.msk|X
|
||||
Patch = 0842
|
||||
Versione = 21511200
|
||||
|
||||
[fp]
|
||||
Data = 25-06-2019
|
||||
Descrizione = Fattura Elettronica
|
||||
Dischi = 1
|
||||
Moduli = cg,ve
|
||||
OEM =
|
||||
Patch = 842
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/fp0842a1.zip
Normal file
BIN
cd/test/fp0842a1.zip
Normal file
Binary file not shown.
3
cd/test/fp0844.txt
Normal file
3
cd/test/fp0844.txt
Normal file
@ -0,0 +1,3 @@
|
||||
fp0.exe
|
||||
|
||||
Aggiunta esportazione percentuale e natura iva per f1
|
19
cd/test/fp0844a.ini
Normal file
19
cd/test/fp0844a.ini
Normal file
@ -0,0 +1,19 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
|
||||
[fp1]
|
||||
File(0) = fp0.exe|X
|
||||
Patch = 0844
|
||||
Versione = 21511200
|
||||
|
||||
[fp]
|
||||
Data = 25-06-2019
|
||||
Descrizione = Fattura Elettronica
|
||||
Dischi = 1
|
||||
Moduli = cg,ve
|
||||
OEM =
|
||||
Patch = 844
|
||||
PostProcess =
|
||||
PreProcess =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/fp0844a1.zip
Normal file
BIN
cd/test/fp0844a1.zip
Normal file
Binary file not shown.
@ -2129,7 +2129,11 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
||||
TBill c; ini2bill(ini, c, false);
|
||||
if (c.gruppo() > 0)
|
||||
c.add_to(riga, 4, 0x7); // Conto 105-110
|
||||
|
||||
if (_f1_ini)
|
||||
{
|
||||
add_not_empty(riga, 10, ini, "PERCIVA"); // Perc. IVA 111
|
||||
add_not_empty(riga, 11, ini, "NATURA"); // Natura IVA 112
|
||||
}
|
||||
iva_notify(is, i, K_ENTER);
|
||||
}
|
||||
|
||||
@ -2271,7 +2275,6 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
||||
//msk.set(F_TOTALE, calcola_imp());
|
||||
msk.set(F_COLFPPRO, "X");
|
||||
msk.set(FS_RECALC, "");
|
||||
load_perc_nat(msk, ini);
|
||||
}
|
||||
if (_f1_liq && msk.find_by_id(F_DIFFERITA) != NULL)
|
||||
{
|
||||
@ -2282,24 +2285,6 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query)
|
||||
}
|
||||
}
|
||||
|
||||
void TPrimanota_application::load_perc_nat(const TMask& msk, TConfig& ini)
|
||||
{
|
||||
TString riga;
|
||||
TSheet_field& iva = ivas();
|
||||
int i = 0;
|
||||
/*for(TToken_string& row = iva.row(0); TString(row.get(0)).full() || TString(row.get(3)).full(); row = iva.row(++i))
|
||||
{
|
||||
TToken_string old(row);
|
||||
iva_notify(iva, i, K_DEL);
|
||||
iva_notify(iva, i, K_SPACE);
|
||||
row.add(old.get(cid2index(IVA_IMPONIBILE)), cid2index(IVA_IMPONIBILE));
|
||||
row.add(old.get(cid2index(IVA_IMPOSTA)), cid2index(IVA_IMPOSTA));
|
||||
row.add(ini.get("PERCIVA", TString("25,") << i+1),cid2index(IVA_PERCIVA));
|
||||
row.add(ini.get("NATURA", TString("25,") << i+1), cid2index(IVA_NATURIVA));
|
||||
iva_notify(iva, i, K_ENTER);
|
||||
}*/
|
||||
}
|
||||
|
||||
bool TPrimanota_application::save(bool check_dirty)
|
||||
{
|
||||
if (_swap_mask == true)
|
||||
|
@ -210,7 +210,6 @@ protected: // TApplication
|
||||
virtual void print();
|
||||
void dump_rec(TConfig & ini, const TRectype & rec, int row = 0, int pref = 0);
|
||||
void dump_fatt(TConfig& ini, TPartita & game, int rigafatt, int pref = 0);
|
||||
void load_perc_nat(const TMask& msk, TConfig& ini);
|
||||
virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
|
||||
virtual void mask2ini(const TMask& msk, TConfig& ini);
|
||||
|
||||
@ -402,9 +401,10 @@ public:
|
||||
|
||||
class TPro_msk : public TAutomask
|
||||
{
|
||||
public:
|
||||
struct riga_iva_s;
|
||||
struct scadenza_s;
|
||||
|
||||
private:
|
||||
TString _numero;
|
||||
TDate _datadoc;
|
||||
real _totdoc;
|
||||
|
@ -5,7 +5,7 @@ TOOLBAR "topbar" 0 0 0 2
|
||||
BUTTON DLG_CONFIG 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Ricarica Fatture"
|
||||
PICTURE TOOL_ELABORA
|
||||
PICTURE TOOL_CONVERT
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
|
@ -20,7 +20,9 @@ enum err_cont
|
||||
no_selected = -2,
|
||||
is_already_cont = -3,
|
||||
cancel = -4,
|
||||
is_ready = 0
|
||||
forn_err = -5, // Manca un codice fornitore
|
||||
is_ready = 0,
|
||||
no_err = 1
|
||||
};
|
||||
|
||||
class TFppro : public TObject
|
||||
|
@ -37,8 +37,10 @@ class TPassive_mask : public TAutomask
|
||||
{
|
||||
struct iva
|
||||
{
|
||||
real imponibile;
|
||||
real imposta;
|
||||
real imponibile;
|
||||
real imposta;
|
||||
real aliquota;
|
||||
TString4 natura;
|
||||
};
|
||||
|
||||
TLog_report* _log;
|
||||
@ -67,11 +69,12 @@ protected:
|
||||
void run_cg0(const TString& filename) const;
|
||||
void elenco_prots_sel(TString& string) const;
|
||||
|
||||
vector<iva>& get_righe_iva(TToken_string& keys) const;
|
||||
static vector<iva>& get_righe_iva(TToken_string& keys);
|
||||
real calcola_importo(vector<iva> riva) const;
|
||||
// Gestione F1
|
||||
int prepara_contab() const;
|
||||
void log_contab();
|
||||
int check_err() const;
|
||||
void contabilizza();
|
||||
TDate load_data() const;
|
||||
// Handlers
|
||||
@ -203,21 +206,22 @@ void TPassive_mask::elenco_prots_sel(TString& string) const
|
||||
string = "";
|
||||
}
|
||||
|
||||
vector<TPassive_mask::iva>& TPassive_mask::get_righe_iva(TToken_string& keys) const
|
||||
vector<TPassive_mask::iva>& TPassive_mask::get_righe_iva(TToken_string& keys)
|
||||
{
|
||||
static vector<iva> riva;
|
||||
riva.clear();
|
||||
TString where_q; where_q << "WHERE PL_KEYPRGINVIO = '" << keys.get(0);
|
||||
where_q << "' AND PL_KEYHEADERFATT = '" << keys.get();
|
||||
where_q << "' AND PL_KEYBODYFATT = '" << keys.get() << "'";
|
||||
TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA \nFROM PAA2200F \n" << where_q;
|
||||
TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA, PL_ALIQUOTAIVA AS ALIQUOTA, PL_NATURA AS NATURA\n" <<
|
||||
"FROM PAA2200F \n" << where_q;
|
||||
fp_db().sq_set_exec(query, false);
|
||||
for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next())
|
||||
{
|
||||
TString imponibile = fp_db().sq_get("IMPONIBILE");
|
||||
TString imposta = fp_db().sq_get("IMPOSTA");
|
||||
if (imponibile.full() || imposta.full())
|
||||
riva.insert(riva.end(), { real(imponibile), real(imposta) });
|
||||
riva.insert(riva.end(), { real(imponibile), real(imposta), real(fp_db().sq_get("ALIQUOTA")), fp_db().sq_get("NATURA") });
|
||||
}
|
||||
return riva;
|
||||
}
|
||||
@ -544,6 +548,10 @@ void TPassive_mask::run_cg0(const TString& filename) const
|
||||
|
||||
int TPassive_mask::prepara_contab() const
|
||||
{
|
||||
const int err = check_err();
|
||||
if (err != no_err)
|
||||
return err;
|
||||
|
||||
int n_sel = 0;
|
||||
TSheet_field& sf = sfield(F_DOCS);
|
||||
sf.hide();
|
||||
@ -557,18 +565,13 @@ int TPassive_mask::prepara_contab() const
|
||||
TToken_string keys(prokeys, ';');
|
||||
TString codcaus(get_codcaus(row->get(2), row->get(10)));
|
||||
|
||||
if(!TString(row->get(sf.cid2index(S_NUMREGCONT))).empty())
|
||||
return n+1000;
|
||||
if (codcaus.empty())
|
||||
return no_codcaus;
|
||||
|
||||
TString tipodoc(row->get(sf.cid2index(S_TIPODOCSDI)));
|
||||
if(tipodoc == "TD01" && !check_causale(codcaus, "FA"))
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD01 e' stata selezionata \nuna causale diversa da Fattura d'Acquisto.\nContinuare?"))
|
||||
return cancel;
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD01 e' stata selezionata \nuna causale diversa da Fattura d'Acquisto.\nProcedere lo stesso con l'esportazione?"))
|
||||
continue;
|
||||
if(tipodoc == "TD04" && !check_causale(codcaus, "NC"))
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD04 e' stata selezionata \nuna causale diversa da Nota Credito di Acquisto.\nContinuare?"))
|
||||
return cancel;
|
||||
if(!yesno_box("Attenzione, per un documento di tipo TD04 e' stata selezionata \nuna causale diversa da Nota Credito di Acquisto.\nProcedere lo stesso con l'esportazione?"))
|
||||
continue;
|
||||
n_sel++;
|
||||
|
||||
vector<iva>& riva = get_righe_iva(keys);
|
||||
@ -613,6 +616,8 @@ int TPassive_mask::prepara_contab() const
|
||||
contab_ini.set_paragraph(LF_RMOVIVA, i);
|
||||
contab_ini.set("IMPONIBILE", it->imponibile.string());
|
||||
contab_ini.set("IMPOSTA", it->imposta.string());
|
||||
contab_ini.set("PERCIVA", it->aliquota.string());
|
||||
contab_ini.set("NATURA", it->natura);
|
||||
contab_ini.set("NRIGA", i);
|
||||
i++;
|
||||
}
|
||||
@ -712,6 +717,25 @@ void TPassive_mask::log_contab()
|
||||
log.show_log();
|
||||
}
|
||||
|
||||
int TPassive_mask::check_err() const
|
||||
{
|
||||
TSheet_field& sf = sfield(F_DOCS);
|
||||
FOR_EACH_SHEET_ROW(sf, nr, row)
|
||||
{
|
||||
if (row->starts_with("X"))
|
||||
{
|
||||
TString codcaus(get_codcaus(row->get(2), row->get(10)));
|
||||
if (codcaus.empty())
|
||||
return no_codcaus;
|
||||
if (TString(row->get(cid2index(S_FORNITORE))).empty())
|
||||
return forn_err;
|
||||
if (!TString(row->get(cid2index(S_NUMREGCONT))).empty())
|
||||
return nr + 1000;
|
||||
}
|
||||
}
|
||||
return no_err;
|
||||
}
|
||||
|
||||
void TPassive_mask::contabilizza()
|
||||
{
|
||||
const int stato = prepara_contab();
|
||||
@ -727,11 +751,13 @@ void TPassive_mask::contabilizza()
|
||||
break;
|
||||
case no_codcaus:
|
||||
message_box("Attenzione, il fornitore non ha associato nessun codice causale predefinito.\nPrego selezionare un codice causale per la contabilizzazione.");
|
||||
fill();
|
||||
break;
|
||||
case no_selected:
|
||||
message_box("Selezionare almeno un documento.");
|
||||
break;
|
||||
case forn_err:
|
||||
warning_box("Almeno un documento selezionato non presenta il codice fornitore. \nSi prega di associare il documento a un fornitore e procedere \nnuovamente con la contabilizzazione.");
|
||||
break;
|
||||
case cancel:
|
||||
next_page(1000);
|
||||
default: break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user