Patch level : 10.0 1052
Files correlati : fetbcon.msk fe0.exe Ricompilazione Demo : [ ] Commento : Corretta gestione rateizzazione dei contratti git-svn-id: svn://10.65.10.50/branches/R_10_00@22379 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e82013110e
commit
73364e8163
@ -3,13 +3,16 @@
|
||||
#include <automask.h>
|
||||
#include <modtbapp.h>
|
||||
|
||||
#include "fetbcon.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Maschera gestione contratti FE
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TFE_contract_mask : public TAutomask
|
||||
{
|
||||
TSheet_field& rate_sheet() const;
|
||||
enum { MAX_RATE = 4 };
|
||||
TSheet_field& rate_sheet() const { return sfield(F_CON_RATE); }
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field &o, TField_event e, long jolly);
|
||||
@ -20,15 +23,6 @@ public:
|
||||
TFE_contract_mask() : TAutomask("fetbcon") {}
|
||||
};
|
||||
|
||||
// L'ultimo (e unico) sheet della maschera contiene la rateizzazione delle fatture
|
||||
TSheet_field& TFE_contract_mask::rate_sheet() const
|
||||
{
|
||||
int f;
|
||||
for (f = fields()-1; f > 0 && !fld(f).is_sheet(); f--);
|
||||
CHECK(f > 0, "Rate sheet non found");
|
||||
return (TSheet_field&)fld(f);
|
||||
}
|
||||
|
||||
// carica i normalmente i campi standard e la sequenza degli R* nello sheet
|
||||
void TFE_contract_mask::autoload(const TRelation& rel)
|
||||
{
|
||||
@ -42,7 +36,7 @@ void TFE_contract_mask::autoload(const TRelation& rel)
|
||||
char imp[] = "R0"; // R[0,2,4,6] contengono i 4 importi annuali
|
||||
char iva[] = "R1"; // R[1,3,5,7] contengono le 4 imposte annuali
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
for (int i = 0; i < MAX_RATE; i++)
|
||||
{
|
||||
TToken_string& row = s.row(i);
|
||||
row.add(curr.get(anno));
|
||||
@ -65,7 +59,7 @@ void TFE_contract_mask::autosave(TRelation& rel) const
|
||||
char imp[] = "R0"; // R[0,2,4,6] contengono i 4 importi annuali
|
||||
char iva[] = "R1"; // R[1,3,5,7] contengono le 4 imposte annuali
|
||||
|
||||
for (int i = 0; i < s.items(); i++)
|
||||
for (int i = 0; i < s.items() && i < MAX_RATE; i++)
|
||||
{
|
||||
TToken_string& row = s.row(i);
|
||||
curr.put(anno, row.get(0));
|
||||
@ -79,13 +73,42 @@ void TFE_contract_mask::autosave(TRelation& rel) const
|
||||
|
||||
bool TFE_contract_mask::on_field_event(TOperable_field &o, TField_event e, long jolly)
|
||||
{
|
||||
switch (e)
|
||||
if (o.is_sheet())
|
||||
{
|
||||
case se_query_add:
|
||||
case se_query_del:
|
||||
return false; // Non permetto aggiunta/cancellazione di righe
|
||||
default: break;
|
||||
switch (e)
|
||||
{
|
||||
case fe_init:
|
||||
if (o.mask().mode() == MODE_INS)
|
||||
{
|
||||
TSheet_field& s = (TSheet_field&)o;
|
||||
for (int i = s.items(); i < MAX_RATE; i++)
|
||||
s.row(i);
|
||||
s.force_update();
|
||||
}
|
||||
break;
|
||||
case se_query_add:
|
||||
case se_query_del:
|
||||
return false; // Non permetto aggiunta/cancellazione di righe
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case R_CON_ANNO:
|
||||
if (e == fe_modify && !o.empty() && jolly > 0)
|
||||
{
|
||||
const int anno_prec = atoi(rate_sheet().cell(jolly-1, o.dlg()));
|
||||
const int anno_corr = atoi(o.get());
|
||||
if (anno_corr <= anno_prec)
|
||||
return error_box(TR("Inserire un anno successivo al %d"), anno_prec);
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -98,7 +121,6 @@ class TFE_table_app : public TTable_module_application
|
||||
{
|
||||
protected: // TRelation_application
|
||||
virtual TMask* user_create_mask();
|
||||
|
||||
public:
|
||||
};
|
||||
|
||||
|
26
fe/fetbcon.h
26
fe/fetbcon.h
@ -1,14 +1,14 @@
|
||||
#define F_TIPOCF 201
|
||||
#define F_CODCF 202
|
||||
#define F_RAGSOC 203
|
||||
#define F_CONTRATTO 204
|
||||
#define F_DESCRIZIONE 205
|
||||
#define F_PADRE 206
|
||||
#define F_DESPADRE 207
|
||||
#define F_INIZIO 220
|
||||
#define F_FINE 221
|
||||
#define F_RATE 250
|
||||
#define F_CON_TIPOCF 201
|
||||
#define F_CON_CODCF 202
|
||||
#define F_CON_RAGSOC 203
|
||||
#define F_CON_CONTRATTO 204
|
||||
#define F_CON_DESCRIZIONE 205
|
||||
#define F_CON_PADRE 206
|
||||
#define F_CON_DESPADRE 207
|
||||
#define F_CON_INIZIO 220
|
||||
#define F_CON_FINE 221
|
||||
#define F_CON_RATE 250
|
||||
|
||||
#define R_ANNO 101
|
||||
#define R_IMPORTO 102
|
||||
#define R_IMPOSTA 103
|
||||
#define R_CON_ANNO 101
|
||||
#define R_CON_IMPORTO 102
|
||||
#define R_CON_IMPOSTA 103
|
||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||
PROMPT 1 1 "@bEstremi"
|
||||
END
|
||||
|
||||
LIST F_TIPOCF 1 9
|
||||
LIST F_CON_TIPOCF 1 9
|
||||
BEGIN
|
||||
PROMPT 2 2 ""
|
||||
ITEM "F|Fornitore"
|
||||
@ -20,16 +20,16 @@ BEGIN
|
||||
KEY 1
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
NUMBER F_CON_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 14 2 ""
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT CODCF F_CODCF
|
||||
INPUT TIPOCF F_CON_TIPOCF SELECT
|
||||
INPUT CODCF F_CON_CODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
OUTPUT F_CON_CODCF CODCF
|
||||
OUTPUT F_CON_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODTAB[2,7]
|
||||
KEY 1
|
||||
@ -37,69 +37,69 @@ BEGIN
|
||||
MESSAGE DISABLE,F_RAGSOC
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
STRING F_CON_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 24 2 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
INPUT TIPOCF F_CON_TIPOCF SELECT
|
||||
INPUT RAGSOC F_CON_RAGSOC
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT F_CODCF
|
||||
COPY OUTPUT F_CON_CODCF
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CONTRATTO 18
|
||||
STRING F_CON_CONTRATTO 18
|
||||
BEGIN
|
||||
PROMPT 2 3 "Codice contratto "
|
||||
FLAGS "U"
|
||||
FIELD CODTAB[8,25]
|
||||
USE &CON
|
||||
JOIN LF_CLIFO INTO TIPOCF=CODTAB[1,1] CODCF=CODTAB[2,7]
|
||||
INPUT CODTAB[1,1] F_TIPOCF SELECT
|
||||
INPUT CODTAB[2,7] F_CODCF
|
||||
INPUT CODTAB[8,25] F_CONTRATTO
|
||||
INPUT CODTAB[1,1] F_CON_TIPOCF SELECT
|
||||
INPUT CODTAB[2,7] F_CON_CODCF
|
||||
INPUT CODTAB[8,25] F_CON_CONTRATTO
|
||||
DISPLAY "Contratto" CODTAB[8,]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Tipo" CODTAB[1,1]
|
||||
DISPLAY "Cli/For" LF_CLIFO->CODCF
|
||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||
OUTPUT F_CODCF CODTAB[2,7]
|
||||
OUTPUT F_CONTRATTO CODTAB[8,]
|
||||
OUTPUT F_DESCRIZIONE S0
|
||||
OUTPUT F_CON_CODCF CODTAB[2,7]
|
||||
OUTPUT F_CON_CONTRATTO CODTAB[8,]
|
||||
OUTPUT F_CON_DESCRIZIONE S0
|
||||
CHECKTYPE REQUIRED
|
||||
KEY 1
|
||||
END
|
||||
|
||||
STRING F_DESCRIZIONE 50
|
||||
STRING F_CON_DESCRIZIONE 50
|
||||
BEGIN
|
||||
PROMPT 2 4 "Descrizione "
|
||||
FIELD S0
|
||||
USE &CON KEY 2 SELECT (CODTAB[1,1]==#F_TIPOCF)&&(STR(CODTAB[2,7]=#F_CODCF))
|
||||
JOIN LF_CLIFO INTO TIPOCF=CODTAB[1,1] CODCF=CODTAB[2,7]
|
||||
INPUT S0 F_DESCRIZIONE
|
||||
INPUT S0 F_CON_DESCRIZIONE
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Contratto" CODTAB[8,]
|
||||
DISPLAY "Tipo" CODTAB[1,1]
|
||||
DISPLAY "Cli/For" LF_CLIFO->CODCF
|
||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
COPY OUTPUT F_CONTRATTO
|
||||
COPY OUTPUT F_CON_CONTRATTO
|
||||
KEY 2
|
||||
END
|
||||
|
||||
STRING F_PADRE 18
|
||||
STRING F_CON_PADRE 18
|
||||
BEGIN
|
||||
PROMPT 2 5 "Contratto principale "
|
||||
FLAGS "U"
|
||||
FIELD S1
|
||||
COPY USE F_CONTRATTO
|
||||
INPUT CODTAB[1,1] F_TIPOCF SELECT
|
||||
INPUT CODTAB[2,7] F_CODCF SELECT
|
||||
INPUT CODTAB[8,25] F_PADRE
|
||||
COPY DISPLAY F_CONTRATTO
|
||||
OUTPUT F_PADRE CODTAB[8,]
|
||||
//OUTPUT F_DESPADRE S0
|
||||
COPY USE F_CON_CONTRATTO
|
||||
INPUT CODTAB[1,1] F_CON_TIPOCF SELECT
|
||||
INPUT CODTAB[2,7] F_CON_CODCF SELECT
|
||||
INPUT CODTAB[8,25] F_CON_PADRE
|
||||
COPY DISPLAY F_CON_CONTRATTO
|
||||
OUTPUT F_CON_PADRE CODTAB[8,]
|
||||
//OUTPUT F_CON_DESPADRE S0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
@ -108,14 +108,14 @@ BEGIN
|
||||
PROMPT 1 7 "@bDurata"
|
||||
END
|
||||
|
||||
DATA F_INIZIO
|
||||
DATA F_CON_INIZIO
|
||||
BEGIN
|
||||
PROMPT 2 8 "Inizio "
|
||||
HELP "Data inizio contratto"
|
||||
FIELD D0
|
||||
END
|
||||
|
||||
DATA F_FINE
|
||||
DATA F_CON_FINE
|
||||
BEGIN
|
||||
PROMPT 24 8 "Fine "
|
||||
HELP "Data fine contratto"
|
||||
@ -124,7 +124,7 @@ BEGIN
|
||||
WARNING "La data finale deve essere successiva a quella iniziale"
|
||||
END
|
||||
|
||||
SPREADSHEET F_RATE 40 6
|
||||
SPREADSHEET F_CON_RATE 40 6
|
||||
BEGIN
|
||||
PROMPT 2 11 ""
|
||||
ITEM "Anno"
|
||||
|
Loading…
x
Reference in New Issue
Block a user