Patch level : 12.0 846

Files correlati     : cg1.exe cg2.exe cg4.exe f23.dir f23.trr cg1500a.msk cg2100b.msk cg2100c.msk cg2200a.msk cg5500b.msk
Commento            :

Aggiunta data competenza costi ricavi

Issue #15
Aggiunto tipo provvisorio "B" Bilancio costi/ricavi (Prima nota, Stampa Bilancio, Apertura Chiusura conti)
This commit is contained in:
AlexBonazzi 2019-07-02 00:03:25 +02:00
parent 8a2cd7296e
commit b8d551c339
32 changed files with 264 additions and 135 deletions

BIN
lib/AgaLib.lib Normal file

Binary file not shown.

BIN
lib/Uno.lib Normal file

Binary file not shown.

BIN
lib/cb6.exp Normal file

Binary file not shown.

BIN
lib/cb6.lib Normal file

Binary file not shown.

BIN
lib/gfm.exp Normal file

Binary file not shown.

BIN
lib/gfm.lib Normal file

Binary file not shown.

BIN
lib/pdflib.exp Normal file

Binary file not shown.

BIN
lib/pdflib.lib Normal file

Binary file not shown.

BIN
lib/pdflibwrap.lib Normal file

Binary file not shown.

BIN
lib/vedoc.lib Normal file

Binary file not shown.

BIN
lib/vedocext.lib Normal file

Binary file not shown.

BIN
lib/xi.exp Normal file

Binary file not shown.

BIN
lib/xi.lib Normal file

Binary file not shown.

BIN
lib/xvaga.exp Normal file

Binary file not shown.

BIN
lib/xvaga.lib Normal file

Binary file not shown.

BIN
lib/xvapp.lib Normal file

Binary file not shown.

View File

