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 <automask.h>
|
||||||
#include <modtbapp.h>
|
#include <modtbapp.h>
|
||||||
|
|
||||||
|
#include "fetbcon.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Maschera gestione contratti FE
|
// Maschera gestione contratti FE
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TFE_contract_mask : public TAutomask
|
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:
|
protected:
|
||||||
virtual bool on_field_event(TOperable_field &o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field &o, TField_event e, long jolly);
|
||||||
@ -20,15 +23,6 @@ public:
|
|||||||
TFE_contract_mask() : TAutomask("fetbcon") {}
|
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
|
// carica i normalmente i campi standard e la sequenza degli R* nello sheet
|
||||||
void TFE_contract_mask::autoload(const TRelation& rel)
|
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 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
|
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);
|
TToken_string& row = s.row(i);
|
||||||
row.add(curr.get(anno));
|
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 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
|
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);
|
TToken_string& row = s.row(i);
|
||||||
curr.put(anno, row.get(0));
|
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)
|
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:
|
switch (e)
|
||||||
case se_query_del:
|
{
|
||||||
return false; // Non permetto aggiunta/cancellazione di righe
|
case fe_init:
|
||||||
default: break;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,7 +121,6 @@ class TFE_table_app : public TTable_module_application
|
|||||||
{
|
{
|
||||||
protected: // TRelation_application
|
protected: // TRelation_application
|
||||||
virtual TMask* user_create_mask();
|
virtual TMask* user_create_mask();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
26
fe/fetbcon.h
26
fe/fetbcon.h
@ -1,14 +1,14 @@
|
|||||||
#define F_TIPOCF 201
|
#define F_CON_TIPOCF 201
|
||||||
#define F_CODCF 202
|
#define F_CON_CODCF 202
|
||||||
#define F_RAGSOC 203
|
#define F_CON_RAGSOC 203
|
||||||
#define F_CONTRATTO 204
|
#define F_CON_CONTRATTO 204
|
||||||
#define F_DESCRIZIONE 205
|
#define F_CON_DESCRIZIONE 205
|
||||||
#define F_PADRE 206
|
#define F_CON_PADRE 206
|
||||||
#define F_DESPADRE 207
|
#define F_CON_DESPADRE 207
|
||||||
#define F_INIZIO 220
|
#define F_CON_INIZIO 220
|
||||||
#define F_FINE 221
|
#define F_CON_FINE 221
|
||||||
#define F_RATE 250
|
#define F_CON_RATE 250
|
||||||
|
|
||||||
#define R_ANNO 101
|
#define R_CON_ANNO 101
|
||||||
#define R_IMPORTO 102
|
#define R_CON_IMPORTO 102
|
||||||
#define R_IMPOSTA 103
|
#define R_CON_IMPOSTA 103
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
PROMPT 1 1 "@bEstremi"
|
PROMPT 1 1 "@bEstremi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_TIPOCF 1 9
|
LIST F_CON_TIPOCF 1 9
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
ITEM "F|Fornitore"
|
ITEM "F|Fornitore"
|
||||||
@ -20,16 +20,16 @@ BEGIN
|
|||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CODCF 6
|
NUMBER F_CON_CODCF 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 14 2 ""
|
PROMPT 14 2 ""
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF F_TIPOCF SELECT
|
INPUT TIPOCF F_CON_TIPOCF SELECT
|
||||||
INPUT CODCF F_CODCF
|
INPUT CODCF F_CON_CODCF
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
OUTPUT F_CODCF CODCF
|
OUTPUT F_CON_CODCF CODCF
|
||||||
OUTPUT F_RAGSOC RAGSOC
|
OUTPUT F_CON_RAGSOC RAGSOC
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FIELD CODTAB[2,7]
|
FIELD CODTAB[2,7]
|
||||||
KEY 1
|
KEY 1
|
||||||
@ -37,69 +37,69 @@ BEGIN
|
|||||||
MESSAGE DISABLE,F_RAGSOC
|
MESSAGE DISABLE,F_RAGSOC
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RAGSOC 50
|
STRING F_CON_RAGSOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 2 ""
|
PROMPT 24 2 ""
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF F_TIPOCF SELECT
|
INPUT TIPOCF F_CON_TIPOCF SELECT
|
||||||
INPUT RAGSOC F_RAGSOC
|
INPUT RAGSOC F_CON_RAGSOC
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT F_CODCF
|
COPY OUTPUT F_CON_CODCF
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CONTRATTO 18
|
STRING F_CON_CONTRATTO 18
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Codice contratto "
|
PROMPT 2 3 "Codice contratto "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
FIELD CODTAB[8,25]
|
FIELD CODTAB[8,25]
|
||||||
USE &CON
|
USE &CON
|
||||||
JOIN LF_CLIFO INTO TIPOCF=CODTAB[1,1] CODCF=CODTAB[2,7]
|
JOIN LF_CLIFO INTO TIPOCF=CODTAB[1,1] CODCF=CODTAB[2,7]
|
||||||
INPUT CODTAB[1,1] F_TIPOCF SELECT
|
INPUT CODTAB[1,1] F_CON_TIPOCF SELECT
|
||||||
INPUT CODTAB[2,7] F_CODCF
|
INPUT CODTAB[2,7] F_CON_CODCF
|
||||||
INPUT CODTAB[8,25] F_CONTRATTO
|
INPUT CODTAB[8,25] F_CON_CONTRATTO
|
||||||
DISPLAY "Contratto" CODTAB[8,]
|
DISPLAY "Contratto" CODTAB[8,]
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Tipo" CODTAB[1,1]
|
DISPLAY "Tipo" CODTAB[1,1]
|
||||||
DISPLAY "Cli/For" LF_CLIFO->CODCF
|
DISPLAY "Cli/For" LF_CLIFO->CODCF
|
||||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||||
OUTPUT F_CODCF CODTAB[2,7]
|
OUTPUT F_CON_CODCF CODTAB[2,7]
|
||||||
OUTPUT F_CONTRATTO CODTAB[8,]
|
OUTPUT F_CON_CONTRATTO CODTAB[8,]
|
||||||
OUTPUT F_DESCRIZIONE S0
|
OUTPUT F_CON_DESCRIZIONE S0
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCRIZIONE 50
|
STRING F_CON_DESCRIZIONE 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Descrizione "
|
PROMPT 2 4 "Descrizione "
|
||||||
FIELD S0
|
FIELD S0
|
||||||
USE &CON KEY 2 SELECT (CODTAB[1,1]==#F_TIPOCF)&&(STR(CODTAB[2,7]=#F_CODCF))
|
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]
|
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 "Descrizione@50" S0
|
||||||
DISPLAY "Contratto" CODTAB[8,]
|
DISPLAY "Contratto" CODTAB[8,]
|
||||||
DISPLAY "Tipo" CODTAB[1,1]
|
DISPLAY "Tipo" CODTAB[1,1]
|
||||||
DISPLAY "Cli/For" LF_CLIFO->CODCF
|
DISPLAY "Cli/For" LF_CLIFO->CODCF
|
||||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
COPY OUTPUT F_CONTRATTO
|
COPY OUTPUT F_CON_CONTRATTO
|
||||||
KEY 2
|
KEY 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PADRE 18
|
STRING F_CON_PADRE 18
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Contratto principale "
|
PROMPT 2 5 "Contratto principale "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
FIELD S1
|
FIELD S1
|
||||||
COPY USE F_CONTRATTO
|
COPY USE F_CON_CONTRATTO
|
||||||
INPUT CODTAB[1,1] F_TIPOCF SELECT
|
INPUT CODTAB[1,1] F_CON_TIPOCF SELECT
|
||||||
INPUT CODTAB[2,7] F_CODCF SELECT
|
INPUT CODTAB[2,7] F_CON_CODCF SELECT
|
||||||
INPUT CODTAB[8,25] F_PADRE
|
INPUT CODTAB[8,25] F_CON_PADRE
|
||||||
COPY DISPLAY F_CONTRATTO
|
COPY DISPLAY F_CON_CONTRATTO
|
||||||
OUTPUT F_PADRE CODTAB[8,]
|
OUTPUT F_CON_PADRE CODTAB[8,]
|
||||||
//OUTPUT F_DESPADRE S0
|
//OUTPUT F_CON_DESPADRE S0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -108,14 +108,14 @@ BEGIN
|
|||||||
PROMPT 1 7 "@bDurata"
|
PROMPT 1 7 "@bDurata"
|
||||||
END
|
END
|
||||||
|
|
||||||
DATA F_INIZIO
|
DATA F_CON_INIZIO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Inizio "
|
PROMPT 2 8 "Inizio "
|
||||||
HELP "Data inizio contratto"
|
HELP "Data inizio contratto"
|
||||||
FIELD D0
|
FIELD D0
|
||||||
END
|
END
|
||||||
|
|
||||||
DATA F_FINE
|
DATA F_CON_FINE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 8 "Fine "
|
PROMPT 24 8 "Fine "
|
||||||
HELP "Data fine contratto"
|
HELP "Data fine contratto"
|
||||||
@ -124,7 +124,7 @@ BEGIN
|
|||||||
WARNING "La data finale deve essere successiva a quella iniziale"
|
WARNING "La data finale deve essere successiva a quella iniziale"
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RATE 40 6
|
SPREADSHEET F_CON_RATE 40 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 ""
|
PROMPT 2 11 ""
|
||||||
ITEM "Anno"
|
ITEM "Anno"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user