Aggiustato comportamento selezione ditte della liquidazione
git-svn-id: svn://10.65.10.50/trunk@361 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5b4f9e0e88
commit
f29414712e
@ -383,7 +383,7 @@ bool CG0500_application::tipodoc_hndl (TMask_field& f, KEY k)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ma davvero esiste il registro ?
|
// Ma davvero esiste il registro ?
|
||||||
TString16 codreg=f.mask().get(F_COD_REG);
|
TString16 codreg(f.mask().get(F_COD_REG));
|
||||||
if (codreg.not_empty())
|
if (codreg.not_empty())
|
||||||
{
|
{
|
||||||
TRegistro registro(codreg, anno_iva());
|
TRegistro registro(codreg, anno_iva());
|
||||||
@ -404,7 +404,8 @@ bool CG0500_application::tipomov_hndl (TMask_field& f, KEY k)
|
|||||||
if (k == K_SPACE)
|
if (k == K_SPACE)
|
||||||
{
|
{
|
||||||
app()->MostraCampi(f);
|
app()->MostraCampi(f);
|
||||||
if (f.focusdirty()) app()->fill_sheet(f.mask());
|
if (f.focusdirty())
|
||||||
|
app()->fill_sheet(f.mask());
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -513,7 +514,8 @@ bool CG0500_application::cod_reg_hndl (TMask_field& f, KEY k)
|
|||||||
i = (TipoIVA)tabtpd.get_int("I0"); // IVA acquisti, vendite, generica
|
i = (TipoIVA)tabtpd.get_int("I0"); // IVA acquisti, vendite, generica
|
||||||
const TipoIVA ri = grog.iva();
|
const TipoIVA ri = grog.iva();
|
||||||
if (i == iva_generica) i = ri;
|
if (i == iva_generica) i = ri;
|
||||||
if (i != ri) {
|
if (i != ri)
|
||||||
|
{
|
||||||
return f.warning_box("Tipo documento incompatibile con tipo registro");
|
return f.warning_box("Tipo documento incompatibile con tipo registro");
|
||||||
i = iva_errata;
|
i = iva_errata;
|
||||||
}
|
}
|
||||||
@ -856,7 +858,8 @@ void CG0500_application::array2sheet()
|
|||||||
} else
|
} else
|
||||||
if (!r->empty_items())
|
if (!r->empty_items())
|
||||||
{
|
{
|
||||||
if (dfi.not_empty()) {
|
if (dfi.not_empty())
|
||||||
|
{
|
||||||
update = TRUE;
|
update = TRUE;
|
||||||
riga.add(dfi,0);
|
riga.add(dfi,0);
|
||||||
}
|
}
|
||||||
|
194
cg/cg4300.cpp
194
cg/cg4300.cpp
@ -7,6 +7,9 @@
|
|||||||
#include "cg4300.h"
|
#include "cg4300.h"
|
||||||
#include "cg4300a.h"
|
#include "cg4300a.h"
|
||||||
|
|
||||||
|
inline CG4300_App& app()
|
||||||
|
{ return (CG4300_App&)main_app(); }
|
||||||
|
|
||||||
void CG4300_App::user_create()
|
void CG4300_App::user_create()
|
||||||
{
|
{
|
||||||
TProgind pnd(3,"Preparazione archivi\nPrego attendere",
|
TProgind pnd(3,"Preparazione archivi\nPrego attendere",
|
||||||
@ -201,27 +204,66 @@ bool CG4300_App::set_print(int n)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long CG4300_App::select_firm_range(long from, long to, wht freq)
|
||||||
|
{
|
||||||
|
if (to == 0) to = 99999L;
|
||||||
|
|
||||||
|
for (int i = 0; i < _nomiditte.items(); i++)
|
||||||
|
{
|
||||||
|
TToken_string& d = (TToken_string&)_nomiditte[i];
|
||||||
|
const char vers = d.get_char(2);
|
||||||
|
if ((freq == mnt && vers == 'T') || (freq == quarter && vers == 'M'))
|
||||||
|
continue;
|
||||||
|
const long cod = d.get_long(0);
|
||||||
|
if (cod >= from && cod <= to)
|
||||||
|
_selected.set(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _selected.ones();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool CG4300_App::to_ditta_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_TAB && f.focusdirty() || key == K_ENTER)
|
||||||
|
{
|
||||||
|
TMask& m = f.mask();
|
||||||
|
const long from = m.get_long(CG43_FLD_DFR);
|
||||||
|
const long to = m.get_long(CG43_FLD_DTO);
|
||||||
|
const wht freq = (wht)m.get_int(CG43_RDB_VERS);
|
||||||
|
if (from > 0 || to > 0)
|
||||||
|
{
|
||||||
|
const long sel = app().select_firm_range(from, to, freq);
|
||||||
|
m.set(CG43_FLD_SELECTED, sel);
|
||||||
|
m.reset(CG43_FLD_DFR);
|
||||||
|
m.reset(CG43_FLD_DTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CG4300_App::set_liquidazione()
|
bool CG4300_App::set_liquidazione()
|
||||||
{
|
{
|
||||||
TMask m("cg4300a.msk");
|
TMask m("cg4300a.msk");
|
||||||
|
m.set_handler(CG43_FLD_DTO, to_ditta_handler);
|
||||||
|
|
||||||
m.field(CG43_FLD_SELECTED).set("0");
|
m.field(CG43_FLD_SELECTED).set("0");
|
||||||
_selected.reset();
|
_selected.reset();
|
||||||
TBit_array selected = _selected;
|
|
||||||
|
|
||||||
KEY k;
|
KEY k;
|
||||||
// stampa abilitata per default
|
// stampa abilitata per default
|
||||||
m.set(CG43_CHK_STAMPA,"X");
|
m.set(CG43_CHK_STAMPA,"X");
|
||||||
|
|
||||||
do {
|
do
|
||||||
|
{
|
||||||
k = m.run();
|
k = m.run();
|
||||||
|
|
||||||
if (k == K_ESC) break;
|
if (k == K_ESC) break;
|
||||||
|
|
||||||
|
|
||||||
_what = (wht)atoi(m.get(CG43_RDB_VERS));
|
_what = (wht)m.get_int(CG43_RDB_VERS);
|
||||||
_month = atoi(m.get(CG43_LST_MESE));
|
_month = m.get_int(CG43_LST_MESE);
|
||||||
|
|
||||||
if (_what == all)
|
if (_what == all)
|
||||||
{
|
{
|
||||||
@ -230,7 +272,7 @@ bool CG4300_App::set_liquidazione()
|
|||||||
_what = mnt;
|
_what = mnt;
|
||||||
}
|
}
|
||||||
else if (_what == quarter)
|
else if (_what == quarter)
|
||||||
_month = atoi(m.get(CG43_LST_TRIM));
|
_month = m.get_int(CG43_LST_TRIM);
|
||||||
|
|
||||||
_year = m.get(CG43_FLD_ANNO);
|
_year = m.get(CG43_FLD_ANNO);
|
||||||
_date = m.get(CG43_FLD_DATA);
|
_date = m.get(CG43_FLD_DATA);
|
||||||
@ -240,109 +282,81 @@ bool CG4300_App::set_liquidazione()
|
|||||||
|
|
||||||
if (_isprint) printer().setdate(_date);
|
if (_isprint) printer().setdate(_date);
|
||||||
|
|
||||||
TString from = m.get(CG43_FLD_DFR);
|
|
||||||
TString to = m.get(CG43_FLD_DTO);
|
|
||||||
|
|
||||||
|
|
||||||
m.field(CG43_FLD_DFR).set("");
|
|
||||||
m.field(CG43_FLD_DTO).set("");
|
|
||||||
|
|
||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
m.first_focus(k);
|
m.first_focus(k);
|
||||||
|
|
||||||
long j, cnt, chk; int i;
|
int i;
|
||||||
|
|
||||||
|
|
||||||
if (!from.empty() || !to.empty())
|
|
||||||
{
|
|
||||||
chk = 0l;
|
|
||||||
if (from.empty()) from = "0";
|
|
||||||
if (to.empty()) to = "999999";
|
|
||||||
for (i = 0; i < _nomiditte.items(); i++)
|
|
||||||
{
|
|
||||||
TToken_string& d = (TToken_string&) _nomiditte[i];
|
|
||||||
TString16 cod = d.get(0);
|
|
||||||
TString16 vers = d.get(2);
|
|
||||||
if ((_what == mnt && vers == "T") ||
|
|
||||||
(_what == quarter && vers == "M"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (atol(cod) >= atol(from) && atol(cod) <= atol(to))
|
|
||||||
_selected.set(chk++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
switch(k)
|
switch(k)
|
||||||
{
|
{
|
||||||
case DLG_SELECT:
|
case DLG_SELECT:
|
||||||
// build sheet
|
// build sheet
|
||||||
_ditte->destroy(); chk = 0l;
|
_ditte->destroy();
|
||||||
for (i = 0; i < _nomiditte.items(); i++)
|
for (i = 0; i < _nomiditte.items(); i++)
|
||||||
{
|
{
|
||||||
if (_selected[i]) continue;
|
TToken_string* d = new TToken_string(64);
|
||||||
TToken_string& d = (TToken_string&) _nomiditte[i];
|
*d = (TToken_string&)_nomiditte[i];
|
||||||
TString16 cod = d.get(0);
|
const char vers = d->get_char(2);
|
||||||
TString16 vers = d.get(2);
|
|
||||||
if ((_what == mnt && vers == "T") ||
|
if ((_what == mnt && vers == 'T') || (_what == quarter && vers == 'M'))
|
||||||
(_what == quarter && vers == "M"))
|
continue;
|
||||||
continue;
|
|
||||||
|
d->insert(" |", 0);
|
||||||
_ditte->add(d);
|
const long pos = _ditte->add(d);
|
||||||
|
if (_selected[i]) _ditte->check(pos);
|
||||||
// check
|
|
||||||
if (!from.empty() || !to.empty())
|
|
||||||
{
|
|
||||||
if (from.empty()) from = "0";
|
|
||||||
if (to.empty()) to = "999999";
|
|
||||||
if (atol(cod) >= atol(from) && atol(cod) <= atol(to))
|
|
||||||
{
|
|
||||||
_ditte->check(chk);
|
|
||||||
_selected.set(chk++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// seleziona e aggiungi alle gia' selezionate
|
// seleziona e aggiungi alle gia' selezionate
|
||||||
if (_ditte->run() == K_ENTER)
|
if (_ditte->run() == K_ENTER)
|
||||||
{
|
|
||||||
cnt = 0;
|
|
||||||
for (j = 0l; j < _n_ditte; j++)
|
|
||||||
{
|
{
|
||||||
if (_selected[j]) continue;
|
for (long j = 0l; j < _ditte->items(); j++)
|
||||||
if (_ditte->checked(cnt++))
|
{
|
||||||
selected.set(j);
|
const long cod = _ditte->row(j).get_long(1);
|
||||||
|
for (int d = 0; d < _nomiditte.items(); d++)
|
||||||
|
{
|
||||||
|
const long firm = ((TToken_string&)_nomiditte[d]).get_long(0);
|
||||||
|
if (firm == cod)
|
||||||
|
{
|
||||||
|
_selected.set(d, _ditte->checked(j));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifdef DBG
|
||||||
|
if (d >= _nomiditte.items())
|
||||||
|
yesnofatal_box("Non ritrovo piu' la ditta %ld", cod);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_selected |= selected;
|
m.set(CG43_FLD_SELECTED, _selected.ones());
|
||||||
selected.reset();
|
break;
|
||||||
|
case CG43_BUT_ANN:
|
||||||
|
_selected.reset();
|
||||||
|
m.reset(CG43_FLD_SELECTED);
|
||||||
|
break;
|
||||||
|
/*
|
||||||
|
case CG43_BUT_CHK:
|
||||||
|
{
|
||||||
|
_ditte->destroy();
|
||||||
|
for (i = 0; i < _nomiditte.items(); i++)
|
||||||
|
{
|
||||||
|
TToken_string& d = (TToken_string&)_nomiditte[i];
|
||||||
|
_ditte->add(d);
|
||||||
|
if (_selected[i]) _ditte->check(i);
|
||||||
|
}
|
||||||
|
_ditte->disable_check();
|
||||||
|
_ditte->run();
|
||||||
|
_ditte->enable_check();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
m.field(CG43_FLD_SELECTED).set(format("%ld",(long)_selected.ones()));
|
}
|
||||||
break;
|
while (k != K_ENTER && k != K_ESC);
|
||||||
case CG43_BUT_ANN:
|
|
||||||
_selected.reset();
|
|
||||||
m.field(CG43_FLD_SELECTED).set("0");
|
|
||||||
break;
|
|
||||||
case CG43_BUT_CHK:
|
|
||||||
{
|
|
||||||
_ditte->destroy();
|
|
||||||
for (i = 0; i < _nomiditte.items(); i++)
|
|
||||||
{
|
|
||||||
TToken_string d = (const char*)((TToken_string&)_nomiditte[i]);
|
|
||||||
_ditte->add(d);
|
|
||||||
if (_selected[i]) _ditte->check(i);
|
|
||||||
}
|
|
||||||
_ditte->disable_check();
|
|
||||||
_ditte->run();
|
|
||||||
_ditte->enable_check();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (k != K_ENTER && k != K_ESC);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return k == K_ENTER;
|
return k == K_ENTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cg4300(int argc, char* argv[])
|
int cg4300(int argc, char* argv[])
|
||||||
|
@ -249,6 +249,10 @@ class CG4300_App : public TPrintapp
|
|||||||
TRecfield* _del_mese;
|
TRecfield* _del_mese;
|
||||||
TRecfield* _del_tipo;
|
TRecfield* _del_tipo;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
long select_firm_range(long from, long to, wht freq);
|
||||||
|
static bool to_ditta_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual void user_create();
|
virtual void user_create();
|
||||||
|
@ -21,10 +21,11 @@ END
|
|||||||
NUMBER CG43_FLD_DFR 6
|
NUMBER CG43_FLD_DFR 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 2 "Da codice "
|
PROMPT 24 2 "Da codice "
|
||||||
|
FLAGS "UR"
|
||||||
HELP "Immettere codice ditta di partenza per la selezione"
|
HELP "Immettere codice ditta di partenza per la selezione"
|
||||||
USE LF_NDITTE KEY 1
|
USE LF_NDITTE KEY 1
|
||||||
DISPLAY "Codice" CODDITTA
|
DISPLAY "Codice" CODDITTA
|
||||||
DISPLAY "Ragione sociale " RAGSOC
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
DISPLAY "Vers" FREQVIVA
|
DISPLAY "Vers" FREQVIVA
|
||||||
OUTPUT CG43_FLD_DFR CODDITTA
|
OUTPUT CG43_FLD_DFR CODDITTA
|
||||||
END
|
END
|
||||||
@ -32,10 +33,11 @@ END
|
|||||||
NUMBER CG43_FLD_DTO 6
|
NUMBER CG43_FLD_DTO 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 3 "A codice "
|
PROMPT 24 3 "A codice "
|
||||||
|
FLAGS "UR"
|
||||||
HELP "Immettere codice ditta di fine selezione"
|
HELP "Immettere codice ditta di fine selezione"
|
||||||
COPY USE CG43_FLD_DFR
|
COPY USE CG43_FLD_DFR
|
||||||
DISPLAY "Codice" CODDITTA
|
DISPLAY "Codice" CODDITTA
|
||||||
DISPLAY "Ragione sociale " RAGSOC
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
DISPLAY "Vers" FREQVIVA
|
DISPLAY "Vers" FREQVIVA
|
||||||
OUTPUT CG43_FLD_DTO CODDITTA
|
OUTPUT CG43_FLD_DTO CODDITTA
|
||||||
END
|
END
|
||||||
@ -46,24 +48,25 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_SELECT 8
|
BUTTON DLG_SELECT 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 2 "Selezione"
|
PROMPT 48 2 "~Selezione"
|
||||||
MESSAGE EXIT, DLG_SELECT
|
MESSAGE EXIT, DLG_SELECT
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON CG43_BUT_ANN 8
|
BUTTON CG43_BUT_ANN 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 3 "Annulla"
|
PROMPT 48 4 "A~zzera"
|
||||||
MESSAGE EXIT,CG43_BUT_ANN
|
MESSAGE EXIT,CG43_BUT_ANN
|
||||||
END
|
END
|
||||||
|
|
||||||
|
/*
|
||||||
BUTTON CG43_BUT_CHK 8
|
BUTTON CG43_BUT_CHK 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 4 "Verifica"
|
PROMPT 50 4 "Verifica"
|
||||||
MESSAGE EXIT,CG43_BUT_CHK
|
MESSAGE EXIT,CG43_BUT_CHK
|
||||||
END
|
END
|
||||||
|
*/
|
||||||
|
|
||||||
NUMBER CG43_FLD_ANNO 4
|
NUMBER CG43_FLD_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -75,8 +75,8 @@ bool CG4300_App::update_firm(int month, bool recalc)
|
|||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
TString codatt = _nditte->curr(LF_ATTIV).get("CODATT");
|
TString16 codatt = _nditte->curr(LF_ATTIV).get("CODATT");
|
||||||
TString desatt = _nditte->curr(LF_ATTIV).get("DESCR");
|
TString80 desatt = _nditte->curr(LF_ATTIV).get("DESCR");
|
||||||
|
|
||||||
// attivita' mista: ce ne sono in realta' due
|
// attivita' mista: ce ne sono in realta' due
|
||||||
_mixed = _nditte->curr().get_bool("FLIVA11Q");
|
_mixed = _nditte->curr().get_bool("FLIVA11Q");
|
||||||
|
@ -316,19 +316,19 @@ bool CG4300_App::look_del(int month, int type, bool create)
|
|||||||
bool CG4300_App::look_lia(bool create, int year)
|
bool CG4300_App::look_lia(bool create, int year)
|
||||||
{
|
{
|
||||||
if (year == 0) year = atoi(_year);
|
if (year == 0) year = atoi(_year);
|
||||||
TString y(4); y << year;
|
TString16 y; y << year;
|
||||||
|
|
||||||
_lia->zero();
|
_lia->zero();
|
||||||
_lia->put("CODTAB", y);
|
_lia->put("CODTAB", y);
|
||||||
_lia->read();
|
_lia->read();
|
||||||
bool ok = _lia->good();
|
const bool ok = _lia->good();
|
||||||
if (!ok && create)
|
if (!ok && create)
|
||||||
{
|
{
|
||||||
_lia->zero();
|
_lia->zero();
|
||||||
_lia->put("CODTAB", y);
|
_lia->put("CODTAB", y);
|
||||||
_lia->put("S7", _nditte->curr().get("FREQVIVA"));
|
_lia->put("S7", _nditte->curr().get("FREQVIVA"));
|
||||||
_lia->write();
|
_lia->write();
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +351,7 @@ real CG4300_App::credito_prec(int month)
|
|||||||
if (_lia->status() == NOERR)
|
if (_lia->status() == NOERR)
|
||||||
{
|
{
|
||||||
c = _lia->get_real("R0");
|
c = _lia->get_real("R0");
|
||||||
if (!c.iszero()) return c;
|
if (!c.is_zero()) return c;
|
||||||
}
|
}
|
||||||
int yr = atoi(_year) - 1;
|
int yr = atoi(_year) - 1;
|
||||||
_lim->zero();
|
_lim->zero();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user