Patch level :10.0 734
Files correlati : Ricompilazione Demo : [ ] Commento : 0001620: 002463 - Presscolor - aggiornamento tabella note clienti e fornitori Descrizione non è più possibile aggiornare o inserire descrizioni per una nota cliente. git-svn-id: svn://10.65.10.50/trunk@20436 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cb2df3ec36
commit
5ee2eddc81
107
ba/ba3100.cpp
107
ba/ba3100.cpp
@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
#include "../cg/cgtbcam.h"
|
#include "../cg/cgtbcam.h"
|
||||||
#include "../cg/cgtbdel.h"
|
#include "../cg/cgtbdel.h"
|
||||||
#include "../cg/cgtbnot.h"
|
|
||||||
#include "../cg/cgtbreg.h"
|
#include "../cg/cgtbreg.h"
|
||||||
#include "../cg/cgtbver.h"
|
#include "../cg/cgtbver.h"
|
||||||
|
|
||||||
@ -29,7 +28,6 @@
|
|||||||
#define TAB_VALUTE "%VAL"
|
#define TAB_VALUTE "%VAL"
|
||||||
#define TAB_VERSAMENTI "%VER"
|
#define TAB_VERSAMENTI "%VER"
|
||||||
#define TAB_NOMENCOMB "%NOC"
|
#define TAB_NOMENCOMB "%NOC"
|
||||||
#define TAB_NOTECLI "%NOT"
|
|
||||||
#define TAB_PREST "PRS"
|
#define TAB_PREST "PRS"
|
||||||
#define TAB_SPESE "SPP"
|
#define TAB_SPESE "SPP"
|
||||||
|
|
||||||
@ -63,12 +61,8 @@ protected:
|
|||||||
static bool codcab_handler(TMask_field& f, KEY k);
|
static bool codcab_handler(TMask_field& f, KEY k);
|
||||||
static bool codmag_handler(TMask_field& f, KEY k);
|
static bool codmag_handler(TMask_field& f, KEY k);
|
||||||
static bool codnoc_handler(TMask_field& f, KEY k);
|
static bool codnoc_handler(TMask_field& f, KEY k);
|
||||||
static bool desnot_handler(TMask_field& f, KEY k);
|
|
||||||
static bool numivd_handler(TMask_field& f, KEY k);
|
static bool numivd_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
void fragment_string();
|
|
||||||
void glue_string();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool exist_journal() { return _exist_journal; }
|
bool exist_journal() { return _exist_journal; }
|
||||||
bool exist_dich_int() { return _exist_dich_int; }
|
bool exist_dich_int() { return _exist_dich_int; }
|
||||||
@ -603,17 +597,7 @@ bool TGeneric_table_app::codnoc_handler(TMask_field& f, KEY k)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TGeneric_table_app::desnot_handler(TMask_field& f, KEY k)
|
|
||||||
{
|
|
||||||
if (k == K_ENTER)
|
|
||||||
{
|
|
||||||
const TString& stringone = f.get();
|
|
||||||
if (stringone.len() > 320)
|
|
||||||
return f.error_box("La nota non puo' superare i 320 caratteri");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TGeneric_table_app::numivd_handler(TMask_field& f, KEY k)
|
bool TGeneric_table_app::numivd_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (f.to_check(k))
|
if (f.to_check(k))
|
||||||
@ -673,9 +657,6 @@ bool TGeneric_table_app::user_create()
|
|||||||
if (name == TAB_NOMENCOMB)
|
if (name == TAB_NOMENCOMB)
|
||||||
mask.set_handler(NOC_CODICE2, codnoc_handler);
|
mask.set_handler(NOC_CODICE2, codnoc_handler);
|
||||||
|
|
||||||
if (name == TAB_NOTECLI)
|
|
||||||
mask.set_handler(F_NOT_DESC, desnot_handler);
|
|
||||||
|
|
||||||
if (name == TAB_IVDIRETTIVA)
|
if (name == TAB_IVDIRETTIVA)
|
||||||
mask.set_handler(F_NUM, numivd_handler);
|
mask.set_handler(F_NUM, numivd_handler);
|
||||||
}
|
}
|
||||||
@ -683,40 +664,6 @@ bool TGeneric_table_app::user_create()
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
//folle metodo per suddividere una stringa lunga in piu' stringhe corte da mettere nei campi
|
|
||||||
//stringa delle tabelle (per ora solo tabella %NOT)
|
|
||||||
void TGeneric_table_app::fragment_string()
|
|
||||||
{
|
|
||||||
TMask& mask = *get_mask();
|
|
||||||
TString stringone = mask.get(F_NOT_DESC);
|
|
||||||
TRectype& rec = get_relation()->curr();
|
|
||||||
TString4 fieldname;
|
|
||||||
int tot_length = 0;
|
|
||||||
stringone.replace('\n', (char)0xB6);
|
|
||||||
for (int i = 0; i < 6; i++)
|
|
||||||
{
|
|
||||||
fieldname.format("S%d", i);
|
|
||||||
const int length = rec.length(fieldname);
|
|
||||||
const TString& pezzo = stringone.mid(tot_length, length);
|
|
||||||
rec.put(fieldname, pezzo);
|
|
||||||
tot_length += length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TGeneric_table_app::glue_string()
|
|
||||||
{
|
|
||||||
TMask& mask = *get_mask();
|
|
||||||
TString stringone;
|
|
||||||
TRectype& rec = get_relation()->curr();
|
|
||||||
TString4 fieldname;
|
|
||||||
for (int i = 0; i < 6; i++)
|
|
||||||
{
|
|
||||||
fieldname.format("S%d", i);
|
|
||||||
stringone << rec.get(fieldname);
|
|
||||||
}
|
|
||||||
stringone.replace((char)0xB6, '\n');
|
|
||||||
mask.set(F_NOT_DESC, stringone);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TGeneric_table_app::user_destroy()
|
bool TGeneric_table_app::user_destroy()
|
||||||
{
|
{
|
||||||
@ -727,36 +674,34 @@ int TGeneric_table_app::read(TMask& m)
|
|||||||
{
|
{
|
||||||
int err = Tab_application::read(m);
|
int err = Tab_application::read(m);
|
||||||
const TString & table_name = get_tabname();
|
const TString & table_name = get_tabname();
|
||||||
if (table_name == TAB_NOTECLI)
|
|
||||||
glue_string();
|
if (table_name == TAB_SPESE || table_name == TAB_PREST)
|
||||||
|
{
|
||||||
|
if (get_relation()->lfile().get_real("R10") == ZERO)
|
||||||
|
m.set(F_PREZZO, get_relation()->lfile().get("R0"));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
if (table_name == TAB_SPESE || table_name == TAB_PREST)
|
if (table_name == TAB_VALUTE)
|
||||||
{
|
{
|
||||||
if (get_relation()->lfile().get_real("R10") == ZERO)
|
const int dec = m.get_int(VAL_DECIMALS_CHANGE);
|
||||||
m.set(F_PREZZO, get_relation()->lfile().get("R0"));
|
TReal_field& exc = (TReal_field&)m.efield(VAL_CHANGE);
|
||||||
|
if (dec != exc.decimals())
|
||||||
|
{
|
||||||
|
exc.set_decimals(dec);
|
||||||
|
exc.set(get_relation()->lfile().get("S4"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (table_name == TAB_VALUTE)
|
if (table_name == TAB_CAMBI)
|
||||||
{
|
{
|
||||||
const int dec = m.get_int(VAL_DECIMALS_CHANGE);
|
const int dec = m.get_int(FLD_TABCAM_I2);
|
||||||
TReal_field& exc = (TReal_field&)m.efield(VAL_CHANGE);
|
TReal_field& exc = (TReal_field&)m.efield(FLD_TABCAM_S4);
|
||||||
if (dec != exc.decimals())
|
if (dec != exc.decimals())
|
||||||
{
|
{
|
||||||
exc.set_decimals(dec);
|
exc.set_decimals(dec);
|
||||||
exc.set(get_relation()->lfile().get("S4"));
|
exc.set(get_relation()->lfile().get("S4"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
if (table_name == TAB_CAMBI)
|
|
||||||
{
|
|
||||||
const int dec = m.get_int(FLD_TABCAM_I2);
|
|
||||||
TReal_field& exc = (TReal_field&)m.efield(FLD_TABCAM_S4);
|
|
||||||
if (dec != exc.decimals())
|
|
||||||
{
|
|
||||||
exc.set_decimals(dec);
|
|
||||||
exc.set(get_relation()->lfile().get("S4"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@ -766,11 +711,8 @@ int TGeneric_table_app::write(const TMask& m)
|
|||||||
{
|
{
|
||||||
const TString & table_name = get_tabname();
|
const TString & table_name = get_tabname();
|
||||||
|
|
||||||
if (table_name == TAB_NOTECLI)
|
if (table_name == TAB_SPESE || table_name == TAB_PREST)
|
||||||
fragment_string();
|
get_relation()->lfile().put("R0", m.get(F_PREZZO));
|
||||||
else
|
|
||||||
if (table_name == TAB_SPESE || table_name == TAB_PREST)
|
|
||||||
get_relation()->lfile().put("R0", m.get(F_PREZZO));
|
|
||||||
|
|
||||||
return Tab_application::write(m);
|
return Tab_application::write(m);
|
||||||
}
|
}
|
||||||
@ -790,11 +732,8 @@ int TGeneric_table_app::rewrite(const TMask& m)
|
|||||||
ini.set("Type", -1);
|
ini.set("Type", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (table_name == TAB_NOTECLI)
|
if (table_name == TAB_SPESE || table_name == TAB_PREST)
|
||||||
fragment_string();
|
get_relation()->lfile().put("R0", m.get(F_PREZZO));
|
||||||
else
|
|
||||||
if (table_name == TAB_SPESE || table_name == TAB_PREST)
|
|
||||||
get_relation()->lfile().put("R0", m.get(F_PREZZO));
|
|
||||||
|
|
||||||
return Tab_application::rewrite(m);
|
return Tab_application::rewrite(m);
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ int main(int argc, char** argv)
|
|||||||
case 2: cg0300(argc,argv); break; // Progressivi allegati
|
case 2: cg0300(argc,argv); break; // Progressivi allegati
|
||||||
case 3: cg0400(argc,argv); break; // Progressivi IVA
|
case 3: cg0400(argc,argv); break; // Progressivi IVA
|
||||||
case 4: cg0500(argc,argv); break; // Causali contabili
|
case 4: cg0500(argc,argv); break; // Causali contabili
|
||||||
case 5: cg0600(argc,argv); break; // Tabelle contabii
|
case 5: cg0600(argc,argv); break; // Tabelle contabili
|
||||||
default: cg0100(argc,argv); break; // Piano dei conti
|
default: cg0100(argc,argv); break; // Piano dei conti
|
||||||
}
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
#include <sheet.h>
|
#include <sheet.h>
|
||||||
#include <tabapp.h>
|
#include <tabapp.h>
|
||||||
|
|
||||||
#include "cgtbesc.h"
|
|
||||||
#include "cgtbbnp.h"
|
#include "cgtbbnp.h"
|
||||||
|
#include "cgtbesc.h"
|
||||||
|
#include "cgtbnot.h"
|
||||||
|
|
||||||
#include "cglib01.h"
|
#include "cglib01.h"
|
||||||
|
|
||||||
|
#define TAB_NOTECLI "%NOT"
|
||||||
|
|
||||||
class CGTTable_application : public TTable_application
|
class CGTTable_application : public TTable_application
|
||||||
{
|
{
|
||||||
// ------------- specifiche tabella esercizi ----
|
// ------------- specifiche tabella esercizi ----
|
||||||
@ -16,6 +20,9 @@ class CGTTable_application : public TTable_application
|
|||||||
static bool checkbut_handler(TMask_field& f, KEY k);
|
static bool checkbut_handler(TMask_field& f, KEY k);
|
||||||
void check_sheet();
|
void check_sheet();
|
||||||
bool check_esercizio(TString& cod, TDate s1, TDate f1);
|
bool check_esercizio(TString& cod, TDate s1, TDate f1);
|
||||||
|
static bool desnot_handler(TMask_field& f, KEY k);
|
||||||
|
void fragment_string();
|
||||||
|
void glue_string();
|
||||||
// --------------------------------------------
|
// --------------------------------------------
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -28,11 +35,14 @@ protected:
|
|||||||
|
|
||||||
virtual bool user_create();
|
virtual bool user_create();
|
||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
|
virtual int read(TMask& m);
|
||||||
|
virtual int write(const TMask& m);
|
||||||
|
virtual int rewrite(const TMask& m);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||||
virtual bool check_autorization() const
|
virtual bool check_autorization() const
|
||||||
{return FALSE;}
|
{return false;}
|
||||||
|
|
||||||
static CGTTable_application& app() { return (CGTTable_application&)main_app(); }
|
static CGTTable_application& app() { return (CGTTable_application&)main_app(); }
|
||||||
|
|
||||||
@ -118,6 +128,7 @@ bool CGTTable_application::user_create()
|
|||||||
{
|
{
|
||||||
get_mask()->set_handler(F_DATAINI, dataini_handler);
|
get_mask()->set_handler(F_DATAINI, dataini_handler);
|
||||||
get_mask()->set_handler(BUT_CHECK, checkbut_handler);
|
get_mask()->set_handler(BUT_CHECK, checkbut_handler);
|
||||||
|
get_mask()->set_handler(F_NOT_DESC, desnot_handler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
@ -128,6 +139,85 @@ bool CGTTable_application::user_destroy()
|
|||||||
return TTable_application::user_destroy();
|
return TTable_application::user_destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CGTTable_application::read(TMask& m)
|
||||||
|
{
|
||||||
|
int err = Tab_application::read(m);
|
||||||
|
const TString & table_name = get_tabname();
|
||||||
|
|
||||||
|
if (table_name == TAB_NOTECLI)
|
||||||
|
glue_string();
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CGTTable_application::write(const TMask& m)
|
||||||
|
{
|
||||||
|
const TString & table_name = get_tabname();
|
||||||
|
|
||||||
|
if (table_name == TAB_NOTECLI)
|
||||||
|
fragment_string();
|
||||||
|
|
||||||
|
return Tab_application::write(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int CGTTable_application::rewrite(const TMask& m)
|
||||||
|
{
|
||||||
|
const TString & table_name = get_tabname();
|
||||||
|
|
||||||
|
if (table_name == TAB_NOTECLI)
|
||||||
|
fragment_string();
|
||||||
|
|
||||||
|
return Tab_application::rewrite(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// - note cliente-specific --------------------------------------------------------
|
||||||
|
//folle metodo per suddividere una stringa lunga in piu' stringhe corte da mettere nei campi
|
||||||
|
//stringa delle tabelle (per ora solo tabella %NOT)
|
||||||
|
void CGTTable_application::fragment_string()
|
||||||
|
{
|
||||||
|
TMask& mask = *get_mask();
|
||||||
|
TString stringone = mask.get(F_NOT_DESC);
|
||||||
|
TRectype& rec = get_relation()->curr();
|
||||||
|
TString4 fieldname;
|
||||||
|
int tot_length = 0;
|
||||||
|
stringone.replace('\n', (char)0xB6);
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
fieldname.format("S%d", i);
|
||||||
|
const int length = rec.length(fieldname);
|
||||||
|
const TString& pezzo = stringone.mid(tot_length, length);
|
||||||
|
rec.put(fieldname, pezzo);
|
||||||
|
tot_length += length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CGTTable_application::glue_string()
|
||||||
|
{
|
||||||
|
TMask& mask = *get_mask();
|
||||||
|
TString stringone;
|
||||||
|
TRectype& rec = get_relation()->curr();
|
||||||
|
TString4 fieldname;
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
fieldname.format("S%d", i);
|
||||||
|
stringone << rec.get(fieldname);
|
||||||
|
}
|
||||||
|
stringone.replace((char)0xB6, '\n');
|
||||||
|
mask.set(F_NOT_DESC, stringone);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CGTTable_application::desnot_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
|
const TString& stringone = f.get();
|
||||||
|
if (stringone.len() > 320)
|
||||||
|
return f.error_box("La nota non puo' superare i 320 caratteri");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// - esercizi-specific --------------------------------------------------------
|
// - esercizi-specific --------------------------------------------------------
|
||||||
|
|
||||||
@ -229,10 +319,7 @@ void CGTTable_application::check_sheet()
|
|||||||
|
|
||||||
TArray_sheet as(-1,-1,70,20,TR("Esercizi contabili"),
|
TArray_sheet as(-1,-1,70,20,TR("Esercizi contabili"),
|
||||||
FR("Codice|Inizio@10|Fine@10|Scarico@10|Chiusura@10|Note@20"),
|
FR("Codice|Inizio@10|Fine@10|Scarico@10|Chiusura@10|Note@20"),
|
||||||
|
|
||||||
|
|
||||||
0x10);
|
0x10);
|
||||||
|
|
||||||
TDate s1;
|
TDate s1;
|
||||||
|
|
||||||
for (int i = 0; i < escarr.items(); i++)
|
for (int i = 0; i < escarr.items(); i++)
|
||||||
|
@ -44,7 +44,7 @@ Picture = <ve00>
|
|||||||
Module = 0
|
Module = 0
|
||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Categorie vendita", "ba3 -0 CVE", "F"
|
Item_01 = "Categorie vendita", "ba3 -0 CVE", "F"
|
||||||
Item_02 = "Note cliente", "ba3 -0 %NOT", ""
|
Item_02 = "Note cliente", "cg0 -5 %NOT", ""
|
||||||
Item_03 = "Note documento", "ba3 -0 %NDO", ""
|
Item_03 = "Note documento", "ba3 -0 %NDO", ""
|
||||||
Item_04 = "Modalita' di spedizione", "ba3 -0 %MSP", ""
|
Item_04 = "Modalita' di spedizione", "ba3 -0 %MSP", ""
|
||||||
Item_05 = "Modalita' di consegna", "ba3 -0 %POR", ""
|
Item_05 = "Modalita' di consegna", "ba3 -0 %POR", ""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user