Patch level : 10.0 192

Files correlati     : tc9.exe
Ricompilazione Demo : [ ]
Commento            :

Invio sispac 0.02


git-svn-id: svn://10.65.10.50/trunk@17958 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-12-21 19:26:09 +00:00
parent 1ec69662d8
commit a8c5a1bed6
8 changed files with 370 additions and 49 deletions

View File

@ -10,6 +10,7 @@ int main(int argc, char** argv)
case 0: tc9100(argc,argv); break; // esiste sulla 4.0 Invio a Proforma
case 1: tc9200(argc,argv); break; // esiste dalla 4.0 Invio a ???
case 2: tc9300(argc,argv); break; // esiste dalla 4.0 Invio a Sispac/Cosmo
case 3: tc9400(argc,argv); break; // esiste dalla 4.0 Tabelle Sispac/Cosmo
default: tc9100(argc,argv); break;
}
exit(0);

View File

@ -4,6 +4,7 @@
int tc9100(int argc, char** argv);
int tc9200(int argc, char** argv);
int tc9300(int argc, char** argv);
int tc9400(int argc, char** argv);
#endif // __TC9_H

View File

@ -22,11 +22,60 @@
#include <nditte.h>
#include <rmov.h>
#include <rmoviva.h>
#include <multirel.h>
#define SLF_MOV "23"
#define ALIAS_REG 100
///////////////////////////////////////////////////////////
// TRiclassifica_cache
///////////////////////////////////////////////////////////
class TRiclassifica_cache : public TCache
{
TLocalisamfile _multirel;
protected:
virtual TObject* key2obj(const char* key);
public:
const char * sdecode(const char* tab, const TString& cod);
long decode(const char* tab, const TString& cod);
TRiclassifica_cache() : _multirel(LF_MULTIREL) { _multirel.setkey(2);}
};
TObject* TRiclassifica_cache::key2obj(const char* key)
{
TToken_string tok(key);
TString8 tab, cod;
tok.get(0,tab);
tok.get(1, cod);
_multirel.put(MULTI_COD, tab);
_multirel.put(MULTI_FIRST, cod);
_multirel.put(MULTI_SECOND, "");
int err = _multirel.read(_isgteq);
if (err == NOERR && _multirel.get(MULTI_FIRST) == cod)
return new TString(_multirel.get(MULTI_SECOND));
return NULL;
}
long TRiclassifica_cache::decode(const char* tab, const TString& cod)
{
TToken_string tok;
tok.add(tab);
tok.add(cod);
const TString* ric = (const TString*) objptr(tok);
return (ric ? atol(*ric) : 0);
}
const char * TRiclassifica_cache::sdecode(const char* tab, const TString& cod)
{
TToken_string tok;
tok.add(tab);
tok.add(cod);
const TString* ric = (const TString*) objptr(tok);
return ric ? (const char *) *ric : "";
}
class TMovim_set : public TAS400_recordset
{
protected:
@ -526,6 +575,8 @@ class TInvioSispac : public TSkeleton_application
TInvioSispac_mask* _msk;
TConfig* _configfile;
TDate _dataini, _datafin;
TRiclassifica_cache * _tabelle;
protected:
virtual bool create(void);
@ -539,6 +590,9 @@ protected:
void sispac_intramov();
void sispac_movpart();
void conferma(bool conf = true);
const TString & scod2ricl(const char* tab, const TString& cod);
const TString & scod2ricl(const char* tab, const TVariant& cod);
const long cod2ricl(const char* tab, const TString& cod);
public:
TConfig& config() {return *_configfile;};
@ -549,6 +603,35 @@ public:
// restituisce un riferimento all' applicazione
inline TInvioSispac& app() { return (TInvioSispac&) main_app();}
const TString & TInvioSispac::scod2ricl(const char* tab, const TString& cod)
{
TString & codricl = get_tmp_string();
if (cod.full())
{
codricl = _tabelle->sdecode(tab, cod);
if (codricl.blank())
codricl = cod;
}
return codricl;
}
const TString & TInvioSispac::scod2ricl(const char* tab, const TVariant& cod)
{
return scod2ricl(tab, cod.as_string());
}
const long TInvioSispac::cod2ricl(const char* tab, const TString& cod)
{
long codricl = 0;
if (cod.full())
{
codricl = _tabelle->decode(tab, cod);
if (codricl <= 0 && real::is_natural(cod))
codricl = atol(cod);
}
return codricl;
}
void TInvioSispac::sispac_cli()
{
TClisisp_set recset;
@ -689,7 +772,6 @@ void TInvioSispac::sispac_movim()
TString query;
TString key;
TEsercizi_contabili esc;
TAssoc_array causarr(_configfile->list_variables("CAUSALI"));
key << prefix().get_codditta();
@ -849,25 +931,16 @@ void TInvioSispac::sispac_movim()
if (v != NULL)
recset.set("TIPOART", *v);
TString8 ccaus(input.get(MOV_CODCAUS).as_string());
TString * codcaus = (TString * )causarr.objptr(ccaus);
TString8 ccaus(input.get(SLF_MOV "." MOV_CODCAUS).as_string());
TString8 codcaus = scod2ricl("SCCAU", ccaus);
var = "R";
if (codcaus != NULL)
{
if (codcaus->len() < 5)
codcaus->right_just(5, '0');
if (*codcaus == "00255")
var = "S";
}
if (codcaus == "00255")
var = "S";
recset.set("TIPOMOV", var);
recset.set("CODCOST", TVariant("000"));
var = "";
if (codcaus != NULL)
{
var = *codcaus;
recset.set("CODCAUS", var);
}
var = codcaus;
recset.set("CODCAUS", var);
recset.set("NUMDESC", TVariant("0"));
@ -919,8 +992,6 @@ void TInvioSispac::sispac_movim()
TString query;
TString key;
TEsercizi_contabili esc;
TAssoc_array causarr(_configfile->list_variables("CAUSALI"));
TAssoc_array codivaarr(_configfile->list_variables("CODIVA"));
key << prefix().get_codditta();
@ -988,38 +1059,25 @@ void TInvioSispac::sispac_movim()
var = imposta.string(13, 0, '0');
recset.set("IMPOSTA", var);
const TString8 ccaus(input.get(SLF_MOV "." MOV_CODCAUS).as_string());
TString * codcaus = (TString * )causarr.objptr(ccaus);
TString8 codcaus = scod2ricl("SCCAU", ccaus);
if (codcaus != NULL)
{
if (codcaus->len() < 5)
codcaus->right_just(5, '0');
var = *codcaus;
recset.set("CODCAUS", var);
}
var = codcaus;
recset.set("CODCAUS", var);
const TString8 civa(input.get(RMI_CODIVA).as_string());
TString * codiva = (TString *) codivaarr.objptr(civa);
TString8 codiva = scod2ricl("SCIVA", civa);
if (codiva != NULL)
{
if (codiva->len() < 3)
codiva->right_just(3, '0');
var = *codiva;
recset.set("CODIVA", var);
}
var = codiva;
recset.set("CODIVA", var);
recset.set("FILLER", TVariant("00"));
recset.set("MERCIVEN", TVariant("N"));
var = "";
if (codcaus != NULL)
{
if (*codcaus == "00100")
var = "S";
else
if (*codcaus =="00110")
var = "N";
}
if (codcaus == "00100")
var = "S";
else
if (codcaus =="00110")
var = "N";
recset.set("QUADROA", var);
int tipodet;
TCausale cau(ccaus, _dataini.year());
@ -1148,9 +1206,12 @@ void TInvioSispac::invio_sispac()
bool TInvioSispac::create()
{
_msk = new TInvioSispac_mask();
TFilename configname = "tc9300conf.ini";
configname.custom_path();
_configfile = new TConfig(configname);
_tabelle = new TRiclassifica_cache;
return TSkeleton_application::create();
}
@ -1158,6 +1219,7 @@ bool TInvioSispac::destroy()
{
delete _configfile;
delete _msk;
delete _tabelle;
return TSkeleton_application::destroy();
}

66
tc/tc9400.cpp Executable file
View File

@ -0,0 +1,66 @@
#include <tabapp.h>
#include "tc9.h"
#include "tcts.h"
class TSispac_multirel_app : public TMultirel_application
{
protected:
virtual void set_descr(TMask & m, const TString & desc);
virtual void get_mask_name(TString& tabname) const;
//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore
virtual bool has_filtered_cursor() const { return true; }
virtual bool user_create();
virtual void init_query_mode(TMask& m);
virtual void init_query_insert_mode(TMask& m);
public:
TSispac_multirel_app() {}
virtual ~TSispac_multirel_app() {}
};
void TSispac_multirel_app::set_descr(TMask & m, const TString & desc)
{
m.set(F_DESC, desc);
}
void TSispac_multirel_app::get_mask_name(TString& tabname) const
{
TMultirel_application::get_mask_name(tabname);
tabname.overwrite("sc", 2);
}
void TSispac_multirel_app::init_query_mode(TMask& m)
{
TMultirel_application::init_query_mode(m);
m.show(-1);
m.hide(-2);
}
void TSispac_multirel_app::init_query_insert_mode(TMask& m)
{
TMultirel_application::init_query_insert_mode(m);
m.hide(-1);
m.show(-2);
}
bool TSispac_multirel_app::user_create()
{
bool ok = TMultirel_application::user_create();
if (ok)
{
TMask & m = *get_mask();
set_search_field(F_CODTAB);
}
return ok;
}
int tc9400(int argc, char* argv[])
{
TSispac_multirel_app a;
a.run(argc, argv, TR("Tabella"));
return 0;
}

View File

@ -6,18 +6,21 @@ Flags = ""
Item_01 = "TeamSystem", [TCMENU_002]
Item_02 = "Zucchetti", [TCMENU_005]
Item_03 = "Proforma", "tc9 -0", ""
Item_04 = "Sispac", "tc9 -1", ""
Item_05 = "Sermetra", "tc8 -0", ""
Item_04 = "Sispac", "tc9 -2", ""
Item_05 = "Tabella IVA Sispac", "tc9 -3 IVA", ""
Item_06 = "Tabella causali Sispac", "tc9 -3 CAU", ""
Item_07 = "Semetra", "tc8 -0", ""
[TCMENU_002]
Caption = "TeamSystem"
Picture = <cg01>
Module = 27
Flags = ""
Item_01 = "Esportazione movimenti contabili", "tc0 -6", ""
Item_02 = "Importazione causali,p.d.c.,cod.iva", "tc0 -5", ""
Item_03 = "Tabelle di riclassificazione", [TCMENU_003]
Item_04 = "Configurazione modulo", [TCMENU_004]
Item_01 = "Trasferimento", "tc0 -6", ""
Item_02 = "Importazione documenti", "tc0 -8", ""
Item_03 = "Importazione causali,p.d.c.,cod.iva", "tc0 -5", ""
Item_04 = "Tabelle di riclassificazione", [TCMENU_003]
Item_05 = "Configurazione modulo", [TCMENU_004]
[TCMENU_003]
Caption = "Tabelle di riclassificazione"
@ -45,5 +48,5 @@ Caption = "Zucchetti"
Picture = <cg01>
Module = 27
Flags = ""
Item_01 = "Esportazione", "tc1 -0", ""
Item_01 = "Trasferimento", "tc1 -0", ""
Item_02 = "Riclassificazione conti", "tc1 -7", ""

5
tc/tcsc.h Executable file
View File

@ -0,0 +1,5 @@
#define F_COD 101
#define F_CODTAB 102
#define F_DESC 103
#define F_COD_CAMPO 104
#define F_CODTAB1 105

94
tc/tcsccau.uml Executable file
View File

@ -0,0 +1,94 @@
#include "tcsc.h"
TOOLBAR "" 0 -3 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Causali" -1 -1 78 15
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 1 "Causale Teamsystem"
END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "SCCAU|SCCAU"
FIELD COD
FLAGS "D"
KEY 1
END
STRING F_CODTAB 3
BEGIN
PROMPT 2 2 ""
USE LF_MULTIREL
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice" FIRST
DISPLAY "Descrizione@60" DATA
DISPLAY "Codice causale Sispac" SECOND
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
OUTPUT F_DESC DATA
OUTPUT F_COD_CAMPO SECOND
CHECKTYPE REQUIRED
FIELD FIRST
FLAGS "U"
GROUP 1
KEY 1
END
STRING F_CODTAB1 4
BEGIN
PROMPT 2 2 ""
USE LF_CAUSALI
INPUT CODCAUS F_CODTAB1
DISPLAY "Cod." CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Documento" TIPODOC
DISPLAY "Registro" REG
DISPLAY "Tipo movimento" TIPOMOV
DISPLAY "Inc./Pag." CODCAUSIM
DISPLAY "770" M770
DISPLAY "Cespiti" COLLCESP
OUTPUT F_CODTAB CODCAUS
OUTPUT F_CODTAB1 CODCAUS
OUTPUT F_DESC DESCR
CHECKTYPE REQUIRED
FIELD FIRST
KEY 1
FLAGS "U"
GROUP 2
END
STRING F_DESC 50
BEGIN
PROMPT 10 2 "Descrizione "
USE LF_MULTIREL KEY 2
INPUT COD F_COD SELECT
INPUT DATA F_DESC
DISPLAY "Descrizione@60" DATA
DISPLAY "Codice" FIRST
DISPLAY "Causale Sispac" SECOND
COPY OUTPUT F_CODTAB
FIELD DATA
KEY 3
CHECKTYPE REQUIRED
END
NUMBER F_COD_CAMPO 5
BEGIN
PROMPT 2 4 "Causale collegata "
FIELD SECOND
FLAGS "Z"
USE LF_CAUSALI
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

89
tc/tcsciva.uml Executable file
View File

@ -0,0 +1,89 @@
#include "tcsc.h"
TOOLBAR "" 0 -3 0 3
#include <toolbar.h>
ENDPAGE
PAGE "Codici IVA" -1 -1 78 15
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 1 "Codice IVA "
END
LIST F_COD 5
BEGIN
PROMPT 50 50 ""
ITEM "SCIVA|SCIVA"
FIELD COD
FLAGS "D"
KEY 1
END
STRING F_CODTAB 4
BEGIN
PROMPT 2 2 ""
FIELD FIRST
FLAGS "U"
USE LF_MULTIREL
INPUT COD F_COD SELECT
INPUT FIRST F_CODTAB
DISPLAY "Codice" FIRST
DISPLAY "Descrizione@60" DATA
DISPLAY "Codice IVA Sispac" SECOND
OUTPUT F_CODTAB FIRST
OUTPUT F_CODTAB1 FIRST
OUTPUT F_DESC DATA
OUTPUT F_COD_CAMPO SECOND
CHECKTYPE REQUIRED
FIELD FIRST
FLAGS "Z"
KEY 1
GROUP 1
END
STRING F_CODTAB1 4
BEGIN
PROMPT 2 2 ""
USE %IVA
INPUT CODTAB F_CODTAB1
DISPLAY "Cod." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODTAB CODTAB
OUTPUT F_CODTAB1 CODTAB
OUTPUT F_DESC S0
CHECKTYPE REQUIRED
FIELD FIRST
KEY 1
FLAGS "U"
GROUP 2
END
STRING F_DESC 50
BEGIN
PROMPT 10 2 "Descrizione "
USE LF_MULTIREL KEY 2
INPUT COD F_COD SELECT
INPUT DATA F_DESC
DISPLAY "Descrizione@60" DATA
DISPLAY "Codice" FIRST
DISPLAY "Codice IVA Sispac" SECOND
COPY OUTPUT F_CODTAB
FIELD DATA
KEY 3
CHECKTYPE REQUIRED
END
STRING F_COD_CAMPO 3
BEGIN
PROMPT 2 4 "Codice IVA Sispac "
CHECKTYPE NORMAL
FIELD SECOND
FLAG "Z"
END
ENDPAGE
ENDMASK