Patch level : 10.0
Files correlati : sc0 Ricompilazione Demo : [ ] Commento : Nuovo pareggio partite git-svn-id: svn://10.65.10.50/branches/R_10_00@22604 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5f419a6247
commit
dfcef6b5b5
12
sc/sc0.cpp
12
sc/sc0.cpp
@ -2,8 +2,14 @@
|
|||||||
|
|
||||||
#include "sc0.h"
|
#include "sc0.h"
|
||||||
|
|
||||||
int main(int argc,char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
sc0100(argc,argv); // Per ora evito warning sullo switch vuoto
|
const int n = (argc > 1) ? (atoi(&argv[1][1])) : 0;
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 1: sc0200(argc,argv); break; // Gestione partite
|
||||||
|
case 2: sc0300(argc,argv); break; // Pareggio partite
|
||||||
|
default: sc0100(argc,argv); break; // Gestione classica
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
2
sc/sc0.h
2
sc/sc0.h
@ -1,2 +1,4 @@
|
|||||||
int sc0100(int argc, char* argv[]);
|
int sc0100(int argc, char* argv[]);
|
||||||
|
int sc0200(int argc, char* argv[]);
|
||||||
|
int sc0300(int argc, char* argv[]);
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ void TSaldaconto_app::gioca_cambi(TMask& m, int force)
|
|||||||
if ( (force == 0x1 || totale.is_zero()) && !(totval.is_zero() || cambio.is_zero()) )
|
if ( (force == 0x1 || totale.is_zero()) && !(totval.is_zero() || cambio.is_zero()) )
|
||||||
{
|
{
|
||||||
const TValuta cam(m, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
|
const TValuta cam(m, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
|
||||||
const real new_totale = cam.val2lit(totval);
|
const real new_totale = cam.val2eur(totval);
|
||||||
if (new_totale != totale)
|
if (new_totale != totale)
|
||||||
m.set(E_TOTALE, new_totale, TRUE);
|
m.set(E_TOTALE, new_totale, TRUE);
|
||||||
}
|
}
|
||||||
@ -157,7 +157,7 @@ void TSaldaconto_app::gioca_cambi(TMask& m, int force)
|
|||||||
if ( (force == 0x2 || totval.is_zero()) && !(totale.is_zero() || cambio.is_zero()) )
|
if ( (force == 0x2 || totval.is_zero()) && !(totale.is_zero() || cambio.is_zero()) )
|
||||||
{
|
{
|
||||||
const TValuta cam(m, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
|
const TValuta cam(m, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
|
||||||
const real new_totval = cam.lit2val(totale);
|
const real new_totval = cam.eur2val(totale);
|
||||||
if (new_totval != totval)
|
if (new_totval != totval)
|
||||||
m.set(E_TOTDOCVAL, new_totval, TRUE);
|
m.set(E_TOTDOCVAL, new_totval, TRUE);
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ protected: // TApplication
|
|||||||
virtual void on_config_change();
|
virtual void on_config_change();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void edit_partite(const TMask& m);
|
virtual void edit_partite(const TMask& m);
|
||||||
|
|
||||||
void load_colors();
|
void load_colors();
|
||||||
COLOR type2color(char tipor, char tipoc);
|
COLOR type2color(char tipor, char tipoc);
|
||||||
|
@ -16,41 +16,6 @@
|
|||||||
// Maschera gestione rate
|
// Maschera gestione rate
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TFattura_mask : public TMask
|
|
||||||
{
|
|
||||||
TRiga_partite& _fattura;
|
|
||||||
TPagamento* _pag;
|
|
||||||
TString_array _pag_rows;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
static bool clifo_handler(TMask_field& f, KEY key);
|
|
||||||
static bool datadoc_handler(TMask_field& f, KEY key);
|
|
||||||
static bool codpag_handler(TMask_field& f, KEY key);
|
|
||||||
static bool nrate_handler(TMask_field& f, KEY key);
|
|
||||||
static bool recalc_handler(TMask_field& f, KEY key);
|
|
||||||
static bool codcab_handler(TMask_field& f, KEY key);
|
|
||||||
static bool pag_notify(TSheet_field& ps, int r, KEY k);
|
|
||||||
static bool pag_handler(TMask_field& f, KEY key);
|
|
||||||
static bool reset_handler(TMask_field& f, KEY key);
|
|
||||||
static bool tipopag_handler(TMask_field& f, KEY key);
|
|
||||||
|
|
||||||
TPagamento& pagamento() const { return *_pag; }
|
|
||||||
TPagamento& set_pagamento(const char* cod, const char* dat);
|
|
||||||
|
|
||||||
TSheet_field& pag_sheet() const { return (TSheet_field&)field(FS_RATESHEET); }
|
|
||||||
void pag2sheet();
|
|
||||||
|
|
||||||
bool read_scadenze();
|
|
||||||
|
|
||||||
public:
|
|
||||||
void set_totale_pagamento(bool update);
|
|
||||||
void set_scadenze();
|
|
||||||
void write_scadenze() const;
|
|
||||||
real totale_rate(bool val) const;
|
|
||||||
|
|
||||||
TFattura_mask(TRiga_partite& fattura);
|
|
||||||
virtual ~TFattura_mask();
|
|
||||||
};
|
|
||||||
|
|
||||||
TFattura_mask::TFattura_mask(TRiga_partite& fattura)
|
TFattura_mask::TFattura_mask(TRiga_partite& fattura)
|
||||||
: TMask("sc0100c"), _fattura(fattura), _pag(NULL)
|
: TMask("sc0100c"), _fattura(fattura), _pag(NULL)
|
||||||
@ -124,6 +89,9 @@ real TFattura_mask::totale_rate(bool val) const
|
|||||||
return tot;
|
return tot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TSheet_field& TFattura_mask::pag_sheet() const
|
||||||
|
{ return sfield(FS_RATESHEET); }
|
||||||
|
|
||||||
void TFattura_mask::pag2sheet()
|
void TFattura_mask::pag2sheet()
|
||||||
{
|
{
|
||||||
TPagamento& pag = pagamento();
|
TPagamento& pag = pagamento();
|
||||||
@ -574,7 +542,7 @@ void TFattura_mask::set_totale_pagamento(bool update)
|
|||||||
const TValuta cambio(*this, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
|
const TValuta cambio(*this, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
|
||||||
if (cambio.in_valuta())
|
if (cambio.in_valuta())
|
||||||
{
|
{
|
||||||
const real imposval = cambio.lit2val(imposta);
|
const real imposval = cambio.eur2val(imposta);
|
||||||
const real imponval = get_real(E_TOTDOCVAL) - imposval;
|
const real imponval = get_real(E_TOTDOCVAL) - imposval;
|
||||||
pag.set_total_valuta(imponval, imposval, spese, cambio.cambio(),
|
pag.set_total_valuta(imponval, imposval, spese, cambio.cambio(),
|
||||||
imponibile, imposta, spese, cambio.codice());
|
imponibile, imposta, spese, cambio.codice());
|
||||||
@ -1028,7 +996,7 @@ bool TSaldaconto_app::totale_handler(TMask_field& f, KEY k)
|
|||||||
if (cambio.in_valuta())
|
if (cambio.in_valuta())
|
||||||
{
|
{
|
||||||
const real totval(m.get(E_TOTDOCVAL));
|
const real totval(m.get(E_TOTDOCVAL));
|
||||||
const real totlit = cambio.val2lit(totval);
|
const real totlit = cambio.val2eur(totval);
|
||||||
if (totale != totlit)
|
if (totale != totlit)
|
||||||
ok = yesno_box(FR("Il totale documento in lire dovrebbe essere %s: continuare ugualmente?"),
|
ok = yesno_box(FR("Il totale documento in lire dovrebbe essere %s: continuare ugualmente?"),
|
||||||
totlit.string("."));
|
totlit.string("."));
|
||||||
|
294
sc/sc0300.cpp
Normal file
294
sc/sc0300.cpp
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
#include "sc0300a.h"
|
||||||
|
#include "../cg/cgsalda3.h"
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <automask.h>
|
||||||
|
#include <recset.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <treectrl.h>
|
||||||
|
|
||||||
|
class TPareggio_tree : public TObject_tree
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual TFieldtypes get_var(const TString& name, TVariant& var) const;
|
||||||
|
virtual bool marked() const { return rand() % 2 != 0; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool init(const TBill& bill, const TString& valuta, bool nc, int stato); // Stato- 1=aperte; 2=chiuse; 0 o 3 = tutte
|
||||||
|
};
|
||||||
|
|
||||||
|
TFieldtypes TPareggio_tree::get_var(const TString& name, TVariant& var) const
|
||||||
|
{
|
||||||
|
TFieldtypes ft = _nullfld;
|
||||||
|
const TObject* obj = curr_node();
|
||||||
|
if (obj != NULL)
|
||||||
|
{
|
||||||
|
if (obj->is_kind_of(CLASS_RECTYPE))
|
||||||
|
{
|
||||||
|
const TRectype& rec = *(const TRectype*)obj;
|
||||||
|
ft = rec.type(name);
|
||||||
|
if (ft != _nullfld)
|
||||||
|
{
|
||||||
|
if (ft == _realfld)
|
||||||
|
{
|
||||||
|
var = rec.get_real(name).stringa(0, 2);
|
||||||
|
ft = _alfafld;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
var = rec.get(name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (name == PART_DATADOC)
|
||||||
|
{
|
||||||
|
if (rec.num() == LF_SCADENZE)
|
||||||
|
{
|
||||||
|
var = rec.get_date(SCAD_DATASCAD);
|
||||||
|
ft = _datefld;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (name == "RESIDUO")
|
||||||
|
{
|
||||||
|
TImporto saldo;
|
||||||
|
switch (rec.num())
|
||||||
|
{
|
||||||
|
case LF_SCADENZE:
|
||||||
|
if (!rec.get_bool(SCAD_PAGATA))
|
||||||
|
{
|
||||||
|
const TPartita game(rec);
|
||||||
|
const TRiga_scadenze& s = game.rata(rec.get_int(SCAD_NRIGA), rec.get_int(SCAD_NRATA));
|
||||||
|
saldo = s.residuo(true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LF_PARTITE:
|
||||||
|
if (!rec.get_bool(PART_CHIUSA))
|
||||||
|
{
|
||||||
|
const TPartita game(rec);
|
||||||
|
saldo = game.calcola_saldo(true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
var = saldo.valore().stringa(0, 2);
|
||||||
|
ft = _alfafld;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (name == PART_NUMPART)
|
||||||
|
{
|
||||||
|
const real& year = *(real*)obj;
|
||||||
|
var = year.integer();
|
||||||
|
ft = _intfld;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ft;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TPareggio_tree::init(const TBill& bill, const TString& valuta, bool nc, int stato)
|
||||||
|
{
|
||||||
|
goto_root();
|
||||||
|
kill_node();
|
||||||
|
|
||||||
|
TString filter;
|
||||||
|
if (bill.tipo() > ' ')
|
||||||
|
filter << PART_TIPOCF << '=' << bill.tipo();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
filter << PART_GRUPPO << '=' << bill.gruppo() << ' ';
|
||||||
|
filter << PART_CONTO << '=' << bill.conto();
|
||||||
|
}
|
||||||
|
filter << ' ' << PART_SOTTOCONTO << '=' << bill.sottoconto();
|
||||||
|
|
||||||
|
TString query;
|
||||||
|
query << "USE PART SELECT (NRIGA<9999)&&(TIPOMOV<=" << (nc ? tm_nota_credito : tm_fattura) << ')'
|
||||||
|
<< "\nFROM " << filter << "\nTO " << filter;
|
||||||
|
TISAM_recordset games(query);
|
||||||
|
const TRectype& rec = games.cursor()->curr();
|
||||||
|
|
||||||
|
int last_year = 0;
|
||||||
|
TString80 id_year, id_rec;
|
||||||
|
|
||||||
|
for (bool ok = games.move_first(); ok; ok = games.move_next())
|
||||||
|
{
|
||||||
|
const TString& codval = rec.get(PART_CODVAL);
|
||||||
|
if (!same_values(codval, valuta))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const tipo_movimento tm = (tipo_movimento)rec.get_int(PART_TIPOMOV);
|
||||||
|
bool add_riga = true;
|
||||||
|
if (nc)
|
||||||
|
{
|
||||||
|
add_riga = !rec.get_bool(PART_CHIUSA);
|
||||||
|
// Se filtro le note di credito cerco di riconoscere le fatture negative
|
||||||
|
if (add_riga && tm == tm_fattura)
|
||||||
|
{
|
||||||
|
const char sezione_positiva = bill.tipo() == 'C' ? 'D' : 'A';
|
||||||
|
TImporto importo(rec.get_char(PART_SEZ), rec.get_real(PART_IMPORTO));
|
||||||
|
importo.normalize();
|
||||||
|
if (sezione_positiva == importo.sezione()) // Controlla se fattura positiva o negativa
|
||||||
|
add_riga = false; // Ignora fattura positiva
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (stato == 1 || stato == 2)
|
||||||
|
{
|
||||||
|
const bool chiusa = rec.get_bool(PART_CHIUSA);
|
||||||
|
if (chiusa)
|
||||||
|
add_riga = stato == 2;
|
||||||
|
else
|
||||||
|
add_riga = stato == 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!add_riga)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const int year = rec.get_int(PART_ANNO);
|
||||||
|
if (year != last_year)
|
||||||
|
{
|
||||||
|
goto_root();
|
||||||
|
while(goto_rbrother());
|
||||||
|
add_rbrother(real(year));
|
||||||
|
|
||||||
|
last_year = year;
|
||||||
|
curr_id(id_year);
|
||||||
|
id_rec.cut(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nc)
|
||||||
|
{
|
||||||
|
if (id_rec.full())
|
||||||
|
{
|
||||||
|
goto_node(id_rec);
|
||||||
|
add_rbrother(rec);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
add_son(rec);
|
||||||
|
curr_id(id_rec);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TPartita game(rec);
|
||||||
|
const TRiga_partite& riga = game.riga(rec.get_int(PART_NRIGA));
|
||||||
|
for (int rata = 1; rata <= riga.rate(); rata++)
|
||||||
|
{
|
||||||
|
const TRiga_scadenze& s = riga.rata(rata);
|
||||||
|
bool add_rata = true;
|
||||||
|
if (stato == 1 || stato == 2)
|
||||||
|
{
|
||||||
|
const bool chiusa = s.get_bool(SCAD_PAGATA);
|
||||||
|
if (chiusa)
|
||||||
|
add_rata = stato == 2;
|
||||||
|
else
|
||||||
|
add_rata = stato == 1;
|
||||||
|
}
|
||||||
|
if (add_rata)
|
||||||
|
{
|
||||||
|
if (id_rec.full())
|
||||||
|
add_rbrother(s);
|
||||||
|
else
|
||||||
|
add_son(s);
|
||||||
|
curr_id(id_rec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (goto_node(id_year))
|
||||||
|
expand();
|
||||||
|
|
||||||
|
return goto_root();
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TPareggio_mask
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TPareggio_mask : public TAutomask
|
||||||
|
{
|
||||||
|
TPareggio_tree _nc, _ft;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TPareggio_mask();
|
||||||
|
};
|
||||||
|
|
||||||
|
bool TPareggio_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
//case F_SOTTOCONTO:
|
||||||
|
case F_CLIENTE:
|
||||||
|
case F_FORNITORE:
|
||||||
|
case F_CODVAL:
|
||||||
|
case F_TUTTE:
|
||||||
|
if (e == fe_modify)
|
||||||
|
{
|
||||||
|
TWait_cursor hourglass;
|
||||||
|
const short id = efield(F_FORNITORE).active() ? F_FORNITORE :
|
||||||
|
(efield(F_SOTTOCONTO).active() ? F_SOTTOCONTO : F_CLIENTE);
|
||||||
|
TBill bill; bill.get(*this, F_GRUPPO, F_CONTO, id, F_TIPO);
|
||||||
|
const int tipo = get_int(F_TUTTE);
|
||||||
|
const TString& codval = get(F_CODVAL);
|
||||||
|
_nc.init(bill, codval, true, 1); // Solo aperte
|
||||||
|
_ft.init(bill, codval, false, tipo);
|
||||||
|
|
||||||
|
tfield(F_NC_TREE).set_tree(&_nc);
|
||||||
|
tfield(F_FT_TREE).set_tree(&_ft);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TPareggio_mask::TPareggio_mask() : TAutomask("sc0300a")
|
||||||
|
{
|
||||||
|
RCT rct_nc; field(F_NC_TREE).get_rect(rct_nc);
|
||||||
|
RCT rct_ft; field(F_FT_TREE).get_rect(rct_ft);
|
||||||
|
|
||||||
|
rct_nc.right = rct_ft.left-8;
|
||||||
|
rct_ft.right = rct_ft.left + rct_nc.right - rct_nc.left;
|
||||||
|
|
||||||
|
field(F_NC_TREE).set_rect(rct_nc);
|
||||||
|
field(F_FT_TREE).set_rect(rct_ft);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TPareggio_partite
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TPareggio_partite : public TSkeleton_application
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual void main_loop();
|
||||||
|
|
||||||
|
public:
|
||||||
|
};
|
||||||
|
|
||||||
|
void TPareggio_partite::main_loop()
|
||||||
|
{
|
||||||
|
TPareggio_mask pm;
|
||||||
|
pm.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// Main
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
int sc0300(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TPareggio_partite pp;
|
||||||
|
pp.run(argc, argv, TR("Pareggio Partite"));
|
||||||
|
return 0;
|
||||||
|
}
|
4
sc/sc0300a.h
Normal file
4
sc/sc0300a.h
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#include "sc0200b.h"
|
||||||
|
|
||||||
|
#define F_NC_TREE 121
|
||||||
|
#define F_FT_TREE 122
|
194
sc/sc0300a.uml
Normal file
194
sc/sc0300a.uml
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
#include "sc0300a.h"
|
||||||
|
|
||||||
|
TOOLBAR "" 0 0 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_EDIT 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Modifica"
|
||||||
|
PICTURE TOOL_EDIT
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_NEWREC 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Nuovo"
|
||||||
|
PICTURE TOOL_NEWREC
|
||||||
|
END
|
||||||
|
|
||||||
|
#include <helpbar.h>
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Pareggio Partite" 0 0 0 0
|
||||||
|
|
||||||
|
LIST F_TIPO 1 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "Tipo conto "
|
||||||
|
// ITEM "|Conto" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
|
||||||
|
ITEM "C|Cliente" MESSAGE HIDE,1@|SHOW,2@|HIDE,3@
|
||||||
|
ITEM "F|Fornitore" MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_GRUPPO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 28 0 "Gruppo "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CONTO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 43 0 "Conto "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SOTTOCONTO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 58 0 "Sottoconto "
|
||||||
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
|
INPUT GRUPPO F_GRUPPO
|
||||||
|
INPUT CONTO F_CONTO
|
||||||
|
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_GRUPPO GRUPPO
|
||||||
|
OUTPUT F_CONTO CONTO
|
||||||
|
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||||
|
OUTPUT F_DESCR DESCR
|
||||||
|
GROUP 1
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CLIENTE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 58 0 "Cliente "
|
||||||
|
USE LF_CLIFO SELECT (LF_PARTITE->SOTTOCONTO!="")
|
||||||
|
JOIN LF_PARTITE INTO TIPOC=TIPOCF SOTTOCONTO==CODCF
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT CODCF F_CLIENTE
|
||||||
|
DISPLAY "Cliente" CODCF
|
||||||
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
DISPLAY "Sosp." SOSPESO
|
||||||
|
DISPLAY "Ric.Alt.@30" RICALT
|
||||||
|
OUTPUT F_CLIENTE CODCF
|
||||||
|
OUTPUT F_DESCRCLI RAGSOC
|
||||||
|
ADD RUN cg0 -1 C
|
||||||
|
GROUP 2
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_FORNITORE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 58 0 "Fornitore "
|
||||||
|
USE LF_CLIFO SELECT (LF_PARTITE->SOTTOCONTO!="")
|
||||||
|
JOIN LF_PARTITE INTO TIPOC=TIPOCF SOTTOCONTO==CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_FORNITORE
|
||||||
|
DISPLAY "Fornitore" CODCF
|
||||||
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
DISPLAY "Sosp." SOSPESO
|
||||||
|
DISPLAY "Ric.Alt.@30" RICALT
|
||||||
|
OUTPUT F_FORNITORE CODCF
|
||||||
|
OUTPUT F_DESCRFOR RAGSOC
|
||||||
|
ADD RUN cg0 -1 F
|
||||||
|
GROUP 3
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCR 50 58
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Descrizione "
|
||||||
|
GROUP 1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCRCLI 50 58
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Ragione sociale "
|
||||||
|
USE LF_CLIFO KEY 2 SELECT (LF_PARTITE->SOTTOCONTO!="")
|
||||||
|
JOIN LF_PARTITE INTO TIPOC="C" SOTTOCONTO==CODCF
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC F_DESCRCLI
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Cliente" CODCF
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
DISPLAY "Sosp." SOSPESO
|
||||||
|
DISPLAY "Ric.Alt.@30" RICALT
|
||||||
|
OUTPUT F_CLIENTE CODCF
|
||||||
|
OUTPUT F_DESCRCLI RAGSOC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
ADD RUN cg0 -1 F
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCRFOR 50 58
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Ragione sociale "
|
||||||
|
USE LF_CLIFO KEY 2 SELECT (LF_PARTITE->SOTTOCONTO!="")
|
||||||
|
JOIN LF_PARTITE INTO TIPOC=TIPOCF SOTTOCONTO==CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC F_DESCRFOR
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Fornitore" CODCF
|
||||||
|
DISPLAY "Partita IVA" PAIV
|
||||||
|
DISPLAY "Codice Fiscale" COFI
|
||||||
|
DISPLAY "Sosp." SOSPESO
|
||||||
|
DISPLAY "Ric.Alt.@30" RICALT
|
||||||
|
OUTPUT F_FORNITORE CODCF
|
||||||
|
OUTPUT F_DESCRFOR RAGSOC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
ADD RUN cg0 -1 F
|
||||||
|
GROUP 3
|
||||||
|
END
|
||||||
|
|
||||||
|
RADIOBUTTON F_TUTTE 1 38
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Mostra fatture"
|
||||||
|
ITEM "1|Aperte"
|
||||||
|
ITEM "2|Chiuse"
|
||||||
|
ITEM "3|Tutte"
|
||||||
|
FLAGS "Z"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODVAL 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 61 3 "Valuta "
|
||||||
|
USE %VAL
|
||||||
|
INPUT CODTAB F_CODVAL
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_CODVAL CODTAB
|
||||||
|
FLAGS "U"
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
TLIST F_NC_TREE 35 -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 5 ""
|
||||||
|
DISPLAY "Partita@12" NUMPART
|
||||||
|
DISPLAY "Riga@4R" NRIGA
|
||||||
|
DISPLAY "Importo@10R" IMPORTO
|
||||||
|
DISPLAY "Residuo@10R" RESIDUO
|
||||||
|
DISPLAY "Descrizione Nota di Credito@35" DESCR
|
||||||
|
DISPLAY "P.N.@6R" NREG
|
||||||
|
END
|
||||||
|
|
||||||
|
TLIST F_FT_TREE 35 -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 5 ""
|
||||||
|
DISPLAY "Partita@12" NUMPART
|
||||||
|
DISPLAY "Riga@4R" NRIGA
|
||||||
|
DISPLAY "Rata@4R" NRATA
|
||||||
|
DISPLAY "Data@8" DATADOC
|
||||||
|
DISPLAY "Importo@10R" IMPORTO
|
||||||
|
DISPLAY "Residuo@10R" RESIDUO
|
||||||
|
DISPLAY "Descrizione Fattura@35" DESCR
|
||||||
|
DISPLAY "P.N.@6R" NREG
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDMASK
|
@ -455,18 +455,20 @@ TImporto TEC_array::importo(const TPartita& game, const TRectype& pag, bool valu
|
|||||||
const TImporto ritsoc(sum.sezione_ritsoc(), pag.get_real(PAGSCA_RITSOC));
|
const TImporto ritsoc(sum.sezione_ritsoc(), pag.get_real(PAGSCA_RITSOC));
|
||||||
imp += ritsoc;
|
imp += ritsoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pag.get_char(PAGSCA_ACCSAL) == 'S') // Se il pagamento ha abbuoni o differenze cambio
|
const real diffcam = pag.get_real(PAGSCA_DIFFCAM); // Sempre in Euro
|
||||||
|
real abb(pag.get(PAGSCA_ABBUONI)); // Nella valuta della fattura
|
||||||
|
if (!abb.is_zero() || !diffcam.is_zero())// Se il pagamento ha abbuoni o differenze cambio
|
||||||
{
|
{
|
||||||
real abb(pag.get(PAGSCA_ABBUONI));
|
|
||||||
if (!valuta && fat_val) // Se voglio gli abbuoni in Euro ma la fattura non lo e'
|
if (!valuta && fat_val) // Se voglio gli abbuoni in Euro ma la fattura non lo e'
|
||||||
{
|
{
|
||||||
const TValuta val(sum); // Leggo il cambio dalla riga di partita
|
const TValuta val(sum); // Leggo il cambio dalla riga di partita
|
||||||
val.val2lit(abb); // Converto in lire gli abbuoni
|
val.val2eur(abb); // Converto in Euro gli abbuoni
|
||||||
abb += pag.get_real(PAGSCA_DIFFCAM); // Sommo l'eventuale differenza cambio (gia' in Euro)
|
abb += diffcam; // Sommo l'eventuale differenza cambio (gia' in Euro)
|
||||||
}
|
}
|
||||||
imp.valore() += abb; // Sommo il tutto all'importo base (sez e' uguale per tutti i valori)
|
imp.valore() += abb; // Sommo il tutto all'importo base (sez e' uguale per tutti i valori)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return imp;
|
return imp;
|
||||||
}
|
}
|
||||||
|
@ -306,7 +306,7 @@ TImporto TESSL_array::importo(const TPartita& game, const TRectype& pag, bool va
|
|||||||
if (!valuta && fat_val) // Se voglio gli abbuoni in lire ma la fattura non lo e'
|
if (!valuta && fat_val) // Se voglio gli abbuoni in lire ma la fattura non lo e'
|
||||||
{
|
{
|
||||||
const TValuta val(sum); // Leggo il cambio dalla riga di partita
|
const TValuta val(sum); // Leggo il cambio dalla riga di partita
|
||||||
val.val2lit(abb); // Converto in lire gli abbuoni
|
val.val2eur(abb); // Converto in lire gli abbuoni
|
||||||
abb += pag.get_real(PAGSCA_DIFFCAM); // Sommo l'eventuale differenza cambio (gia' in lire)
|
abb += pag.get_real(PAGSCA_DIFFCAM); // Sommo l'eventuale differenza cambio (gia' in lire)
|
||||||
}
|
}
|
||||||
imp.valore() += abb; // Sommo il tutto all'importo base (sez e' uguale per tutti i valori)
|
imp.valore() += abb; // Sommo il tutto all'importo base (sez e' uguale per tutti i valori)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#define F_CODEL 501
|
#define F_CODEL 501
|
||||||
#define F_DESL 502
|
#define F_DESL 502
|
||||||
#define DLG_COPY 601
|
|
||||||
|
|
||||||
|
@ -3,21 +3,21 @@
|
|||||||
|
|
||||||
TOOLBAR "Toolbar" 0 0 0 2
|
TOOLBAR "Toolbar" 0 0 0 2
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 2 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 ""
|
PROMPT 1 1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_DELREC 10 2
|
BUTTON DLG_DELREC 2 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 1 ""
|
PROMPT 2 1 ""
|
||||||
MESSAGE EXIT,K_DEL
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_COPY 10 2
|
BUTTON DLG_COPY 2 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 1 "C~opia..."
|
PROMPT 3 1 "C~opia..."
|
||||||
PICTURE 180
|
PICTURE TOOL_COPY
|
||||||
END
|
END
|
||||||
|
|
||||||
#include <helpbar.h>
|
#include <helpbar.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user