Patch level :2.2 101
Files correlati : Ricompilazione Demo : [ ] Commento :riportate le dichiarazioni d'intento alla patch 300 della 2.1 git-svn-id: svn://10.65.10.50/trunk@13092 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8b5b16f9f7
commit
65412a9d5d
@ -1,3 +1,3 @@
|
||||
154
|
||||
0
|
||||
$letint|0|0|76|0|Lettere d'intento|||
|
||||
$letint|2|2|90|0|Lettere d'intento|||
|
||||
|
@ -1,16 +1,19 @@
|
||||
154
|
||||
11
|
||||
14
|
||||
ANNO|2|4|0|Anno
|
||||
NUMPROT|3|6|0|Numero protocollo
|
||||
DATAREG|5|8|0|Data di registrazione
|
||||
VSPROT|1|7|0|Vostro numero di protocollo
|
||||
VSDATA|5|8|0|Vostra data di registrazione
|
||||
CODCLI|3|6|0|Codice cliente
|
||||
UFFIVA|9|3|0|Codice ufficio IVA
|
||||
NOTE|11|10|0|Note
|
||||
TIPOOP|2|1|0|Tipo operazione (1=singola,2=fino a,3=nel periodo dal/al)
|
||||
IMPORTO|4|18|3|Importo
|
||||
DAL|5|8|0|Data inizio periodo
|
||||
AL|5|8|0|Data fine periodo
|
||||
STAMPATO|8|1|0|Stampato
|
||||
INVIATO|8|1|0|Inviato
|
||||
2
|
||||
ANNO+NUMPROT|
|
||||
CODCLI+ANNO+NUMPROT|X
|
||||
|
@ -7,10 +7,13 @@
|
||||
#define LETINT_VSPROT "VSPROT"
|
||||
#define LETINT_VSDATA "VSDATA"
|
||||
#define LETINT_CODCLI "CODCLI"
|
||||
#define LETINT_UFFIVA "UFFIVA"
|
||||
#define LETINT_NOTE "NOTE"
|
||||
#define LETINT_TIPOOP "TIPOOP"
|
||||
#define LETINT_IMPORTO "IMPORTO"
|
||||
#define LETINT_DAL "DAL"
|
||||
#define LETINT_AL "AL"
|
||||
#define LETINT_STAMPATO "STAMPATO"
|
||||
#define LETINT_INVIATO "INVIATO"
|
||||
|
||||
#endif
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "li0.h"
|
||||
|
||||
#define usage "Error - usage : %s -{3}"
|
||||
#define usage "Error - usage : %s -{3|4|5}"
|
||||
|
||||
int main(int argc,char** argv)
|
||||
|
||||
@ -14,7 +14,11 @@ int main(int argc,char** argv)
|
||||
switch (r)
|
||||
{
|
||||
case 3:
|
||||
rt = li0400(argc,argv) ; break; //immissione dati file letinc
|
||||
rt = li0400(argc,argv) ; break; //gestione archivio
|
||||
case 4:
|
||||
rt = li0500(argc,argv) ; break; //stampa archivio
|
||||
case 5:
|
||||
rt = li0600(argc,argv) ; break; //invio dati
|
||||
default:
|
||||
error_box(usage, argv[0]) ; break;
|
||||
}
|
||||
|
2
li/li0.h
2
li/li0.h
@ -2,6 +2,8 @@
|
||||
#define __LI0_H
|
||||
|
||||
int li0400(int argc, char* argv[]);
|
||||
int li0500(int argc, char* argv[]);
|
||||
int li0600(int argc, char* argv[]);
|
||||
|
||||
#endif // __LI0_H
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <relapp.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "li0.h"
|
||||
@ -13,12 +14,12 @@
|
||||
//-------------------------------------------------------------------
|
||||
class TLetint_mask : public TAutomask
|
||||
{
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
|
||||
TDate ultima_stampa(int anno);
|
||||
bool is_registro(int anno) { return ultima_stampa(anno) > botime;}
|
||||
TLetint_mask();
|
||||
};
|
||||
|
||||
@ -27,6 +28,12 @@ bool TLetint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_ANNO:
|
||||
if (e == fe_modify || e == fe_init || e == fe_close)
|
||||
{
|
||||
if (!is_registro(atoi(o.get())))
|
||||
return error_box(FR("Manca il registro dichiarazioni d'intento per l'anno %d"), atoi(o.get()));
|
||||
}
|
||||
case F_NUMPROT:
|
||||
if (e == fe_close && query_mode())
|
||||
{
|
||||
@ -42,7 +49,16 @@ bool TLetint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
}
|
||||
}
|
||||
break;
|
||||
case F_DATAREG:
|
||||
case F_VSDATA:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
const TDate datareg(o.mask().get(F_DATAREG));
|
||||
const TDate dataem(o.get());
|
||||
if (dataem > datareg)
|
||||
return error_box(FR("Data di emissione %s superiore alla data di registrazione %s"), (const char *) dataem.string(), (const char *) datareg.string());
|
||||
}
|
||||
break;
|
||||
case F_DATAREG:
|
||||
if (e == fe_close && insert_mode())
|
||||
{
|
||||
const long numprot = get_long(F_NUMPROT);
|
||||
@ -51,13 +67,16 @@ bool TLetint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
const int anno = get_int(F_ANNO);
|
||||
TLocalisamfile letint(LF_LETINT);
|
||||
letint.put(LETINT_ANNO, anno);
|
||||
letint.put(LETINT_NUMPROT, numprot);
|
||||
letint.put(LETINT_NUMPROT, numprot - 1);
|
||||
if (letint.read() == NOERR)
|
||||
{
|
||||
const TDate& old_data = letint.get_date(LETINT_DATAREG);
|
||||
if (get_date(F_DATAREG) < old_data)
|
||||
return error_box(TR("La data di registrazione non puo' essere antecedente a %s"), (const char*) old_data.string());
|
||||
}
|
||||
TDate ultima = ultima_stampa(anno);
|
||||
if (get_date(F_DATAREG) <= ultima)
|
||||
return error_box(TR("La data di registrazione non puo' essere antecedente a %s"), (const char*) ultima.string());
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -68,6 +87,29 @@ bool TLetint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
|
||||
return true;
|
||||
}
|
||||
|
||||
TDate TLetint_mask::ultima_stampa(int anno)
|
||||
{
|
||||
TTable reg("REG");
|
||||
TDate ultima_stampa = botime;
|
||||
TString s; s.format("%0d", anno);
|
||||
|
||||
reg.put("CODTAB", s);
|
||||
for (int err = reg.read(_isgteq); s == reg.get("CODTAB").left(4) && err == NOERR; err = reg.next())
|
||||
if (reg.get_int("I0") == 10)
|
||||
{
|
||||
ultima_stampa = reg.get_date("D3");
|
||||
if (!ultima_stampa.ok())
|
||||
{
|
||||
ultima_stampa.set_day(1);
|
||||
ultima_stampa.set_month(1);
|
||||
ultima_stampa.set_year(anno);
|
||||
--ultima_stampa;
|
||||
}
|
||||
}
|
||||
return ultima_stampa;
|
||||
}
|
||||
|
||||
|
||||
TLetint_mask::TLetint_mask() : TAutomask("li0400a")
|
||||
{
|
||||
first_focus(F_ANNO);
|
||||
|
@ -23,3 +23,6 @@
|
||||
#define F_CAPCF 120
|
||||
#define F_PROVCF 121
|
||||
#define F_PAIV 122
|
||||
#define F_UFFIVA 123
|
||||
#define F_DENUFFIVA 124
|
||||
#define F_NOTE 125
|
||||
|
@ -4,7 +4,7 @@ TOOLBAR "" 0 -2 0 2
|
||||
#include <toolbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Dichiarazione d'intento" -1 -1 78 20
|
||||
PAGE "Dichiarazioni d'intento" -1 -1 78 20
|
||||
|
||||
GROUPBOX DLG_NULL 75 3
|
||||
BEGIN
|
||||
@ -72,6 +72,7 @@ BEGIN
|
||||
OUTPUT F_CAPCF CAPCF
|
||||
OUTPUT F_LOCALITACF LOCALITACF
|
||||
OUTPUT F_PAIV PAIV
|
||||
OUTPUT F_UFFIVA PAIV[8,10]
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODCLI
|
||||
ADD RUN cg0 -1
|
||||
@ -104,7 +105,7 @@ END
|
||||
|
||||
NUMBER F_STATOCF 3
|
||||
BEGIN
|
||||
PROMPT 1 7 "Stato "
|
||||
PROMPT 9 7 "Stato "
|
||||
USE %STA
|
||||
INPUT CODTAB F_STATOCF
|
||||
OUTPUT F_DESTACF S0
|
||||
@ -120,7 +121,7 @@ END
|
||||
|
||||
STRING F_COMCF 4
|
||||
BEGIN
|
||||
PROMPT 7 8 "Comune "
|
||||
PROMPT 8 8 "Comune "
|
||||
USE LF_COMUNI
|
||||
INPUT STATO F_STATOCF
|
||||
INPUT COM F_COMCF
|
||||
@ -160,6 +161,27 @@ BEGIN
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_UFFIVA 3
|
||||
BEGIN
|
||||
PROMPT 1 11 "Ufficio IVA "
|
||||
USE %UIV
|
||||
INPUT CODTAB F_UFFIVA
|
||||
DISPLAY "Ufficio" CODTAB
|
||||
DISPLAY "Denominazione@50" S0
|
||||
OUTPUT F_UFFIVA CODTAB
|
||||
OUTPUT F_DENUFFIVA S0
|
||||
CHECKTYPE NORMAL
|
||||
WARNING "Ufficio IVA assente"
|
||||
FLAGS "Z"
|
||||
FIELD UFFIVA
|
||||
END
|
||||
|
||||
STRING F_DENUFFIVA 50
|
||||
BEGIN
|
||||
PROMPT 22 11 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_VSPROT 7
|
||||
BEGIN
|
||||
PROMPT 1 12 "Numero di protocollo "
|
||||
@ -168,7 +190,7 @@ END
|
||||
|
||||
DATE F_VSDATA
|
||||
BEGIN
|
||||
PROMPT 1 13 "Data registrazione "
|
||||
PROMPT 1 13 "Data di emissione "
|
||||
FIELD VSDATA
|
||||
END
|
||||
|
||||
@ -221,5 +243,14 @@ BEGIN
|
||||
FLAGS "HD"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
PAGE "Note" -1 -1 78 20
|
||||
|
||||
MEMO F_NOTE 78 19
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FIELD NOTE
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
300
li/li0500.cpp
Executable file
300
li/li0500.cpp
Executable file
@ -0,0 +1,300 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <dongle.h>
|
||||
#include <execp.h>
|
||||
#include <progind.h>
|
||||
#include <relapp.h>
|
||||
#include <reprint.h>
|
||||
#include <tabutil.h>
|
||||
|
||||
#include "../ba/ba0100a.h"
|
||||
|
||||
#include "li0.h"
|
||||
#include "li0500a.h"
|
||||
#include "li0500b.h"
|
||||
|
||||
#include "letint.h"
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// MASCHERA
|
||||
//--------------------------------------------------------------
|
||||
class TPrint_letint_mask : public TAutomask
|
||||
{
|
||||
TDate _last_data;
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
bool ask_service_pwd();
|
||||
|
||||
public:
|
||||
TPrint_letint_mask();
|
||||
virtual ~TPrint_letint_mask() {}
|
||||
};
|
||||
|
||||
TPrint_letint_mask::TPrint_letint_mask()
|
||||
:TAutomask("li0500a")
|
||||
{
|
||||
_last_data = botime;
|
||||
}
|
||||
|
||||
static TDate _da_data, _a_data;
|
||||
static bool filtra_per_date(const TRelation* rel)
|
||||
{
|
||||
const TDate data = rel->curr().get(LETINT_DATAREG);
|
||||
return data >= _da_data && data <= _a_data;
|
||||
}
|
||||
|
||||
bool TPrint_letint_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
|
||||
switch (o.dlg())
|
||||
{
|
||||
case F_ANNO:
|
||||
if (e == fe_modify || e == fe_init)
|
||||
{
|
||||
TTable reg("REG");
|
||||
TString s(o.get()); s.lpad(4, '0');
|
||||
|
||||
_last_data = botime;
|
||||
o.mask().set(F_PAGINI, "");
|
||||
reg.put("CODTAB", s);
|
||||
|
||||
for (int err = reg.read(_isgteq); s == reg.get("CODTAB").left(4) && err == NOERR; err = reg.next())
|
||||
if (reg.get_int("I0") == 10)
|
||||
{
|
||||
o.mask().set(F_PAGINI, reg.get("I1"));
|
||||
_last_data = reg.get_date("D3");
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case F_MESE:
|
||||
if (e == fe_close)
|
||||
{
|
||||
const int mese = atoi(o.get());
|
||||
|
||||
if (mese <= _last_data.month())
|
||||
return error_box("Attenzione Stampa definitiva già effettuata. Ripristinare il mese se si desidera procedere");
|
||||
}
|
||||
break;
|
||||
case F_RIPRISTINA:
|
||||
if (e == fe_button)
|
||||
{
|
||||
if (ask_service_pwd()) //chiede la pwd di servizio x ripristinare
|
||||
{
|
||||
TMask mask("li0500b"); //maschera per selezionare il mese ed anno da ripristinare
|
||||
if (mask.run() == K_ENTER)
|
||||
{
|
||||
//ripristinare solo dichiarazioni del mese/anno selezionato
|
||||
const int anno_rip = mask.get_int(F_ANNO);
|
||||
const int mese_rip = mask.get_int(F_MESE);
|
||||
|
||||
TRectype darec(LF_LETINT), arec(LF_LETINT);
|
||||
darec.put(LETINT_ANNO, anno_rip);
|
||||
arec.put(LETINT_ANNO, anno_rip);
|
||||
|
||||
TRelation rel_letint(LF_LETINT);
|
||||
|
||||
_da_data = TDate(1, mese_rip, anno_rip);
|
||||
if (mese_rip == 1)
|
||||
_last_data = botime;
|
||||
else
|
||||
{
|
||||
_last_data = _da_data;
|
||||
--_last_data;
|
||||
}
|
||||
_a_data = TDate(31, 12, anno_rip);
|
||||
|
||||
TCursor cur_letint(&rel_letint, "", 1, &darec, &arec);
|
||||
cur_letint.set_filterfunction(filtra_per_date);
|
||||
|
||||
const long items = cur_letint.items();
|
||||
//ripristina solo se c'è qualcosa da ripristinare!
|
||||
if (items > 0)
|
||||
{
|
||||
if (yesno_box(TR("Si desidera ripristinare %ld dichiarazioni?"), items))
|
||||
if (yesno_box(TR("Si desidera veramente ripristinare %ld dichiarazioni?"), items))
|
||||
{
|
||||
cur_letint.freeze();
|
||||
TProgind pi(items, "Ripristino dichiarazioni", false);
|
||||
TRectype& rec_letint = rel_letint.curr();
|
||||
|
||||
for (cur_letint = 0; cur_letint.pos() < items; ++cur_letint)
|
||||
{
|
||||
pi.addstatus(1);
|
||||
rec_letint.zero(LETINT_STAMPATO); //svuota il campo
|
||||
rel_letint.rewrite(); //aggiorna fisicamente il file
|
||||
}
|
||||
|
||||
TTable reg("REG");
|
||||
TString s; s.format("%04d", anno_rip);
|
||||
|
||||
reg.put("CODTAB", s);
|
||||
|
||||
for (int err = reg.read(_isgteq); s == reg.get("CODTAB").left(4) && err == NOERR; err = reg.next())
|
||||
if (reg.get_int("I0") == 10)
|
||||
{
|
||||
reg.put("D3", _last_data);
|
||||
reg.rewrite();
|
||||
}
|
||||
else
|
||||
reg.reread(_unlock);
|
||||
}
|
||||
else
|
||||
return true;
|
||||
else
|
||||
return true;
|
||||
} //end if(items>0)
|
||||
else
|
||||
message_box(TR("Non ci sono dichiarazioni da ripristinare nel periodo selezionato"));
|
||||
} //end mask.run()
|
||||
} //end ask_service_pwd()
|
||||
} //end if(e==fe_button)
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TPrint_letint_mask::ask_service_pwd()
|
||||
{
|
||||
bool ok = false;
|
||||
|
||||
TMask mask("ba0100a");
|
||||
mask.disable(F_USER);
|
||||
mask.set(F_USER, "SERVIZIO");
|
||||
|
||||
if (mask.run() == K_ENTER)
|
||||
{
|
||||
const TDate oggi(TODAY);
|
||||
TString16 pwd; pwd << dongle().administrator() << (oggi.month() + oggi.day());
|
||||
ok = pwd == mask.get(F_PASSWORD);
|
||||
}
|
||||
if (!ok)
|
||||
error_box(TR("Password di servizio errata!\nAccesso negato."));
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// REPORT
|
||||
//---------------------------------------------------------------
|
||||
class TLetint_report : public TReport
|
||||
{
|
||||
word _last_printed_page;
|
||||
|
||||
protected:
|
||||
virtual bool use_mask() { return false;}
|
||||
virtual word last_printed_page() const { return _last_printed_page; }
|
||||
|
||||
public:
|
||||
TLetint_report(int last_printed_page) : _last_printed_page(last_printed_page) {}
|
||||
~TLetint_report() {}
|
||||
};
|
||||
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// APPLICAZIONE
|
||||
//---------------------------------------------------------------
|
||||
class TPrint_letint : public TSkeleton_application
|
||||
{
|
||||
bool create();
|
||||
void setta_stampato(TMask& mask, long last_page);
|
||||
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TPrint_letint::setta_stampato(TMask& mask, long last_page)
|
||||
{
|
||||
//settare solo dichiarazioni del mese/anno selezionato
|
||||
const int anno = mask.get_int(F_ANNO);
|
||||
const int mese = mask.get_int(F_MESE);
|
||||
|
||||
TRectype darec(LF_LETINT), arec(LF_LETINT);
|
||||
darec.put(LETINT_ANNO, anno);
|
||||
arec.put(LETINT_ANNO, anno);
|
||||
|
||||
TRelation rel_letint(LF_LETINT);
|
||||
|
||||
_da_data = TDate(1, mese, anno);
|
||||
_a_data = _da_data;
|
||||
_a_data.set_end_month();
|
||||
|
||||
TCursor cur_letint(&rel_letint, "", 1, &darec, &arec);
|
||||
cur_letint.set_filterfunction(filtra_per_date);
|
||||
|
||||
const long items = cur_letint.items();
|
||||
//trasferimento dati possibile solo se il file di destinazione e' vuoto
|
||||
if (items > 0)
|
||||
{
|
||||
cur_letint.freeze();
|
||||
TProgind pi(items, "Aggiornamento dichiarazioni", false);
|
||||
TRectype& rec_letint = rel_letint.curr();
|
||||
|
||||
for (cur_letint = 0; cur_letint.pos() < items; ++cur_letint)
|
||||
{
|
||||
pi.addstatus(1);
|
||||
rec_letint.put(LETINT_STAMPATO, "X"); //riempie il campo
|
||||
rel_letint.rewrite(); //aggiorna fisicamente il file
|
||||
}
|
||||
} //end if(items>0)
|
||||
|
||||
TTable reg("REG");
|
||||
TString s; s << anno; s.lpad(4, '0');
|
||||
|
||||
reg.put("CODTAB", s);
|
||||
for (int err = reg.read(_isgteq, _lock); s == reg.get("CODTAB").left(4) && err == NOERR; err = reg.next())
|
||||
if (reg.get_int("I0") == 10)
|
||||
{
|
||||
reg.put("I1", last_page);
|
||||
reg.put("I2", last_page);
|
||||
reg.put("D3", _a_data);
|
||||
reg.rewrite();
|
||||
}
|
||||
else
|
||||
reg.reread(_unlock);
|
||||
}
|
||||
|
||||
bool TPrint_letint::create()
|
||||
{
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
void TPrint_letint::main_loop()
|
||||
{
|
||||
TFilename path;
|
||||
TPrint_letint_mask m;
|
||||
|
||||
while (m.run() == K_ENTER)
|
||||
{
|
||||
TReport_book book;
|
||||
word last_page = 0;
|
||||
const bool definitiva = m.get_bool(F_DEFINITIVA);
|
||||
|
||||
if (definitiva)
|
||||
last_page = m.get_int(F_PAGINI);
|
||||
|
||||
TLetint_report rep(last_page);
|
||||
|
||||
path = m.get(F_REPORT);
|
||||
if (path.empty())
|
||||
path = "li0500a";
|
||||
rep.load(path);
|
||||
rep.mask2report(m);
|
||||
book.add(rep);
|
||||
book.print_or_preview();
|
||||
|
||||
//in caso di stampa definitiva...
|
||||
if (definitiva && yesno_box(TR("La stampa e' corretta?")))
|
||||
setta_stampato(m, (long)rep.page());
|
||||
}
|
||||
}
|
||||
|
||||
int li0500(int argc, char* argv[])
|
||||
{
|
||||
TPrint_letint a;
|
||||
a.run(argc, argv, TR("Stampa dichiarazioni d'intento"));
|
||||
return 0;
|
||||
}
|
||||
|
11
li/li0500a.h
Executable file
11
li/li0500a.h
Executable file
@ -0,0 +1,11 @@
|
||||
// stampa lettere d'intento
|
||||
// definizione campi per maschera li0500a
|
||||
|
||||
#define F_ANNO 101
|
||||
#define F_MESE 102
|
||||
#define F_DEFINITIVA 103
|
||||
#define F_DAL 105
|
||||
#define F_AL 106
|
||||
#define F_RIPRISTINA 107
|
||||
#define F_REPORT 108
|
||||
#define F_PAGINI 109
|
103
li/li0500a.rep
Executable file
103
li/li0500a.rep
Executable file
@ -0,0 +1,103 @@
|
||||
|
||||
<report libraries="li0500" name="li0500a" lpi="6">
|
||||
<description>registro dichiarazioni d'intento</description>
|
||||
<font face="Courier New" size="10" />
|
||||
<section type="Head">
|
||||
<field type="Stringa" width="50" pattern="1">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
<prescript description="H0.0 PRESCRIPT">"!RAGSOC"
|
||||
GET_FIRM_DATA</prescript>
|
||||
</field>
|
||||
<field x="121" type="Testo" width="4" pattern="1" text="Pag." />
|
||||
<field x="125" type="Numero" align="right" width="5" pattern="1">
|
||||
<source>#PAGE</source>
|
||||
<prescript description="H0.0 PRESCRIPT">#REPORT.PAGE</prescript>
|
||||
</field>
|
||||
<field x="20" y="1" type="Testo" valign="center" align="center" width="56" height="2" pattern="1" text="Registro Dichiarazioni d'intento">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
</field>
|
||||
<field x="74" y="1" type="Numero" valign="center" align="right" width="8" height="2" pattern="1">
|
||||
<font face="Courier New" bold="1" size="14" />
|
||||
<source>#ANNO</source>
|
||||
</field>
|
||||
<field border="1" y="4" type="Linea" width="132" height="0" pattern="1" />
|
||||
<field border="2" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field x="1" y="4" type="Testo" valign="center" align="center" width="18" height="2" pattern="1" text="Emissione dichiarazione">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field border="1" x="20" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field x="21" y="4" type="Testo" valign="center" align="center" width="18" height="2" pattern="1" text="Ricevimento dichiarazione">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field border="1" x="40" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field border="1" x="97" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field border="1" x="111" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field border="1" x="117.5" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field border="1" x="132" y="4" type="Linea" height="3" pattern="1" />
|
||||
<field x="112" y="4.5" type="Testo" valign="center" align="center" width="4" height="2" pattern="1" text="Uff. IVA">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="112" y="4.5" type="Testo" valign="center" align="center" width="4" height="2" pattern="1" text="Uff. IVA">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="40" y="5" type="Testo" valign="center" align="center" width="57" pattern="1" text="Dichiarante o fornitore F; prestatore">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="98" y="5" type="Testo" valign="center" align="center" width="12" pattern="1" text="Partita IVA">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="123" y="5" type="Testo" valign="center" align="center" width="6" pattern="1" text="Note">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field y="6" type="Testo" valign="center" align="center" width="10" pattern="1" text="Data">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="10" y="6" type="Testo" valign="center" align="center" width="10" pattern="1" text="Protocollo">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="20" y="6" type="Testo" valign="center" align="center" width="10" pattern="1" text="Data">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field x="30" y="6" type="Testo" valign="center" align="center" width="10" pattern="1" text="Protocollo">
|
||||
<font face="Courier New" bold="1" size="10" />
|
||||
</field>
|
||||
<field border="1" y="7" type="Linea" width="132" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="1" />
|
||||
<section type="Body" />
|
||||
<section type="Body" level="1">
|
||||
<field x="1" type="Data" width="10" pattern="1">
|
||||
<source>VSDATA</source>
|
||||
</field>
|
||||
<field x="12" type="Stringa" width="7" pattern="1">
|
||||
<source>VSPROT</source>
|
||||
</field>
|
||||
<field x="21" type="Data" width="10" pattern="1">
|
||||
<source>DATAREG</source>
|
||||
</field>
|
||||
<field x="32" type="Numero" align="right" width="6" pattern="1">
|
||||
<source>NUMPROT</source>
|
||||
</field>
|
||||
<field x="40" type="Numero" align="right" width="6" pattern="1">
|
||||
<source>CODCLI</source>
|
||||
</field>
|
||||
<field x="47" type="Stringa" width="50" pattern="1">
|
||||
<source>CLIFO.RAGSOC</source>
|
||||
</field>
|
||||
<field x="98" type="Stringa" width="12" pattern="1">
|
||||
<source>CLIFO.PAIV</source>
|
||||
</field>
|
||||
<field x="112.5" type="Numero" align="right" width="3" pattern="1">
|
||||
<source>154.UFFIVA</source>
|
||||
</field>
|
||||
<field x="117" type="Stringa" dynamic_height="1" width="15" height="18.5" pattern="1">
|
||||
<source>154.NOTE</source>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" />
|
||||
<section type="Foot" level="1" />
|
||||
<sql>USE 154
|
||||
JOIN CLIFO INTO TIPOCF=='C' CODCF==CODCLI
|
||||
FROM ANNO=#ANNO
|
||||
TO ANNO=#ANNO</sql>
|
||||
</report>
|
71
li/li0500a.uml
Executable file
71
li/li0500a.uml
Executable file
@ -0,0 +1,71 @@
|
||||
#include "li0500a.h"
|
||||
|
||||
PAGE "Stampa dichiarazioni d'intento" -1 -1 76 8
|
||||
|
||||
BOOLEAN F_DEFINITIVA
|
||||
BEGIN
|
||||
PROMPT 1 1 "Definitiva"
|
||||
MESSAGE FALSE HIDE,2@|SHOW,1@
|
||||
MESSAGE TRUE SHOW,2@|HIDE,1@
|
||||
END
|
||||
|
||||
NUMBER F_PAGINI 6
|
||||
BEGIN
|
||||
PROMPT 20 1 "Ultima pagina "
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 3 "Anno "
|
||||
FLAGS "AU"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
LIST F_MESE 2 16
|
||||
BEGIN
|
||||
PROMPT 15 3 "Mese "
|
||||
FLAGS "AM"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
DATE F_DAL
|
||||
BEGIN
|
||||
PROMPT 15 3 "Dal "
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
DATE F_AL
|
||||
BEGIN
|
||||
PROMPT 47 3 "Al "
|
||||
GROUP 1
|
||||
VALIDATE DATE_CMP_FUNC >= F_DAL
|
||||
WARNING "Specificare una 'Data fine periodo' non inferiore alla 'Data inizio perodo'"
|
||||
END
|
||||
|
||||
STRING F_REPORT 70 60
|
||||
BEGIN
|
||||
PROMPT 1 5 "Report "
|
||||
RSELECT "li0500"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "~Stampa"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON F_RIPRISTINA 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 "~Ripristina"
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
5
li/li0500b.h
Executable file
5
li/li0500b.h
Executable file
@ -0,0 +1,5 @@
|
||||
// ripristino lettere d'intento
|
||||
// definizione campi per maschera li0500b
|
||||
|
||||
#define F_ANNO 101
|
||||
#define F_MESE 102
|
30
li/li0500b.uml
Executable file
30
li/li0500b.uml
Executable file
@ -0,0 +1,30 @@
|
||||
#include "li0500b.h"
|
||||
|
||||
PAGE "Ripristino dichiarazioni d'intento" -1 -1 28 6
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "Anno "
|
||||
FLAGS "AU"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
LIST F_MESE 2 16
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
FLAGS "AM"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
1117
li/li0600.cpp
Executable file
1117
li/li0600.cpp
Executable file
File diff suppressed because it is too large
Load Diff
7
li/li0600a.h
Executable file
7
li/li0600a.h
Executable file
@ -0,0 +1,7 @@
|
||||
// invio dichiarazioni d'intento
|
||||
// definizione campi per maschera li0600a
|
||||
|
||||
#define F_ANNO 101
|
||||
#define F_MESE 102
|
||||
#define F_RIPRISTINA 103
|
||||
#define F_PATH 104
|
74
li/li0600a.ini
Executable file
74
li/li0600a.ini
Executable file
@ -0,0 +1,74 @@
|
||||
[A]
|
||||
3=16,5,AN,IVD05
|
||||
4=21,2,NU,01
|
||||
5=23,16,AN
|
||||
7=522,4,NU,1
|
||||
8=526,4,NU,1
|
||||
|
||||
[B]
|
||||
2=2,16,AN
|
||||
3=18,8,NU,1
|
||||
7=74,16,AN,04162720967
|
||||
8=90,1,CB,1
|
||||
25=108,24,AN
|
||||
26=132,20,AN
|
||||
27=152,60,AN
|
||||
28=212,11,PI
|
||||
36=355,4,DA
|
||||
37=359,2,N2
|
||||
38=361,40,AN
|
||||
39=401,2,PR
|
||||
40=403,8,DT
|
||||
41=411,1,AN
|
||||
45=417,40,AN
|
||||
46=457,2,PR
|
||||
47=459,35,AN
|
||||
48=494,5,NU
|
||||
58=575,20,AN
|
||||
59=595,24,AN
|
||||
60=619,3,NU
|
||||
69=723,40,AN
|
||||
70=763,2,PR
|
||||
71=765,35,AN
|
||||
72=800,5,NU
|
||||
74=811,40,AN
|
||||
75=851,2,PR
|
||||
76=853,35,AN
|
||||
77=888,5,NU
|
||||
83=926,2,NU
|
||||
86=930,24,AN
|
||||
87=954,3,NU
|
||||
88=957,20,AN
|
||||
98=1066,16,CF
|
||||
99=1082,11,CN
|
||||
101=1094,2,NU
|
||||
104=1105,24,AN
|
||||
105=1129,20,AN
|
||||
106=1149,1,AN
|
||||
107=1150,8,DT
|
||||
108=1158,40,AN
|
||||
109=1198,2,PR
|
||||
110=1200,40,AN
|
||||
111=1240,2,PR
|
||||
112=1242,5,NU
|
||||
113=1247,35,AN
|
||||
114=1282,12,AN
|
||||
120=1321,1,CB,1
|
||||
197=1427,3,NU
|
||||
198=1430,16,CF
|
||||
199=1446,5,NU
|
||||
200=1451,1,CB
|
||||
201=1452,1,CB
|
||||
202=1453,8,DT
|
||||
203=1461,1,CB
|
||||
|
||||
[C]
|
||||
1=1,1,AN
|
||||
2=2,16,AN
|
||||
3=18,8,NU
|
||||
7=74,16,AN,04162720967
|
||||
|
||||
[Z]
|
||||
1=1,1,AN
|
||||
3=16,9,NU,1
|
||||
4=25,9,NU
|
52
li/li0600a.uml
Executable file
52
li/li0600a.uml
Executable file
@ -0,0 +1,52 @@
|
||||
#include "li0600a.h"
|
||||
|
||||
PAGE "Invio dichiarazioni d'intento" -1 -1 52 8
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "Anno "
|
||||
FLAGS "AU"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
LIST F_MESE 2 16
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
FLAGS "MD"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 4 "Percorso file di output:"
|
||||
END
|
||||
|
||||
STRING F_PATH 255 50
|
||||
BEGIN
|
||||
PROMPT 1 5 ""
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -14 -1 "~Invia"
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_PRINT 10 2
|
||||
BEGIN
|
||||
PROMPT -24 -1 "~Stampa"
|
||||
END
|
||||
|
||||
BUTTON F_RIPRISTINA 10 2
|
||||
BEGIN
|
||||
PROMPT -34 -1 "~Ripristina"
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -44 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
5
li/li0600b.h
Executable file
5
li/li0600b.h
Executable file
@ -0,0 +1,5 @@
|
||||
// ripristino lettere d'intento inviate
|
||||
// definizione campi per maschera li0600b
|
||||
|
||||
#define F_ANNO 101
|
||||
#define F_MESE 102
|
30
li/li0600b.uml
Executable file
30
li/li0600b.uml
Executable file
@ -0,0 +1,30 @@
|
||||
#include "li0600b.h"
|
||||
|
||||
PAGE "Ripristino dichiarazioni d'intento inviate" -1 -1 28 6
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "Anno "
|
||||
FLAGS "AU"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
LIST F_MESE 2 16
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mese "
|
||||
FLAGS "AM"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user