Corretta barratura del libro giornale (spero)

Corretta gestione anno di esercizio nella maschera di query in prima nota
Aggiornata stampa deleghe IVA coi nuovi moduli


git-svn-id: svn://10.65.10.50/trunk@1526 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-06-28 16:33:53 +00:00
parent b72d034963
commit fb9082e9ed
14 changed files with 472 additions and 266 deletions

View File

@ -21,10 +21,10 @@ class TStampa_deleghe_IVA : public TApplication
int _mese, _anno, _tipo;
TString16 _azienda, _dipendenza, _concessione;
TString16 _profilo;
long _codice;
TString16 _profilo; // Profilo base
long _codice; // Codice profilo
bool _stampa_distinte, _aggiorna_codici, _definitiva, _contofis;
bool _stampa_distinte, _aggiorna_codici, _definitiva;
protected:
virtual bool create();
@ -32,6 +32,7 @@ protected:
virtual bool menu(MENU_TAG);
virtual void print();
char frequenza_versamenti(long firm, int year) const;
int select();
bool print_deleghe();
void print_distinta();
@ -80,6 +81,7 @@ int TStampa_deleghe_IVA::select()
m.set(F_CAB, _dipendenza);
if (m.run() != K_ENTER)
return 0;
_azienda = m.get(F_ABI);
_dipendenza = m.get(F_CAB);
@ -90,11 +92,10 @@ int TStampa_deleghe_IVA::select()
_definitiva = m.get_bool(F_DEFINITIVA);
_stampa_distinte = m.get_bool(F_DISTINTA);
_aggiorna_codici = m.get_bool(F_AGGIORNA);
_contofis = m.get_bool(F_CONTOFIS);
_profilo = "del";
if (_contofis) _profilo << "titcf";
_codice = m.get_long(F_PROFILO);
_profilo = m.get(F_PROFILO);
_codice = m.get_long(F_CODICE);
const bool contofis = _profilo != "DEL";
const TDate pd(m.get(F_DATA));
printer().setdate(pd);
@ -119,7 +120,7 @@ int TStampa_deleghe_IVA::select()
if (_concessione.not_empty() && _concessione != con) continue;
const bool cf = anag.get_bool("TITCF");
if (_contofis != cf) continue;
if (contofis != cf) continue;
const long dit = _nditte->lfile().get_long("CODDITTA");
chiave.format("%05ld%04d%02d%d", dit, _anno, _mese, _tipo);
@ -172,16 +173,20 @@ bool TStampa_deleghe_IVA::menu(MENU_TAG)
void TStampa_deleghe_IVA::print()
{
print_deleghe();
if (_stampa_distinte)
bool ok = yesno_box("Inserire il modulo prefincato nella stampante "
"e confermare la stampa delle deleghe");
if (ok)
{
const bool ok = yesno_box("Inserire il modulo di carta nella stampante "
"e confermare la stampa della distinta");
if (ok) print_distinta();
print_deleghe();
if (_stampa_distinte)
{
ok = yesno_box("Inserire il modulo in carta bianca nella stampante "
"e confermare la stampa della distinta");
if (ok) print_distinta();
}
}
}
void TStampa_deleghe_IVA::print_distinta()
{
enum Tabulatori { TAB_DITTA = 0, TAB_SEDE = 52, TAB_PROV = 78,
@ -195,6 +200,7 @@ void TStampa_deleghe_IVA::print_distinta()
codban = _azienda; codban << _dipendenza;
_banche->put("CODTAB", codban);
_banche->read();
CHECK(_banche->status() == NOERR, "E' sparita nel nulla la banca");
}
TPrintrow row;
@ -283,10 +289,34 @@ void TStampa_deleghe_IVA::print_distinta()
printer().close();
}
// Calcola frequenza dei versamenti IVA di una ditta
// Certified 99%
char TStampa_deleghe_IVA::frequenza_versamenti(long firm, int year) const
{
char freq = 'M';
TString16 key; key.format("%05ld%d", firm, year);
TTable lia("%LIA");
lia.put("CODTAB", key);
if (lia.read() != NOERR)
{
TLocalisamfile nditte(LF_NDITTE);
nditte.put("CODDITTA", firm);
nditte.read();
freq = nditte.get_char("FREQVIVA");
}
else
freq = lia.get_char("S7");
CHECK(freq == 'M' || freq == 'T', "Frequenza versamenti IVA assurda");
return freq;
}
bool TStampa_deleghe_IVA::print_deleghe()
{
bool ok = printer().open();
if (!ok) return FALSE;
TForm f(_profilo, _codice);
@ -299,37 +329,79 @@ bool TStampa_deleghe_IVA::print_deleghe()
{
TToken_string& r = _ditte->row(i);
const long d = r.get_long(1);
chiave.format("%05ld%04d%02d%d", d, _anno, _mese, _tipo);
const long firm = r.get_long(1);
chiave.format("%05ld%04d%02d%d", firm, _anno, _mese, _tipo);
delega.put("CODTAB", chiave);
cur.read(); // Posiziona il cursore
const bool cera = delega.get_int("S7") != 0;
if (!cera)
const bool cera_abi = _azienda.empty() || delega.get("S7").not_empty();
if (!cera_abi)
{
delega.put("S7", _azienda);
delega.put("S8", _dipendenza);
delega.put("S9", r.get(7));
delega.rewrite();
cur.repos(); // Riposiziona il cursore
}
const bool cera_conc = (*r.get(7) <= ' ') || delega.get("S9").not_empty();
if (!cera_conc)
delega.put("S9", r.get(7)); // Concessione
const bool cera_tribu = delega.get("S6").not_empty();
if (!cera_tribu) // Metti codice tributo
{
TString16 tributo;
switch(_tipo)
{
case 1:
if (frequenza_versamenti(firm, _anno) == 'T')
tributo << "603" << ((_mese-1)/3+1);
else
tributo << format("%02d", _mese);
break;
case 2:
tributo = "6099"; // Annuale
break;
case 7:
if (frequenza_versamenti(firm, _anno) == 'T')
tributo = "6035";
else
tributo = "6013";
break;
default:
tributo = "";
break;
}
delega.put("S6", tributo);
}
ok = f.print(-1); // Stampa solo il record corrente
if (!ok) break;
bool scrivi = _aggiorna_codici && !cera;
bool scrivi = _aggiorna_codici && (!cera_abi || !cera_conc || !cera_tribu);
if (_definitiva)
{
delega.put("B0", "X"); // Stampato
scrivi = TRUE;
}
if (!_aggiorna_codici && !cera) // Cancella codice se non richiesto
{
delega.put("S7", "");
delega.put("S8", "");
delega.put("S9", "");
scrivi = TRUE;
if (!_aggiorna_codici) // Cancella codici se non richiesti
{
if (!cera_abi)
{
delega.zero("S7");
delega.zero("S8");
scrivi = TRUE;
}
if (!cera_conc)
{
delega.zero("S9");
scrivi = TRUE;
}
if (!cera_tribu)
{
delega.zero("S6");
scrivi = TRUE;
}
}
if (scrivi)
delega.rewrite();

View File

@ -1,19 +1,19 @@
#define F_ABI 101
#define F_CAB 102
#define F_DESC_BAN 103
#define F_DATA 104
#define F_TIPO 105
#define F_ANNO 106
#define F_MESE 107
#define F_AGGIORNA 108
#define F_DISTINTA 109
#define F_DEFINITIVA 110
#define F_ABI 101
#define F_CAB 102
#define F_DESC_BAN 103
#define F_DATA 104
#define F_TIPO 105
#define F_ANNO 106
#define F_MESE 107
#define F_AGGIORNA 108
#define F_DISTINTA 109
#define F_DEFINITIVA 110
#define F_CONCESSIONE 120
#define F_DESC_CONC 121
#define F_SOLO_ABI 122
#define F_SOLO_CAB 123
#define F_DESC_SOLO_BAN 125
#define F_CONTOFIS 126
#define F_PROFILO 127
#define F_CODICE 127
#define F_PROFILO 128

View File

@ -2,14 +2,41 @@
PAGE "STAMPA DELEGHE IVA" -1 -1 72 16
LIST F_PROFILO 8 16
BEGIN
PROMPT 1 1 "Stampa "
ITEM "DEL|Delega"
MESSAGE ENABLE,F_CODICE|CLEAR,1@|ENABLE,2@
ITEM "DELTITCF|Delega C.F."
MESSAGE ENABLE,F_CODICE|CLEAR,2@|ENABLE,1@
ITEM "DISTITCF|Distinta C.F."
MESSAGE ENABLE,F_CODICE|CLEAR,2@|ENABLE,1@
ITEM "BOLTITCF|Bollettino C.F."
MESSAGE CLEAR,F_CODICE|CLEAR,2@|ENABLE,1@
END
NUMBER F_CODICE 5
BEGIN
PROMPT 53 1 "Profilo "
USE LF_FORM
INPUT TIPOPROF F_PROFILO SELECT
INPUT CODPROF F_CODICE
DISPLAY "Tipo@8" TIPOPROF
DISPLAY "Codice@8" CODPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_CODICE CODPROF
FLAGS "UZ"
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 70 5
BEGIN
PROMPT 1 1 "Stampa solo"
PROMPT 1 2 "Stampa solo"
END
NUMBER F_CONCESSIONE 3
BEGIN
PROMPT 2 2 "Concessione "
PROMPT 2 3 "Concessione "
HELP "Codice concessione in cui hanno residenza fiscale le ditte da gestire"
USE %UCC
FLAGS "Z"
@ -19,22 +46,24 @@ BEGIN
OUTPUT F_CONCESSIONE CODTAB
OUTPUT F_DESC_CONC S0
CHECKTYPE NORMAL
GROUP 1
END
STRING F_DESC_CONC 30
BEGIN
PROMPT 24 2 "Descrizione "
PROMPT 24 3 "Descrizione "
USE %UCC KEY 2
INPUT S0 F_DESC_CONC
DISPLAY "Descrizione@30" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CONCESSIONE
CHECKTYPE NORMAL
GROUP 1
END
NUMBER F_SOLO_ABI 5
BEGIN
PROMPT 2 3 "Codice ABI "
PROMPT 2 4 "Codice ABI "
HELP "Codice ABI della banca delle deleghe da stampare"
FLAGS "Z"
USE %BAN
@ -47,20 +76,22 @@ BEGIN
OUTPUT F_SOLO_CAB CODTAB[6,10]
OUTPUT F_DESC_SOLO_BAN S0
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_SOLO_CAB 5
BEGIN
PROMPT 50 3 "Codice CAB "
PROMPT 50 4 "Codice CAB "
HELP "Codice CAB della banca delle deleghe da stampare"
FLAGS "Z"
COPY ALL F_SOLO_ABI
CHECKTYPE NORMAL
GROUP 2
END
STRING F_DESC_SOLO_BAN 50
BEGIN
PROMPT 2 4 "Denominazione "
PROMPT 2 5 "Denominazione "
USE %BAN KEY 2
INPUT S0 F_DESC_SOLO_BAN
DISPLAY "Denominazione@50" S0
@ -68,16 +99,17 @@ BEGIN
DISPLAY "Dipendenza" CODTAB[6,10]
COPY OUTPUT F_SOLO_ABI
CHECKTYPE NORMAL
GROUP 2
END
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 6 "Intesta deleghe a"
PROMPT 1 7 "Intesta deleghe a"
END
NUMBER F_ABI 5
BEGIN
PROMPT 2 7 "Codice ABI "
PROMPT 2 8 "Codice ABI "
HELP "Codice ABI della banca per la presentazione della delega"
FLAGS "Z"
USE %BAN SELECT CODTAB[6,10]?="?????"
@ -88,38 +120,41 @@ BEGIN
OUTPUT F_CAB CODTAB[6,10]
OUTPUT F_DESC_BAN S0
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_CAB 5
BEGIN
PROMPT 50 7 "Codice CAB "
PROMPT 50 8 "Codice CAB "
HELP "Codice CAB della banca per la presentazione della delega"
FLAGS "Z"
COPY ALL F_ABI
CHECKTYPE NORMAL
WARNING "E' richiesto un codice CAB valido"
GROUP 2
END
STRING F_DESC_BAN 50
BEGIN
PROMPT 2 8 "Denominazione "
PROMPT 2 9 "Denominazione "
USE %BAN KEY 2 SELECT CODTAB[6,10]?="?????"
INPUT S0 F_DESC_BAN
COPY DISPLAY F_DESC_SOLO_BAN
COPY OUTPUT F_ABI
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 10 "Anno "
PROMPT 2 11 "Anno "
HELP "Anno di cui si vogliono stampare le deleghe"
FLAGS "A"
END
LIST F_MESE 2 11
BEGIN
PROMPT 18 10 "Mese "
PROMPT 18 11 "Mese "
HELP "Mese di cui si vogliono stampare le deleghe"
FLAGS "AM"
ITEM "13|Annuale" MESSAGE "2",F_TIPO
@ -127,7 +162,7 @@ END
LIST F_TIPO 1 24
BEGIN
PROMPT 2 11 "Tipo "
PROMPT 2 12 "Tipo "
HELP "Tipo di delega da stampare"
ITEM "1|Periodica" MESSAGE ENABLE,F_MESE
ITEM "2|Annuale" MESSAGE "13",F_MESE|DISABLE,F_MESE
@ -139,38 +174,26 @@ END
DATA F_DATA
BEGIN
PROMPT 2 12 "Data "
PROMPT 2 13 "Data "
HELP "Data da stampare sulle deleghe"
FLAGS "A"
END
STRING F_PROFILO 5
BEGIN
PROMPT 2 13 "Profilo "
FLAGS "UZ"
CHECKTYPE REQUIRED
END
BOOLEAN F_AGGIORNA
BEGIN
PROMPT 43 10 "Aggiorna codici banca"
PROMPT 43 11 "Aggiorna codici banca"
HELP "Scrive i codici banca sulle deleghe che non li riportano"
END
BOOLEAN F_DISTINTA
BEGIN
PROMPT 43 11 "Stampa distinta deleghe"
PROMPT 43 12 "Stampa distinta deleghe"
HELP "Stampa un riepilogo su carta normale delle deleghe stampate"
END
BOOLEAN F_DEFINITIVA
BEGIN
PROMPT 43 12 "Stampa definitiva"
END
BOOLEAN F_CONTOFIS
BEGIN
PROMPT 43 13 "Titolari Conto fiscale"
PROMPT 43 13 "Stampa definitiva"
END
BUTTON DLG_SELECT 9 2

View File

@ -21,10 +21,10 @@ class TStampa_deleghe_IVA : public TApplication
int _mese, _anno, _tipo;
TString16 _azienda, _dipendenza, _concessione;
TString16 _profilo;
long _codice;
TString16 _profilo; // Profilo base
long _codice; // Codice profilo
bool _stampa_distinte, _aggiorna_codici, _definitiva, _contofis;
bool _stampa_distinte, _aggiorna_codici, _definitiva;
protected:
virtual bool create();
@ -32,6 +32,7 @@ protected:
virtual bool menu(MENU_TAG);
virtual void print();
char frequenza_versamenti(long firm, int year) const;
int select();
bool print_deleghe();
void print_distinta();
@ -80,6 +81,7 @@ int TStampa_deleghe_IVA::select()
m.set(F_CAB, _dipendenza);
if (m.run() != K_ENTER)
return 0;
_azienda = m.get(F_ABI);
_dipendenza = m.get(F_CAB);
@ -90,11 +92,10 @@ int TStampa_deleghe_IVA::select()
_definitiva = m.get_bool(F_DEFINITIVA);
_stampa_distinte = m.get_bool(F_DISTINTA);
_aggiorna_codici = m.get_bool(F_AGGIORNA);
_contofis = m.get_bool(F_CONTOFIS);
_profilo = "del";
if (_contofis) _profilo << "titcf";
_codice = m.get_long(F_PROFILO);
_profilo = m.get(F_PROFILO);
_codice = m.get_long(F_CODICE);
const bool contofis = _profilo != "DEL";
const TDate pd(m.get(F_DATA));
printer().setdate(pd);
@ -119,7 +120,7 @@ int TStampa_deleghe_IVA::select()
if (_concessione.not_empty() && _concessione != con) continue;
const bool cf = anag.get_bool("TITCF");
if (_contofis != cf) continue;
if (contofis != cf) continue;
const long dit = _nditte->lfile().get_long("CODDITTA");
chiave.format("%05ld%04d%02d%d", dit, _anno, _mese, _tipo);
@ -172,16 +173,20 @@ bool TStampa_deleghe_IVA::menu(MENU_TAG)
void TStampa_deleghe_IVA::print()
{
print_deleghe();
if (_stampa_distinte)
bool ok = yesno_box("Inserire il modulo prefincato nella stampante "
"e confermare la stampa delle deleghe");
if (ok)
{
const bool ok = yesno_box("Inserire il modulo di carta nella stampante "
"e confermare la stampa della distinta");
if (ok) print_distinta();
print_deleghe();
if (_stampa_distinte)
{
ok = yesno_box("Inserire il modulo in carta bianca nella stampante "
"e confermare la stampa della distinta");
if (ok) print_distinta();
}
}
}
void TStampa_deleghe_IVA::print_distinta()
{
enum Tabulatori { TAB_DITTA = 0, TAB_SEDE = 52, TAB_PROV = 78,
@ -195,6 +200,7 @@ void TStampa_deleghe_IVA::print_distinta()
codban = _azienda; codban << _dipendenza;
_banche->put("CODTAB", codban);
_banche->read();
CHECK(_banche->status() == NOERR, "E' sparita nel nulla la banca");
}
TPrintrow row;
@ -283,10 +289,34 @@ void TStampa_deleghe_IVA::print_distinta()
printer().close();
}
// Calcola frequenza dei versamenti IVA di una ditta
// Certified 99%
char TStampa_deleghe_IVA::frequenza_versamenti(long firm, int year) const
{
char freq = 'M';
TString16 key; key.format("%05ld%d", firm, year);
TTable lia("%LIA");
lia.put("CODTAB", key);
if (lia.read() != NOERR)
{
TLocalisamfile nditte(LF_NDITTE);
nditte.put("CODDITTA", firm);
nditte.read();
freq = nditte.get_char("FREQVIVA");
}
else
freq = lia.get_char("S7");
CHECK(freq == 'M' || freq == 'T', "Frequenza versamenti IVA assurda");
return freq;
}
bool TStampa_deleghe_IVA::print_deleghe()
{
bool ok = printer().open();
if (!ok) return FALSE;
TForm f(_profilo, _codice);
@ -299,37 +329,79 @@ bool TStampa_deleghe_IVA::print_deleghe()
{
TToken_string& r = _ditte->row(i);
const long d = r.get_long(1);
chiave.format("%05ld%04d%02d%d", d, _anno, _mese, _tipo);
const long firm = r.get_long(1);
chiave.format("%05ld%04d%02d%d", firm, _anno, _mese, _tipo);
delega.put("CODTAB", chiave);
cur.read(); // Posiziona il cursore
const bool cera = delega.get_int("S7") != 0;
if (!cera)
const bool cera_abi = _azienda.empty() || delega.get("S7").not_empty();
if (!cera_abi)
{
delega.put("S7", _azienda);
delega.put("S8", _dipendenza);
delega.put("S9", r.get(7));
delega.rewrite();
cur.repos(); // Riposiziona il cursore
}
const bool cera_conc = (*r.get(7) <= ' ') || delega.get("S9").not_empty();
if (!cera_conc)
delega.put("S9", r.get(7)); // Concessione
const bool cera_tribu = delega.get("S6").not_empty();
if (!cera_tribu) // Metti codice tributo
{
TString16 tributo;
switch(_tipo)
{
case 1:
if (frequenza_versamenti(firm, _anno) == 'T')
tributo << "603" << ((_mese-1)/3+1);
else
tributo << format("%02d", _mese);
break;
case 2:
tributo = "6099"; // Annuale
break;
case 7:
if (frequenza_versamenti(firm, _anno) == 'T')
tributo = "6035";
else
tributo = "6013";
break;
default:
tributo = "";
break;
}
delega.put("S6", tributo);
}
ok = f.print(-1); // Stampa solo il record corrente
if (!ok) break;
bool scrivi = _aggiorna_codici && !cera;
bool scrivi = _aggiorna_codici && (!cera_abi || !cera_conc || !cera_tribu);
if (_definitiva)
{
delega.put("B0", "X"); // Stampato
scrivi = TRUE;
}
if (!_aggiorna_codici && !cera) // Cancella codice se non richiesto
{
delega.put("S7", "");
delega.put("S8", "");
delega.put("S9", "");
scrivi = TRUE;
if (!_aggiorna_codici) // Cancella codici se non richiesti
{
if (!cera_abi)
{
delega.zero("S7");
delega.zero("S8");
scrivi = TRUE;
}
if (!cera_conc)
{
delega.zero("S9");
scrivi = TRUE;
}
if (!cera_tribu)
{
delega.zero("S6");
scrivi = TRUE;
}
}
if (scrivi)
delega.rewrite();

View File

@ -1,19 +1,19 @@
#define F_ABI 101
#define F_CAB 102
#define F_DESC_BAN 103
#define F_DATA 104
#define F_TIPO 105
#define F_ANNO 106
#define F_MESE 107
#define F_AGGIORNA 108
#define F_DISTINTA 109
#define F_DEFINITIVA 110
#define F_ABI 101
#define F_CAB 102
#define F_DESC_BAN 103
#define F_DATA 104
#define F_TIPO 105
#define F_ANNO 106
#define F_MESE 107
#define F_AGGIORNA 108
#define F_DISTINTA 109
#define F_DEFINITIVA 110
#define F_CONCESSIONE 120
#define F_DESC_CONC 121
#define F_SOLO_ABI 122
#define F_SOLO_CAB 123
#define F_DESC_SOLO_BAN 125
#define F_CONTOFIS 126
#define F_PROFILO 127
#define F_CODICE 127
#define F_PROFILO 128

View File

@ -2,14 +2,41 @@
PAGE "STAMPA DELEGHE IVA" -1 -1 72 16
LIST F_PROFILO 8 16
BEGIN
PROMPT 1 1 "Stampa "
ITEM "DEL|Delega"
MESSAGE ENABLE,F_CODICE|CLEAR,1@|ENABLE,2@
ITEM "DELTITCF|Delega C.F."
MESSAGE ENABLE,F_CODICE|CLEAR,2@|ENABLE,1@
ITEM "DISTITCF|Distinta C.F."
MESSAGE ENABLE,F_CODICE|CLEAR,2@|ENABLE,1@
ITEM "BOLTITCF|Bollettino C.F."
MESSAGE CLEAR,F_CODICE|CLEAR,2@|ENABLE,1@
END
NUMBER F_CODICE 5
BEGIN
PROMPT 53 1 "Profilo "
USE LF_FORM
INPUT TIPOPROF F_PROFILO SELECT
INPUT CODPROF F_CODICE
DISPLAY "Tipo@8" TIPOPROF
DISPLAY "Codice@8" CODPROF
DISPLAY "Descrizione@50" DESC
OUTPUT F_CODICE CODPROF
FLAGS "UZ"
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 70 5
BEGIN
PROMPT 1 1 "Stampa solo"
PROMPT 1 2 "Stampa solo"
END
NUMBER F_CONCESSIONE 3
BEGIN
PROMPT 2 2 "Concessione "
PROMPT 2 3 "Concessione "
HELP "Codice concessione in cui hanno residenza fiscale le ditte da gestire"
USE %UCC
FLAGS "Z"
@ -19,22 +46,24 @@ BEGIN
OUTPUT F_CONCESSIONE CODTAB
OUTPUT F_DESC_CONC S0
CHECKTYPE NORMAL
GROUP 1
END
STRING F_DESC_CONC 30
BEGIN
PROMPT 24 2 "Descrizione "
PROMPT 24 3 "Descrizione "
USE %UCC KEY 2
INPUT S0 F_DESC_CONC
DISPLAY "Descrizione@30" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CONCESSIONE
CHECKTYPE NORMAL
GROUP 1
END
NUMBER F_SOLO_ABI 5
BEGIN
PROMPT 2 3 "Codice ABI "
PROMPT 2 4 "Codice ABI "
HELP "Codice ABI della banca delle deleghe da stampare"
FLAGS "Z"
USE %BAN
@ -47,20 +76,22 @@ BEGIN
OUTPUT F_SOLO_CAB CODTAB[6,10]
OUTPUT F_DESC_SOLO_BAN S0
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_SOLO_CAB 5
BEGIN
PROMPT 50 3 "Codice CAB "
PROMPT 50 4 "Codice CAB "
HELP "Codice CAB della banca delle deleghe da stampare"
FLAGS "Z"
COPY ALL F_SOLO_ABI
CHECKTYPE NORMAL
GROUP 2
END
STRING F_DESC_SOLO_BAN 50
BEGIN
PROMPT 2 4 "Denominazione "
PROMPT 2 5 "Denominazione "
USE %BAN KEY 2
INPUT S0 F_DESC_SOLO_BAN
DISPLAY "Denominazione@50" S0
@ -68,16 +99,17 @@ BEGIN
DISPLAY "Dipendenza" CODTAB[6,10]
COPY OUTPUT F_SOLO_ABI
CHECKTYPE NORMAL
GROUP 2
END
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 6 "Intesta deleghe a"
PROMPT 1 7 "Intesta deleghe a"
END
NUMBER F_ABI 5
BEGIN
PROMPT 2 7 "Codice ABI "
PROMPT 2 8 "Codice ABI "
HELP "Codice ABI della banca per la presentazione della delega"
FLAGS "Z"
USE %BAN SELECT CODTAB[6,10]?="?????"
@ -88,38 +120,41 @@ BEGIN
OUTPUT F_CAB CODTAB[6,10]
OUTPUT F_DESC_BAN S0
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_CAB 5
BEGIN
PROMPT 50 7 "Codice CAB "
PROMPT 50 8 "Codice CAB "
HELP "Codice CAB della banca per la presentazione della delega"
FLAGS "Z"
COPY ALL F_ABI
CHECKTYPE NORMAL
WARNING "E' richiesto un codice CAB valido"
GROUP 2
END
STRING F_DESC_BAN 50
BEGIN
PROMPT 2 8 "Denominazione "
PROMPT 2 9 "Denominazione "
USE %BAN KEY 2 SELECT CODTAB[6,10]?="?????"
INPUT S0 F_DESC_BAN
COPY DISPLAY F_DESC_SOLO_BAN
COPY OUTPUT F_ABI
CHECKTYPE NORMAL
GROUP 2
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 10 "Anno "
PROMPT 2 11 "Anno "
HELP "Anno di cui si vogliono stampare le deleghe"
FLAGS "A"
END
LIST F_MESE 2 11
BEGIN
PROMPT 18 10 "Mese "
PROMPT 18 11 "Mese "
HELP "Mese di cui si vogliono stampare le deleghe"
FLAGS "AM"
ITEM "13|Annuale" MESSAGE "2",F_TIPO
@ -127,7 +162,7 @@ END
LIST F_TIPO 1 24
BEGIN
PROMPT 2 11 "Tipo "
PROMPT 2 12 "Tipo "
HELP "Tipo di delega da stampare"
ITEM "1|Periodica" MESSAGE ENABLE,F_MESE
ITEM "2|Annuale" MESSAGE "13",F_MESE|DISABLE,F_MESE
@ -139,38 +174,26 @@ END
DATA F_DATA
BEGIN
PROMPT 2 12 "Data "
PROMPT 2 13 "Data "
HELP "Data da stampare sulle deleghe"
FLAGS "A"
END
STRING F_PROFILO 5
BEGIN
PROMPT 2 13 "Profilo "
FLAGS "UZ"
CHECKTYPE REQUIRED
END
BOOLEAN F_AGGIORNA
BEGIN
PROMPT 43 10 "Aggiorna codici banca"
PROMPT 43 11 "Aggiorna codici banca"
HELP "Scrive i codici banca sulle deleghe che non li riportano"
END
BOOLEAN F_DISTINTA
BEGIN
PROMPT 43 11 "Stampa distinta deleghe"
PROMPT 43 12 "Stampa distinta deleghe"
HELP "Stampa un riepilogo su carta normale delle deleghe stampate"
END
BOOLEAN F_DEFINITIVA
BEGIN
PROMPT 43 12 "Stampa definitiva"
END
BOOLEAN F_CONTOFIS
BEGIN
PROMPT 43 13 "Titolari Conto fiscale"
PROMPT 43 13 "Stampa definitiva"
END
BUTTON DLG_SELECT 9 2

View File

@ -564,9 +564,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
{
init_mask(m);
calcola_saldo(); // Verifica eventuali sbilanci contabili
if (iva() != nessuna_iva)
calcola_imp(); // Calcola totale imponibile ed imposte
else
if (iva() == nessuna_iva)
_partite.destroy();
}
@ -679,6 +677,7 @@ int TPrimanota_application::read(TMask& m)
c.add_to(riga, 4, 0x7); // Conto 105-110
}
calcola_imp(); // Calcola totale imponibile ed imposte
TString16 dt(m.get(F_DATAREG));
set_pagamento(m.get(F_CODPAG), dt);
if (!read_scadenze(m))

View File

@ -41,6 +41,7 @@
#define F_CAMBIO 127
#define F_VISVAL 128
#define F_PROVVISORIO 129
#define F_TIPOMOV 130
#define F_OCCASEDIT 131
#define F_SOLAIVA 132
#define F_CORRLIRE 133

View File

@ -72,7 +72,7 @@ BEGIN
HELP "Codice della causale generante l'operazione"
FLAGS "UZ"
FIELD CODCAUS
USE LF_CAUSALI KEY 1
USE LF_CAUSALI
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
@ -81,6 +81,7 @@ BEGIN
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR
OUTPUT F_TIPODOC TIPODOC
OUTPUT F_TIPOMOV TIPOMOV
CHECKTYPE NORMAL
ADD RUN cg0 -4
MESSAGE COPY,K_CODCAUS
@ -116,6 +117,13 @@ BEGIN
MESSAGE COPY,K_TIPODOC
END
NUMBER F_TIPOMOV 1
BEGIN
PROMPT 32 6 "Tipo movimento "
FIELD LF_MOV->TIPOMOV
FLAGS "H"
END
DATE F_DATADOC
BEGIN
PROMPT 1 7 "Data del documento "

View File

@ -104,6 +104,7 @@ BEGIN
OUTPUT F_DESCRCAUS DESCR
OUTPUT F_CODREG REG
OUTPUT F_TIPODOC TIPODOC
OUTPUT F_TIPOMOV TIPOMOV
MESSAGE COPY,H_CODCAUS
CHECKTYPE REQUIRED
ADD RUN cg0 -4
@ -141,6 +142,13 @@ BEGIN
FLAGS "D"
END
NUMBER F_TIPOMOV 1
BEGIN
PROMPT 32 6 "Tipo movimento "
FIELD LF_MOV->TIPOMOV
FLAGS "H"
END
STRING F_NUMDOC 7
BEGIN
PROMPT 57 6 "Documento n. "
@ -202,7 +210,7 @@ END
NUMBER F_RIEPILOGO 5
BEGIN
PROMPT 31 9 "Riepilogo fino al n. "
PROMPT 25 9 "Riepilogo fino al n. "
HELP "Numero finale del documento ripilogativo di protocollo IVA"
FIELD LF_MOV->UPROTIVA
NUM_EXPR {(#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)}
@ -317,9 +325,71 @@ BEGIN
ADD RUN cg0 -1 C
END
LIST F_STATOPAIV 16
STRING F_COFICLIENTE 16
BEGIN
PROMPT 1 11 "Partita IVA "
PROMPT 1 11 "C.F. "
HELP "Codice fiscale del cliente del documento"
GROUP 1
USE LF_CLIFO KEY 4
INPUT TIPOCF "C"
INPUT COFI F_COFICLIENTE
DISPLAY "Codice fiscale@16" COFI
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_CLIENTE
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
END
STRING F_COFIFORNITORE 16
BEGIN
PROMPT 1 11 "C.F. "
HELP "Codice fiscale del fornitore del documento"
GROUP 2
USE LF_CLIFO KEY 4
INPUT TIPOCF "F"
INPUT COFI F_COFIFORNITORE
COPY DISPLAY F_COFICLIENTE
COPY OUTPUT F_FORNITORE
CHECKTYPE NORMAL
ADD RUN cg0 -1 F
END
STRING F_PIVACLIENTE 12
BEGIN
PROMPT 28 11 "Partita IVA "
HELP "Partita IVA del cliente del documento"
GROUP 1
USE LF_CLIFO KEY 5
INPUT TIPOCF "C"
INPUT STATOPAIV F_STATOPAIV
INPUT PAIV F_PIVACLIENTE
DISPLAY "Partita IVA@12" PAIV
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_CLIENTE
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
END
STRING F_PIVAFORNITORE 12
BEGIN
PROMPT 28 11 "Partita IVA "
HELP "Partita IVA del fornitore del documento"
GROUP 2
USE LF_CLIFO KEY 5
INPUT TIPOCF "F"
INPUT STATOPAIV F_STATOPAIV
INPUT PAIV F_PIVAFORNITORE
COPY DISPLAY F_PIVACLIENTE
COPY OUTPUT F_FORNITORE
CHECKTYPE NORMAL
ADD RUN cg0 -1 F
END
LIST F_STATOPAIV 18
BEGIN
PROMPT 57 11 ""
HELP "Codice ISO dello stato per la partita IVA"
ITEM " |Italia o extra CEE"
ITEM "BE|Belgio"
@ -337,70 +407,6 @@ BEGIN
GROUP 1
END
STRING F_PIVACLIENTE 14
BEGIN
PROMPT 34 11 ""
HELP "Partita IVA del cliente del documento"
GROUP 1
USE LF_CLIFO KEY 5
INPUT TIPOCF "C"
INPUT STATOPAIV F_STATOPAIV
INPUT PAIV F_PIVACLIENTE
DISPLAY "Partita IVA@12" PAIV
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_CLIENTE
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
END
STRING F_PIVAFORNITORE 14
BEGIN
PROMPT 34 11 ""
HELP "Partita IVA del fornitore del documento"
GROUP 2
USE LF_CLIFO KEY 5
INPUT TIPOCF "F"
INPUT STATOPAIV F_STATOPAIV
INPUT PAIV F_PIVAFORNITORE
COPY DISPLAY F_PIVACLIENTE
COPY OUTPUT F_FORNITORE
CHECKTYPE NORMAL
ADD RUN cg0 -1 F
END
STRING F_COFICLIENTE 16
BEGIN
PROMPT 54 11 "C.F. "
HELP "Codice fiscale del cliente del documento"
GROUP 1
USE LF_CLIFO KEY 4
INPUT TIPOCF "C"
INPUT COFI F_COFICLIENTE
DISPLAY "Codice fiscale@16" COFI
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
COPY OUTPUT F_CLIENTE
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
END
STRING F_COFIFORNITORE 16
BEGIN
PROMPT 54 11 "C.F. "
HELP "Codice fiscale del fornitore del documento"
GROUP 2
USE LF_CLIFO KEY 4
INPUT TIPOCF "F"
INPUT COFI F_COFIFORNITORE
COPY DISPLAY F_COFICLIENTE
COPY OUTPUT F_FORNITORE
CHECKTYPE NORMAL
ADD RUN cg0 -1 F
END
BUTTON F_OCCASEDIT 56
BEGIN
PROMPT 1 11 "Dati anagrafici del cliente o fornitore occasionale"

View File

@ -81,11 +81,11 @@ int TMovimentoPN::read_mov_rows()
int TMovimentoPN::read(TIsamop op, TReclock lockop, TDate& atdate)
{
int err = file().read(op, lockop, atdate);
const int err = TRelation::read(op, lockop, atdate);
if (err == NOERR)
{
_olddate = file().get("DATAREG");
read_mov_rows();
_olddate = file().get("DATAREG"); // Memorizza data operazione per aggiornare i saldi
read_mov_rows(); // Riempie i due record array
}
return err;
}

View File

@ -113,25 +113,22 @@ bool TPrimanota_application::showpartite_handler(TMask_field& f, KEY k)
TSheet_field& s = app().cgs();
const int sel = s.selected();
TToken_string& row = app().cgs().row(sel);
if (row_type(row) <= ' ')
{
const int currig = sel+1;
const int currig = sel+1;
const long curreg = app().curr_mask().get_long(F_NUMREG);
TImporto importo; importo = row;
TImporto speso = app()._partite.importo_speso(curreg, currig);
if (importo != speso)
{
ok = yesno_box("L'importo dei pagamenti %c %s\ne' diverso dall'importo sulla riga %d.\n"
"Si desidera correggerlo?", speso.sezione(), speso.valore().string("."), currig);
if (ok)
{
TMask& m = f.mask();
const bool dare = speso.sezione() == 'D';
m.set(101, dare ? speso.valore().string() : "");
m.set(102, dare ? "" : speso.valore().string());
}
const long curreg = app().curr_mask().get_long(F_NUMREG);
TImporto importo; importo = row;
TImporto speso = app()._partite.importo_speso(curreg, currig);
if (importo != speso)
{
ok = yesno_box("L'importo dei pagamenti %c %s\ne' diverso dall'importo sulla riga %d.\n"
"Si desidera correggerlo?", speso.sezione(), speso.valore().string("."), currig);
if (ok)
{
TMask& m = f.mask();
const bool dare = speso.sezione() == 'D';
m.set(101, dare ? speso.valore().string() : "");
m.set(102, dare ? "" : speso.valore().string());
}
}
}
@ -558,7 +555,7 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
return f.error_box("La contropartita della riga %d non e' completa", i+1);
empty = FALSE;
if (app().iva() == nessuna_iva && app().is_saldaconto())
if (row_type(r) <= ' ' && app().iva() == nessuna_iva && app().is_saldaconto())
{
const long numreg = f.mask().get_long(F_NUMREG);
const int currig = i+1;
@ -1417,7 +1414,7 @@ bool TPrimanota_application::datacomp_handler(TMask_field& f, KEY key)
{
TMask& m = f.mask();
if ((key == K_TAB && m.is_running()) || key == K_ENTER)
if (key == K_TAB || key == K_ENTER)
{
const TDate dr(m.get(F_DATAREG)); // Data operazione
@ -1450,7 +1447,10 @@ bool TPrimanota_application::datacomp_handler(TMask_field& f, KEY key)
}
}
else
return f.error_box("La data %s non appartiene a nessun esercizio", data);
{
if (m.is_running())
return f.error_box("La data %s non appartiene a nessun esercizio", data);
}
}
return TRUE;

View File

@ -201,15 +201,15 @@ void TPrimanota_application::set_scadenze(TMask& m)
bool TPrimanota_application::read_scadenze(TMask& m)
{
real imponibile(0.0);
real imposta(0.0);
real spese(0.0);
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
// should never happen but it doesn't hurt
if (_rel->cg(0).empty()) return FALSE;
const real imponibile(m.get(F_IMPONIBILI));
const real imposta(m.get(F_IMPOSTE));
const real spese(0.0);
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
m.set(FS_RECALC, "X");
TPagamento& pag = pagamento();
@ -217,28 +217,30 @@ bool TPrimanota_application::read_scadenze(TMask& m)
TLocalisamfile partita (LF_PARTITE);
TLocalisamfile scadenza(LF_SCADENZE);
const TRectype& testa = _rel->lfile().curr();
const long nreg = testa.get_long("NUMREG");
const TString16 ndoc(testa.get("NUMDOC"));
const int tmov = testa.get_int("TIPOMOV");
const TDate ddoc(testa.get_date("DATADOC"));
const TDate dreg(testa.get_date("DATAREG"));
const TString16 reg (testa.get("REG"));
const long protiva = testa.get_long("PROTIVA");
const TString16 codcaus(testa.get("CODCAUS"));
const TString16 codval (testa.get("CODVAL"));
const real cambio(testa.get("CAMBIO"));
TString nreg(_rel->lfile().get("NUMREG"));
TString ndoc(_rel->lfile().get("NUMDOC"));
TString tmov(_rel->lfile().get("TIPOMOV"));
TDate ddoc(_rel->lfile().get_date("DATADOC"));
TDate dreg(_rel->lfile().get_date("DATAREG"));
TString reg (_rel->lfile().get("REG"));
TString protiva(_rel->lfile().get("PROTIVA"));
TString codcaus(_rel->lfile().get("CODCAUS"));
TString codval (_rel->lfile().get("CODVAL"));
TString cambio (_rel->lfile().get("CAMBIO"));
const TString16 numpart(m.get(F_NUMRIF));
const int anno = m.get_int(F_ANNORIF);
TString numpart = m.get(F_NUMRIF);
TString anno = m.get(F_ANNORIF);
char sezione = _rel->cg(0).get_char("SEZIONE"); // Dare/Avere
char tipocf = _rel->cg(0).get_char("TIPOC"); // Cliente || Fornitore || Uncazzo
int gruppo = (tipocf == 'C' || tipocf == 'F') ? 0 : _rel->cg(0).get_char("GRUPPO");
int conto = (tipocf == 'C' || tipocf == 'F') ? 0 : _rel->cg(0).get_char("CONTO");
long sottoconto = _rel->cg(0).get_long("SOTTOCONTO");
int nriga = 1;
int numrig = 1;
const TRectype& prima = _rel->cg(0);
const char sezione = prima.get_char("SEZIONE"); // Dare/Avere
const char tipocf = prima.get_char("TIPOC"); // Cliente || Fornitore || Uncazzo
const int gruppo = (tipocf == 'C' || tipocf == 'F') ? 0 : prima.get_int("GRUPPO");
const int conto = (tipocf == 'C' || tipocf == 'F') ? 0 : prima.get_int("CONTO");
const long sottoconto = prima.get_long("SOTTOCONTO");
const int nriga = 1;
const int numrig = 1;
partita.put(PART_ANNO, anno);
partita.put(PART_NUMPART, numpart);
@ -744,7 +746,7 @@ bool TPrimanota_application::edit_scadenze(int anno, const char* num)
if (k == K_ENTER)
{
const int rata = a.row().get_int(0);
int nrig = a.row().get_int(4); // Numero riga pagamento corrente
int nrig = a.row().get_int(5); // Numero riga pagamento corrente
TRectype part(LF_PARTITE);

View File

@ -561,7 +561,7 @@ void CG3400_application::preprocess_footer()
riga.format ("@b@%dg%s@%dg%c %s @%dg%c @%dg%s",
_stampa_width == 132 ? DARE132-STUMB : DARE198-STUMB,
_nuovo_mese ? "Totale progressivi generali " : "A riportare ",
(_nuovo_mese && !_forza_ariportare) ? "Totale progressivi generali " : "A riportare ",
_stampa_width == 132 ? DARE132-3 : DARE198,
'D',
(const char *) dts,
@ -938,13 +938,13 @@ print_action CG3400_application::postprocess_page(int file, int counter)
righe_iva_settate = setta_righe_valuta(righe_iva_settate);
}
_cur->save_status();
_cur->save_status();
++(*_cur);
_data_succ = _cur->file(LF_MOV).get_date(MOV_DATAREG);
_mese_succ = _data_succ.month();
--(*_cur);
_cur->restore_status();
_cur->restore_status();
if (_data_corr != _data_succ || _cur->pos() == _cur->items()-1)
{
_nuovo_mese = (_mese_succ != _mese_corr);