Correzione errori vari
git-svn-id: svn://10.65.10.50/trunk@1902 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9bd1c2573c
commit
896d83465f
@ -25,7 +25,8 @@ class TStampa_deleghe_IVA : public TApplication
|
||||
long _codice; // Codice profilo
|
||||
|
||||
bool _stampa_distinte, _aggiorna_codici, _definitiva;
|
||||
|
||||
TDate _pd;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
@ -97,8 +98,11 @@ int TStampa_deleghe_IVA::select()
|
||||
_codice = m.get_long(F_CODICE);
|
||||
const bool contofis = _profilo != "DEL";
|
||||
|
||||
const TDate pd(m.get(F_DATA));
|
||||
printer().setdate(pd);
|
||||
//const TDate pd(m.get(F_DATA));
|
||||
//printer().setdate(pd);
|
||||
|
||||
_pd = m.get(F_DATA);
|
||||
printer().setdate(_pd);
|
||||
|
||||
_concessione = m.get(F_CONCESSIONE);
|
||||
const long soloabi = m.get_long(F_SOLO_ABI);
|
||||
@ -382,6 +386,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
if (_definitiva)
|
||||
{
|
||||
delega.put("B0", "X"); // Stampato
|
||||
delega.put("D0", _pd);
|
||||
scrivi = TRUE;
|
||||
}
|
||||
if (!_aggiorna_codici) // Cancella codici se non richiesti
|
||||
|
@ -25,7 +25,8 @@ class TStampa_deleghe_IVA : public TApplication
|
||||
long _codice; // Codice profilo
|
||||
|
||||
bool _stampa_distinte, _aggiorna_codici, _definitiva;
|
||||
|
||||
TDate _pd;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
@ -97,8 +98,11 @@ int TStampa_deleghe_IVA::select()
|
||||
_codice = m.get_long(F_CODICE);
|
||||
const bool contofis = _profilo != "DEL";
|
||||
|
||||
const TDate pd(m.get(F_DATA));
|
||||
printer().setdate(pd);
|
||||
//const TDate pd(m.get(F_DATA));
|
||||
//printer().setdate(pd);
|
||||
|
||||
_pd = m.get(F_DATA);
|
||||
printer().setdate(_pd);
|
||||
|
||||
_concessione = m.get(F_CONCESSIONE);
|
||||
const long soloabi = m.get_long(F_SOLO_ABI);
|
||||
@ -382,6 +386,7 @@ bool TStampa_deleghe_IVA::print_deleghe()
|
||||
if (_definitiva)
|
||||
{
|
||||
delega.put("B0", "X"); // Stampato
|
||||
delega.put("D0", _pd);
|
||||
scrivi = TRUE;
|
||||
}
|
||||
if (!_aggiorna_codici) // Cancella codici se non richiesti
|
||||
|
@ -27,7 +27,9 @@ int main(int argc,char** argv)
|
||||
case 6:
|
||||
cg4700(argc,argv); break;
|
||||
case 7:
|
||||
cg4800(argc,argv); break;
|
||||
cg4800(argc,argv); break;
|
||||
case 8:
|
||||
cg4900(argc,argv); break;
|
||||
default:
|
||||
error_box(usage, argv[0]);
|
||||
}
|
||||
|
1
cg/cg4.h
1
cg/cg4.h
@ -13,6 +13,7 @@ int cg4500(int argc, char* argv[]);
|
||||
int cg4600(int argc, char* argv[]);
|
||||
int cg4700(int argc, char* argv[]);
|
||||
int cg4800(int argc, char* argv[]);
|
||||
int cg4900(int argc, char* argv[]);
|
||||
|
||||
#ifdef __MAIN__
|
||||
#define extern
|
||||
|
10
cg/cg4.url
10
cg/cg4.url
@ -56,4 +56,12 @@ MENU MENU_BAR(6)
|
||||
MENUBAR MENU_BAR(7)
|
||||
|
||||
MENU MENU_BAR(7)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
/* cg4 -8 Visualizzazione liquidazione acconti */
|
||||
|
||||
MENUBAR MENU_BAR(8)
|
||||
|
||||
MENU MENU_BAR(8)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
@ -374,7 +374,7 @@ bool TLiquidazione_app::set_print(int)
|
||||
}
|
||||
break;
|
||||
case 2: // estrazione deleghe
|
||||
_isprint = FALSE;
|
||||
_isprint = FALSE;
|
||||
build_ditte_sheet(all);
|
||||
while (set_deleghe())
|
||||
{
|
||||
@ -397,6 +397,7 @@ bool TLiquidazione_app::set_print(int)
|
||||
break;
|
||||
case 3: // calcolo acconto
|
||||
_isprint = TRUE;
|
||||
_month = 12;
|
||||
build_ditte_sheet(all);
|
||||
real inf; real ina; // cotale obbrobrio non fu da me cercato, ne' mai condiviso
|
||||
while (set_acconto(inf, ina))
|
||||
|
@ -487,6 +487,7 @@ public:
|
||||
bool set_deleghe();
|
||||
bool extract_deleghe();
|
||||
bool extract_delega(int m, TArray& desc);
|
||||
bool video_conferma(const real&, const real&, const real&);
|
||||
// stampa
|
||||
void set_deltab(_DescrItem& d, bool iscred);
|
||||
|
||||
|
@ -1,54 +1,54 @@
|
||||
#include "cg4300b.h"
|
||||
|
||||
PAGE "Estrazione deleghe" -1 -1 45 10
|
||||
|
||||
|
||||
NUMBER FLD_CGB_YEAR 4
|
||||
BEGIN
|
||||
PROMPT 2 1 "Anno estrazione "
|
||||
HELP "Anno d'esercizio da cui effettuare le estrazioni"
|
||||
FLAGS "A"
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
|
||||
LIST FLD_CGB_MONTH 10
|
||||
BEGIN
|
||||
PROMPT 2 2 "Mese estrazione "
|
||||
PROMPT 2 2 "Mese estrazione "
|
||||
HELP "Mese da cui effettuare le estrazioni"
|
||||
FLAGS "AM"
|
||||
ITEM "13|Annuale"
|
||||
FLAGS "AM"
|
||||
//ITEM "13|Annuale"
|
||||
END
|
||||
|
||||
BOOLEAN CHK_CGB_PRINT
|
||||
BEGIN
|
||||
PROMPT 2 3 "Stampa tabulato"
|
||||
PROMPT 2 3 "Stampa tabulato"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 41 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Scelta ditte"
|
||||
PROMPT 2 4 "Scelta ditte"
|
||||
END
|
||||
|
||||
BUTTON DLG_SELECT 10 2
|
||||
BEGIN
|
||||
PROMPT -12 5 "Scegli"
|
||||
PROMPT -12 5 "Scegli"
|
||||
HELP "Selezionare le ditte di cui estrarre le deleghe"
|
||||
MESSAGE EXIT,DLG_SELECT
|
||||
MESSAGE EXIT,DLG_SELECT
|
||||
END
|
||||
|
||||
BUTTON BUT_CGB_ALL 10 2
|
||||
BEGIN
|
||||
PROMPT -22 5 "Tutte"
|
||||
PROMPT -22 5 "Tutte"
|
||||
HELP "Selezionare tutte le ditte di cui estrarre le deleghe"
|
||||
MESSAGE EXIT,BUT_CGB_ALL
|
||||
MESSAGE EXIT,BUT_CGB_ALL
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
@ -158,7 +158,7 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
||||
if (is_in_liq_period(inatt)) _isdifferita = FALSE;
|
||||
|
||||
TConfig cnf1(CONFIG_STUDIO, "cg");
|
||||
_isricacq = cnf1.get_bool("RicAcq");
|
||||
_isricacq = cnf1.get_bool("RicAcq");
|
||||
|
||||
// ricalcolo normale
|
||||
// lim c'e' solo per i trimestri
|
||||
@ -270,6 +270,9 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
||||
if (!_isregis)
|
||||
stliq = riepliq = TRUE;
|
||||
|
||||
if (_comp_acconto)
|
||||
stliq = riepliq = FALSE;
|
||||
|
||||
if (calc || !recalc)
|
||||
if (!update_att(month, cattiv) && stliq)
|
||||
describe_error("Attivita' non ricalcolate: possibili errori",
|
||||
@ -506,12 +509,21 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
tipodoc == "IN" || tipodoc == "PG");
|
||||
|
||||
/*
|
||||
* check date: se si calcola l'acconto, solo da 1/12 a 20/12
|
||||
* check date: se si calcola l'acconto, solo da 1/12 a 20/12 | 1/10 a 20/12
|
||||
*/
|
||||
int accmonth = _isdifferita ? 11 : 12;
|
||||
if (_comp_acconto && date.month() != accmonth && date.day() > 20)
|
||||
//if (_comp_acconto && date.month() != accmonth && date.day() > 20)
|
||||
// continue;
|
||||
if (_comp_acconto && _freqviva == "M" && date.month() != accmonth)
|
||||
continue;
|
||||
|
||||
if (_comp_acconto && _freqviva == "T")
|
||||
if (date.month() != 10 && date.month() != 11 && date.month() != 12)
|
||||
continue;
|
||||
|
||||
if (_comp_acconto && date.month() == accmonth && date.day() > 20)
|
||||
continue;
|
||||
|
||||
bool corrisp = _reg->get_bool("B0");
|
||||
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
|
||||
|
||||
@ -1540,8 +1552,10 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
||||
look_lia();
|
||||
_lia->put("R1", vol_aff_l);
|
||||
_lia->put("R2", vol_aff_1);
|
||||
_lia->put("R3", vol_aff_2);
|
||||
//_lia->put("R4", acc_dec);
|
||||
_lia->put("R3", vol_aff_2);
|
||||
/***08/09/1995
|
||||
_lia->put("R4", acc_dec);
|
||||
***/
|
||||
_lia->put("R5", cred_cost);
|
||||
_lia->rewrite();
|
||||
}
|
||||
|
@ -481,8 +481,13 @@ bool TLiquidazione_app::look_del(int month, int type, bool create)
|
||||
|
||||
if (abi.empty())
|
||||
{
|
||||
abi = anag.get("CODABI");
|
||||
cab = anag.get("CODCAB");
|
||||
/*
|
||||
abi = anag.get("CODABI");
|
||||
cab = anag.get("CODCAB");
|
||||
*/
|
||||
TConfig c (CONFIG_STUDIO, "cg");
|
||||
abi = c.get("CodABI");
|
||||
cab = c.get("CodCAB");
|
||||
}
|
||||
|
||||
_del->put("S7", abi);
|
||||
@ -494,7 +499,7 @@ bool TLiquidazione_app::look_del(int month, int type, bool create)
|
||||
TString codban = format("%05ld", atol(abi));
|
||||
if (!cab.empty()) codban << format("%05ld", atol(cab));
|
||||
ban.put("CODTAB", codban);
|
||||
if (ban.read() != NOERR)
|
||||
if (ban.read() == NOERR)
|
||||
{
|
||||
TString desban(ban.get("S0"));
|
||||
_del->put("S1", desban);
|
||||
|
@ -155,7 +155,6 @@ void TLiquidazione_app::describe_firm(int month)
|
||||
d->_s2 = _freqviva;
|
||||
d->_f1 = month;
|
||||
_descr_arr.add(d);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1963,7 +1962,7 @@ void TLiquidazione_app::set_deltab(_DescrItem& d, bool iscred)
|
||||
TParagraph_string rgs(tt.get(1), 30);
|
||||
TString diocantaro(rgs.get(0));
|
||||
TString frq(tt.get(2));
|
||||
real tp (tt.get(3));
|
||||
real tp (tt.get(3));
|
||||
real in (tt.get(4));
|
||||
TString abi(tt.get(5));
|
||||
TString cab(tt.get(6));
|
||||
@ -1972,13 +1971,14 @@ void TLiquidazione_app::set_deltab(_DescrItem& d, bool iscred)
|
||||
if (!tel.blank())
|
||||
tel << '/';
|
||||
tel << tt.get(9);
|
||||
tp += in;
|
||||
|
||||
TString desc(tt.get(10));
|
||||
|
||||
set_row(rw++, "%-5s@8g%-30s@40g%1s %s @55g%r %5s %5s %3s",
|
||||
//tp += in; //comprendeva gia' gli interessi!
|
||||
|
||||
set_row(rw++, "%-5s@8g%-30s@40g%1s %s @55g%r %5s %5s %3s %-.45s",
|
||||
(const char*)cod, (const char*)diocantaro, (const char*)frq,
|
||||
(const char*)tel, &tp, (const char*)abi,
|
||||
(const char*)cab, (const char*)con);
|
||||
(const char*)tel, &tp, (const char*)abi,
|
||||
(const char*)cab, (const char*)con, (const char*)desc);
|
||||
|
||||
for (int i = 1; i < rgs.items(); i++)
|
||||
set_row(rw++, "@8g%-30s", (const char*)rgs.get(i));
|
||||
|
220
cg/cg4305.cpp
220
cg/cg4305.cpp
@ -1,4 +1,4 @@
|
||||
// cg4306: liquidazione IVA
|
||||
// cg4305: liquidazione IVA
|
||||
// funzionalita' accessorie (calcolo acconto, estrazione deleghe)
|
||||
|
||||
#include <defmask.h>
|
||||
@ -10,7 +10,11 @@
|
||||
|
||||
#include "cg4300.h"
|
||||
#include "cg4300b.h"
|
||||
#include "cg4300c.h"
|
||||
#include "cg4300c.h"
|
||||
#include "cg4800b.h"
|
||||
|
||||
#define IVA_DA_VERSARE_ALTRI_MESI real(50500.0)
|
||||
#define IVA_DA_VERSARE_MESE_12 real(500.0) //chiesto conferma a Milano: e' proprio cosi'
|
||||
|
||||
// -------------------------------------------------- estrazione deleghe
|
||||
bool TLiquidazione_app::set_deleghe()
|
||||
@ -57,8 +61,8 @@ bool TLiquidazione_app::set_deleghe()
|
||||
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
_year = m.get(FLD_CGB_YEAR);
|
||||
_month = atoi(m.get(FLD_CGB_MONTH));
|
||||
_year = m.get(FLD_CGB_YEAR);
|
||||
_month = atoi(m.get(FLD_CGB_MONTH));
|
||||
}
|
||||
|
||||
return k == K_ENTER;
|
||||
@ -89,7 +93,7 @@ bool TLiquidazione_app::extract_deleghe()
|
||||
|
||||
// must succeed
|
||||
look_lia();
|
||||
_freqviva = _lia->get("S7");
|
||||
_freqviva = _lia->get("S7");
|
||||
|
||||
sprintf (buf,"Estrazione deleghe (%d):\nditta %s\n ",
|
||||
_month,
|
||||
@ -101,8 +105,8 @@ bool TLiquidazione_app::extract_deleghe()
|
||||
{
|
||||
_isbenzinaro = _nditte->curr(LF_ATTIV).get_bool("ART74/4");
|
||||
bool mens = _freqviva == "M";
|
||||
_isannual = (_month == 12 && !mens && !_isbenzinaro) ||
|
||||
(_month == 13 && (mens || _isbenzinaro));
|
||||
//_isannual = (_month == 12 && !mens && !_isbenzinaro) ||
|
||||
// (_month == 13 && (mens || _isbenzinaro));
|
||||
_isriepilogo = _month == 13;
|
||||
_isendliq = _isannual || _isriepilogo;
|
||||
|
||||
@ -154,15 +158,27 @@ bool TLiquidazione_app::extract_deleghe()
|
||||
bool TLiquidazione_app::extract_delega(int month, TArray& desc)
|
||||
{
|
||||
TToken_string* tt = NULL;
|
||||
|
||||
bool versare = FALSE;
|
||||
|
||||
if (look_lim(month))
|
||||
{
|
||||
real topay = result_liq(month); // TBC non si puo' fa' accussi'!!!!! pena il casino!
|
||||
real topay = result_liq(month); // TBC non si puo' fa' accussi'!!!!! pena il casino!
|
||||
if (month == 12)
|
||||
{
|
||||
if (topay > IVA_DA_VERSARE_MESE_12)
|
||||
versare = TRUE;
|
||||
}
|
||||
else if (topay > IVA_DA_VERSARE_ALTRI_MESI)
|
||||
versare = TRUE;
|
||||
|
||||
real intr = _lim->get_real("R14");
|
||||
topay += intr; // lo vogliono registrato con interessi
|
||||
real nrnd = topay;
|
||||
topay.round(-3);
|
||||
|
||||
topay.round(-3); // importo totale del versamento arrotondato
|
||||
|
||||
//bool wasdel = look_del(month, _isannual ? 2 : 1);
|
||||
bool wasdel = look_del(month, 1);
|
||||
|
||||
if (!topay.is_zero())
|
||||
{
|
||||
tt = new TToken_string(80);
|
||||
@ -171,23 +187,38 @@ bool TLiquidazione_app::extract_delega(int month, TArray& desc)
|
||||
tt->add(_freqviva);
|
||||
tt->add(topay.string());
|
||||
tt->add("");
|
||||
// tt->add(intr.string());
|
||||
}
|
||||
|
||||
if (topay.sign() > 0)
|
||||
|
||||
//if (topay.sign() > 0)
|
||||
if (versare)
|
||||
{
|
||||
look_del(month, _isannual ? 2 : 1, TRUE);
|
||||
_del->put("R0",topay);
|
||||
_del->put("R1",intr);
|
||||
_del->put("R2",nrnd); // non arrotondato, per calcolo risultato a debito/cr
|
||||
_del->rewrite();
|
||||
|
||||
look_del(month, 1, TRUE);
|
||||
bool stampato = _del->get_bool("B0");
|
||||
if (stampato) //se esiste e stampato si richiede conferma aggiornamento
|
||||
{
|
||||
if (topay != _del->get_real("R0"))
|
||||
video_conferma(topay, intr, nrnd);
|
||||
}
|
||||
else //aggiorna importo versamento
|
||||
{
|
||||
_del->put("R0",topay);
|
||||
_del->put("R1",intr);
|
||||
_del->put("R2",nrnd); // non arrotondato, per calcolo risultato a debito/cr
|
||||
_del->rewrite();
|
||||
}
|
||||
|
||||
tt->add(_del->get("S7"));
|
||||
tt->add(_del->get("S8"));
|
||||
tt->add(_del->get("S9"));
|
||||
tt->add(_nditte->curr().get("PTEL"));
|
||||
tt->add(_nditte->curr().get("TEL"));
|
||||
tt->add(_nditte->curr().get("TEL"));
|
||||
TString desc(_del->get("S1"));
|
||||
if (desc.not_empty())
|
||||
tt->add(desc);
|
||||
else tt->add(_del->get("S2"));
|
||||
}
|
||||
else if (wasdel) //se esiste e no versare
|
||||
_del->remove();
|
||||
}
|
||||
|
||||
if (tt != NULL)
|
||||
@ -196,6 +227,50 @@ bool TLiquidazione_app::extract_delega(int month, TArray& desc)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TLiquidazione_app::video_conferma(const real& newimp, const real& intr,
|
||||
const real& narr)
|
||||
{
|
||||
TMask m("cg4800b");
|
||||
|
||||
m.field(F_CODDITTA).set(_nditte->lfile().get("CODDITTA"));
|
||||
m.field(F_RAGSOC).set(_nditte->lfile().get("RAGSOC"));
|
||||
m.field(F_DATAVER).set(_del->get_date("D0"));
|
||||
m.field(F_ABI).set(_del->get("S7"));
|
||||
m.field(F_CAB).set(_del->get("S8"));
|
||||
m.field(F_CON).set(_del->get("S9"));
|
||||
m.field(F_IMPVER).set(_del->get("R0"));
|
||||
m.field(F_NEWIMP).set(newimp.string());
|
||||
|
||||
for (bool stop = FALSE; !stop;)
|
||||
{
|
||||
KEY k = m.run();
|
||||
|
||||
switch(k)
|
||||
{
|
||||
case K_SAVE:
|
||||
{
|
||||
KEY k = yesnocancel_box("Delega gia' stampata. Si desidera ugualmente confermare l'aggiornamento?");
|
||||
if (k == K_YES)
|
||||
{
|
||||
_del->put("B0", "");
|
||||
_del->put("R0",newimp);
|
||||
_del->put("R1",intr);
|
||||
_del->put("R2",narr);
|
||||
_del->rewrite();
|
||||
}
|
||||
if (k == K_YES || k == K_NO)
|
||||
stop = TRUE;
|
||||
}
|
||||
break;
|
||||
case K_ESC:
|
||||
//case K_QUIT:
|
||||
stop = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// -------------------------------------------- calcolo acconto dicembre
|
||||
bool TLiquidazione_app::set_acconto(real& inf, real& ina)
|
||||
{
|
||||
@ -246,7 +321,6 @@ bool TLiquidazione_app::set_acconto(real& inf, real& ina)
|
||||
return k == K_ENTER;
|
||||
}
|
||||
|
||||
|
||||
bool TLiquidazione_app::recalc_acconti(real& inf, real& ina)
|
||||
{
|
||||
char buf[256];
|
||||
@ -279,6 +353,14 @@ bool TLiquidazione_app::recalc_acconti(real& inf, real& ina)
|
||||
_nditte->read();
|
||||
|
||||
TApplication::set_firm(_nditte->curr().get_long("CODDITTA"));
|
||||
|
||||
_isbenzinaro = _nditte->curr(LF_ATTIV).get_bool("ART74/4");
|
||||
|
||||
look_lia();
|
||||
_freqviva = _lia->get("S7");
|
||||
inf = _lia->get_real("R13");
|
||||
ina = _lia->get_real("R14");
|
||||
|
||||
sprintf (buf,"Calcolo acconto:\nditta %s",
|
||||
(const char*)_nditte_r->get("RAGSOC"));
|
||||
_prind->set_text(buf);
|
||||
@ -295,9 +377,21 @@ bool TLiquidazione_app::recalc_acconti(real& inf, real& ina)
|
||||
|
||||
bool TLiquidazione_app::recalc_acconto(real& inf, real& ina)
|
||||
{
|
||||
real bc, acc, cre, deb;
|
||||
real bc = 0.0;
|
||||
real acc = 0.0;
|
||||
real cre = 0.0;
|
||||
real deb = 0.0;
|
||||
real iva_ven = 0.0;
|
||||
real iva_acq = 0.0;
|
||||
real iva_ret = 0.0;
|
||||
real iva_rim = 0.0;
|
||||
real ult_det = 0.0;
|
||||
real iva_pro = 0.0;
|
||||
real cre_pre = 0.0;
|
||||
real acq_intr = 0.0;
|
||||
bool isdifferita = FALSE;
|
||||
bool error = FALSE;
|
||||
TString16 tipo_acc;
|
||||
|
||||
// TBI rewrite from scratch
|
||||
// this is absolutely fundamental
|
||||
@ -392,7 +486,9 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina)
|
||||
{
|
||||
acc = bc * ACCONTO_DICEMBRE;
|
||||
acc.round(ROUND_LIRA);
|
||||
}
|
||||
}
|
||||
|
||||
tipo_acc = "S";
|
||||
}
|
||||
_year = thyear;
|
||||
}
|
||||
@ -406,47 +502,94 @@ else if (_basecalc == incorso)
|
||||
update_firm(12);
|
||||
|
||||
// calcola l'acconto
|
||||
if (look_lim(12))
|
||||
if (look_lim(12)) //posiziona anche la tabella lam
|
||||
{
|
||||
// TBC trimestrali, differite
|
||||
bc = result_liq(12);
|
||||
// somma i non fatturati/non annotati
|
||||
//bc += inf + ina;
|
||||
bc += inf + ina;
|
||||
cre = _lim->get_real("R12");
|
||||
deb = _lim->get_real("R13");
|
||||
if (bc.sign() > 0) acc = bc;
|
||||
if (bc.sign() > 0) acc = bc;
|
||||
|
||||
// 11/09/1995
|
||||
iva_ven = _lam->get_real("R0"); //iva sulle vendite annotate fino al 20/12
|
||||
iva_acq = _lam->get_real("R1"); //iva sugli acquisti annotati fino al 20/12
|
||||
cre_pre = _lam->get_real("R2"); //credito precedente
|
||||
iva_ret = _lim->get_real("R5"); //rettifica
|
||||
iva_rim = _lim->get_real("R1"); //iva chiesta a rimborso
|
||||
ult_det = _lim->get_real("R6"); //ulteriori detrazioni
|
||||
//iva_pro: //iva relativa alla percentuale di prorata
|
||||
TTable plm ("PLM");
|
||||
plm.zero();
|
||||
plm.put("CODTAB",_year);
|
||||
TRectype rec (plm.curr());
|
||||
plm.read(_isgteq);
|
||||
for (; !plm.eof(); plm.next())
|
||||
{
|
||||
if (plm.curr() != rec) break;
|
||||
iva_pro += plm.get_real("R2");
|
||||
}
|
||||
//acq_intr
|
||||
TTable pom ("POM");
|
||||
pom.zero();
|
||||
pom.put("CODTAB",_year);
|
||||
rec = pom.curr();
|
||||
pom.read(_isgteq);
|
||||
for (; !pom.eof(); pom.next())
|
||||
{
|
||||
if (pom.curr() != rec) break;
|
||||
acq_intr += pom.get_real("R0");
|
||||
}
|
||||
tipo_acc = "A"; //flag per dire che si e' utilizzato il metodo analitico
|
||||
//stop
|
||||
}
|
||||
else error = 1;
|
||||
else error = 1;
|
||||
|
||||
// pulisci il water
|
||||
_comp_acconto = FALSE;
|
||||
update_firm(12);
|
||||
_comp_acconto = FALSE;
|
||||
_isprint = FALSE;
|
||||
update_firm(12);
|
||||
_isprint = TRUE;
|
||||
}
|
||||
|
||||
// sbatti l'acconto in LIA
|
||||
// sbatti l'acconto (e non solo!) in LIA
|
||||
if (look_lia())
|
||||
{
|
||||
isdifferita = _lia->get_bool("B1");
|
||||
if (isdifferita && _basecalc == incorso) acc *= real(double(2/3));
|
||||
_lia->put("R4",acc);
|
||||
_lia->put("R7",iva_ven);
|
||||
_lia->put("R8",iva_acq);
|
||||
_lia->put("R9",iva_ret);
|
||||
_lia->put("R10",iva_rim);
|
||||
_lia->put("R11",ult_det);
|
||||
_lia->put("R12",iva_pro);
|
||||
TToken_string rr;
|
||||
rr.add(cre_pre.string(),0);
|
||||
rr.add(acq_intr.string(),1);
|
||||
_lia->put("S1",rr);
|
||||
_lia->put("S8",tipo_acc);
|
||||
_lia->rewrite();
|
||||
}
|
||||
|
||||
bool wasdel = look_del(12,7);
|
||||
/*** Non bisogna aggiornare la delega
|
||||
bool wasdel = look_del(12,7);
|
||||
|
||||
if (acc.sign() > 0 && acc >= ACCONTO_MINIMO_DA_VERSARE)
|
||||
{
|
||||
if (acc.sign() > 0 && acc >= ACCONTO_MINIMO_DA_VERSARE)
|
||||
{
|
||||
// crea o aggiorna delega
|
||||
// TBC everything
|
||||
look_del(12,7,TRUE);
|
||||
_del->put("R0", acc);
|
||||
_del->rewrite();
|
||||
}
|
||||
else if (wasdel)
|
||||
}
|
||||
else if (wasdel)
|
||||
_del->remove();
|
||||
***/
|
||||
|
||||
// per questa volta lasciamo perdere la describe_acconto
|
||||
if (_isprint)
|
||||
// per questa volta lasciamo perdere la describe_acconto
|
||||
if (_isprint)
|
||||
{
|
||||
// segnalazioni di errore da gesticolare:
|
||||
// error = 0: no error
|
||||
@ -468,3 +611,4 @@ else if (wasdel)
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
//Gestione acconti: questo assurdo prg viene usato solo se ho un acconto da versare
|
||||
//(cosa stabilita dal prg di calcolo acconti) e serve per versare meno, cioe'
|
||||
//per frodare il fisco.
|
||||
#include <relapp.h>
|
||||
#include <config.h>
|
||||
#include <msksheet.h>
|
||||
@ -61,6 +64,8 @@ bool GesAcc_app::msk_credito(TMask_field& f, KEY k)
|
||||
{
|
||||
real credito (f.get());
|
||||
real acconto (f.mask().get(F_ACCONTO));
|
||||
if (credito.sign() < 0)
|
||||
return f.error_box("Introdurre un valore non negativo");
|
||||
if (credito > acconto)
|
||||
return f.error_box("Il credito non puo' essere superiore all'acconto");
|
||||
if (acconto.is_zero())
|
||||
@ -78,6 +83,8 @@ bool GesAcc_app::msk_acconto(TMask_field& f, KEY k)
|
||||
real acconto (f.get());
|
||||
if (!acconto.is_zero())
|
||||
{
|
||||
if (acconto.sign() < 0)
|
||||
return f.error_box("Introdurre un valore non negativo");
|
||||
if (acconto - credito < ACCONTO_MENO_CREDITO)
|
||||
return f.error_box("La differenza tra acconto e credito deve essere superiore a lire %s", ACCONTO_MENO_CREDITO.string("."));
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
//Creazione versamenti per acconti
|
||||
#include <applicat.h>
|
||||
#include <mask.h>
|
||||
#include <tabutil.h>
|
||||
@ -475,9 +476,12 @@ void VersAcc_app::lettura_anagrafica(bool* tipo)
|
||||
{
|
||||
*tipo = FALSE;
|
||||
_con = "";
|
||||
const long codabi = anag.get_long("CODABI");
|
||||
const long codcab = anag.get_long("CODCAB");
|
||||
if (codabi != 0 || codcab != 0)
|
||||
//const long codabi = anag.get_long("CODABI");
|
||||
//const long codcab = anag.get_long("CODCAB");
|
||||
const long codabi = _nditte->lfile().get_long("ABIBAN");
|
||||
const long codcab = _nditte->lfile().get_long("CABBAN");
|
||||
//if (codabi != 0 || codcab != 0)
|
||||
if (codabi != 0 && codcab != 0)
|
||||
{
|
||||
_abi = format("%05ld", codabi);
|
||||
_cab = format("%05ld", codcab);
|
||||
@ -518,7 +522,8 @@ bool VersAcc_app::video_conferma()
|
||||
stop = TRUE;
|
||||
}
|
||||
break;
|
||||
case K_ESC:
|
||||
case K_ESC:
|
||||
//case K_QUIT:
|
||||
stop = TRUE;
|
||||
break;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -34 -1 ""
|
||||
PROMPT -22 -1 ""
|
||||
MESSAGE EXIT,K_ESC
|
||||
END
|
||||
|
||||
@ -52,19 +52,19 @@ END
|
||||
NUMBER F_ABI 5
|
||||
BEGIN
|
||||
PROMPT 1 6 "Codice banca "
|
||||
FLAGS "D"
|
||||
FLAGS "ZD"
|
||||
END
|
||||
|
||||
NUMBER F_CAB 5
|
||||
BEGIN
|
||||
PROMPT 1 7 "Codice dipendenza "
|
||||
FLAGS "D"
|
||||
FLAGS "ZD"
|
||||
END
|
||||
|
||||
NUMBER F_CON 3
|
||||
BEGIN
|
||||
PROMPT 1 8 "Codice concessione "
|
||||
FLAGS "D"
|
||||
FLAGS "ZD"
|
||||
END
|
||||
|
||||
NUMBER F_IMPVER 15
|
||||
|
543
cg/cg4900.cpp
Executable file
543
cg/cg4900.cpp
Executable file
@ -0,0 +1,543 @@
|
||||
//Visualizzazione liquidazione acconti
|
||||
#include <applicat.h>
|
||||
#include <mask.h>
|
||||
#include <tabutil.h>
|
||||
#include <relation.h>
|
||||
#include <sheet.h>
|
||||
#include <urldefid.h>
|
||||
#include <prefix.h>
|
||||
#include <printer.h>
|
||||
#include <progind.h>
|
||||
#include <utility.h>
|
||||
#include <config.h>
|
||||
#include "cg4900.h"
|
||||
|
||||
#define ACCONTO_MIN_DA_VERSARE real(200000.0)
|
||||
|
||||
class LiqAcc_app : public TApplication
|
||||
{
|
||||
TRelation* _nditte;
|
||||
TArray_sheet* _ditte;
|
||||
TArray _nomiditte;
|
||||
TMask* _mask;
|
||||
TTable* _lia,* _lam;
|
||||
|
||||
int _year;
|
||||
long _ditta;
|
||||
bool _registra;
|
||||
TString16 _tipo_acc;
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG);
|
||||
|
||||
// handlers
|
||||
static bool set_ditta(TMask_field&, KEY);
|
||||
static bool set_ragsoc(TMask_field&, KEY);
|
||||
static bool ch_year_handler(TMask_field& f, KEY key);
|
||||
static bool msk_risul(TMask_field& f, KEY key);
|
||||
static bool msk_hide(TMask& m, KEY key);
|
||||
|
||||
public:
|
||||
|
||||
static LiqAcc_app& app() { return (LiqAcc_app&)main_app(); }
|
||||
void build_ditte_sheet();
|
||||
void build_nomiditte();
|
||||
void reset_fields();
|
||||
bool vis_acc();
|
||||
bool video_vis();
|
||||
bool select_butt(TMask& m);
|
||||
|
||||
LiqAcc_app() : _ditte(NULL), _nomiditte(100), _registra(FALSE) {}
|
||||
};
|
||||
|
||||
bool LiqAcc_app::create()
|
||||
{
|
||||
TApplication::create();
|
||||
|
||||
TDate oggi(TODAY);
|
||||
_year = oggi.year();
|
||||
_nditte = new TRelation(LF_NDITTE);
|
||||
_ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte",
|
||||
"Cod.@5|Ragione Sociale@50|Vers.");
|
||||
|
||||
_lia = new TTable("%LIA");
|
||||
_lam = new TTable("LAM");
|
||||
|
||||
begin_wait();
|
||||
build_nomiditte();
|
||||
build_ditte_sheet();
|
||||
end_wait();
|
||||
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool LiqAcc_app::destroy()
|
||||
{
|
||||
delete _lia;
|
||||
delete _ditte;
|
||||
delete _nditte;
|
||||
|
||||
return TApplication::destroy();
|
||||
}
|
||||
|
||||
// handlers
|
||||
bool LiqAcc_app::msk_hide(TMask& m,KEY k)
|
||||
{
|
||||
if (k == K_SHIFT+K_F7) //&& app()._registra)
|
||||
{
|
||||
TMask m1("cg4900d");
|
||||
m1.field(F_TIPO).set(app()._tipo_acc);
|
||||
for (bool stop1 = FALSE; !stop1;)
|
||||
{
|
||||
KEY k1 = m1.run();
|
||||
switch(k1)
|
||||
{
|
||||
case K_ESC:
|
||||
case K_QUIT:
|
||||
if (m1.dirty())
|
||||
{
|
||||
KEY k = yesnocancel_box("Registrazione modifiche effettuate?");
|
||||
if (k == K_YES)
|
||||
{
|
||||
TString16 tipo (m1.get(F_TIPO));
|
||||
TTable lia ("%LIA");
|
||||
TString16 y; y.format("%05ld%04d", app()._ditta, app()._year);
|
||||
lia.zero();
|
||||
lia.put("CODTAB", y);
|
||||
if (lia.read() != NOERR)
|
||||
return FALSE;
|
||||
lia.put("S8", tipo);
|
||||
lia.rewrite();
|
||||
}
|
||||
if (k == K_YES || k == K_NO)
|
||||
stop1 = TRUE;
|
||||
break;
|
||||
}
|
||||
else stop1 = TRUE;
|
||||
break;
|
||||
case K_SAVE:
|
||||
if (m1.dirty())
|
||||
{
|
||||
TString16 tipo (m1.get(F_TIPO));
|
||||
TTable lia ("%LIA");
|
||||
TString16 y; y.format("%05ld%04d", app()._ditta, app()._year);
|
||||
lia.zero();
|
||||
lia.put("CODTAB", y);
|
||||
if (lia.read() != NOERR)
|
||||
return FALSE;
|
||||
lia.put("S8", tipo);
|
||||
lia.rewrite();
|
||||
}
|
||||
break;
|
||||
} //switch
|
||||
} //for
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool LiqAcc_app::msk_risul(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
real iva_ven(f.mask().get(F_IVAVEN));
|
||||
real iva_red(f.mask().get(F_IVARED));
|
||||
real iva_rim(f.mask().get(F_IVARIM));
|
||||
real non_fat(f.mask().get(F_NONFAT));
|
||||
real non_ann(f.mask().get(F_NONANN));
|
||||
|
||||
real risven = ZERO;
|
||||
risven = iva_ven + iva_red + iva_rim + non_fat + non_ann;
|
||||
real risacq (f.mask().get(F_RISACQ));
|
||||
if (risacq - risven < ZERO)
|
||||
{
|
||||
f.mask().show(F_IVADEB);
|
||||
f.mask().hide(F_IVACRE);
|
||||
}
|
||||
else if (risacq - risven > ZERO)
|
||||
{
|
||||
f.mask().hide(F_IVADEB);
|
||||
f.mask().show(F_IVACRE);
|
||||
}
|
||||
else
|
||||
{
|
||||
f.mask().hide(F_IVADEB);
|
||||
f.mask().hide(F_IVACRE);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool LiqAcc_app::set_ditta(TMask_field& f, KEY k)
|
||||
{
|
||||
bool found = TRUE;
|
||||
|
||||
if (k == K_F9)
|
||||
return app().select_butt(f.mask());
|
||||
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
found = FALSE;
|
||||
TString ditta = f.get();
|
||||
for (int i = 0; i < app()._ditte->items(); i++)
|
||||
{
|
||||
TToken_string& row = app()._ditte->row(i);
|
||||
if (ditta == row.get(0))
|
||||
{
|
||||
if (app()._ditte->enabled(i))
|
||||
{
|
||||
f.mask().field(F_CODDITTA).set(row.get(0));
|
||||
f.mask().field(F_RAGSOC).set(row.get(1));
|
||||
found = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
warning_box("Non sono definiti i parametri liquidazione per la ditta %ld",
|
||||
atol(ditta));
|
||||
f.reset();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) f.reset();
|
||||
return found;
|
||||
}
|
||||
|
||||
bool LiqAcc_app::set_ragsoc(TMask_field& f, KEY k)
|
||||
{
|
||||
bool found = TRUE;
|
||||
|
||||
if (k == K_F9)
|
||||
return app().select_butt(f.mask());
|
||||
|
||||
if (k == K_TAB && f.focusdirty())
|
||||
{
|
||||
found = FALSE;
|
||||
TString ditta = f.get();
|
||||
for (int i = 0; i < app()._ditte->items(); i++)
|
||||
{
|
||||
TToken_string& row = app()._ditte->row(i);
|
||||
TString ts(row.get(1));
|
||||
if (ts.find(ditta) != -1)
|
||||
{
|
||||
if (app()._ditte->enabled(i))
|
||||
{
|
||||
f.mask().field(F_CODDITTA).set(row.get(0));
|
||||
f.mask().field(F_RAGSOC).set(row.get(1));
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) f.reset();
|
||||
return found;
|
||||
}
|
||||
|
||||
bool LiqAcc_app::ch_year_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_TAB && f.focusdirty())
|
||||
{
|
||||
app().begin_wait();
|
||||
app()._year = atoi(f.get());
|
||||
app().build_nomiditte();
|
||||
app().build_ditte_sheet();
|
||||
app().reset_fields();
|
||||
app().end_wait();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LiqAcc_app::build_ditte_sheet()
|
||||
{
|
||||
// build sheet
|
||||
_ditte->destroy();
|
||||
for (int i = 0; i < _nomiditte.items(); i++)
|
||||
{
|
||||
TToken_string* d = new TToken_string(64);
|
||||
*d = (TToken_string&)_nomiditte[i];
|
||||
const char vers = d->get_char(2);
|
||||
bool selectable = vers == '?';
|
||||
const long pos = _ditte->add(d);
|
||||
if (selectable) _ditte->disable(pos);
|
||||
}
|
||||
}
|
||||
|
||||
void LiqAcc_app::reset_fields()
|
||||
{
|
||||
_mask->field(F_CODDITTA).set("");
|
||||
_mask->field(F_RAGSOC).set("");
|
||||
}
|
||||
|
||||
bool LiqAcc_app::select_butt(TMask& m)
|
||||
{
|
||||
if (_ditte->run() == K_ENTER)
|
||||
{
|
||||
TToken_string& row = _ditte->row(_ditte->selected());
|
||||
m.field(F_CODDITTA).set(row.get(0));
|
||||
m.field(F_RAGSOC).set(row.get(1));
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void LiqAcc_app::build_nomiditte()
|
||||
{
|
||||
_nomiditte.destroy();
|
||||
// ricostruire _nomiditte e rifare build_ditte_sheet
|
||||
TLocalisamfile& dt = _nditte->lfile();
|
||||
TString fr(2);
|
||||
TTable lia("%LIA");
|
||||
|
||||
for (dt.first(); !dt.eof(); dt.next())
|
||||
{
|
||||
// check no archivi
|
||||
fr = "??";
|
||||
bool good = prefix().exist(dt.get_long("CODDITTA"));
|
||||
|
||||
if (good)
|
||||
{
|
||||
// check no parametri liquidazione
|
||||
lia.put("CODTAB", format("%05ld%d",dt.get_long("CODDITTA"),_year));
|
||||
if (lia.read() != NOERR) good = FALSE;
|
||||
else fr = lia.get("S7");
|
||||
}
|
||||
else continue;
|
||||
|
||||
TToken_string* d = new TToken_string(64);
|
||||
|
||||
// add record
|
||||
d->add(dt.get("CODDITTA"));
|
||||
d->add(dt.get("RAGSOC"));
|
||||
d->add(fr);
|
||||
|
||||
_nomiditte.add(d);
|
||||
}
|
||||
}
|
||||
|
||||
bool LiqAcc_app::menu(MENU_TAG m)
|
||||
{
|
||||
if (m == BAR_ITEM(1))
|
||||
return vis_acc();
|
||||
|
||||
return TApplication::menu(m);
|
||||
}
|
||||
|
||||
bool LiqAcc_app::vis_acc()
|
||||
{
|
||||
long ditta = get_firm();
|
||||
|
||||
TMask m("cg4900a");
|
||||
|
||||
KEY k;
|
||||
_mask = &m;
|
||||
|
||||
m.set_handler(F_CODDITTA, set_ditta);
|
||||
m.set_handler(F_RAGSOC, set_ragsoc);
|
||||
m.set_handler(F_YEAR, ch_year_handler);
|
||||
|
||||
while ((k = m.run()) != K_ESC)
|
||||
{
|
||||
if (k == DLG_SELECT)
|
||||
select_butt(m);
|
||||
else if (k == K_ENTER)
|
||||
{
|
||||
if (m.get(F_CODDITTA).empty() || m.get(F_RAGSOC).empty())
|
||||
{
|
||||
beep();
|
||||
continue;
|
||||
}
|
||||
_ditta = m.get_long(F_CODDITTA);
|
||||
_year = m.get_int(F_YEAR);
|
||||
set_firm(_ditta);
|
||||
video_vis();
|
||||
}
|
||||
}
|
||||
_mask = NULL;
|
||||
set_firm(ditta);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool LiqAcc_app::video_vis()
|
||||
{
|
||||
TTable lia ("%LIA");
|
||||
TString16 y; y.format("%05ld%04d", _ditta, _year);
|
||||
lia.zero();
|
||||
lia.put("CODTAB", y);
|
||||
if (lia.read() != NOERR) //da verificare se e' giusto
|
||||
return FALSE;
|
||||
|
||||
_tipo_acc = lia.get("S8");
|
||||
TString16 freqviva = lia.get("S7");
|
||||
bool liqdiff = lia.get_bool("B1");
|
||||
real acconto = ZERO;
|
||||
real iva_ven = ZERO;
|
||||
real iva_acq = ZERO;
|
||||
real iva_ret = ZERO;
|
||||
real iva_rim = ZERO;
|
||||
real ult_det = ZERO;
|
||||
real per_pro = ZERO;
|
||||
real non_fat = ZERO;
|
||||
real non_ann = ZERO;
|
||||
real risven = ZERO;
|
||||
real risacq = ZERO;
|
||||
real diff = ZERO;
|
||||
|
||||
acconto = lia.get_real("R4");
|
||||
iva_ven = lia.get_real("R7");
|
||||
iva_acq = lia.get_real("R8");
|
||||
iva_ret = lia.get_real("R9");
|
||||
iva_rim = lia.get_real("R10");
|
||||
ult_det = lia.get_real("R11");
|
||||
per_pro = lia.get_real("R12");
|
||||
non_fat = lia.get_real("R13");
|
||||
non_ann = lia.get_real("R14");
|
||||
|
||||
TToken_string ff(lia.get("S1"));
|
||||
real cre_pre (ff.get(0));
|
||||
real acq_intr (ff.get(1));
|
||||
|
||||
// mask diverse per liq. differita oppure no
|
||||
TMask m(liqdiff ? "cg4900c" : "cg4900b");
|
||||
|
||||
m.field(F_IVAVEN).set(iva_ven.string());
|
||||
if (!liqdiff)
|
||||
{
|
||||
m.field(F_NONFAT).set(non_fat.string());
|
||||
m.field(F_NONANN).set(non_ann.string());
|
||||
}
|
||||
|
||||
if (iva_ret.sign() <= 0)
|
||||
m.field(F_IVAREC).set(abs(iva_ret).string());
|
||||
else m.field(F_IVARED).set(iva_ret.string());
|
||||
|
||||
m.field(F_IVARIM).set(iva_rim.string());
|
||||
m.field(F_IVAACQ).set((iva_acq + acq_intr).string());
|
||||
|
||||
if (per_pro.is_zero())
|
||||
m.hide(F_PERPRO);
|
||||
else
|
||||
{
|
||||
m.show(F_PERPRO);
|
||||
m.field(F_PERPRO).set(per_pro.string());
|
||||
}
|
||||
|
||||
m.field(F_CREPRE).set(cre_pre.string());
|
||||
m.field(F_ULTDET).set(ult_det.string());
|
||||
|
||||
risven = iva_ven + non_fat + non_ann + iva_ret + iva_rim;
|
||||
m.field(F_RISVEN).set(risven.string());
|
||||
|
||||
risacq = iva_acq + acq_intr + cre_pre + ult_det + abs(iva_ret);
|
||||
m.field(F_RISACQ).set(risacq.string());
|
||||
|
||||
diff = risacq - risven;
|
||||
if (diff.sign() < 0)
|
||||
{
|
||||
m.show(F_IVADEB);
|
||||
m.hide(F_IVACRE);
|
||||
if (liqdiff) //se no e' gestito da maschera
|
||||
m.field(F_IVADEB).set(abs(diff).string());
|
||||
}
|
||||
else if (diff.sign() > 0)
|
||||
{
|
||||
m.hide(F_IVADEB);
|
||||
m.show(F_IVACRE);
|
||||
if (liqdiff)
|
||||
m.field(F_IVACRE).set(diff.string());
|
||||
}
|
||||
else
|
||||
{
|
||||
m.hide(F_IVADEB);
|
||||
m.hide(F_IVACRE);
|
||||
}
|
||||
|
||||
if (acconto.sign() < 0)
|
||||
{
|
||||
m.show(F_CREEVI);
|
||||
m.field(F_CREEVI).set(acconto.string());
|
||||
m.hide(F_ACCVER);
|
||||
m.hide(F_ACCNVER);
|
||||
}
|
||||
else if (acconto.sign() > 0 && acconto > ACCONTO_MIN_DA_VERSARE)
|
||||
{
|
||||
m.hide(F_CREEVI);
|
||||
m.hide(F_ACCNVER);
|
||||
m.show(F_ACCVER);
|
||||
m.field(F_ACCVER).set(acconto.string());
|
||||
}
|
||||
else if (acconto.sign() > 0 && acconto <= ACCONTO_MIN_DA_VERSARE)
|
||||
{
|
||||
m.hide(F_CREEVI);
|
||||
m.show(F_ACCNVER);
|
||||
m.hide(F_ACCVER);
|
||||
m.field(F_ACCNVER).set(acconto.string());
|
||||
}
|
||||
|
||||
m.set_handler(F_NONFAT, msk_risul);
|
||||
m.set_handler(F_NONANN, msk_risul);
|
||||
m.set_handler(msk_hide);
|
||||
|
||||
for (bool stop = FALSE; !stop;)
|
||||
{
|
||||
KEY k = m.run();
|
||||
|
||||
switch(k)
|
||||
{
|
||||
case K_ESC:
|
||||
case K_QUIT:
|
||||
if (m.dirty())
|
||||
{
|
||||
KEY k = yesnocancel_box("Registrazione modifiche effettuate?");
|
||||
|
||||
if (k == K_YES)
|
||||
{
|
||||
if (!liqdiff)
|
||||
{
|
||||
real nf (m.get(F_NONFAT));
|
||||
real na (m.get(F_NONANN));
|
||||
if (nf != non_fat || na != non_ann)
|
||||
message_box("Valori modificati: rieseguire il calcolo dell'acconto");
|
||||
lia.put("R13", nf);
|
||||
lia.put("R14", na);
|
||||
lia.rewrite();
|
||||
}
|
||||
}
|
||||
if (k == K_YES || k == K_NO)
|
||||
stop = TRUE;
|
||||
break;
|
||||
}
|
||||
else stop = TRUE;
|
||||
break;
|
||||
case K_SAVE:
|
||||
_registra = TRUE;
|
||||
if (m.dirty())
|
||||
{
|
||||
if (!liqdiff)
|
||||
{
|
||||
real nf (m.get(F_NONFAT));
|
||||
real na (m.get(F_NONANN));
|
||||
if (nf != non_fat || na != non_ann)
|
||||
message_box("Valori modificati: rieseguire il calcolo dell'acconto");
|
||||
lia.put("R13", nf);
|
||||
lia.put("R14", na);
|
||||
lia.rewrite();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int cg4900(int argc, char* argv[])
|
||||
{
|
||||
LiqAcc_app app;
|
||||
app.run(argc, argv, "Visualizzazione liquidazione acconti");
|
||||
return 0;
|
||||
}
|
21
cg/cg4900.h
Executable file
21
cg/cg4900.h
Executable file
@ -0,0 +1,21 @@
|
||||
#define F_CODDITTA 101
|
||||
#define F_RAGSOC 102
|
||||
#define F_YEAR 103
|
||||
#define F_IVAVEN 104
|
||||
#define F_NONFAT 105
|
||||
#define F_NONANN 106
|
||||
#define F_IVARED 107
|
||||
#define F_IVARIM 108
|
||||
#define F_RISVEN 109
|
||||
#define F_IVAACQ 110
|
||||
#define F_PERPRO 111
|
||||
#define F_CREPRE 112
|
||||
#define F_ULTDET 113
|
||||
#define F_IVAREC 114
|
||||
#define F_RISACQ 115
|
||||
#define F_IVACRE 116
|
||||
#define F_CREEVI 117
|
||||
#define F_IVADEB 118
|
||||
#define F_ACCVER 119
|
||||
#define F_ACCNVER 120
|
||||
#define F_TIPO 121
|
50
cg/cg4900a.uml
Executable file
50
cg/cg4900a.uml
Executable file
@ -0,0 +1,50 @@
|
||||
#include "cg4900a.h"
|
||||
|
||||
PAGE "Visualizzazione liquidazione acconti" -1 -1 70 6
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "Codice ditta "
|
||||
HELP "Codice della ditta da attivare"
|
||||
END
|
||||
|
||||
BUTTON F_SELECT 2 1
|
||||
BEGIN
|
||||
PROMPT 20 1 "*"
|
||||
PICTURE 109
|
||||
MESSAGE EXIT,DLG_SELECT
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50 30
|
||||
BEGIN
|
||||
PROMPT 25 1 "Rag. soc. "
|
||||
HELP "Ragione sociale della ditta da selezionare"
|
||||
END
|
||||
|
||||
BUTTON F_SELECT 2 1
|
||||
BEGIN
|
||||
PROMPT 66 1 "*"
|
||||
PICTURE 109
|
||||
MESSAGE EXIT,DLG_SELECT
|
||||
END
|
||||
|
||||
NUMBER F_YEAR 4
|
||||
BEGIN
|
||||
PROMPT 1 2 "Anno liquidazione "
|
||||
FLAGS "A"
|
||||
VALIDATE FIXLEN_FUNC 4
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
185
cg/cg4900b.uml
Executable file
185
cg/cg4900b.uml
Executable file
@ -0,0 +1,185 @@
|
||||
#include "cg4900.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_SAVEREC 8 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "~Registra"
|
||||
MESSAGE EXIT,K_SAVE
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 8 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
MESSAGE EXIT,K_ESC
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 8 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
MESSAGE EXIT,K_QUIT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Acconto su operazioni effettuate" -1 -1 77 20
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Codice "
|
||||
FLAGS "DFR"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Rag. Soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 51 3 "Credito"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 66 3 "Debito"
|
||||
END
|
||||
|
||||
NUMBER F_IVAVEN 15
|
||||
BEGIN
|
||||
PROMPT 1 4 "Iva sulle operazioni annotate fino al 20 dic. "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_NONFAT 15
|
||||
BEGIN
|
||||
PROMPT 1 5 "Iva su operaz. fino al 20 dic., ma non fatturate "
|
||||
FLAGS "R"
|
||||
PICTURE "."
|
||||
MESSAGE K_TAB,F_RISVEN|K_TAB,F_IVACRE|K_TAB,F_IVADEB
|
||||
END
|
||||
|
||||
NUMBER F_NONANN 15
|
||||
BEGIN
|
||||
PROMPT 1 6 "Iva su operaz. fino al 20 dic., ma non annotate "
|
||||
FLAGS "R"
|
||||
PICTURE "."
|
||||
MESSAGE K_TAB,F_RISVEN|K_TAB,F_IVACRE|K_TAB,F_IVADEB
|
||||
END
|
||||
|
||||
NUMBER F_IVARED 15
|
||||
BEGIN
|
||||
PROMPT 1 7 "Rettifiche iva a debito "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVARIM 15
|
||||
BEGIN
|
||||
PROMPT 1 8 "Iva chiesta a rimborso "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_RISVEN 15
|
||||
BEGIN
|
||||
PROMPT 1 9 "RISULTATO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
NUM_CALC {#F_IVAVEN + #F_NONFAT + #F_NONANN + #F_IVARED + #F_IVARIM}
|
||||
END
|
||||
|
||||
NUMBER F_IVAACQ 15
|
||||
BEGIN
|
||||
PROMPT 1 10 "Iva su acq. annotati fino al 20 dic. "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_PERPRO 15
|
||||
BEGIN
|
||||
PROMPT 1 11 "meno % di prorata pari a Lire "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_CREPRE 15
|
||||
BEGIN
|
||||
PROMPT 1 12 "Credito precedente "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_ULTDET 15
|
||||
BEGIN
|
||||
PROMPT 1 13 "Ulteriori detrazioni "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVAREC 15
|
||||
BEGIN
|
||||
PROMPT 1 14 "Rettifiche iva a credito "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_RISACQ 15
|
||||
BEGIN
|
||||
PROMPT 1 15 "RISULTATO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVACRE 15
|
||||
BEGIN
|
||||
PROMPT 15 16 "IVA A CREDITO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
NUM_CALC {#F_RISACQ - #F_RISVEN}
|
||||
END
|
||||
|
||||
NUMBER F_CREEVI 15
|
||||
BEGIN
|
||||
PROMPT 6 17 "CREDITO DA EVIDENZIARE "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVADEB 15
|
||||
BEGIN
|
||||
PROMPT 16 16 "IVA A DEBITO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
NUM_CALC {#F_RISVEN - #F_RISACQ}
|
||||
END
|
||||
|
||||
NUMBER F_ACCVER 15
|
||||
BEGIN
|
||||
PROMPT 10 17 "ACCONTO DA VERSARE "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_ACCNVER 15
|
||||
BEGIN
|
||||
PROMPT 6 17 "ACCONTO DA NON VERSARE "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
168
cg/cg4900c.uml
Executable file
168
cg/cg4900c.uml
Executable file
@ -0,0 +1,168 @@
|
||||
#include "cg4900.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
/*
|
||||
BUTTON DLG_SAVEREC 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 "~Registra"
|
||||
MESSAGE EXIT,K_SAVE
|
||||
END
|
||||
*/
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
MESSAGE EXIT,K_ESC
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
MESSAGE EXIT,K_QUIT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Acconto su operazioni effettuate" -1 -1 77 20
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Codice "
|
||||
FLAGS "DFR"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Rag. Soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 51 3 "Credito"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 66 3 "Debito"
|
||||
END
|
||||
|
||||
NUMBER F_IVAVEN 15
|
||||
BEGIN
|
||||
PROMPT 1 4 "Iva sulle operazioni di vendita "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVARED 15
|
||||
BEGIN
|
||||
PROMPT 1 5 "Rettifiche iva a debito "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVARIM 15
|
||||
BEGIN
|
||||
PROMPT 1 6 "Iva chiesta a rimborso "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_RISVEN 15
|
||||
BEGIN
|
||||
PROMPT 1 7 "RISULTATO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVAACQ 15
|
||||
BEGIN
|
||||
PROMPT 1 9 "Iva sulle operazioni di acquisto "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_PERPRO 15
|
||||
BEGIN
|
||||
PROMPT 1 10 "meno % di prorata pari a Lire "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_CREPRE 15
|
||||
BEGIN
|
||||
PROMPT 1 11 "Credito precedente "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_ULTDET 15
|
||||
BEGIN
|
||||
PROMPT 1 12 "Ulteriori detrazioni "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVAREC 15
|
||||
BEGIN
|
||||
PROMPT 1 13 "Rettifiche iva a credito "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_RISACQ 15
|
||||
BEGIN
|
||||
PROMPT 1 14 "RISULTATO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVACRE 15
|
||||
BEGIN
|
||||
PROMPT 15 15 "IVA A CREDITO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_CREEVI 15
|
||||
BEGIN
|
||||
PROMPT 6 17 "CREDITO DA EVIDENZIARE "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_IVADEB 15
|
||||
BEGIN
|
||||
PROMPT 16 15 "IVA A DEBITO "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_ACCVER 15
|
||||
BEGIN
|
||||
PROMPT 10 17 "ACCONTO DA VERSARE "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER F_ACCNVER 15
|
||||
BEGIN
|
||||
PROMPT 6 17 "ACCONTO DA NON VERSARE "
|
||||
FLAGS "RD"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
58
cg/cg4900d.uml
Executable file
58
cg/cg4900d.uml
Executable file
@ -0,0 +1,58 @@
|
||||
#include "cg4900.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
BUTTON DLG_SAVEREC 8 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "~Registra"
|
||||
MESSAGE EXIT,K_SAVE
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 8 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
MESSAGE EXIT,K_ESC
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 8 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
MESSAGE EXIT,K_QUIT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Acconto su operazioni effettuate" -1 -1 77 20
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 0 "@bDitta corrente"
|
||||
END
|
||||
|
||||
NUMBER F_CODDITTA 5
|
||||
BEGIN
|
||||
PROMPT 3 1 "Codice "
|
||||
FLAGS "DFR"
|
||||
USE LF_NDITTE KEY 1
|
||||
INPUT CODDITTA F_CODDITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 17 1 "Rag. Soc. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
RADIOBUTTON F_TIPO 24
|
||||
BEGIN
|
||||
PROMPT 3 4 "Tipo calcolo acconto"
|
||||
ITEM "A|Analitico"
|
||||
ITEM "S|Storico"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
Loading…
x
Reference in New Issue
Block a user