campo-sirio/src/li/li0300.cpp
Alessandro Bonazzi b2b083be6f Patch level : 12.0 1076
Files correlati     : ve0.exe ve1.exe ve5.exe ve6.exe fp0.exe li0300a.msk
Commento        :
In fatturazione bolle scritto il cliente originale della fattura nel campo CFORIG quando uso il cliente FATTURARE A per poterlo recuperae nelle lettere d'intento
In configurazione delle lettere d'intento c'è il parametro "Uitlizza il cliente originale nelle fatture" per attivare il meccanismo.
2021-09-08 16:35:13 +02:00

120 lines
3.0 KiB
C++

#include <automask.h>
#include <defmask.h>
#include <relapp.h>
#include <tabutil.h>
#include <filetext.h>
#include "li0.h"
#include "li0300a.h"
#define CONFIG_DICINT "DICINT.ini"
class TDI_mask : public TAutomask
{
private:
TSheet_field& sheet; // Sheet
public:
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
TDI_mask() : TAutomask("li0300a"), sheet(sfield(F_DOC_SHEET)) { load_config(); };
void load_config();
void save_config();
};
bool TDI_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_CODIVA:
case F_CODIVA_ALT:
{
if(e == fe_modify)
{
TString codiva = get(F_CODIVA), codiva2 = get(F_CODIVA_ALT);
if(codiva == codiva2)
{
error_box("Attenzione! Questo codice è già stato inserito");
o.set("");
}
}
}
break;
default:
break;
}
return true;
}
void TDI_mask::load_config()
{
set(F_CODIVA, ini_get_string(CONFIG_DITTA, "li", "CODIVA"));
set(F_CODIVA_ALT, ini_get_string(CONFIG_DITTA, "li", "CODIVALT"));
set(F_ENABLE_FATTURE, ini_get_bool(CONFIG_DITTA, "li", "ENABLEFATT"));
set(F_ADD_UTILIZZATO, ini_get_bool(CONFIG_DITTA, "li", "ADDUTILIZZATO"));
set(F_CF_ORIG, ini_get_bool(CONFIG_DITTA, "li", "CFORIGINAL"));
TToken_string tipidoc(ini_get_string(CONFIG_DITTA, "li", "TIPIDOC"));
TString_array& strarr = sheet.rows_array();
sheet.hide();
sheet.destroy();
for(int i = 0; i < tipidoc.items(); i++)
{
TString td = tipidoc.get(i);
TToken_string stati(ini_get_string(CONFIG_DITTA, "li", td));
for(int j = 0; j < stati.items(); j++)
{
TToken_string row, s(stati.get(j), ',');
row.add(td);
row.add(s.get(0));
row.add(s.get(1));
strarr.add(row);
}
}
sheet.force_update();
sheet.show();
}
void TDI_mask::save_config()
{
TToken_string tipidoc;
for(int i = 0; i < sheet.items(); i++)
{
TToken_string row = sheet.row(i), val("",',');
// Prelevo il tipo di documento e lo aggiungo alla riga tipidoc
tipidoc.add(row.get(0));
// Prelevo i valori e aggiungo a una riga
val.add(row.get(1));
val.add(row.get(2));
ini_set_string(CONFIG_DITTA, "li", row.get(0), val);
}
ini_set_string(CONFIG_DITTA, "li", "CODIVA", get(F_CODIVA));
ini_set_string(CONFIG_DITTA, "li", "CODIVALT", get(F_CODIVA_ALT));
ini_set_bool(CONFIG_DITTA, "li", "ENABLEFATT", get_bool(F_ENABLE_FATTURE));
ini_set_bool(CONFIG_DITTA, "li", "ADDUTILIZZATO", get_bool(F_ADD_UTILIZZATO));
ini_set_bool(CONFIG_DITTA, "li", "CFORIGINAL", get_bool(F_CF_ORIG));
ini_set_string(CONFIG_DITTA, "li", "TIPIDOC", tipidoc);
message_box(TR("Impostazioni salvate correttamente"));
}
class TDISettings_app : public TSkeleton_application
{
public:
virtual void main_loop();
};
void TDISettings_app::main_loop()
{
TDI_mask m;
while (m.run() == K_SAVE)
m.save_config();
}
int li0300(int argc, char* argv[])
{
TDISettings_app a;
a.run(argc, argv, TR("Configurazione lettere d'intento"));
return 0;
}