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; int _mese, _anno, _tipo;
TString16 _azienda, _dipendenza, _concessione; TString16 _azienda, _dipendenza, _concessione;
TString16 _profilo; TString16 _profilo; // Profilo base
long _codice; long _codice; // Codice profilo
bool _stampa_distinte, _aggiorna_codici, _definitiva, _contofis; bool _stampa_distinte, _aggiorna_codici, _definitiva;
protected: protected:
virtual bool create(); virtual bool create();
@ -32,6 +32,7 @@ protected:
virtual bool menu(MENU_TAG); virtual bool menu(MENU_TAG);
virtual void print(); virtual void print();
char frequenza_versamenti(long firm, int year) const;
int select(); int select();
bool print_deleghe(); bool print_deleghe();
void print_distinta(); void print_distinta();
@ -80,6 +81,7 @@ int TStampa_deleghe_IVA::select()
m.set(F_CAB, _dipendenza); m.set(F_CAB, _dipendenza);
if (m.run() != K_ENTER) if (m.run() != K_ENTER)
return 0; return 0;
_azienda = m.get(F_ABI); _azienda = m.get(F_ABI);
_dipendenza = m.get(F_CAB); _dipendenza = m.get(F_CAB);
@ -90,11 +92,10 @@ int TStampa_deleghe_IVA::select()
_definitiva = m.get_bool(F_DEFINITIVA); _definitiva = m.get_bool(F_DEFINITIVA);
_stampa_distinte = m.get_bool(F_DISTINTA); _stampa_distinte = m.get_bool(F_DISTINTA);
_aggiorna_codici = m.get_bool(F_AGGIORNA); _aggiorna_codici = m.get_bool(F_AGGIORNA);
_contofis = m.get_bool(F_CONTOFIS);
_profilo = "del"; _profilo = m.get(F_PROFILO);
if (_contofis) _profilo << "titcf"; _codice = m.get_long(F_CODICE);
_codice = m.get_long(F_PROFILO); const bool contofis = _profilo != "DEL";
const TDate pd(m.get(F_DATA)); const TDate pd(m.get(F_DATA));
printer().setdate(pd); printer().setdate(pd);
@ -119,7 +120,7 @@ int TStampa_deleghe_IVA::select()
if (_concessione.not_empty() && _concessione != con) continue; if (_concessione.not_empty() && _concessione != con) continue;
const bool cf = anag.get_bool("TITCF"); const bool cf = anag.get_bool("TITCF");
if (_contofis != cf) continue; if (contofis != cf) continue;
const long dit = _nditte->lfile().get_long("CODDITTA"); const long dit = _nditte->lfile().get_long("CODDITTA");
chiave.format("%05ld%04d%02d%d", dit, _anno, _mese, _tipo); 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() void TStampa_deleghe_IVA::print()
{ {
print_deleghe(); bool ok = yesno_box("Inserire il modulo prefincato nella stampante "
if (_stampa_distinte) "e confermare la stampa delle deleghe");
if (ok)
{ {
const bool ok = yesno_box("Inserire il modulo di carta nella stampante " print_deleghe();
"e confermare la stampa della distinta"); if (_stampa_distinte)
if (ok) print_distinta(); {
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() void TStampa_deleghe_IVA::print_distinta()
{ {
enum Tabulatori { TAB_DITTA = 0, TAB_SEDE = 52, TAB_PROV = 78, 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; codban = _azienda; codban << _dipendenza;
_banche->put("CODTAB", codban); _banche->put("CODTAB", codban);
_banche->read(); _banche->read();
CHECK(_banche->status() == NOERR, "E' sparita nel nulla la banca");
} }
TPrintrow row; TPrintrow row;
@ -283,10 +289,34 @@ void TStampa_deleghe_IVA::print_distinta()
printer().close(); 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 TStampa_deleghe_IVA::print_deleghe()
{ {
bool ok = printer().open(); bool ok = printer().open();
if (!ok) return FALSE;
TForm f(_profilo, _codice); TForm f(_profilo, _codice);
@ -299,37 +329,79 @@ bool TStampa_deleghe_IVA::print_deleghe()
{ {
TToken_string& r = _ditte->row(i); TToken_string& r = _ditte->row(i);
const long d = r.get_long(1); const long firm = r.get_long(1);
chiave.format("%05ld%04d%02d%d", d, _anno, _mese, _tipo); chiave.format("%05ld%04d%02d%d", firm, _anno, _mese, _tipo);
delega.put("CODTAB", chiave); delega.put("CODTAB", chiave);
cur.read(); // Posiziona il cursore 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("S7", _azienda);
delega.put("S8", _dipendenza); 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 ok = f.print(-1); // Stampa solo il record corrente
if (!ok) break; if (!ok) break;
bool scrivi = _aggiorna_codici && !cera; bool scrivi = _aggiorna_codici && (!cera_abi || !cera_conc || !cera_tribu);
if (_definitiva) if (_definitiva)
{ {
delega.put("B0", "X"); // Stampato delega.put("B0", "X"); // Stampato
scrivi = TRUE; scrivi = TRUE;
} }
if (!_aggiorna_codici && !cera) // Cancella codice se non richiesto if (!_aggiorna_codici) // Cancella codici se non richiesti
{ {
delega.put("S7", ""); if (!cera_abi)
delega.put("S8", ""); {
delega.put("S9", ""); delega.zero("S7");
scrivi = TRUE; delega.zero("S8");
scrivi = TRUE;
}
if (!cera_conc)
{
delega.zero("S9");
scrivi = TRUE;
}
if (!cera_tribu)
{
delega.zero("S6");
scrivi = TRUE;
}
} }
if (scrivi) if (scrivi)
delega.rewrite(); delega.rewrite();

View File

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

View File

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

View File

@ -21,10 +21,10 @@ class TStampa_deleghe_IVA : public TApplication
int _mese, _anno, _tipo; int _mese, _anno, _tipo;
TString16 _azienda, _dipendenza, _concessione; TString16 _azienda, _dipendenza, _concessione;
TString16 _profilo; TString16 _profilo; // Profilo base
long _codice; long _codice; // Codice profilo
bool _stampa_distinte, _aggiorna_codici, _definitiva, _contofis; bool _stampa_distinte, _aggiorna_codici, _definitiva;
protected: protected:
virtual bool create(); virtual bool create();
@ -32,6 +32,7 @@ protected:
virtual bool menu(MENU_TAG); virtual bool menu(MENU_TAG);
virtual void print(); virtual void print();
char frequenza_versamenti(long firm, int year) const;
int select(); int select();
bool print_deleghe(); bool print_deleghe();
void print_distinta(); void print_distinta();
@ -80,6 +81,7 @@ int TStampa_deleghe_IVA::select()
m.set(F_CAB, _dipendenza); m.set(F_CAB, _dipendenza);
if (m.run() != K_ENTER) if (m.run() != K_ENTER)
return 0; return 0;
_azienda = m.get(F_ABI); _azienda = m.get(F_ABI);
_dipendenza = m.get(F_CAB); _dipendenza = m.get(F_CAB);
@ -90,11 +92,10 @@ int TStampa_deleghe_IVA::select()
_definitiva = m.get_bool(F_DEFINITIVA); _definitiva = m.get_bool(F_DEFINITIVA);
_stampa_distinte = m.get_bool(F_DISTINTA); _stampa_distinte = m.get_bool(F_DISTINTA);
_aggiorna_codici = m.get_bool(F_AGGIORNA); _aggiorna_codici = m.get_bool(F_AGGIORNA);
_contofis = m.get_bool(F_CONTOFIS);
_profilo = "del"; _profilo = m.get(F_PROFILO);
if (_contofis) _profilo << "titcf"; _codice = m.get_long(F_CODICE);
_codice = m.get_long(F_PROFILO); const bool contofis = _profilo != "DEL";
const TDate pd(m.get(F_DATA)); const TDate pd(m.get(F_DATA));
printer().setdate(pd); printer().setdate(pd);
@ -119,7 +120,7 @@ int TStampa_deleghe_IVA::select()
if (_concessione.not_empty() && _concessione != con) continue; if (_concessione.not_empty() && _concessione != con) continue;
const bool cf = anag.get_bool("TITCF"); const bool cf = anag.get_bool("TITCF");
if (_contofis != cf) continue; if (contofis != cf) continue;
const long dit = _nditte->lfile().get_long("CODDITTA"); const long dit = _nditte->lfile().get_long("CODDITTA");
chiave.format("%05ld%04d%02d%d", dit, _anno, _mese, _tipo); 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() void TStampa_deleghe_IVA::print()
{ {
print_deleghe(); bool ok = yesno_box("Inserire il modulo prefincato nella stampante "
if (_stampa_distinte) "e confermare la stampa delle deleghe");
if (ok)
{ {
const bool ok = yesno_box("Inserire il modulo di carta nella stampante " print_deleghe();
"e confermare la stampa della distinta"); if (_stampa_distinte)
if (ok) print_distinta(); {
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() void TStampa_deleghe_IVA::print_distinta()
{ {
enum Tabulatori { TAB_DITTA = 0, TAB_SEDE = 52, TAB_PROV = 78, 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; codban = _azienda; codban << _dipendenza;
_banche->put("CODTAB", codban); _banche->put("CODTAB", codban);
_banche->read(); _banche->read();
CHECK(_banche->status() == NOERR, "E' sparita nel nulla la banca");
} }
TPrintrow row; TPrintrow row;
@ -283,10 +289,34 @@ void TStampa_deleghe_IVA::print_distinta()
printer().close(); 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 TStampa_deleghe_IVA::print_deleghe()
{ {
bool ok = printer().open(); bool ok = printer().open();
if (!ok) return FALSE;
TForm f(_profilo, _codice); TForm f(_profilo, _codice);
@ -299,37 +329,79 @@ bool TStampa_deleghe_IVA::print_deleghe()
{ {
TToken_string& r = _ditte->row(i); TToken_string& r = _ditte->row(i);
const long d = r.get_long(1); const long firm = r.get_long(1);
chiave.format("%05ld%04d%02d%d", d, _anno, _mese, _tipo); chiave.format("%05ld%04d%02d%d", firm, _anno, _mese, _tipo);
delega.put("CODTAB", chiave); delega.put("CODTAB", chiave);
cur.read(); // Posiziona il cursore 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("S7", _azienda);
delega.put("S8", _dipendenza); 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 ok = f.print(-1); // Stampa solo il record corrente
if (!ok) break; if (!ok) break;
bool scrivi = _aggiorna_codici && !cera; bool scrivi = _aggiorna_codici && (!cera_abi || !cera_conc || !cera_tribu);
if (_definitiva) if (_definitiva)
{ {
delega.put("B0", "X"); // Stampato delega.put("B0", "X"); // Stampato
scrivi = TRUE; scrivi = TRUE;
} }
if (!_aggiorna_codici && !cera) // Cancella codice se non richiesto if (!_aggiorna_codici) // Cancella codici se non richiesti
{ {
delega.put("S7", ""); if (!cera_abi)
delega.put("S8", ""); {
delega.put("S9", ""); delega.zero("S7");
scrivi = TRUE; delega.zero("S8");
scrivi = TRUE;
}
if (!cera_conc)
{
delega.zero("S9");
scrivi = TRUE;
}
if (!cera_tribu)
{
delega.zero("S6");
scrivi = TRUE;
}
} }
if (scrivi) if (scrivi)
delega.rewrite(); delega.rewrite();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -104,6 +104,7 @@ BEGIN
OUTPUT F_DESCRCAUS DESCR OUTPUT F_DESCRCAUS DESCR
OUTPUT F_CODREG REG OUTPUT F_CODREG REG
OUTPUT F_TIPODOC TIPODOC OUTPUT F_TIPODOC TIPODOC
OUTPUT F_TIPOMOV TIPOMOV
MESSAGE COPY,H_CODCAUS MESSAGE COPY,H_CODCAUS
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
ADD RUN cg0 -4 ADD RUN cg0 -4
@ -141,6 +142,13 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
NUMBER F_TIPOMOV 1
BEGIN
PROMPT 32 6 "Tipo movimento "
FIELD LF_MOV->TIPOMOV
FLAGS "H"
END
STRING F_NUMDOC 7 STRING F_NUMDOC 7
BEGIN BEGIN
PROMPT 57 6 "Documento n. " PROMPT 57 6 "Documento n. "
@ -202,7 +210,7 @@ END
NUMBER F_RIEPILOGO 5 NUMBER F_RIEPILOGO 5
BEGIN BEGIN
PROMPT 31 9 "Riepilogo fino al n. " PROMPT 25 9 "Riepilogo fino al n. "
HELP "Numero finale del documento ripilogativo di protocollo IVA" HELP "Numero finale del documento ripilogativo di protocollo IVA"
FIELD LF_MOV->UPROTIVA FIELD LF_MOV->UPROTIVA
NUM_EXPR {(#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)} NUM_EXPR {(#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)}
@ -317,9 +325,71 @@ BEGIN
ADD RUN cg0 -1 C ADD RUN cg0 -1 C
END END
LIST F_STATOPAIV 16 STRING F_COFICLIENTE 16
BEGIN 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" HELP "Codice ISO dello stato per la partita IVA"
ITEM " |Italia o extra CEE" ITEM " |Italia o extra CEE"
ITEM "BE|Belgio" ITEM "BE|Belgio"
@ -337,70 +407,6 @@ BEGIN
GROUP 1 GROUP 1
END 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 BUTTON F_OCCASEDIT 56
BEGIN BEGIN
PROMPT 1 11 "Dati anagrafici del cliente o fornitore occasionale" 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 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) if (err == NOERR)
{ {
_olddate = file().get("DATAREG"); _olddate = file().get("DATAREG"); // Memorizza data operazione per aggiornare i saldi
read_mov_rows(); read_mov_rows(); // Riempie i due record array
} }
return err; return err;
} }

View File

@ -113,25 +113,22 @@ bool TPrimanota_application::showpartite_handler(TMask_field& f, KEY k)
TSheet_field& s = app().cgs(); TSheet_field& s = app().cgs();
const int sel = s.selected(); const int sel = s.selected();
TToken_string& row = app().cgs().row(sel); TToken_string& row = app().cgs().row(sel);
if (row_type(row) <= ' ') 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)
{ {
const int currig = sel+1; 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);
const long curreg = app().curr_mask().get_long(F_NUMREG); if (ok)
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" TMask& m = f.mask();
"Si desidera correggerlo?", speso.sezione(), speso.valore().string("."), currig); const bool dare = speso.sezione() == 'D';
if (ok) m.set(101, dare ? speso.valore().string() : "");
{ m.set(102, dare ? "" : speso.valore().string());
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); return f.error_box("La contropartita della riga %d non e' completa", i+1);
empty = FALSE; 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 long numreg = f.mask().get_long(F_NUMREG);
const int currig = i+1; const int currig = i+1;
@ -1417,7 +1414,7 @@ bool TPrimanota_application::datacomp_handler(TMask_field& f, KEY key)
{ {
TMask& m = f.mask(); 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 const TDate dr(m.get(F_DATAREG)); // Data operazione
@ -1450,7 +1447,10 @@ bool TPrimanota_application::datacomp_handler(TMask_field& f, KEY key)
} }
} }
else 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; return TRUE;

View File

@ -201,15 +201,15 @@ void TPrimanota_application::set_scadenze(TMask& m)
bool TPrimanota_application::read_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 // should never happen but it doesn't hurt
if (_rel->cg(0).empty()) return FALSE; 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"); m.set(FS_RECALC, "X");
TPagamento& pag = pagamento(); TPagamento& pag = pagamento();
@ -218,27 +218,29 @@ bool TPrimanota_application::read_scadenze(TMask& m)
TLocalisamfile partita (LF_PARTITE); TLocalisamfile partita (LF_PARTITE);
TLocalisamfile scadenza(LF_SCADENZE); TLocalisamfile scadenza(LF_SCADENZE);
TString nreg(_rel->lfile().get("NUMREG")); const TRectype& testa = _rel->lfile().curr();
TString ndoc(_rel->lfile().get("NUMDOC")); const long nreg = testa.get_long("NUMREG");
TString tmov(_rel->lfile().get("TIPOMOV")); const TString16 ndoc(testa.get("NUMDOC"));
TDate ddoc(_rel->lfile().get_date("DATADOC")); const int tmov = testa.get_int("TIPOMOV");
TDate dreg(_rel->lfile().get_date("DATAREG")); const TDate ddoc(testa.get_date("DATADOC"));
TString reg (_rel->lfile().get("REG")); const TDate dreg(testa.get_date("DATAREG"));
TString protiva(_rel->lfile().get("PROTIVA")); const TString16 reg (testa.get("REG"));
TString codcaus(_rel->lfile().get("CODCAUS")); const long protiva = testa.get_long("PROTIVA");
TString codval (_rel->lfile().get("CODVAL")); const TString16 codcaus(testa.get("CODCAUS"));
TString cambio (_rel->lfile().get("CAMBIO")); const TString16 codval (testa.get("CODVAL"));
const real cambio(testa.get("CAMBIO"));
TString numpart = m.get(F_NUMRIF); const TString16 numpart(m.get(F_NUMRIF));
TString anno = m.get(F_ANNORIF); const int anno = m.get_int(F_ANNORIF);
char sezione = _rel->cg(0).get_char("SEZIONE"); // Dare/Avere const TRectype& prima = _rel->cg(0);
char tipocf = _rel->cg(0).get_char("TIPOC"); // Cliente || Fornitore || Uncazzo const char sezione = prima.get_char("SEZIONE"); // Dare/Avere
int gruppo = (tipocf == 'C' || tipocf == 'F') ? 0 : _rel->cg(0).get_char("GRUPPO"); const char tipocf = prima.get_char("TIPOC"); // Cliente || Fornitore || Uncazzo
int conto = (tipocf == 'C' || tipocf == 'F') ? 0 : _rel->cg(0).get_char("CONTO"); const int gruppo = (tipocf == 'C' || tipocf == 'F') ? 0 : prima.get_int("GRUPPO");
long sottoconto = _rel->cg(0).get_long("SOTTOCONTO"); const int conto = (tipocf == 'C' || tipocf == 'F') ? 0 : prima.get_int("CONTO");
int nriga = 1; const long sottoconto = prima.get_long("SOTTOCONTO");
int numrig = 1; const int nriga = 1;
const int numrig = 1;
partita.put(PART_ANNO, anno); partita.put(PART_ANNO, anno);
partita.put(PART_NUMPART, numpart); partita.put(PART_NUMPART, numpart);
@ -744,7 +746,7 @@ bool TPrimanota_application::edit_scadenze(int anno, const char* num)
if (k == K_ENTER) if (k == K_ENTER)
{ {
const int rata = a.row().get_int(0); 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); 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", riga.format ("@b@%dg%s@%dg%c %s @%dg%c @%dg%s",
_stampa_width == 132 ? DARE132-STUMB : DARE198-STUMB, _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, _stampa_width == 132 ? DARE132-3 : DARE198,
'D', 'D',
(const char *) dts, (const char *) dts,