Gestione maschera partite
Aggiunta maschera medesima git-svn-id: svn://10.65.10.50/trunk@1155 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1939bcdf88
commit
341cf4d165
@ -1023,9 +1023,10 @@ BEGIN
|
|||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODAG 3
|
STRING F_CODAG 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 46 15 "Codice agente "
|
PROMPT 46 15 "Codice agente "
|
||||||
|
FLAGS "UZ"
|
||||||
FIELD LF_CFVEN->CODAG
|
FIELD LF_CFVEN->CODAG
|
||||||
GROUP 7
|
GROUP 7
|
||||||
HELP "Codice dell'agente di cui si serve il cliente"
|
HELP "Codice dell'agente di cui si serve il cliente"
|
||||||
|
40
cg/cg2100.h
40
cg/cg2100.h
@ -131,13 +131,37 @@
|
|||||||
|
|
||||||
#define S_ANNO 101
|
#define S_ANNO 101
|
||||||
#define S_NUM 102
|
#define S_NUM 102
|
||||||
#define S_SCADENZE 103
|
#define S_DATADOC 103
|
||||||
|
#define S_NUMPROT 104
|
||||||
#define S_RATA 101
|
#define S_NUMDOC 105
|
||||||
#define S_DATA 102
|
#define S_DESCR 106
|
||||||
#define S_IMPORTOVAL 103
|
#define S_RATA 107
|
||||||
#define S_IMPORTO 104
|
#define S_DATASCAD 108
|
||||||
#define S_DESCR 105
|
#define S_IMPORTO 109
|
||||||
#define S_TIPO 106
|
#define S_IMPORTOVAL 110
|
||||||
|
#define S_SEZIONE 111
|
||||||
|
#define S_IMPORTOPAG 112
|
||||||
|
#define S_RITENUTE 113
|
||||||
|
#define S_SEZRITENUTE 114
|
||||||
|
#define S_SALDOACC 115
|
||||||
|
#define S_RESIDUO 116
|
||||||
|
#define S_DATAPAG 117
|
||||||
|
#define S_CODPAG 118
|
||||||
|
#define S_TIPOPAG 119
|
||||||
|
#define S_TIPO 120
|
||||||
|
#define S_GRUPPO 121
|
||||||
|
#define S_CONTO 122
|
||||||
|
#define S_SOTTOCONTO 123
|
||||||
|
#define S_DESCRCONTO 124
|
||||||
|
#define S_DESCAGG 125
|
||||||
|
#define S_VSABI 126
|
||||||
|
#define S_VSCAB 127
|
||||||
|
#define S_DESCVSABI 128
|
||||||
|
#define S_AGENTE 129
|
||||||
|
#define S_DESCAGENTE 130
|
||||||
|
#define S_NSABI 131
|
||||||
|
#define S_NSCAB 132
|
||||||
|
#define S_DESCNSABI 133
|
||||||
|
#define S_DESPAG 134
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
316
cg/cg2100s.uml
Executable file
316
cg/cg2100s.uml
Executable file
@ -0,0 +1,316 @@
|
|||||||
|
#include "cg2100.h"
|
||||||
|
|
||||||
|
TOOLBAR "" 0 20 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
|
||||||
|
PAGE "Pagamento" -1 -1 77 20
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "@BPartita"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Anno partita "
|
||||||
|
FLAGS "RD"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_NUM 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 38 1 "Numero partita "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCR 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Descrizione "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_RATA 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Rata "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE S_DATASCAD
|
||||||
|
BEGIN
|
||||||
|
PROMPT 20 3 "Data "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_RESIDUO 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 44 3 "Residuo "
|
||||||
|
PICTURE "."
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_IMPORTOVAL 15 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Importo in valuta "
|
||||||
|
PICTURE ".3"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_IMPORTO 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 44 4 "Importo in lire "
|
||||||
|
PICTURE "."
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 13
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "@BPagamento"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_IMPORTOPAG 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Importo pagamento "
|
||||||
|
PICTURE "."
|
||||||
|
FIELD IMPORTOPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_IMPORTOPAG 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 38 7 "Ritenute professionali "
|
||||||
|
PICTURE "."
|
||||||
|
FIELD RITENUTE
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN S_SALDOACC
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Saldo "
|
||||||
|
FIELD SALDOACC
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE S_DATAPAG
|
||||||
|
BEGIN
|
||||||
|
PROMPT 38 8 "Data pagamento "
|
||||||
|
FIELD DATAPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CODPAG 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Pagamento "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE CPG
|
||||||
|
INPUT CODTAB S_CODPAG
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
DISPLAY "Tipo" I0
|
||||||
|
OUTPUT S_CODPAG CODTAB
|
||||||
|
OUTPUT S_DESPAG S0
|
||||||
|
OUTPUT S_TIPOPAG I0
|
||||||
|
FIELD CODPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESPAG 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 24 9 ""
|
||||||
|
USE CPG KEY 2
|
||||||
|
INPUT S0 S_DESPAG
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Tipo" I0
|
||||||
|
COPY OUTPUT S_CODPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST S_TIPOPAG 2 40
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Tipo pagamento "
|
||||||
|
ITEM "1|Rimessa Diretta"
|
||||||
|
ITEM "2|Tratta"
|
||||||
|
ITEM "3|Ricevuta Bancaria"
|
||||||
|
ITEM "4|Cessione"
|
||||||
|
ITEM "5|Paghero'"
|
||||||
|
ITEM "6|Lettera di credito"
|
||||||
|
ITEM "7|Tratta accettata"
|
||||||
|
ITEM "8|Rapporti interbancari diretti"
|
||||||
|
ITEM "9|Bonifico"
|
||||||
|
ITEM "10|Altro"
|
||||||
|
FIELD TIPOPAG
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "@bConto di contropartita"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST S_TIPO 1 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 12 "Tipo "
|
||||||
|
ITEM " |Conto"
|
||||||
|
ITEM "C|Cliente"
|
||||||
|
ITEM "F|Fornitore"
|
||||||
|
FIELD TIPOCF
|
||||||
|
FLAGS "H"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_GRUPPO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 28 11 "Gruppo "
|
||||||
|
FIELD GRUPPO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_CONTO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 44 11 "Conto "
|
||||||
|
FIELD CONTO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_SOTTOCONTO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 58 11 "Sottoconto "
|
||||||
|
FIELD SOTTOCONTO
|
||||||
|
USE LF_PCON
|
||||||
|
INPUT GRUPPO S_GRUPPO
|
||||||
|
INPUT CONTO S_CONTO
|
||||||
|
INPUT SOTTOCONTO S_SOTTOCONTO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT S_GRUPPO GRUPPO
|
||||||
|
OUTPUT S_CONTO CONTO
|
||||||
|
OUTPUT S_SOTTOCONTO SOTTOCONTO
|
||||||
|
OUTPUT S_DESCRCONTO DESCR
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCRCONTO 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 12 "Descrizione conto "
|
||||||
|
USE LF_PCON KEY 2
|
||||||
|
INPUT DESCR S_DESCRCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
COPY OUTPUT S_SOTTOCONTO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCAGG 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 14 "Descrizione aggiuntiva "
|
||||||
|
FIELD DESCAGG
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_VSABI 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 15 "Vostra Banca - ABI "
|
||||||
|
FLAGS "Z"
|
||||||
|
USE %BAN
|
||||||
|
INPUT CODTAB[1,5] S_VSABI
|
||||||
|
INPUT CODTAB[6,10] S_VSCAB
|
||||||
|
DISPLAY "ABI@5" CODTAB[1,5]
|
||||||
|
DISPLAY "CAB@5" CODTAB[6,10]
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
OUTPUT S_VSABI CODTAB[1,5]
|
||||||
|
OUTPUT S_VSCAB CODTAB[6,10]
|
||||||
|
OUTPUT S_DESCVSABI S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD VSABI
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_VSCAB 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 15 "CAB "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY ALL S_VSABI
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD VSCAB
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCVSABI 50 32
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 15 ""
|
||||||
|
USE %BAN KEY 2
|
||||||
|
INPUT S0 S_DESCVSABI
|
||||||
|
DISPLAY "Denominazione@50" S0
|
||||||
|
DISPLAY "ABI@5" CODTAB[1,5]
|
||||||
|
DISPLAY "CAB@5" CODTAB[6,10]
|
||||||
|
COPY OUTPUT S_VSABI
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_AGENTE 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 16 "Agente "
|
||||||
|
FLAGS "UZ"
|
||||||
|
USE AGE
|
||||||
|
INPUT CODTAB S_AGENTE
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione @50" S0
|
||||||
|
OUTPUT S_AGENTE CODTAB
|
||||||
|
OUTPUT S_DESCAGENTE S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FIELD AGENTE
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCAGENTE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 24 16 ""
|
||||||
|
USE AGE KEY 2
|
||||||
|
INPUT S0 S_DESCAGENTE
|
||||||
|
DISPLAY "Descrizione @50" S0
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
COPY OUTPUT S_AGENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
NUMBER S_NSABI 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 17 "Nostra Banca - ABI "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY USE S_VSABI
|
||||||
|
INPUT CODTAB[1,5] S_NSABI
|
||||||
|
INPUT CODTAB[6,10] S_NSCAB
|
||||||
|
COPY DISPLAY S_VSABI
|
||||||
|
OUTPUT S_NSABI CODTAB[1,5]
|
||||||
|
OUTPUT S_NSCAB CODTAB[6,10]
|
||||||
|
FIELD NSABI
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_VSCAB 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 17 "CAB "
|
||||||
|
FLAGS "Z"
|
||||||
|
COPY ALL S_NSABI
|
||||||
|
FIELD NSCAB
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_DESCNSABI 50 32
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 15 ""
|
||||||
|
COPY USE S_DESCVSABI
|
||||||
|
INPUT S0 S_DESCNSABI
|
||||||
|
COPY DISPLAY S_DESCVSABI
|
||||||
|
COPY OUTPUT S_NSABI
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
@ -93,9 +93,8 @@ bool TPrimanota_application::showpartite_handler(TMask_field& f, KEY k)
|
|||||||
if (k == K_SPACE)
|
if (k == K_SPACE)
|
||||||
{
|
{
|
||||||
TSheet_field& s = app().cgs();
|
TSheet_field& s = app().cgs();
|
||||||
TToken_string& r = s.row(s.selected());
|
const int riga = s.selected();
|
||||||
const TBill c(r, 2, 0x1);
|
app().edit_partite(riga);
|
||||||
app().edit_partite(c);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -208,8 +208,11 @@ protected:
|
|||||||
void set_scadenze(TMask& m);
|
void set_scadenze(TMask& m);
|
||||||
bool read_scadenze(const TMask& m);
|
bool read_scadenze(const TMask& m);
|
||||||
void write_scadenze(const TMask& m);
|
void write_scadenze(const TMask& m);
|
||||||
bool edit_partite(const TBill& b);
|
|
||||||
|
|
||||||
|
bool edit_partite(int riga);
|
||||||
|
bool edit_scadenze(int riga, const TBill& b, int anno, const char* num);
|
||||||
|
bool edit_pagamento(const TRectype& parbas, const TRectype& scaden, TRectype& part);
|
||||||
|
|
||||||
static TPrimanota_application& app() { return (TPrimanota_application&)main_app(); }
|
static TPrimanota_application& app() { return (TPrimanota_application&)main_app(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
229
cg/cg2104.cpp
229
cg/cg2104.cpp
@ -10,6 +10,7 @@
|
|||||||
#include "cg21sld.h"
|
#include "cg21sld.h"
|
||||||
#include "pagament.h"
|
#include "pagament.h"
|
||||||
|
|
||||||
|
#include <clifo.h>
|
||||||
#include <partite.h>
|
#include <partite.h>
|
||||||
#include <scadenze.h>
|
#include <scadenze.h>
|
||||||
|
|
||||||
@ -492,14 +493,17 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
// Sheet partite
|
// Sheet partite
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
bool TPrimanota_application::edit_partite(const TBill& b)
|
bool TPrimanota_application::edit_partite(int riga)
|
||||||
{
|
{
|
||||||
begin_wait();
|
begin_wait();
|
||||||
|
|
||||||
|
TToken_string& cgr = cgs().row(riga);
|
||||||
|
const TBill b(cgr, 2, 0x3); // Legge il conto della riga selezionata
|
||||||
|
|
||||||
TString80 caption("Partite aperte del conto ");
|
TString80 caption("Partite aperte del conto ");
|
||||||
caption << b.gruppo() << ' ' << b.conto() << ' ' << b.sottoconto();
|
caption << b.gruppo() << ' ' << b.conto() << ' ' << b.sottoconto();
|
||||||
|
|
||||||
TArray_sheet a(-1, -1, 0, 0, caption, "Anno|Numero@7|Descrizione@50|Importo@15R|Sezione");
|
TArray_sheet a(-1, -1, 0, 0, caption, "Anno|Numero@7|Descrizione@50|Importo@15R|Sezione", 0x8);
|
||||||
|
|
||||||
TLocalisamfile partita(LF_PARTITE);
|
TLocalisamfile partita(LF_PARTITE);
|
||||||
partita.setkey(2); // Chiave per conto
|
partita.setkey(2); // Chiave per conto
|
||||||
@ -512,9 +516,9 @@ bool TPrimanota_application::edit_partite(const TBill& b)
|
|||||||
}
|
}
|
||||||
else b.put(partita.curr()); // Scrive completamente i conti normali
|
else b.put(partita.curr()); // Scrive completamente i conti normali
|
||||||
|
|
||||||
TRectype recpar(partita.curr()); // Record campione
|
const TRectype recpar(partita.curr());// Record campione
|
||||||
|
|
||||||
int ult, anno; // Anno ultima partita
|
int ult, anno; // Anno ultima partita
|
||||||
TString16 last, num; // Ultimo numero partita e numero corrente
|
TString16 last, num; // Ultimo numero partita e numero corrente
|
||||||
TString desc; // Descrizione prima partita del gruppo
|
TString desc; // Descrizione prima partita del gruppo
|
||||||
TImporto saldo; // Saldo ultima parita
|
TImporto saldo; // Saldo ultima parita
|
||||||
@ -554,46 +558,56 @@ bool TPrimanota_application::edit_partite(const TBill& b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
end_wait();
|
end_wait();
|
||||||
|
|
||||||
|
KEY k = a.items() > 0 ? K_ENTER : K_ESC; // Esce se non ci sono righe
|
||||||
|
while (k == K_ENTER)
|
||||||
|
{
|
||||||
|
k = a.run();
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
|
const int anno = a.row().get_int(0);
|
||||||
|
const TString16 num = a.row().get(1);
|
||||||
|
edit_scadenze(riga, b, anno, num); // Edita pagamenti
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const KEY k = a.items() > 0 ? a.run() : K_ESC;
|
return TRUE;
|
||||||
if (k != K_ENTER)
|
}
|
||||||
return FALSE;
|
|
||||||
|
// Edit scadenze relative all'anno/numero partita specificati
|
||||||
anno = a.row().get_int(0);
|
bool TPrimanota_application::edit_scadenze(int currig, const TBill& b, int anno, const char* num)
|
||||||
num = a.row().get(1);
|
{
|
||||||
|
TString caption; caption.format("Pagamenti della partita %s dell'anno %d", num, anno);
|
||||||
TMask m("cg2100s");
|
TArray_sheet a(-1, -1, 0, 0, caption, "Rata|Data@10|Importo@15|Descrizione@50|Tipo", 0x8);
|
||||||
m.set(S_ANNO, anno);
|
|
||||||
m.set(S_NUM, num);
|
|
||||||
|
|
||||||
TSheet_field& s = (TSheet_field&)m.field(S_SCADENZE);
|
|
||||||
TString_array& sr = s.rows_array();
|
|
||||||
|
|
||||||
TLocalisamfile scadenza(LF_SCADENZE);
|
TLocalisamfile scadenza(LF_SCADENZE);
|
||||||
scadenza.zero(); scadenza.put(SCAD_ANNO, anno); scadenza.put(SCAD_NUMPART, num);
|
scadenza.zero(); scadenza.put(SCAD_ANNO, anno); scadenza.put(SCAD_NUMPART, num);
|
||||||
|
|
||||||
const TRectype recsca(scadenza.curr());
|
const TRectype recsca(scadenza.curr());
|
||||||
|
|
||||||
for (err = scadenza.read(_isgteq);
|
TToken_string r(80);
|
||||||
|
for (int err = scadenza.read(_isgteq);
|
||||||
err == NOERR && scadenza.curr() == recsca;
|
err == NOERR && scadenza.curr() == recsca;
|
||||||
err = scadenza.next())
|
err = scadenza.next())
|
||||||
{
|
{
|
||||||
r.cut(0);
|
r.cut(0);
|
||||||
r.add(scadenza.get(SCAD_NRATA));
|
r.add(scadenza.get(SCAD_NRATA));
|
||||||
r.add(scadenza.get(SCAD_DATASCAD));
|
r.add(scadenza.get(SCAD_DATASCAD));
|
||||||
r.add(scadenza.get(SCAD_IMPORTOVAL));
|
|
||||||
r.add(scadenza.get(SCAD_IMPORTO));
|
r.add(scadenza.get(SCAD_IMPORTO));
|
||||||
r.add("");
|
r.add("");
|
||||||
r.add("S");
|
r.add("");
|
||||||
sr.add(r);
|
a.add(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TLocalisamfile partita(LF_PARTITE);
|
||||||
partita.setkey(1);
|
partita.setkey(1);
|
||||||
partita.zero(); partita.put(PART_ANNO, anno); partita.put(PART_NUMPART, num);
|
partita.zero(); partita.put(PART_ANNO, anno); partita.put(PART_NUMPART, num);
|
||||||
recpar = partita.curr();
|
const TRectype recpar(partita.curr());
|
||||||
|
|
||||||
const TString16 curreg(curr_mask().get(F_NUMREG)); // Numero registrazione corrente
|
const TString16 curreg(curr_mask().get(F_NUMREG)); // Numero registrazione corrente
|
||||||
desc.cut(0);
|
TString desc; // Descrizione di default
|
||||||
|
|
||||||
|
TRectype parbas(recpar);
|
||||||
|
|
||||||
for (err = partita.read(_isgteq); err == NOERR && partita.curr() == recpar; err = partita.next())
|
for (err = partita.read(_isgteq); err == NOERR && partita.curr() == recpar; err = partita.next())
|
||||||
{
|
{
|
||||||
@ -601,20 +615,22 @@ bool TPrimanota_application::edit_partite(const TBill& b)
|
|||||||
|
|
||||||
if (desc.empty())
|
if (desc.empty())
|
||||||
{
|
{
|
||||||
|
parbas = partita.curr(); // Memorizza parita base
|
||||||
|
|
||||||
desc = partita.get(PART_DESCR); // Aggiorna descrizione scadenze
|
desc = partita.get(PART_DESCR); // Aggiorna descrizione scadenze
|
||||||
for (int i = 0; i < sr.items(); i++)
|
for (int i = 0; i < a.items(); i++)
|
||||||
{
|
{
|
||||||
TToken_string& t = sr.row(i);
|
TToken_string& t = a.row(i);
|
||||||
if (t.get(S_DESCR-101)[0] <= ' ')
|
if (t.get(3)[0] <= ' ')
|
||||||
t.add(desc, S_DESCR-101);
|
t.add(desc, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rata < 1 || partita.get(PART_REG).not_empty())
|
if (rata < 1 || partita.get(PART_REG).not_empty())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (int i = sr.items()-1; i >= 0; i--) // Cerca scadenza corrispondente
|
for (long i = a.items()-1; i >= 0; i--) // Cerca scadenza corrispondente
|
||||||
if (sr.row(i).get_int(0) == rata) break;
|
if (a.row(i).get_int(0) == rata) break;
|
||||||
|
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
error_box("Non esiste una scadenza per la rata %d", rata);
|
error_box("Non esiste una scadenza per la rata %d", rata);
|
||||||
@ -622,18 +638,157 @@ bool TPrimanota_application::edit_partite(const TBill& b)
|
|||||||
r.cut(0);
|
r.cut(0);
|
||||||
r.add(rata);
|
r.add(rata);
|
||||||
r.add(partita.get(PART_DATADOC));
|
r.add(partita.get(PART_DATADOC));
|
||||||
r.add(partita.get(PART_IMPORTOVAL));
|
|
||||||
r.add(partita.get(PART_IMPORTO));
|
r.add(partita.get(PART_IMPORTO));
|
||||||
r.add(desc);
|
r.add(desc);
|
||||||
r.add("P");
|
r.add(partita.get(PART_NRIGA));
|
||||||
i = sr.insert(r, i >= 0 ? i+1 : -1);
|
i = a.insert(r, i >= 0 ? i+1 : -1);
|
||||||
|
|
||||||
if (partita.get(PART_NREG) != curreg)
|
if (partita.get(PART_NREG) != curreg || partita.get_int(PART_NRIGA) != currig)
|
||||||
s.disable_cell(i, -1);
|
a.disable(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
s.force_update();
|
KEY k = a.items() > 0 ? K_ENTER : K_ESC; // Esce se non ci sono righe
|
||||||
m.run();
|
while (k == K_ENTER)
|
||||||
|
{
|
||||||
|
k = a.run();
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
|
const int rata = a.row().get_int(0);
|
||||||
|
scadenza.zero();
|
||||||
|
scadenza.put(SCAD_ANNO, anno);
|
||||||
|
scadenza.put(SCAD_NUMPART, num);
|
||||||
|
scadenza.put(SCAD_NRATA, rata);
|
||||||
|
err = scadenza.read();
|
||||||
|
CHECKD(err == NOERR, "Non ritrovo piu' la rata ", rata);
|
||||||
|
|
||||||
|
int nrig = a.row().get_int(4);
|
||||||
|
if (nrig == 0) // Ho cliccato su una scadenza
|
||||||
|
{
|
||||||
|
for (long i = a.selected()+1; i < a.items(); i++) // Cerca pagamento
|
||||||
|
{
|
||||||
|
const int r = a.row(i).get_int(4);
|
||||||
|
if (r == 0 || a.enabled(i))
|
||||||
|
{
|
||||||
|
nrig = r;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TRectype part(parbas);
|
||||||
|
if (nrig == 0) // Inserimento di un nuovo pagamento
|
||||||
|
part.zero();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (edit_pagamento(parbas, scadenza.curr(), part))
|
||||||
|
{
|
||||||
|
err = (nrig == 0) ? partita.write(part) : partita.rewrite(part);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TPrimanota_application::edit_pagamento(const TRectype& parbas,
|
||||||
|
const TRectype& scaden,
|
||||||
|
TRectype& part)
|
||||||
|
{
|
||||||
|
TMask m("cg2100s");
|
||||||
|
|
||||||
|
TRelation rel(LF_PARTITE); // Working relation
|
||||||
|
|
||||||
|
rel.lfile().curr() = part;
|
||||||
|
|
||||||
|
const real importo(scaden.get(SCAD_IMPORTO));
|
||||||
|
const real importopag(part.get(SCAD_IMPORTO));
|
||||||
|
const real ritenute(part.get(PART_RITENUTE));
|
||||||
|
const real residuo = importo - importopag;
|
||||||
|
|
||||||
|
m.set(S_RESIDUO, residuo.string());
|
||||||
|
m.set(S_DATADOC, parbas.get(PART_DATADOC));
|
||||||
|
m.set(S_NUMPROT, parbas.get(PART_PROTIVA));
|
||||||
|
m.set(S_NUMDOC, parbas.get(PART_NUMDOC));
|
||||||
|
m.set(S_DESCR, parbas.get(PART_DESCR));
|
||||||
|
|
||||||
|
m.set(S_RATA, scaden.get(SCAD_NRATA));
|
||||||
|
m.set(S_DATASCAD, scaden.get(SCAD_DATASCAD));
|
||||||
|
m.set(S_IMPORTO, scaden.get(SCAD_IMPORTO));
|
||||||
|
m.set(S_IMPORTOVAL, scaden.get(SCAD_IMPORTOVAL));
|
||||||
|
m.set(S_SEZIONE, parbas.get(PART_SEZ));
|
||||||
|
m.set(S_IMPORTOPAG, importopag.string());
|
||||||
|
|
||||||
|
if (part.empty()) // Insert mode
|
||||||
|
{
|
||||||
|
TString80 tmp;
|
||||||
|
|
||||||
|
tmp = curr_mask().get(F_DATAREG);
|
||||||
|
m.set(S_DATAPAG, tmp);
|
||||||
|
|
||||||
|
tmp = scaden.get(SCAD_CODPAG);
|
||||||
|
m.set(S_CODPAG, tmp);
|
||||||
|
|
||||||
|
tmp = scaden.get(SCAD_TIPOPAG);
|
||||||
|
m.set(S_TIPOPAG, tmp);
|
||||||
|
|
||||||
|
int caus = 2; // Calcola riga causale
|
||||||
|
switch (atoi(tmp))
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
caus = 3; break; // Tratta
|
||||||
|
case 3:
|
||||||
|
caus = 4; break; // Ricevuta bancaria
|
||||||
|
case 4:
|
||||||
|
caus = 5; break; // Cessione
|
||||||
|
case 5:
|
||||||
|
caus = 6; break; // Paghero'
|
||||||
|
case 6:
|
||||||
|
caus = 7; break; // Fattura di credito
|
||||||
|
case 7:
|
||||||
|
caus = 3; break; // Tratta accettata
|
||||||
|
case 1: // Rimessa
|
||||||
|
case 8: // Rapporti interbancari diretti
|
||||||
|
case 9: // Bonifico
|
||||||
|
default:
|
||||||
|
caus = 2; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TBill bill; causale().bill(caus, bill);
|
||||||
|
m.set(S_TIPO, bill.tipo());
|
||||||
|
m.set(S_GRUPPO, bill.gruppo());
|
||||||
|
m.set(S_CONTO, bill.conto());
|
||||||
|
m.set(S_SOTTOCONTO, bill.sottoconto());
|
||||||
|
|
||||||
|
tmp = curr_mask().get(F_DESCR);
|
||||||
|
m.set(S_DESCR, tmp);
|
||||||
|
|
||||||
|
bill.get(parbas);
|
||||||
|
if (bill.tipo() > ' ')
|
||||||
|
{
|
||||||
|
TLocalisamfile clifo(LF_CLIFO);
|
||||||
|
clifo.put(CLI_TIPOCF, bill.tipo());
|
||||||
|
clifo.put(CLI_CODCF, bill.codclifo());
|
||||||
|
tmp = clifo.get(CLI_CODABI);
|
||||||
|
m.set(S_VSABI, tmp);
|
||||||
|
tmp = clifo.get(CLI_CODBAN);
|
||||||
|
m.set(S_VSCAB, tmp);
|
||||||
|
tmp = clifo.get(CLI_CODAG);
|
||||||
|
m.set(S_AGENTE, tmp);
|
||||||
|
}
|
||||||
|
tmp = scaden.get(SCAD_CODABIPR);
|
||||||
|
m.set(S_NSABI, tmp);
|
||||||
|
tmp = scaden.get(SCAD_CODCABPR);
|
||||||
|
m.set(S_NSCAB, tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
const KEY key = m.run();
|
||||||
|
if (key == K_ENTER)
|
||||||
|
{
|
||||||
|
m.autosave(&rel);
|
||||||
|
part = rel.lfile().curr();
|
||||||
|
}
|
||||||
|
|
||||||
|
return key == K_ENTER;
|
||||||
|
}
|
||||||
|
@ -88,6 +88,7 @@ const char* TBill::file2type(int num) const
|
|||||||
switch (num)
|
switch (num)
|
||||||
{
|
{
|
||||||
case LF_PARTITE:
|
case LF_PARTITE:
|
||||||
|
case LF_SCADENZE:
|
||||||
t = "TIPOCF"; break;
|
t = "TIPOCF"; break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -44,6 +44,7 @@ public:
|
|||||||
int gruppo() const { return _gruppo; }
|
int gruppo() const { return _gruppo; }
|
||||||
int conto() const { return _conto; }
|
int conto() const { return _conto; }
|
||||||
long sottoconto() const { return _sottoconto; }
|
long sottoconto() const { return _sottoconto; }
|
||||||
|
long codclifo() const { return _sottoconto; }
|
||||||
|
|
||||||
bool find();
|
bool find();
|
||||||
const TString& descrizione();
|
const TString& descrizione();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user