@ -1449,7 +1449,7 @@ bool TStampa_bilanci::bil_verifica()
_mov_ap = FALSE; _mov_ap = FALSE;
//modifica del 19/06/95 //modifica del 19/06/95
movimentato = calcola(g,c,s); movimentato = calcola(g,c,s);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
{ {
if (movimentato) if (movimentato)
{ {
@ -1472,7 +1472,7 @@ bool TStampa_bilanci::bil_verifica()
{ {
if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)) if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5))
{ {
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov == 2); saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/95 //modifica del 21/11/95
if (saldo_iniziale > ZERO) if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale; _saldo_ini_dare = saldo_iniziale;
@ -1502,7 +1502,7 @@ bool TStampa_bilanci::bil_verifica()
{ {
if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)) if (_annoes != 0 && (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5))
{ {
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov == 2); saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/95 //modifica del 21/11/95
if (saldo_iniziale > ZERO) if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale; _saldo_ini_dare = saldo_iniziale;
@ -1543,7 +1543,7 @@ bool TStampa_bilanci::bil_verifica()
{ {
movimentato = sld.ultima_immissione_verifica(_annoes,g,c,s,indbil_conto,_stampa_mov_prov); movimentato = sld.ultima_immissione_verifica(_annoes,g,c,s,indbil_conto,_stampa_mov_prov);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
{ {
if (movimentato) if (movimentato)
saldo_iniziale = sld.saldoini(); saldo_iniziale = sld.saldoini();
@ -1551,7 +1551,7 @@ bool TStampa_bilanci::bil_verifica()
{ {
if (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5) if (indbil_conto == 1 || indbil_conto == 2 || indbil_conto == 5)
{ {
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE,_stampa_mov_prov == 2); saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,FALSE,_stampa_mov_prov);
if (_stampav == 1 && sld.significativo()) if (_stampav == 1 && sld.significativo())
movimentato = TRUE; movimentato = TRUE;
} }
@ -1753,10 +1753,10 @@ bool TStampa_bilanci::calcola(int g, int c, long s)
const char provvis = mov.get_char(MOV_PROVVIS); const char provvis = mov.get_char(MOV_PROVVIS);
const TDate datacomp = mov.get_date(MOV_DATACOMP); const TDate datacomp = mov.get_date(MOV_DATACOMP);
if (_stampa_mov_prov == 1 && provvis != '\0') //bilancio normale (non comprende i provvisori) if (_stampa_mov_prov == 0x1 && provvis != '\0') //bilancio normale (non comprende i provvisori)
continue; continue;
if (_stampa_mov_prov == 3 && provvis == '\0') //bilancio dei soli provvisori if (!(_stampa_mov_prov & 0x1) && provvis == '\0') //bilancio dei soli provvisori
continue; continue;
const TString& codcaus = mov.get(MOV_CODCAUS); const TString& codcaus = mov.get(MOV_CODCAUS);
@ -1853,7 +1853,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
//modifica del 19/06. Vedi appunti per capire //modifica del 19/06. Vedi appunti per capire
bool movimentato = calcola(g,c,s); bool movimentato = calcola(g,c,s);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
{ {
if (movimentato) if (movimentato)
{ {
@ -1879,7 +1879,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
{ {
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5)) if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{ {
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2); saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/1995 //modifica del 21/11/1995
if (saldo_iniziale > ZERO) if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale; _saldo_ini_dare = saldo_iniziale;
@ -1909,7 +1909,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
{ {
if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5)) if (_annoes != 0 && (ib == 1 || ib == 2 || ib == 5))
{ {
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2); saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
//modifica del 21/11/1995 //modifica del 21/11/1995
if (saldo_iniziale > ZERO) if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale; _saldo_ini_dare = saldo_iniziale;
@ -1956,7 +1956,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
//modifica del 31/03/1995 //modifica del 31/03/1995
bool movimentato = sld.ultima_immissione_verifica(_annoes,g,c,s,ib,_stampa_mov_prov); bool movimentato = sld.ultima_immissione_verifica(_annoes,g,c,s,ib,_stampa_mov_prov);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
{ {
saldo_iniziale = sld.saldoini(); saldo_iniziale = sld.saldoini();
if (!movimentato) if (!movimentato)
@ -1967,7 +1967,7 @@ bool TStampa_bilanci::ricerca_cf(int g,int c,char tipocf,int ib, real& saldo_fin
//solo se e' un conto patrimoniale //solo se e' un conto patrimoniale
if (ib == 1 || ib == 2 || ib == 5) if (ib == 1 || ib == 2 || ib == 5)
{ {
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov==2); saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,s,false,_stampa_mov_prov);
movimentato = sld.significativo(); movimentato = sld.significativo();
} }
} }
@ -2331,12 +2331,12 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
//modifica del 19/06/95 //modifica del 19/06/95
_indbil = cerca_indbil(g,c); _indbil = cerca_indbil(g,c);
movimentato = calcola(g,c,codcf); movimentato = calcola(g,c,codcf);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
if (!movimentato) if (!movimentato)
if (_indbil == 1 || _indbil == 2 || _indbil == 5) if (_indbil == 1 || _indbil == 2 || _indbil == 5)
if (_annoes != 0) //cioe' se sto ragionando per competenza if (_annoes != 0) //cioe' se sto ragionando per competenza
{ {
saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov==2); saldo_iniziale = sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov);
if (saldo_iniziale > ZERO) if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale; _saldo_ini_dare = saldo_iniziale;
else _saldo_ini_avere = -saldo_iniziale; else _saldo_ini_avere = -saldo_iniziale;
@ -2359,11 +2359,11 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
if (saldi.read() == NOERR) if (saldi.read() == NOERR)
{ {
const real s = saldi.get_real(SLD_SALDO); const real s = saldi.get_real(SLD_SALDO);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
if (_indbil == 1 || _indbil == 2 || _indbil == 5) if (_indbil == 1 || _indbil == 2 || _indbil == 5)
if (s.is_zero() && _annoes != 0) //competenza!!! if (s.is_zero() && _annoes != 0) //competenza!!!
{ {
saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov==2); saldo_iniziale += sld.saldofin_esprec(_annoes,g,c,codcf,false,_stampa_mov_prov);
//modifica del 21/11/1995 //modifica del 21/11/1995
if (saldo_iniziale > ZERO) if (saldo_iniziale > ZERO)
_saldo_ini_dare = saldo_iniziale; _saldo_ini_dare = saldo_iniziale;
@ -2398,10 +2398,10 @@ void TStampa_bilanci::leggi_clifo(const TArray& gccf)
_indbil = cerca_indbil(g,c); _indbil = cerca_indbil(g,c);
movimentato = sld.ultima_immissione_verifica(anno,g,c,codcf,_indbil,_stampa_mov_prov); movimentato = sld.ultima_immissione_verifica(anno,g,c,codcf,_indbil,_stampa_mov_prov);
if (_stampa_mov_prov != 3) if (_stampa_mov_prov & 0x1)
if (!movimentato /* && _stampac!=1 */ ) if (!movimentato /* && _stampac!=1 */ )
if (_indbil == 1 || _indbil == 2 || _indbil == 5) if (_indbil == 1 || _indbil == 2 || _indbil == 5)
saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,false,_stampa_mov_prov==2); saldo_iniziale = sld.saldofin_esprec(anno,g,c,codcf,false,_stampa_mov_prov);
if (movimentato) if (movimentato)
saldo_iniziale = sld.saldoini(); saldo_iniziale = sld.saldoini();
@ -3787,15 +3787,19 @@ bool TStampa_bilanci::set_print(int)
m.set_handler (F_DATALIM, mask_datalim); m.set_handler (F_DATALIM, mask_datalim);
m.set_handler (F_DATADA, mask_date); m.set_handler (F_DATADA, mask_date);
m.set_handler (F_DATAA, mask_date); m.set_handler (F_DATAA, mask_date);
m.set_handler (F_ANNO, mask_anno); m.set_handler (F_ANNO, mask_anno);
m.set(F_NORMALI, "X");
while (m.run() == K_ENTER) while (m.run() == K_ENTER)
{ {
_annoes = m.get_int(F_ANNO); _annoes = m.get_int(F_ANNO);
_bilancio = m.get_int(F_BILANCIO); _bilancio = m.get_int(F_BILANCIO);
_data = m.get(F_DATASTAMPA); _data = m.get(F_DATASTAMPA);
_stampa_mov_prov = m.get_int(F_STAMPAMPROV); _stampa_mov_prov = m.get_bool(F_NORMALI) ? 0x1 : 0; // qui
_quadratura = m.get_bool(F_QUADRATURA); _stampa_mov_prov |= m.get_bool(F_PROVVM) ? 0x2 : 0; // qui
_stampa_mov_prov |= m.get_bool(F_PROVVB) ? 0x4 : 0; // qui
_stampa_mov_prov |= m.get_bool(F_PROVVC) ? 0x8 : 0; // qui
_quadratura = m.get_bool(F_QUADRATURA);
_hide_clifo = m.get_bool(F_HIDE_CLIFO); _hide_clifo = m.get_bool(F_HIDE_CLIFO);
_noseparator = m.get_bool(F_SEPARATOR); _noseparator = m.get_bool(F_SEPARATOR);
#ifdef CONT_SEP #ifdef CONT_SEP
@ -3905,9 +3909,9 @@ int TStampa_bilanci::stampa_intestazione_ditta()
//_stampa_mov_provv(1=normale,2=globale,3=solo provvisori) //_stampa_mov_provv(1=normale,2=globale,3=solo provvisori)
const char* tipoprovv = ""; const char* tipoprovv = "";
if (_stampa_mov_prov == 2) if (_stampa_mov_prov > 0x1)
tipoprovv = TR("GLOBALE"); tipoprovv = TR("GLOBALE");
if (_stampa_mov_prov == 3) if (!(_stampa_mov_prov & 0x1))
tipoprovv = TR("PROVVISORIO"); tipoprovv = TR("PROVVISORIO");
//l'uso della overwrite e' una vera vaccata! //l'uso della overwrite e' una vera vaccata!
riga.overwrite (format("%s %s %s %s", TR("Partita iva"), (const char*)_paiva, TR("Codice fiscale"), (const char*)_cofi)); riga.overwrite (format("%s %s %s %s", TR("Partita iva"), (const char*)_paiva, TR("Codice fiscale"), (const char*)_cofi));

View File

@ -20,7 +20,7 @@
#define F_STAMPAC 119 #define F_STAMPAC 119
#define F_ORDINAMENTO 120 #define F_ORDINAMENTO 120
#define F_MODULO 121 #define F_MODULO 121
#define F_STAMPAMPROV 122 #define F_NORMALI 122
#define F_QUADRATURA 123 #define F_QUADRATURA 123
#define F_SEPARATOR 124 #define F_SEPARATOR 124
#define F_PICTURE 125 #define F_PICTURE 125
@ -34,8 +34,11 @@
#define F_A_SOTTOCONTO 138 #define F_A_SOTTOCONTO 138
#define F_A_DESCRIZIONE 139 #define F_A_DESCRIZIONE 139
#define F_PRINT_FULL_CODE 140 #define F_PRINT_FULL_CODE 140
#define F_PROVVM 141
#define F_PROVVB 142
#define F_PROVVC 143
#ifdef CONT_SEP #ifdef CONT_SEP
#define F_CONTSEP 141 #define F_CONTSEP 144
#endif #endif
#endif // __CG1500_H #endif // __CG1500_H

View File

@ -166,12 +166,24 @@ BEGIN
PROMPT 60 10 "" PROMPT 60 10 ""
END END
LIST F_STAMPAMPROV 15 BOOLEAN F_NORMALI
BEGIN BEGIN
PROMPT 2 11 "Bilancio " PROMPT 2 11 "Movimenti : Normali"
ITEM "1|Normale" END
ITEM "2|Globale"
ITEM "3|Solo provvisori" BOOLEAN F_PROVVM
BEGIN
PROMPT 30 11 "Provv.Manuali"
END
BOOLEAN F_PROVVB
BEGIN
PROMPT 50 11 "Provv.Bilancio"
END
BOOLEAN F_PROVVC
BEGIN
PROMPT 70 11 "Provv.Cespiti"
END END
LIST F_MODULO 1 12 LIST F_MODULO 1 12

View File

@ -46,6 +46,7 @@ public:
TDate _datadoc, _datareg; TDate _datadoc, _datareg;
TString8 _numdoc; TString8 _numdoc;
real _totale; real _totale;
long _movcoll;
TString4 _causale_originale; TString4 _causale_originale;
TipoIVA _iva_originale; TipoIVA _iva_originale;
}; };
@ -184,7 +185,10 @@ TMask* TPrimanota_application::load_mask(int n)
// Se esiste lo sheet delle rate // Se esiste lo sheet delle rate
if (is_fattura()) if (is_fattura())
{ {
m->set_handler(F_DATACOMPCR, datacompcr_handler);
TSheet_field& ps = m->sfield(FS_RATESHEET); TSheet_field& ps = m->sfield(FS_RATESHEET);
ps.set_notify(pag_notify); ps.set_notify(pag_notify);
m->set_handler(FS_RATESHEET, pag_sheet_handler); m->set_handler(FS_RATESHEET, pag_sheet_handler);
m->set_handler(F_ANNORIF, annorif_handler); m->set_handler(F_ANNORIF, annorif_handler);
@ -672,6 +676,10 @@ void TPrimanota_application::init_mask(TMask& m)
TEdit_field& rc = m.efield(F_REVCHARGE); TEdit_field& rc = m.efield(F_REVCHARGE);
rc.show(cc.iva() == iva_acquisti && cc.reverse_charge()); rc.show(cc.iva() == iva_acquisti && cc.reverse_charge());
m.efield(F_MOVCOLL).show((cc.iva() == iva_acquisti && cc.reverse_charge()) ||
(cc.iva() == iva_vendite && cc.causale_reg_iva()));
// m.efield(F_GOCOLL).show((c.iva() == iva_acquisti && c.reverse_charge()) ||
// (c.iva() == iva_vendite && c.causale_reg_iva()));
activate_split_payment(m); activate_split_payment(m);
} }
@ -841,6 +849,15 @@ bool TPrimanota_application::get_next_key(TToken_string& tmp)
else else
tmp.add(m.get(F_DATACOMP)); tmp.add(m.get(F_DATACOMP));
if (_iva != nessuna_iva)
{
tmp.add(F_DATACOMPCR); // Ricopia data competenza
if (m.field(F_DATACOMPCR).empty())
tmp.add(m.get(F_DATAREG));
else
tmp.add(m.get(F_DATACOMPCR));
}
if (_iva == iva_vendite) if (_iva == iva_vendite)
{ {
tmp.add(F_DATADOC); tmp.add(m.get(F_DATADOC)); // Ricopia data documento tmp.add(F_DATADOC); tmp.add(m.get(F_DATADOC)); // Ricopia data documento
@ -915,7 +932,11 @@ void TPrimanota_application::init_insert_mode(TMask& m)
if (_automatico->_step == 1) if (_automatico->_step == 1)
genera_automatico(_automatico->_tipo, NULL); genera_automatico(_automatico->_tipo, NULL);
else else
{
m.reset(F_DATACOMP); // Azzera quasi sempre la data di competenza m.reset(F_DATACOMP); // Azzera quasi sempre la data di competenza
if (m.find_by_id(F_DATACOMPCR))
m.reset(F_DATACOMPCR);
}
// La preservo solo per l'incasso immediato // La preservo solo per l'incasso immediato
_as400 = false; // Un movimento nuovo non puo' essere trasferito da AS400 _as400 = false; // Un movimento nuovo non puo' essere trasferito da AS400
@ -1145,7 +1166,7 @@ int TPrimanota_application::read(TMask& m)
} }
_saldi.reset(); // Azzera saldi _saldi.reset(); // Azzera saldi
_saldi.set_movprovv(_rel->curr().get_char(MOV_PROVVIS) > ' '); _saldi.set_movprovv(_rel->curr().get_char(MOV_PROVVIS));
tiposal tsal = causale().apertura() ? apertura : tiposal tsal = causale().apertura() ? apertura :
(causale().chiusura() ? chiusura : normale); (causale().chiusura() ? chiusura : normale);
_saldi.set_tipo_saldo(tsal); _saldi.set_tipo_saldo(tsal);
@ -1268,7 +1289,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
const TDate datareg(m.get(F_DATAREG)); const TDate datareg(m.get(F_DATAREG));
const int annoes = m.get_int(F_ANNOES); const int annoes = m.get_int(F_ANNOES);
_saldi.set_movprovv(m.get(F_PROVVISORIO)[0] > ' '); _saldi.set_movprovv(m.get(F_PROVVISORIO)[0]);
tiposal tsal = causale().apertura() ? apertura : tiposal tsal = causale().apertura() ? apertura :
(causale().chiusura() ? chiusura : normale); (causale().chiusura() ? chiusura : normale);
_saldi.set_tipo_saldo(tsal); _saldi.set_tipo_saldo(tsal);
@ -1467,8 +1488,49 @@ bool TPrimanota_application::has_tot_doc(TToken_string& fppro_keys)
return tot.full() && real(tot) != 0; return tot.full() && real(tot) != 0;
} }
int TPrimanota_application::controlli_f1(const TMask& m) void TPrimanota_application::find_movcoll(const long numreg)
{ {
const TCausale& cau = cached_causale(_rel->file().get(MOV_CODCAUS), _rel->file().get_int(MOV_ANNOES));
const TString4 cau_reg = cau.causale_reg_iva();
TMask * m = mask(CGMaskType::_iva);
TToken_string key(m->get(F_CLIFO)); key.add(m->get_long(F_CODCLIFOR));
const long codcli = cache().get(LF_CLIFO, key).get_long(CLI_CODCFASS);
TString query("USE ");
query << LF_MOV << " KEY 1 SELECT " << MOV_CODCAUS << "==\"" << cau_reg << "\"\nFROM " << MOV_NUMREG << "==" << numreg;
TISAM_recordset mov(query);
long movcoll = 0L;
for (bool ok = mov.move_first(); ok ; ok = mov.move_next())
{
TRectype& curr = (TRectype&) mov.cursor()->curr();
const long movcoll_found = curr.get_long(MOV_MOVCOLL);
if ((curr.get_long(MOV_CODCF) == codcli) && ((movcoll_found == 0L) || (movcoll_found == numreg)))
{
movcoll = mov.get(MOV_NUMREG).as_int();
curr.put(MOV_MOVCOLL, numreg);
curr.rewrite(TLocalisamfile(LF_MOV));
break;
}
}
if (movcoll != 0L)
m->set(F_MOVCOLL, movcoll);
}
void TPrimanota_application::set_movcoll(const long movcoll, const long numreg)
{
TRectype mov(LF_MOV);
mov.put(MOV_NUMREG, movcoll);
if (mov.read(TLocalisamfile(LF_MOV)) == NOERR)
{
mov.put(MOV_MOVCOLL, numreg);
const int err = mov.rewrite(TLocalisamfile(LF_MOV));
}
}
int TPrimanota_application::controlli_f1(const TMask& m){
if (m.find_by_id(F_PROKEY) != NULL && m.get(F_PROKEY).full() && has_f1_db((TMask*)&m) && fp_db().sq_is_connect() && check_causale(m.get(F_CODCAUS))) if (m.find_by_id(F_PROKEY) != NULL && m.get(F_PROKEY).full() && has_f1_db((TMask*)&m) && fp_db().sq_is_connect() && check_causale(m.get(F_CODCAUS)))
{ {
TToken_string keys(m.get(F_PROKEY), ';'); TToken_string keys(m.get(F_PROKEY), ';');
@ -1522,8 +1584,17 @@ int TPrimanota_application::write(const TMask& m)
} }
const int err = _rel->write(true); const int err = _rel->write(true);
if (err == NOERR) if (err == NOERR)
{ {
if (cached_causale(_rel->file().get(MOV_CODCAUS), _rel->file().get_int(MOV_ANNOES)).regolarizzazione())
{
const long movcoll = _rel->file().get_long(MOV_MOVCOLL);
const long numreg = _rel->file().get_long(MOV_NUMREG);
if (movcoll != 0L)
set_movcoll(movcoll, numreg);
}
write_fppro(); write_fppro();
_saldi.registra(); _saldi.registra();
@ -1579,7 +1650,7 @@ int TPrimanota_application::write(const TMask& m)
if (tipauto <= 1) if (tipauto <= 1)
{ {
causauto = causale().causale_collegata(); causauto = causale().causale_collegata();
if (cached_causale(causauto, causale().reg().year()).ril_fat_em_ric()) if (causauto.full() && cached_causale(causauto, causale().reg().year()).ril_fat_em_ric())
tipauto = 4; tipauto = 4;
} }
if (tipauto <= 0) if (tipauto <= 0)
@ -1609,6 +1680,13 @@ int TPrimanota_application::write(const TMask& m)
int TPrimanota_application::rewrite(const TMask& m) int TPrimanota_application::rewrite(const TMask& m)
{ {
if (cached_causale(_rel->file().get(MOV_CODCAUS), _rel->file().get_int(MOV_ANNOES)).reverse_charge())
{
const long movcoll = m.get_long(F_MOVCOLL);
if (movcoll == 0L)
find_movcoll(_rel->file().get_long(MOV_NUMREG));
}
mask2rel(m); mask2rel(m);
switch (controlli_f1(m)) // Solo con F1 switch (controlli_f1(m)) // Solo con F1
@ -1619,7 +1697,7 @@ int TPrimanota_application::rewrite(const TMask& m)
return _isnowarning; return _isnowarning;
default: case pro_noerr: break; default: case pro_noerr: break;
} }
const int err = _rel->rewrite(true); const int err = _rel->rewrite(true);
if (err == NOERR) if (err == NOERR)
{ {
@ -1770,6 +1848,7 @@ void TPrimanota_application::genera_automatico(int tipo, const char* causimm)
if (_automatico->_tipo == 2) if (_automatico->_tipo == 2)
{ {
_automatico->_totale += m.get_real(F_REVCHARGE) + m.get_real(F_RITFIS); _automatico->_totale += m.get_real(F_REVCHARGE) + m.get_real(F_RITFIS);
_automatico->_movcoll = m.get_long(F_NUMREG);
_automatico->_codiva = m.get(F_CODIVA); _automatico->_codiva = m.get(F_CODIVA);
if (_automatico->_codiva.blank() && _rel->iva_items() > 0) if (_automatico->_codiva.blank() && _rel->iva_items() > 0)
_automatico->_codiva = _rel->iva(0).get(RMI_CODIVA); _automatico->_codiva = _rel->iva(0).get(RMI_CODIVA);
@ -1847,6 +1926,7 @@ void TPrimanota_application::genera_automatico(int tipo, const char* causimm)
m.set(F_CODCLIFOR, clnt); m.set(F_CODCLIFOR, clnt);
} }
m.set(F_TOTALE, _automatico->_totale); // Imposta il totale documento e ... m.set(F_TOTALE, _automatico->_totale); // Imposta il totale documento e ...
m.set(F_MOVCOLL, _automatico->_movcoll); // Imposta il movimenti collegato e ...
m.set(F_CODIVA, _automatico->_codiva, true); // ... scatena creazione prima riga IVA m.set(F_CODIVA, _automatico->_codiva, true); // ... scatena creazione prima riga IVA
if (TRelation_application::is_transaction()) if (TRelation_application::is_transaction())
m.send_key(K_CTRL+'R', 0); m.send_key(K_CTRL+'R', 0);

View File

@ -22,6 +22,7 @@
#define F_RITFATT 231 #define F_RITFATT 231
#define F_PROKEY 232 #define F_PROKEY 232
#define F_COLFPPRO 233 #define F_COLFPPRO 233
#define F_DATACOMPCR 234
#define F_CLIFO 128 #define F_CLIFO 128
#define F_CODCLIFOR 151 #define F_CODCLIFOR 151
@ -88,6 +89,8 @@
#define F_SOTTOCONTO 182 #define F_SOTTOCONTO 182
#define F_SALDOCONTO 183 #define F_SALDOCONTO 183
#define F_REVCHARGE 184 #define F_REVCHARGE 184
#define F_MOVCOLL 185
#define F_GOCOLL 186
#define F_SHEETCG 190 #define F_SHEETCG 190
#define F_SHEETIVA 191 #define F_SHEETIVA 191

View File

@ -75,13 +75,15 @@ BEGIN
MESSAGE COPY,K_DESCRCAUS MESSAGE COPY,K_DESCRCAUS
END END
LIST F_PROVVISORIO 1 24 LIST F_PROVVISORIO 1 28
BEGIN BEGIN
PROMPT 1 5 "Movimento provvisorio " PROMPT 1 5 "Mov.provvisorio "
FIELD PROVVIS FIELD PROVVIS
ITEM " |No (movimento normale)" ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)" ITEM "P|Si (cancellabile)"
ITEM "C|Cespiti" ITEM "N|Si (Non cancellabile)"
ITEM "B|Si (Bilancio costi/ricavi)"
ITEM "C|Si (Cespiti)"
END END
STRING F_TIPODOC 2 STRING F_TIPODOC 2

View File

@ -85,9 +85,16 @@ BEGIN
FIELD REG FIELD REG
END END
DATE F_DATACOMPCR
BEGIN
PROMPT 1 3 "Data comp.c/r "
FIELD DATACOMPCR
FLAGS "G"
END
STRING F_CODCAUS 3 STRING F_CODCAUS 3
BEGIN BEGIN
PROMPT 1 3 "Causale " PROMPT 1 4 "Causale "
FLAGS "UZ" FLAGS "UZ"
FIELD CODCAUS FIELD CODCAUS
USE LF_CAUSALI SELECT REG!="" USE LF_CAUSALI SELECT REG!=""
@ -107,7 +114,7 @@ END
STRING F_DESCRCAUS 50 STRING F_DESCRCAUS 50
BEGIN BEGIN
PROMPT 25 3 "" PROMPT 25 4 ""
USE LF_CAUSALI KEY 2 SELECT REG!="" USE LF_CAUSALI KEY 2 SELECT REG!=""
INPUT DESCR F_DESCRCAUS INPUT DESCR F_DESCRCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
@ -122,13 +129,13 @@ END
STRING F_NUMDOCEXT 50 STRING F_NUMDOCEXT 50
BEGIN BEGIN
PROMPT 1 4 "Numero documento esteso " PROMPT 1 5 "Numero documento esteso "
FIELD NUMDOCEXT FIELD NUMDOCEXT
END END
STRING F_NUMDOC 7 STRING F_NUMDOC 7
BEGIN BEGIN
PROMPT 1 5 "Documento n. " PROMPT 1 6 "Documento n. "
FIELD NUMDOC FIELD NUMDOC
FLAGS "U" FLAGS "U"
WARNING "La causale o il saldaconto richiedono il numero documento" WARNING "La causale o il saldaconto richiedono il numero documento"
@ -136,7 +143,7 @@ END
DATE F_DATADOC DATE F_DATADOC
BEGIN BEGIN
PROMPT 27 5 "Data documento " PROMPT 27 6 "Data documento "
FIELD DATADOC FIELD DATADOC
WARNING "Inserire una data documento non superiore alla data dell'operazione" WARNING "Inserire una data documento non superiore alla data dell'operazione"
VALIDATE DATE_CMP_FUNC <= F_DATAREG VALIDATE DATE_CMP_FUNC <= F_DATAREG
@ -144,37 +151,38 @@ END
STRING F_TIPODOC 2 STRING F_TIPODOC 2
BEGIN BEGIN
PROMPT 56 5 "Tipo " PROMPT 56 6 "Tipo "
FIELD TIPODOC FIELD TIPODOC
FLAGS "D" FLAGS "D"
END END
BUTTON F_LINKDOC 3 1 BUTTON F_LINKDOC 3 1
BEGIN BEGIN
PROMPT 73 5 "Doc." PROMPT 73 6 "Doc."
END END
LIST F_SOLAIVA 1 3 LIST F_SOLAIVA 1 3
BEGIN BEGIN
PROMPT 1 6 "Movimento di sola IVA " PROMPT 1 7 "Movimento di sola IVA "
ITEM " |No" ITEM " |No"
ITEM "X|Si" ITEM "X|Si"
END END
LIST F_PROVVISORIO 1 22 LIST F_PROVVISORIO 1 28
BEGIN BEGIN
PROMPT 31 6 "Movimento provvisorio " PROMPT 31 7 "Mov.provvisorio "
FIELD PROVVIS FIELD PROVVIS
ITEM " |No (movimento normale)" ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)" ITEM "P|Si (cancellabile)"
ITEM "N|Si (Non cancellabile)" ITEM "N|Si (Non cancellabile)"
ITEM "C|Cespiti" ITEM "B|Si (Bilancio costi/ricavi)"
ITEM "C|Si (Cespiti)"
FLAGS "DG" FLAGS "DG"
END END
STRING F_DESCAGG 5 6 STRING F_DESCAGG 5 6
BEGIN BEGIN
PROMPT 1 7 "Descrizione " PROMPT 1 8 "Descrizione "
FLAGS "UZ" FLAGS "UZ"
USE %DPN USE %DPN
INPUT CODTAB F_DESCAGG INPUT CODTAB F_DESCAGG
@ -187,7 +195,7 @@ END
STRING F_DESCR 50 STRING F_DESCR 50
BEGIN BEGIN
PROMPT 25 7 "" PROMPT 25 8 ""
FIELD DESCR FIELD DESCR
USE %DPN KEY 2 USE %DPN KEY 2
INPUT S0 F_DESCR INPUT S0 F_DESCR
@ -198,13 +206,13 @@ END
NUMBER F_PROTIVA 6 NUMBER F_PROTIVA 6
BEGIN BEGIN
PROMPT 1 8 "Protocollo IVA " PROMPT 1 9 "Protocollo IVA "
FIELD PROTIVA FIELD PROTIVA
END END
NUMBER F_RIEPILOGO 6 NUMBER F_RIEPILOGO 6
BEGIN BEGIN
PROMPT 25 8 "Riepilogo al n." PROMPT 25 9 "Riepilogo al n."
FIELD UPROTIVA FIELD UPROTIVA
NUM_EXPR {(#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)} NUM_EXPR {(#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)}
WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliente/fornitore ha codice inserimento in allegati uguale a 3)" WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliente/fornitore ha codice inserimento in allegati uguale a 3)"
@ -212,14 +220,14 @@ END
LIST F_DIFFERITA 1 19 LIST F_DIFFERITA 1 19
BEGIN BEGIN
PROMPT 48 8 "Liquid. " PROMPT 48 9 "Liquid. "
ITEM " |periodo in corso" ITEM " |periodo in corso"
ITEM "X|periodo precedente" ITEM "X|periodo precedente"
END END
NUMBER F_CODCLIFOR 6 NUMBER F_CODCLIFOR 6
BEGIN BEGIN
PROMPT 1 9 "Cliente " PROMPT 1 10 "Cliente "
FIELD CODCF FIELD CODCF
GROUP 1 GROUP 1
USE LF_CLIFO USE LF_CLIFO
@ -244,7 +252,7 @@ END
STRING F_RAGSOCCF 50 STRING F_RAGSOCCF 50
BEGIN BEGIN
PROMPT 25 9 "" PROMPT 25 10 ""
GROUP 2 GROUP 2
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF F_CLIFO SELECT INPUT TIPOCF F_CLIFO SELECT
@ -262,7 +270,7 @@ END
STRING F_COFI 16 STRING F_COFI 16
BEGIN BEGIN
PROMPT 1 10 "C.F. " PROMPT 1 11 "C.F. "
GROUP 1 GROUP 1
USE LF_CLIFO KEY 4 USE LF_CLIFO KEY 4
INPUT TIPOCF F_CLIFO SELECT INPUT TIPOCF F_CLIFO SELECT
@ -279,7 +287,7 @@ END
STRING F_PIVA 12 STRING F_PIVA 12
BEGIN BEGIN
PROMPT 26 10 "P.I. " PROMPT 26 11 "P.I. "
GROUP 1 GROUP 1
USE LF_CLIFO KEY 5 USE LF_CLIFO KEY 5
INPUT TIPOCF F_CLIFO SELECT INPUT TIPOCF F_CLIFO SELECT
@ -297,7 +305,7 @@ END
STRING F_STATOPAIV 2 STRING F_STATOPAIV 2
BEGIN BEGIN
PROMPT 46 10 "" PROMPT 46 11 ""
FLAGS "U" FLAGS "U"
USE %SCE USE %SCE
INPUT CODTAB F_STATOPAIV INPUT CODTAB F_STATOPAIV
@ -309,7 +317,7 @@ END
STRING F_RICALT 30 18 STRING F_RICALT 30 18
BEGIN BEGIN
PROMPT 52 10 "Alt. " PROMPT 52 11 "Alt. "
USE LF_CLIFO KEY 6 USE LF_CLIFO KEY 6
INPUT TIPOCF F_CLIFO SELECT INPUT TIPOCF F_CLIFO SELECT
INPUT RICALT F_RICALT INPUT RICALT F_RICALT
@ -327,13 +335,13 @@ END
BUTTON F_OCCASEDIT 50 BUTTON F_OCCASEDIT 50
BEGIN BEGIN
PROMPT 1 10 "Dati del cliente o fornitore occasionale" PROMPT 1 11 "Dati del cliente o fornitore occasionale"
FLAGS "H" FLAGS "H"
END END
STRING F_CODPAG 4 STRING F_CODPAG 4
BEGIN BEGIN
PROMPT 1 11 "Codice Pagamento " PROMPT 1 12 "Codice Pagamento "
FIELD CODPAG FIELD CODPAG
FLAGS "U#" FLAGS "U#"
USE %CPG USE %CPG
@ -349,7 +357,7 @@ END
STRING F_DESPAG 50 STRING F_DESPAG 50
BEGIN BEGIN
PROMPT 25 11 "" PROMPT 25 12 ""
USE %CPG KEY 2 USE %CPG KEY 2
INPUT S0 F_DESPAG INPUT S0 F_DESPAG
DISPLAY "Descrizione@60" S0 DISPLAY "Descrizione@60" S0
@ -362,7 +370,7 @@ END
LIST F_CLIFO 1 10 LIST F_CLIFO 1 10
BEGIN BEGIN
PROMPT 1 12 "Tipo " PROMPT 1 13 "Tipo "
ITEM "|Conto" ITEM "|Conto"
ITEM "C|Cliente" ITEM "C|Cliente"
ITEM "F|Fornitore" ITEM "F|Fornitore"
@ -372,7 +380,7 @@ END
NUMBER F_BOLLACODCLI 6 NUMBER F_BOLLACODCLI 6
BEGIN BEGIN
PROMPT 1 12 "Forn. collegato " PROMPT 1 13 "Forn. collegato "
FIELD CFBOLLADOG FIELD CFBOLLADOG
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "F" INPUT TIPOCF "F"
@ -392,7 +400,7 @@ END
STRING F_BOLLARAGCLI 50 47 STRING F_BOLLARAGCLI 50 47
BEGIN BEGIN
PROMPT 28 12 "" PROMPT 28 13 ""
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT RAGSOC F_BOLLARAGCLI INPUT RAGSOC F_BOLLARAGCLI
@ -412,7 +420,7 @@ END
STRING SK_VALUTA 3 STRING SK_VALUTA 3
BEGIN BEGIN
PROMPT 1 13 "Valuta " PROMPT 1 14 "Valuta "
FIELD CODVAL FIELD CODVAL
FLAGS "UZ" FLAGS "UZ"
GROUP 3 GROUP 3
@ -427,7 +435,7 @@ END
DATE SK_DATACAMBIO DATE SK_DATACAMBIO
BEGIN BEGIN
PROMPT 18 13 "Data cambio " PROMPT 18 14 "Data cambio "
FIELD DATACAM FIELD DATACAM
FLAGS "R" FLAGS "R"
USE CAM USE CAM
@ -446,7 +454,7 @@ END
NUMBER SK_CAMBIO 15 6 NUMBER SK_CAMBIO 15 6
BEGIN BEGIN
PROMPT 44 13 "Cambio " PROMPT 44 14 "Cambio "
FIELD CAMBIO FIELD CAMBIO
FLAGS "RU" FLAGS "RU"
GROUP 3 GROUP 3
@ -457,13 +465,13 @@ END
CURRENCY F_TOTALE 18 CURRENCY F_TOTALE 18
BEGIN BEGIN
PROMPT 1 14 "Totale documento " PROMPT 1 15 "Totale documento "
FIELD TOTDOC FIELD TOTDOC
END END
CURRENCY SK_TOTDOCVAL 18 CURRENCY SK_TOTDOCVAL 18
BEGIN BEGIN
PROMPT 38 14 "in valuta " PROMPT 38 15 "in valuta "
FIELD TOTDOCVAL FIELD TOTDOCVAL
GROUP 3 GROUP 3
VALIDATE REQIF_FUNC 1 F_TOTALE VALIDATE REQIF_FUNC 1 F_TOTALE
@ -472,7 +480,7 @@ END
STRING F_CODIVA 4 STRING F_CODIVA 4
BEGIN BEGIN
PROMPT 67 14 "IVA " PROMPT 67 15 "IVA "
FLAGS "U" FLAGS "U"
USE %IVA USE %IVA
INPUT CODTAB F_CODIVA INPUT CODTAB F_CODIVA
@ -488,25 +496,39 @@ END
CURRENCY F_RITFIS 18 CURRENCY F_RITFIS 18
BEGIN BEGIN
PROMPT 1 15 "Ritenute fiscali " PROMPT 1 16 "Ritenute fiscali "
FIELD RITFIS FIELD RITFIS
END END
CURRENCY F_RITSOC 18 CURRENCY F_RITSOC 18
BEGIN BEGIN
PROMPT 1 16 "Ritenute sociali " PROMPT 1 17 "Ritenute sociali "
FIELD RITSOC FIELD RITSOC
END END
CURRENCY F_REVCHARGE 18 CURRENCY F_REVCHARGE 18
BEGIN BEGIN
PROMPT 1 17 "Reverse charge " PROMPT 1 18 "Reverse charge "
FIELD REVCHARGE FIELD REVCHARGE
END END
NUMBER F_MOVCOLL 7
BEGIN
PROMPT 40 18 "Mov.collegato"
WARNING "Movimento collegato reverse charge"
FIELD MOVCOLL
FLAGS "HDG"
END
BUTTON F_GOCOLL 10 1
BEGIN
PROMPT 64 18 "Mov.Coll."
FLAGS "HDG"
END
DATE F_DATA74TER DATE F_DATA74TER
BEGIN BEGIN
PROMPT 52 15 "Data 74/ter " PROMPT 52 16 "Data 74/ter "
WARNING "E' richiesta la data del 74/ter" WARNING "E' richiesta la data del 74/ter"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FIELD DATA74TER FIELD DATA74TER
@ -514,14 +536,14 @@ END
BOOLEAN F_IVAXCASSA BOOLEAN F_IVAXCASSA
BEGIN BEGIN
PROMPT 1 18 "IVA per cassa" PROMPT 1 20 "IVA per cassa"
FIELD IVAXCASSA FIELD IVAXCASSA
MODULE IC MODULE IC
END END
BOOLEAN F_LIQDIFF BOOLEAN F_LIQDIFF
BEGIN BEGIN
PROMPT 25 18 "Liquidazione differita" PROMPT 25 20 "Liquidazione differita"
WARNING "Data di incasso per liquidazione differita" WARNING "Data di incasso per liquidazione differita"
FIELD LIQDIFF FIELD LIQDIFF
MESSAGE FALSE CLEAR,F_DATAINC MESSAGE FALSE CLEAR,F_DATAINC
@ -531,7 +553,7 @@ END
LIST F_SPLITPAY 1 2 LIST F_SPLITPAY 1 2
BEGIN BEGIN
PROMPT 51 18 "Scissione pagamenti " PROMPT 51 20 "Scissione pagamenti "
FIELD SPLITPAY FIELD SPLITPAY
ITEM "| " ITEM "| "
ITEM "S|Si" ITEM "S|Si"
@ -541,28 +563,28 @@ END
DATE F_DATAINC DATE F_DATAINC
BEGIN BEGIN
PROMPT 52 17 "Data incasso " PROMPT 52 19 "Data incasso "
WARNING "Data di incasso per liquidazione differita" WARNING "Data di incasso per liquidazione differita"
FIELD DATAINC FIELD DATAINC
END END
NUMBER F_ANNORIF 4 NUMBER F_ANNORIF 4
BEGIN BEGIN
PROMPT 48 16 "Rif.partita " PROMPT 48 17 "Rif.partita "
FIELD LF_PARTITE->ANNO FIELD LF_PARTITE->ANNO
FLAGS "U" FLAGS "U"
END END
STRING F_NUMRIF 7 STRING F_NUMRIF 7
BEGIN BEGIN
PROMPT 66 16 "/ " PROMPT 66 17 "/ "
FIELD LF_PARTITE->NUMPART FIELD LF_PARTITE->NUMPART
FLAGS "U#" FLAGS "U#"
END END
STRING F_VALUTAINTRA 3 STRING F_VALUTAINTRA 3
BEGIN BEGIN
PROMPT 1 19 "Cambio intracom. " PROMPT 1 21 "Cambio intracom. "
FIELD CODVALI FIELD CODVALI
FLAGS "UZ" FLAGS "UZ"
GROUP 4 GROUP 4
@ -580,7 +602,7 @@ END
NUMBER F_CAMBIOINTRA 15 6 NUMBER F_CAMBIOINTRA 15 6
BEGIN BEGIN
PROMPT 25 19 "" PROMPT 25 21 ""
FIELD CAMBIOI FIELD CAMBIOI
FLAGS "U" FLAGS "U"
GROUP 4 GROUP 4
@ -589,20 +611,20 @@ END
DATE F_DATAINTRA DATE F_DATAINTRA
BEGIN BEGIN
PROMPT 43 19 "Data competenza intra " PROMPT 43 21 "Data competenza intra "
FIELD DATACOMPI FIELD DATACOMPI
END END
CURRENCY F_CORRISPETTIVO 18 CURRENCY F_CORRISPETTIVO 18
BEGIN BEGIN
PROMPT 1 20 "Corrispettivo " PROMPT 1 22 "Corrispettivo "
FIELD CORRLIRE FIELD CORRLIRE
GROUP 4 GROUP 4
END END
CURRENCY F_CORRVALUTA 18 CURRENCY F_CORRVALUTA 18
BEGIN BEGIN
PROMPT 39 20 "Corrispet. valuta " PROMPT 39 22 "Corrispet. valuta "
FIELD CORRVALUTA FIELD CORRVALUTA
GROUP 4 GROUP 4
VALIDATE REQIF_FUNC 1 F_VALUTAINTRA VALIDATE REQIF_FUNC 1 F_VALUTAINTRA
@ -617,7 +639,7 @@ END
STRING F_PROKEY 80 STRING F_PROKEY 80
BEGIN BEGIN
PROMPT 1 19 "db key" PROMPT 1 20 "db key"
HELP "Chiave database" HELP "Chiave database"
FIELD KEYFPPRO FIELD KEYFPPRO
FLAGS "H" FLAGS "H"
@ -625,7 +647,7 @@ END
BOOLEAN F_RITFATT BOOLEAN F_RITFATT
BEGIN BEGIN
PROMPT 1 21 "Fattura in ritardo " PROMPT 1 23 "Fattura in ritardo "
FIELD RITFATT FIELD RITFATT
END END
@ -638,7 +660,7 @@ END
#endif #endif
STRING NP_CONTSEP 6 STRING NP_CONTSEP 6
BEGIN BEGIN
PROMPT 1 22 "Cont. separata " PROMPT 1 23 "Cont. separata "
USE &NPENT USE &NPENT
INPUT CODTAB NP_CONTSEP INPUT CODTAB NP_CONTSEP
DISPLAY "Codice@6" CODTAB DISPLAY "Codice@6" CODTAB
@ -651,7 +673,7 @@ END
STRING NP_DESCONTSEP 50 STRING NP_DESCONTSEP 50
BEGIN BEGIN
PROMPT 25 22 "" PROMPT 25 24 ""
USE &NPENT KEY 2 USE &NPENT KEY 2
INPUT S0 NP_DESCONTSEP INPUT S0 NP_DESCONTSEP
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0

View File

@ -80,7 +80,7 @@ class TPrimanota_application : public TRelation_application
bool _sal_dirty; // Il saldaconto e' stato "toccato"? bool _sal_dirty; // Il saldaconto e' stato "toccato"?
TipoIVA _iva; // Tipo di IVA corrente TipoIVA _iva; // Tipo di IVA corrente
TCausale* _causale; // Causale corrente TCausale * _causale; // Causale corrente
TLibro_giornale* _giornale; // Libro giornale corrente TLibro_giornale* _giornale; // Libro giornale corrente
long _lastreg; // Numero ultima registrazione long _lastreg; // Numero ultima registrazione
@ -118,8 +118,9 @@ class TPrimanota_application : public TRelation_application
static void check_fppro_fields(TMask& m); static void check_fppro_fields(TMask& m);
static bool caus_modify_handler(TMask_field& f, KEY key); static bool caus_modify_handler(TMask_field& f, KEY key);
static bool datareg_handler(TMask_field& f, KEY key); static bool datareg_handler(TMask_field& f, KEY key);
static bool datacomp_handler(TMask_field& f, KEY key); static bool datacomp_handler(TMask_field& f, KEY key);
static bool data74ter_handler(TMask_field& f, KEY key); static bool datacompcr_handler(TMask_field& f, KEY key);
static bool data74ter_handler(TMask_field& f, KEY key);
static bool datadoc_handler(TMask_field& f, KEY key); static bool datadoc_handler(TMask_field& f, KEY key);
static bool numdoc_handler(TMask_field& f, KEY key); static bool numdoc_handler(TMask_field& f, KEY key);
static bool ndocext_handler(TMask_field& f, KEY key); static bool ndocext_handler(TMask_field& f, KEY key);
@ -251,7 +252,9 @@ protected: // TRelation_application
virtual bool is_transaction() const; virtual bool is_transaction() const;
virtual bool get_next_key(TToken_string& key); virtual bool get_next_key(TToken_string& key);
virtual int read(TMask& m); virtual int read(TMask& m);
virtual int write(const TMask& m); void find_movcoll(const long numreg);
void set_movcoll(const long movcoll, const long numreg);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m); virtual int rewrite(const TMask& m);
virtual bool remove(); virtual bool remove();
virtual void write_enable(bool) {} virtual void write_enable(bool) {}
@ -385,7 +388,7 @@ public:
void reset_colors(); void reset_colors();
real calcola_saldo() const; real calcola_saldo() const;
TCausale& causale() const { return *_causale; } TCausale& causale() const { return * _causale; }
TPartite_array& partite() { return _partite; } // Partite editate TPartite_array& partite() { return _partite; } // Partite editate
bool edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp); bool edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp);
bool notify_edit_pagamento(TPartita& partita, TRectype& new_pag, bool notify_edit_pagamento(TPartita& partita, TRectype& new_pag,

View File

@ -17,13 +17,23 @@ TCausale::TCausale(const char* cod, int year)
: TArray(12), _rec(LF_CAUSALI), : TArray(12), _rec(LF_CAUSALI),
_iva(iva_errata), _corrisp(false), _iva(iva_errata), _corrisp(false),
_sezione_clifo(' '), _provvisorio(' '), _sezione_clifo(' '), _provvisorio(' '),
_sezione_ritsoc(' '), _sezione_ritfis(' '), _sezione_revcharge(' ') _sezione_ritsoc(' '), _sezione_ritfis(' '), _sezione_revcharge(' '),
_regolarizzazione(false)
{ {
_regolarizzazione = 0x2; if (cod && *cod)
if (cod && *cod) read(cod, year);
read(cod, year); if (soloiva())
{
TCursor c(new TRelation(LF_CAUSALI));
int items = c.items();
for (c = 0L; c.pos() < items && !_regolarizzazione; ++c)
_regolarizzazione = c.curr().get(CAU_CODCAUREG) == codice();
}
} }
bool TCausale::reread() bool TCausale::reread()
{ {
const TString4 cod = codice(); const TString4 cod = codice();
@ -145,22 +155,8 @@ bool TCausale::soloiva() const
int TCausale::regime_speciale() const int TCausale::regime_speciale() const
{ return _rec.get_int(CAU_REGSPIVA); } { return _rec.get_int(CAU_REGSPIVA); }
bool TCausale::regolarizzazione() bool TCausale::regolarizzazione() const
{ { return _regolarizzazione; }
if ((int) _regolarizzazione == 0x2)
{
_regolarizzazione = false;
if (soloiva())
{
TCursor c(new TRelation(LF_CAUSALI));
int items = c.items();
for (c = 0L; c.pos() < items && !_regolarizzazione; ++c)
_regolarizzazione = c.curr().get(CAU_CODCAUREG) == codice();
}
}
return _regolarizzazione != 0;
}
bool TCausale::ril_fat_em_ric() const bool TCausale::ril_fat_em_ric() const
{ {

View File

@ -14,7 +14,7 @@ class TCausale : public TArray
TipoIVA _iva; TipoIVA _iva;
bool _corrisp; bool _corrisp;
char _sezione_clifo, _sezione_ritsoc, _sezione_ritfis, _sezione_revcharge, _provvisorio; char _sezione_clifo, _sezione_ritsoc, _sezione_ritfis, _sezione_revcharge, _provvisorio;
int _regolarizzazione; bool _regolarizzazione;
protected: protected:
const TRectype* row(int num) const { return (const TRectype*)objptr(num); } const TRectype* row(int num) const { return (const TRectype*)objptr(num); }
@ -41,7 +41,7 @@ public:
bool valintra() const; bool valintra() const;
bool soloiva() const; bool soloiva() const;
bool reverse_charge() const; bool reverse_charge() const;
bool regolarizzazione(); bool regolarizzazione() const;
bool ril_fat_em_ric() const; bool ril_fat_em_ric() const;
bool datareg_prec() const; bool datareg_prec() const;
char provvisorio() const { return _provvisorio; } char provvisorio() const { return _provvisorio; }

View File

@ -158,8 +158,9 @@ bool TProvvisori_msk::on_field_event(TOperable_field& o, TField_event e, long jo
switch (o.get()[0]) switch (o.get()[0])
{ {
case 'C': fil << "=\"C\""; break; case 'C': fil << "=\"C\""; break;
case 'P': fil << "=\"P\""; break; case 'B': fil << "=\"B\""; break;
default : fil << "!=\"\""; break; case 'P': fil << "=\"P\""; break;
default : fil << "!=\"\""; break;
} }
update_search(F_FROMDATE, fil); update_search(F_FROMDATE, fil);
update_search(F_TODATE, fil); update_search(F_TODATE, fil);
@ -297,7 +298,7 @@ void TProvvisori_app::aggiungi_saldi(const TRectype& r, bool lettura)
TBill conto; conto.get(r); TBill conto; conto.get(r);
TImporto importo(r.get_char(RMV_SEZIONE), r.get_real(RMV_IMPORTO)); TImporto importo(r.get_char(RMV_SEZIONE), r.get_real(RMV_IMPORTO));
_saldi.set_movprovv(lettura); // In lettura sono tutti provvisori _saldi.set_movprovv(lettura); // In lettura sono tutti provvisori qui
_saldi.aggiorna(conto, importo, !lettura); // In lettura devo sottrarre l'importo _saldi.aggiorna(conto, importo, !lettura); // In lettura devo sottrarre l'importo
} }

View File

@ -24,12 +24,13 @@ ENDPAGE
PAGE "Gestione Movimenti Provvisori" -1 -1 52 14 PAGE "Gestione Movimenti Provvisori" -1 -1 52 14
LIST F_PROVV 10 LIST F_PROVV 25
BEGIN BEGIN
PROMPT 1 0 "@bTipo movimenti provvisori " PROMPT 1 0 "@bTipo movimenti provvisori "
ITEM "P|Contabili" ITEM "P|Contabili"
ITEM " |Tutti" ITEM " |Tutti"
ITEM "C|Cespiti" ITEM "B|Bilancio costi/ricavi"
ITEM "C|Cespiti"
END END
GROUPBOX DLG_NULL 50 3 GROUPBOX DLG_NULL 50 3

View File

@ -728,7 +728,7 @@ void TApertura_chiusura::costi()
} }
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil);
_saldo = sale.saldo(); _saldo = sale.saldo();
if (_saldo.is_zero()) if (_saldo.is_zero())
@ -875,7 +875,7 @@ void TApertura_chiusura::ricavi()
//numrig++; //numrig++;
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
//sale.calcola_ultima_immissione(_annoesch,0,g,c,s,indbil); //sale.calcola_ultima_immissione(_annoesch,0,g,c,s,indbil);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil);
_saldo = sale.saldo(); _saldo = sale.saldo();
if (_saldo.is_zero()) continue; if (_saldo.is_zero()) continue;
@ -1114,7 +1114,7 @@ void TApertura_chiusura::chiudi_attivita()
} }
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil);
_saldo = sale.saldo(); _saldo = sale.saldo();
const int dbkey = saldi.getkey(); const int dbkey = saldi.getkey();
saldi.setkey(1); saldi.setkey(1);
@ -1264,7 +1264,7 @@ void TApertura_chiusura::chiudi_passivita()
//numrig++; //numrig++;
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
//sale.calcola_ultima_immissione(_annoesch,0,g,c,s,indbil); //sale.calcola_ultima_immissione(_annoesch,0,g,c,s,indbil);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil);
_saldo = sale.saldo(); _saldo = sale.saldo();
if (_saldo.is_zero()) continue; if (_saldo.is_zero()) continue;
@ -1409,7 +1409,7 @@ void TApertura_chiusura::chiudi_conti_ordine()
} }
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil);
_saldo = sale.saldo(); _saldo = sale.saldo();
const int dbkey = saldi.getkey(); const int dbkey = saldi.getkey();
saldi.setkey(1); saldi.setkey(1);
@ -1606,7 +1606,7 @@ void TApertura_chiusura::apri_attivita()
//numrig++; //numrig++;
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1, false); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 0x1, false);
_saldo = sale.saldo(); _saldo = sale.saldo();
if (_saldo == ZERO) continue; if (_saldo == ZERO) continue;
@ -1752,7 +1752,7 @@ void TApertura_chiusura::apri_passivita()
//numrig++; //numrig++;
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1, false); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 0x1, false);
_saldo = sale.saldo(); _saldo = sale.saldo();
if (_saldo.is_zero()) continue; if (_saldo.is_zero()) continue;
@ -1898,7 +1898,7 @@ void TApertura_chiusura::apri_conti_ordine()
//numrig++; //numrig++;
s = saldi.get_long(SLD_SOTTOCONTO); s = saldi.get_long(SLD_SOTTOCONTO);
sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 1, false); sale.ultima_immissione_bilancio(_annoesch,g,c,s,indbil, 0x1, false);
_saldo = sale.saldo(); _saldo = sale.saldo();
if (_saldo == ZERO) continue; if (_saldo == ZERO) continue;

View File

@ -313,7 +313,7 @@ END
CURRENCY S_INTERESSI 15 CURRENCY S_INTERESSI 15
BEGIN BEGIN
PROMPT 1 6 "Interessi " PROMPT 1 7 "Interessi "
FLAGS "RD" FLAGS "RD"
END END

View File

@ -1,3 +1,3 @@
23 23
0 0
$mov|96174|96174|559|0|Movimenti di prima nota|NMOV|| $mov|||574|0|Movimenti di prima nota|NMOV||

View File

@ -1,9 +1,10 @@
23 23
60 62
ANNOES|9|4|0|Codice esercizio ANNOES|9|4|0|Codice esercizio
NUMREG|3|7|0|Numero di operazione NUMREG|3|7|0|Numero di operazione
DATAREG|5|8|0|Data operazione DATAREG|5|8|0|Data operazione
DATACOMP|5|8|0|Data competenza DATACOMP|5|8|0|Data competenza
DATACOMPCR|5|8|0|Data competenza costi/ricavi
DATADOC|5|8|0|Data documento DATADOC|5|8|0|Data documento
RITFATT|8|1|0|Fattura in ritardo RITFATT|8|1|0|Fattura in ritardo
DATA74TER|5|8|0|Data per art. 74 ter DATA74TER|5|8|0|Data per art. 74 ter
@ -31,7 +32,7 @@ TOTDOCVAL|4|18|3|Totale documento in valuta
RITFIS|4|18|3|Ritenute fiscali RITFIS|4|18|3|Ritenute fiscali
RITSOC|4|18|3|Ritenute sociali RITSOC|4|18|3|Ritenute sociali
REVCHARGE|4|18|3|Reverse charge REVCHARGE|4|18|3|Reverse charge
PROVVIS|1|1|0|Tipo movimento (" " Normale, "P" Provvisorio cancellabile, "C" Provvisorio cespiti) PROVVIS|1|1|0|Tipo movimento (< > Normale, Provvisorio <P> cancellabile, <C> cespiti, <B> bilancio costi/ricavi
CODVALI|1|3|0|Codice valuta intra-comunitaria CODVALI|1|3|0|Codice valuta intra-comunitaria
CAMBIOI|4|15|6|Cambio della valuta intra-comunitaria CAMBIOI|4|15|6|Cambio della valuta intra-comunitaria
CORRLIRE|4|18|3|Corrispettivo in lire intra-comunitario CORRLIRE|4|18|3|Corrispettivo in lire intra-comunitario
@ -60,6 +61,7 @@ TFINVIO|7|1|0|Flag Invio Trasferimento Fatture
TFDATA|5|8|0|Data ultimo invio Trasferimento Fatture TFDATA|5|8|0|Data ultimo invio Trasferimento Fatture
IVALIQ|8|1|0|Iva per cassa liquidata completamente IVALIQ|8|1|0|Iva per cassa liquidata completamente
KEYFPPRO|1|80|0|Chiavi dell'FPPRO [KEYPRGINVIO;KEYHEADERFATT;KEYBODYFATT] KEYFPPRO|1|80|0|Chiavi dell'FPPRO [KEYPRGINVIO;KEYHEADERFATT;KEYBODYFATT]
MOVCOLL|3|7|0|Movimento collegato
4 4
NUMREG| NUMREG|
DATAREG+NUMREG|X DATAREG+NUMREG|X