Patch level : 10.0 720

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

Invio a Zucchetti
Aggiunti Parametri DittaReso opzionale l'ìinvio dei clienti/fornitori sospesi


git-svn-id: svn://10.65.10.50/trunk@20417 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-05-03 22:34:06 +00:00
parent 03ee03c6ad
commit 81ca7b4a4a
10 changed files with 314 additions and 93 deletions

View File

@ -9,6 +9,7 @@ int main(int argc, char** argv)
{
case 7: tc1800(argc,argv); break; // riclassificazione conti zucchetti
case 6: tc1700(argc,argv); break; // riclassificazione tabelle
case 2: tc1300(argc,argv); break; // Configurazione Ditta
case 1: tc1200(argc,argv); break; // Tabelle
case 0: tc1100(argc,argv); break; // trasferimento zucchetti
default: tc1100(argc,argv); break;

View File

@ -3,6 +3,7 @@
int tc1100(int argc, char** argv);
int tc1200(int argc, char** argv);
int tc1300(int argc, char** argv);
int tc1700(int argc, char** argv);
int tc1800(int argc, char** argv);

View File

@ -350,12 +350,7 @@ void TInvio_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TSt
valore = app().get_descrdettaglio();
}
else if (code == "_OPZIONI")
{
TString in(s.get());
TFilename configname = "tc1100conf.ini";
TConfig configfile(configname);
valore = configfile.get(in, "OPZIONI");
}
valore = ini_get_string(CONFIG_DITTA, "tc", s.get());
else if (code == "_OGGI")
{
TDate data(TODAY);
@ -790,7 +785,11 @@ long TInvio::i_zucchetti_clifor(const bool invio)
{
TRelation rel(LF_CLIFO);
TCursor cur(&rel);
const long cur_items = cur.items();
if (!ini_get_bool(CONFIG_DITTA, "tc", "ZUCLISOSP"))
cur.setfilter("SOSPESO!=\"X\"");
const long cur_items = cur.items();
if (cur_items != 0 && invio)
{
TProgind pi(cur_items, rel.file().description(), true, true);
@ -819,22 +818,19 @@ long TInvio::i_zucchetti_clifor(const bool invio)
//metodone globale che chiama, come un menu, i vari sottometodi in base alle scelte sulla maschera
void TInvio::invio_zucchetti()
{
//prende i parametri dal file di configurazione dell'applicazione
TFilename configname = "tc1100conf.ini";
TConfig configfile(configname);
//prepara il file su cui scrivere, ovvero il _trasfile
TFilename filename = _msk->get(F_DESTINAZIONE);
filename.add(configfile.get("NOMEFILE", "OPZIONI"));
TFilename filename = _msk->get(F_PATH);
filename.add(_msk->get(F_FILE));
if (filename.exist())
remove(filename);
_trasfile = new TInvio_file(filename);
_trasfile->open(filename,'w');
_log = new TLog_report("Trasferimento Zucchetti");
_trcau = _msk->get_bool(F_TRCAU);
_triva = _msk->get_bool(F_TRIVA);
_trcon = _msk->get_bool(F_TRCON);
_trban = _msk->get_bool(F_TRBAN);
_trcau = ini_get_bool(CONFIG_DITTA, "tc", "ZUTRCAU");
_triva = ini_get_bool(CONFIG_DITTA, "tc", "ZUTRIVA");
_trcon = ini_get_bool(CONFIG_DITTA, "tc", "ZUTRCON");
_trban = ini_get_bool(CONFIG_DITTA, "tc", "ZUTRBAN");
i_zucchetti_testa();
@ -863,6 +859,42 @@ void TInvio::invio_zucchetti()
_trasfile = NULL;
delete _log;
_log = NULL;
if (yesno_box("Confermi il trasferimento"))
{
const TDate from(_msk->get_date(F_DATAINI));
const TDate to(_msk->get_date(F_DATAFIN));
TString query = "USE MOV KEY 2 SELECT INVIATO!=\"X\"";
query << "\nFROM DATAREG=#DATA_DA";
query << "\nTO DATAREG=#DATA_AL";
TISAM_recordset mov(query);
mov.set_var("#DATA_DA", TVariant(from));
mov.set_var("#DATA_AL", TVariant(to));
if (mov.items() > 0L)
{
TProgind pi(mov.items(), TR("Conferma trasferimento"), true, true);
TLocalisamfile cgmov(LF_MOV);
for (bool ok = mov.move_first(); ok; ok = mov.move_next())
{
if (!pi.addstatus(1))
break;
const long numreg = mov.get(MOV_NUMREG).as_int();
cgmov.put(MOV_NUMREG, numreg);
if (cgmov.read(_isequal, _lock) == NOERR)
{
cgmov.put(MOV_INVIATO, "X");
cgmov.rewrite();
}
}
}
ini_set_int(CONFIG_DITTA, "tc", "ZUNUMEROINVIO", _msk->get_int(F_NUMEROINVIO));
ini_set_string(CONFIG_DITTA, "tc", "ZUULTINV", to);
}
}
bool TInvio::create()
@ -886,25 +918,20 @@ bool TInvio::destroy()
void TInvio::main_loop()
{
TFilename configname = "tc1100conf.ini";
configname.custom_path();
TConfig configfile(configname);
_msk->set(F_NUMEROINVIO, configfile.get_int("NUMEROINVIO","OPZIONI")+1);
_msk->set(F_DATAINI, configfile.get("DATA","OPZIONI"));
_msk->set(F_DESTINAZIONE, configfile.get("PERCORSO","OPZIONI"));
_msk->set(F_NUMEROINVIO, ini_get_int(CONFIG_DITTA, "tc", "ZUNUMEROINVIO") + 1);
_msk->set(F_DATAINI, ini_get_string(CONFIG_DITTA, "tc", "ZUULTINV"));
_msk->set(F_PATH, ini_get_string(CONFIG_DITTA, "tc", "ZUPATH"));
_msk->set(F_FILE, ini_get_string(CONFIG_DITTA, "tc", "ZUFILE", "im000000"));
while (_msk->run() != K_QUIT)
{
_totale = false;
_finemov = false;
configfile.set("NUMEROINVIO", _msk->get(F_NUMEROINVIO),"OPZIONI");
configfile.set("DATA", _msk->get_date(F_DATAFIN),"OPZIONI");
configfile.set("PERCORSO", _msk->get(F_DESTINAZIONE),"OPZIONI");
_dataini = _msk->get_date(F_DATAINI);
_datafin = _msk->get_date(F_DATAFIN);
const char tipoinvio = _msk->get(F_TIPOINVIO)[0];
if (tipoinvio == 'Z')
invio_zucchetti();
ini_set_string(CONFIG_DITTA, "tc", "ZUPATH", _msk->get(F_PATH));
ini_set_string(CONFIG_DITTA, "tc", "ZUFILE", _msk->get(F_FILE));
_dataini = _msk->get_date(F_DATAINI);
_datafin = _msk->get_date(F_DATAFIN);
invio_zucchetti();
}
}

View File

@ -2,21 +2,15 @@
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_CAUSALI 110
#define F_CONTI 111
#define F_CLIFOR 112
#define F_MOVCONT 113
#define F_MOVIVA 114
#define F_CORRISP 115
#define F_SALDACONTO 116
#define F_TIPOINVIO 120
#define F_DESTINAZIONE 121
#define F_NUMEROINVIO 122
#define F_DATAINI 123
#define F_DATAFIN 124
#define F_RIPRISTINA 125
#define F_DATARIPRISTINO 126
#define F_TRCAU 127
#define F_TRCON 128
#define F_TRIVA 129
#define F_TRBAN 130
#define F_CAUSALI 103
#define F_CONTI 104
#define F_CLIFOR 105
#define F_MOVCONT 106
#define F_MOVIVA 107
#define F_CORRISP 108
#define F_SALDACONTO 109
#define F_PATH 110
#define F_FILE 111
#define F_NUMEROINVIO 112
#define F_DATAINI 113
#define F_DATAFIN 114

View File

@ -64,13 +64,13 @@ NAME(3) = CODICE DITTA
TYPE(3) = NUMERO
POSITION(3) = 17
LENGTH(3) = 6
MESSAGE(3)=_OPZIONI,CODICEDITTA
MESSAGE(3)=_OPZIONI,ZUDITTA
NAME(4) = NUMERO SPEDIZIONE
TYPE(4) = NUMERO
POSITION(4) = 23
LENGTH(4) = 2
MESSAGE(4)=_OPZIONI,NUMEROINVIO
MESSAGE(4)=_OPZIONI,ZUNUMEROINVIO
NAME(5) = DATA SPEDIZIONE
TYPE(5) = STRINGA

View File

@ -54,6 +54,7 @@ END
BOOLEAN F_CAUSALI
BEGIN
PROMPT 3 5 "Causali"
FIELD CAUSALI
END
BOOLEAN F_CONTI
@ -69,19 +70,17 @@ END
BOOLEAN F_MOVCONT
BEGIN
PROMPT 3 8 "Movimenti contabili"
MESSAGE TRUE,ENABLE F_DATAFIN
END
BOOLEAN F_MOVIVA
BEGIN
PROMPT 40 5 "Movimenti IVA"
MESSAGE TRUE,ENABLE F_DATAFIN
END
BOOLEAN F_CORRISP
BEGIN
PROMPT 40 6 "Corrispettivi"
MESSAGE TRUE,ENABLE F_DATAFIN
FLAGS "D"
END
BOOLEAN F_SALDACONTO
@ -90,62 +89,31 @@ BEGIN
FLAGS "D"
END
LISTBOX F_TIPOINVIO 20
STRING F_PATH 256 39
BEGIN
PROMPT 2 10 "Invio a "
ITEM "Z|Zucchetti"
PROMPT 2 12 "Cartella "
DSELECT
END
STRING F_DESTINAZIONE 20
STRING F_FILE 18
BEGIN
PROMPT 2 11 "Destinazione "
END
BOOLEAN F_TRCAU
BEGIN
PROMPT 2 12 "Trascodifica causali"
END
BOOLEAN F_TRCON
BEGIN
PROMPT 2 13 "Trascodifica conti"
END
BOOLEAN F_TRIVA
BEGIN
PROMPT 2 14 "Trascodifica codici IVA"
END
BOOLEAN F_TRBAN
BEGIN
PROMPT 2 15 "Trascodifica banche"
PROMPT 2 14 "File "
END
NUMBER F_NUMEROINVIO 2
BEGIN
PROMPT 2 16 "Numero invio "
FLAGS "D"
END
DATE F_DATAINI
BEGIN
PROMPT 20 16 "Data iniz. "
PROMPT 2 18 "Data iniz. "
END
DATE F_DATAFIN
BEGIN
PROMPT 44 16 "Data fin. "
END
BUTTON F_RIPRISTINA 20
BEGIN
PROMPT 2 18 "Annulla invio"
MESSAGE SHOW,F_DATARIPRISTINO|ENABLE,F_DATARIPRISTINO
END
DATE F_DATARIPRISTINO
BEGIN
PROMPT 25 18 "Annulla invio fino al "
FLAGS "HD"
PROMPT 42 18 "Data fin. "
END
ENDPAGE

122
tc/tc1300.cpp Executable file
View File

@ -0,0 +1,122 @@
#include <confapp.h>
#include <msksheet.h>
#include <progind.h>
#include <recset.h>
#include <recarray.h>
#include <relation.h>
#include "../include/attiv.h"
#include "../include/mov.h"
#include "../cg/cglib01.h"
#include "tcconf.h"
class TZU_confditta : public TConfig_application
{
char _current;
static bool check_fields(TMask_field& f, KEY k);
// @cmember:(INTERNAL) Salva i parametri dalla maschera
virtual const char* get_mask_name() const;
virtual void save_mask(bool tosave);
public:
// @cmember Disabilita la verifica del modulo in chiave
virtual bool check_autorization() const { return FALSE; }
virtual bool preprocess_config (TMask& mask, TConfig& config);
virtual bool postprocess_config (TMask& mask, TConfig& config);
virtual bool user_create( );
virtual bool user_destroy( );
TZU_confditta() : TConfig_application( CONFIG_DITTA ){ }
virtual ~TZU_confditta( ){ }
};
bool TZU_confditta::check_fields(TMask_field& f, KEY k)
{
return true;
}
const char* TZU_confditta::get_mask_name() const
{
TString& maskname = get_tmp_string();
maskname = ini_get_string(CONFIG_DITTA, "tc", "EdMaskZu");
return maskname;
}
void TZU_confditta::save_mask(bool tosave)
{
if (tosave)
{
const TMask & m = *get_mask();
if (m.get_bool(F_RIPRISTINO))
{
const TDate from(m.get(F_ULTINVIO));
TEsercizi_contabili esc;
const TEsercizio & e = esc.esercizio(esc.date2esc(from));
const TDate to(e.fine());
TString query = "USE MOV KEY 2 SELECT INVIATO==\"X\"";
query << "\nFROM DATAREG=#DATA_DA";
query << "\nTO DATAREG=#DATA_AL";
TISAM_recordset mov(query);
mov.set_var("#DATA_DA", TVariant(from));
mov.set_var("#DATA_AL", TVariant(to));
if (mov.items() >0L)
{
TProgind pi(mov.items(), TR("Ripristino movimenti"), true, true);
TLocalisamfile cgmov(LF_MOV);
for (bool ok = mov.move_first(); ok; ok = mov.move_next())
{
if (!pi.addstatus(1))
break;
const long numreg = mov.get(MOV_NUMREG).as_int();
cgmov.put(MOV_NUMREG, numreg);
if (cgmov.read(_isequal, _lock) == NOERR)
{
cgmov.zero(MOV_INVIATO);
cgmov.rewrite();
}
}
}
}
}
TConfig_application::save_mask(tosave);
}
bool TZU_confditta::preprocess_config (TMask& mask, TConfig& config)
{
return true;
}
bool TZU_confditta::postprocess_config (TMask& mask, TConfig& config)
{
return true;
}
bool TZU_confditta::user_create( )
{
ini_set_string(CONFIG_DITTA, "tc", "EdMaskZu", "tc1300a");
return true;
}
bool TZU_confditta::user_destroy( )
{
return true;
}
int tc1300(int argc, char * * argv)
{
TZU_confditta appc;
appc.run(argc, argv, TR("Parametri ditta Zucchetti"));
return 0;
}

91
tc/tc1300a.uml Executable file
View File

@ -0,0 +1,91 @@
#include "tcconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Configurazione ditta per invio a Zucchetti" 0 2 0 0
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 1 "@bDitta corrente"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 2 "Codice "
FLAGS "FD"
USE LF_NDITTE
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED
END
STRING F_RAGSOC 50
BEGIN
PROMPT 22 2 ""
FLAGS "D"
END
NUMBER F_ZUCODDITTA 5
BEGIN
PROMPT 2 4 "Codice Ditta Zucchetti "
FLAGS "Z"
FIELD ZUDITTA
END
BOOLEAN F_ZUTRCAU
BEGIN
PROMPT 2 6 "Trascodifica causali"
FIELD ZUTRCAU
END
BOOLEAN F_ZUTRCON
BEGIN
PROMPT 2 8 "Trascodifica conti"
FIELD ZUTRCON
END
BOOLEAN F_ZUTRIVA
BEGIN
PROMPT 2 10 "Trascodifica codici IVA"
FIELD ZUTRIVA
END
BOOLEAN F_ZUTRBAN
BEGIN
PROMPT 2 12 "Trascodifica banche"
FIELD ZUTRBAN
END
BOOLEAN F_ZUCLISOSP
BEGIN
PROMPT 2 14 "Invia i clienti/Fornitori sospesi"
FIELD ZUCLISOSP
END
NUMBER F_ZUNUMEROINVIO 2
BEGIN
PROMPT 42 14 "Numero Invio"
FIELD ZUNUMEROINVIO
END
BOOLEAN F_RIPRISTINO
BEGIN
PROMPT 2 16 "Ripristina alla data"
MESSAGE FALSE DISABLE,F_ULTINVIO
MESSAGE TRUE ENABLE,F_ULTINVIO
END
DATE F_ULTINVIO
BEGIN
PROMPT 42 16 "Data ultimo invio "
FIELD ZUULTINV
FLAGS "D"
END
ENDPAGE
ENDMASK

View File

@ -36,3 +36,11 @@
#define FR_ATTIV 101
#define FR_DESCR 102
#define FR_DITTATS 103
#define F_ZUCODDITTA 103
#define F_ZUCLISOSP 104
#define F_ZUNUMEROINVIO 105
#define F_ZUTRCAU 106
#define F_ZUTRCON 107
#define F_ZUTRIVA 108
#define F_ZUTRBAN 109

View File

@ -65,6 +65,7 @@ Flags = ""
Item_01 = "Tabelle Zucchetti", [TCMENU_007]
Item_02 = "Tabelle di Riclassificazione", [TCMENU_008]
Item_03 = "Trasferimento", "tc1 -0", ""
Item_04 = "Configurazione modulo", [TCMENU_009]
[TCMENU_007]
Caption = "Tabelle Zucchetti"
@ -85,3 +86,11 @@ Item_01 = "Banche", "tc1 -6 BAN", ""
Item_02 = "Causali", "tc1 -6 CAU", ""
Item_03 = "Codici IVA", "tc1 -6 IVA", ""
Item_04 = "Conti", "tc1 -7", ""
[TCMENU_009]
Caption = "Configurazione modulo"
Picture = <cg01>
Module = 27
Flags = ""
Item_01 = "Parametri ditta", "tc1 -2", ""