Prosegue la saga della generazione partite da saldi contabili
git-svn-id: svn://10.65.10.50/trunk@1659 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4f75fae164
commit
e4671edff7
@ -28,7 +28,7 @@ protected:
|
||||
virtual bool destroy();
|
||||
virtual bool menu(MENU_TAG m);
|
||||
|
||||
long get_last_partita(bool check_erase);
|
||||
bool zap_partite(bool check_erase);
|
||||
|
||||
public:
|
||||
|
||||
@ -60,7 +60,7 @@ bool TCreatepart_app::destroy()
|
||||
}
|
||||
|
||||
|
||||
long TCreatepart_app::get_last_partita(bool zap)
|
||||
bool TCreatepart_app::zap_partite(bool zap)
|
||||
{
|
||||
// ritorna il primo valore utile per partita temporanea AP;
|
||||
// se ce ne sono gia' propone la cancellazione e se ok
|
||||
@ -68,14 +68,16 @@ long TCreatepart_app::get_last_partita(bool zap)
|
||||
|
||||
_partite->zero();
|
||||
_partite->put(PART_ANNO, _anno);
|
||||
_partite->put(PART_NUMPART, "*");
|
||||
|
||||
long last = 0l;
|
||||
bool go = _partite->read(_isgteq) == NOERR;
|
||||
|
||||
if (zap && go)
|
||||
zap = yesno_box("Esistono gia' partite generate in base ai"
|
||||
" saldi contabili. Si desidera cancellarle?");
|
||||
zap = yesno_box("Il saldaconto per l'esercizio scelto non e' vuoto."
|
||||
" La procedura lo azzera completamente."
|
||||
" Si desidera proseguire?");
|
||||
if (zap && go)
|
||||
zap = yesno_box("Confermare l'azzeramento del saldaconto esistente");
|
||||
|
||||
while (go)
|
||||
{
|
||||
@ -97,27 +99,28 @@ long TCreatepart_app::get_last_partita(bool zap)
|
||||
}
|
||||
}
|
||||
}
|
||||
else last = atol(_partite->get(PART_NUMPART).mid(2)) + 1l;
|
||||
|
||||
go = _partite->next() == NOERR &&
|
||||
_partite->get(PART_NUMPART).mid(0,2) == "AP";
|
||||
go = _partite->next() == NOERR;
|
||||
}
|
||||
|
||||
return last;
|
||||
return zap;
|
||||
}
|
||||
|
||||
|
||||
bool TCreatepart_app::is_clifo(int g, int c, char& cf)
|
||||
{
|
||||
static int gr = -1, ct = -1;
|
||||
|
||||
// TBI deve ritornare QUANTI sono i conti in cui appare lo stesso
|
||||
// cliente; se piu' di uno deve creare n rate, una per cliente
|
||||
|
||||
if (g != gr || c != ct)
|
||||
{
|
||||
_conti->zero();
|
||||
_conti->put(PCN_GRUPPO, g);
|
||||
_conti->put(PCN_CONTO, c);
|
||||
if (_conti->read() != NOERR)
|
||||
error_box("Piano dei conti disallineato con archivio saldi");
|
||||
if (_conti->read() != NOERR)
|
||||
// TBC c'era un'error_box: ci vuole?
|
||||
return FALSE;
|
||||
gr = g; ct = c;
|
||||
}
|
||||
|
||||
@ -135,9 +138,9 @@ bool TCreatepart_app::menu(MENU_TAG)
|
||||
TRelation saldi(LF_SALDI);
|
||||
saldi.zero();
|
||||
|
||||
TDate data(TODAY);
|
||||
TString80 desccl = "Apertura clienti al "; desccl << data.string();
|
||||
TString80 descfo = "Apertura fornitori al "; descfo << data.string();
|
||||
TDate today(TODAY);
|
||||
TString80 desccl = "Apertura clienti al "; desccl << today.string();
|
||||
TString80 descfo = "Apertura fornitori al "; descfo << today.string();
|
||||
|
||||
m.set(F_DESCCL, desccl);
|
||||
m.set(F_DESCFO, descfo);
|
||||
@ -145,14 +148,10 @@ bool TCreatepart_app::menu(MENU_TAG)
|
||||
while (m.run() != K_QUIT)
|
||||
{
|
||||
int n_part = 0;
|
||||
TString16 codpag(m.get(F_CODPAG));
|
||||
|
||||
desccl = m.get(F_DESCCL);
|
||||
descfo = m.get(F_DESCFO);
|
||||
|
||||
|
||||
TPagamento pag(codpag, data.string());
|
||||
|
||||
m.set(F_NUMPART, format("%d",n_part));
|
||||
_anno = m.get_int(F_ANNO);
|
||||
|
||||
@ -189,12 +188,16 @@ bool TCreatepart_app::menu(MENU_TAG)
|
||||
TString16 id;
|
||||
real val(saldo.valore());
|
||||
|
||||
pag.set_total(val, ZERO, ZERO);
|
||||
pag.set_rate_auto();
|
||||
// TPagamento pag(codpag, today.string());
|
||||
// pag.set_total(val, ZERO, ZERO);
|
||||
// pag.set_rate_auto();
|
||||
|
||||
// sputtana tutto il saldaculo
|
||||
if (!zap_partite(hw == 0)) return FALSE;
|
||||
|
||||
// determina ultima partita; la prima volta,
|
||||
// se ce n'e' chiedi se si vuole cancellare
|
||||
long last_partita = get_last_partita(hw == 0);
|
||||
long last_partita = 1l;
|
||||
|
||||
// apri partita dimmerda
|
||||
id << format("*%05ld", last_partita);
|
||||
@ -204,34 +207,44 @@ bool TCreatepart_app::menu(MENU_TAG)
|
||||
_partite->put(PART_NUMPART, id);
|
||||
_partite->put(PART_NUMRIG, 1);
|
||||
_partite->put(PART_NRIGA, 1);
|
||||
_partite->put(PART_DATAREG, data);
|
||||
_partite->put(PART_DATADOC, data);
|
||||
_partite->put(PART_DATAREG, today);
|
||||
_partite->put(PART_DATADOC, today);
|
||||
_partite->put(PART_SEZ, saldo.sezione());
|
||||
_partite->put(PART_IMPORTO, saldo.valore());
|
||||
_partite->put(PART_CODPAG, codpag);
|
||||
// _partite->put(PART_CODPAG, codpag);
|
||||
_partite->put(PART_CODVAL, "LIT");
|
||||
_partite->put(PART_TIPOCF, cf);
|
||||
_partite->put(PART_GRUPPO, gruppo);
|
||||
_partite->put(PART_CONTO, conto);
|
||||
_partite->put(PART_GRUPPOCL, gruppo);
|
||||
_partite->put(PART_CONTOCL, conto);
|
||||
_partite->put(PART_SOTTOCONTO,sottoc);
|
||||
_partite->put(PART_DESCR, cf == 'C' ? desccl : descfo);
|
||||
|
||||
// cazzata dare/avere/fare/baciare/cagare
|
||||
int tipo = (cf == 'C' ? (saldo.sezione() == 'D' ? 1 : 3) :
|
||||
(saldo.sezione() == 'D' ? 3 : 1));
|
||||
|
||||
_partite->put(PART_TIPOMOV, tipo);
|
||||
_partite->write();
|
||||
|
||||
// apri scadenze dimmerda
|
||||
for (int i = 0; i < pag.n_rate(); i++)
|
||||
// apri scadenze dimmerda: tante quanti clienti ci sono
|
||||
|
||||
// TBI vedi n. clienti
|
||||
int nclienti = 1;
|
||||
|
||||
for (int i = 0; i < nclienti; i++)
|
||||
{
|
||||
_scadenze->zero();
|
||||
_scadenze->put(SCAD_ANNO, _anno);
|
||||
_scadenze->put(SCAD_NUMPART, id);
|
||||
_scadenze->put(SCAD_NRATA, i+1);
|
||||
_scadenze->put(SCAD_CODPAG, codpag);
|
||||
_scadenze->put(SCAD_ULTCLASS, pag.ulc_rata(i));
|
||||
_scadenze->put(SCAD_TIPOPAG, pag.tipo_rata(i));
|
||||
_scadenze->put(SCAD_IMPORTO, pag.tpay_rata(i));
|
||||
_scadenze->put(SCAD_DATASCAD, pag.data_rata(i));
|
||||
// _scadenze->put(SCAD_CODPAG, codpag);
|
||||
// _scadenze->put(SCAD_ULTCLASS, pag.ulc_rata(i));
|
||||
// _scadenze->put(SCAD_TIPOPAG, pag.tipo_rata(i));
|
||||
_scadenze->put(SCAD_IMPORTO, val/real((double)nclienti));
|
||||
// _scadenze->put(SCAD_DATASCAD, pag.data_rata(i));
|
||||
_scadenze->put(SCAD_TIPOCF, cf);
|
||||
_scadenze->put(SCAD_GRUPPO, gruppo);
|
||||
_scadenze->put(SCAD_CONTO, conto);
|
||||
// _scadenze->put(SCAD_GRUPPO, gruppo);
|
||||
// _scadenze->put(SCAD_CONTO, conto);
|
||||
_scadenze->put(SCAD_SOTTOCONTO, sottoc);
|
||||
_scadenze->write();
|
||||
}
|
||||
@ -244,7 +257,7 @@ bool TCreatepart_app::menu(MENU_TAG)
|
||||
end_wait();
|
||||
}
|
||||
else
|
||||
message_box("Nessun saldo presente per l'anno %d", _anno);
|
||||
message_box("Nessun saldo presente per l'esercizio %d", _anno);
|
||||
} // while run
|
||||
|
||||
return FALSE;
|
||||
|
@ -1,8 +1,4 @@
|
||||
#define F_ANNO 101
|
||||
#define F_NUMPART 102
|
||||
#define F_DATA 103
|
||||
#define F_CODPAG 104
|
||||
#define F_CAUSCL 105
|
||||
#define F_CAUSFO 106
|
||||
#define F_DESCCL 107
|
||||
#define F_DESCFO 108
|
||||
#define F_DESCCL 103
|
||||
#define F_DESCFO 104
|
||||
|
@ -25,7 +25,7 @@ END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 6 "Anno esercizio "
|
||||
PROMPT 1 7 "Anno esercizio "
|
||||
USE ESC
|
||||
INPUT CODTAB F_ANNO
|
||||
DISPLAY "Anno Esercizio" CODTAB
|
||||
@ -37,61 +37,22 @@ BEGIN
|
||||
WARNING "L' anno di esercizio e' obbligatorio"
|
||||
END
|
||||
|
||||
STRING F_CODPAG 4
|
||||
BEGIN
|
||||
PROMPT 32 6 "Pagamento "
|
||||
HELP "Codice del pagamento concordato per il movimento"
|
||||
FIELD CODPAG
|
||||
FLAGS "UZ"
|
||||
USE %CPG
|
||||
INPUT CODTAB F_CODPAG
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODPAG CODTAB
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN ba3 -6
|
||||
WARNING "Codice pagamento obbligatorio"
|
||||
END
|
||||
|
||||
STRING F_DESCCL 40
|
||||
BEGIN
|
||||
PROMPT 1 7 "Descrizione clienti "
|
||||
PROMPT 1 8 "Descrizione clienti "
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
STRING F_DESCFO 40
|
||||
BEGIN
|
||||
PROMPT 1 8 "Descrizione fornitori "
|
||||
PROMPT 1 9 "Descrizione fornitori "
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
STRING F_CAUSCL 3
|
||||
BEGIN
|
||||
PROMPT 1 9 "Causale riferimento clienti "
|
||||
USE LF_CAUSALI SELECT MOVSEZ=="X"
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
INPUT CODCAUS F_CAUSCL
|
||||
OUTPUT F_CAUSCL CODCAUS
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -4
|
||||
END
|
||||
|
||||
STRING F_CAUSFO 3
|
||||
BEGIN
|
||||
PROMPT 1 10 "Causale riferimento fornitori "
|
||||
COPY USE F_CAUSCL
|
||||
DISPLAY "Codice" CODCAUS
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
INPUT CODCAUS F_CAUSFO
|
||||
OUTPUT F_CAUSFO CODCAUS
|
||||
CHECKTYPE REQUIRED
|
||||
ADD RUN cg0 -4
|
||||
END
|
||||
|
||||
NUMBER F_NUMPART 3
|
||||
BEGIN
|
||||
PROMPT 1 11 "N. partite aperte "
|
||||
PROMPT 1 11 "N. partite aperte "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user