Patch level : 10.0

Files correlati     : lv4
Ricompilazione Demo : [ ]
Commento            :
Corretta importazione partite aperte da COGECO


git-svn-id: svn://10.65.10.50/trunk@20003 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2010-01-28 10:45:45 +00:00
parent b5f3f979c1
commit 9b208509b7
3 changed files with 115 additions and 58 deletions

View File

@ -1033,7 +1033,7 @@ void TFatturazione_lavanderie::campi_raggruppamento_righe(TToken_string& campi_r
//se lo standard lascia campi_riga vuota, allora la pongo uguale a "CODART|UMQTA" //se lo standard lascia campi_riga vuota, allora la pongo uguale a "CODART|UMQTA"
//che sono sicuramente sempre uguali //che sono sicuramente sempre uguali
if (campi_riga.empty()) if (campi_riga.empty())
campi_riga = "CODART|UMQTA"; // Uguali sempre campi_riga = RDOC_CODART"|"RDOC_UMQTA; // Uguali sempre
} }
//FIND_OR_CREATE_ROW: questo metodo cerca tra tutte le righe documento della fattura prodotta //FIND_OR_CREATE_ROW: questo metodo cerca tra tutte le righe documento della fattura prodotta

View File

@ -23,7 +23,8 @@ struct TStruttura: public TObject
long _qta; long _qta;
TStruttura():_cliente(0),_numeroDoc(0),_qta(0) {} TStruttura():_cliente(0),_numeroDoc(0),_qta(0) {}
TStruttura(long cliente, const TString& articolo, const TString& descr, TStruttura(long cliente, const TString& articolo, const TString& descr,
TDate dataDoc, int numeroDoc, long qta):_cliente(cliente),_articolo(articolo),_descr(descr),_dataDoc(dataDoc),_numeroDoc(numeroDoc),_qta(qta) {} TDate dataDoc, int numeroDoc, long qta):_cliente(cliente),_articolo(articolo),
_descr(descr),_dataDoc(dataDoc),_numeroDoc(numeroDoc),_qta(qta) {}
}; };
struct TStrutturaData: public TObject struct TStrutturaData: public TObject

View File

@ -23,7 +23,7 @@
enum CGC_SALDAC { CGC_NULL, CGC_TIPOCF, CGC_ANNO, CGC_NUMPART, CGC_CODCF, enum CGC_SALDAC { CGC_NULL, CGC_TIPOCF, CGC_ANNO, CGC_NUMPART, CGC_CODCF,
CGC_NUMEROREC, CGC_CAMBIO, CGC_VALUTA, CGC_TIPODOC, CGC_DATADOC, CGC_NUMEROREC, CGC_CAMBIO, CGC_VALUTA, CGC_TIPODOC, CGC_DATADOC,
CGC_SCADENZA, CGC_IMPORTO, CGC_IMPORTO_VAL }; CGC_SCADENZA, CGC_IMPORTO, CGC_IMPORTO_VAL,CGC_NUMDOC };
class TCausali_cache : public TCache class TCausali_cache : public TCache
{ {
@ -33,7 +33,7 @@ protected:
virtual TObject* key2obj(const char* key); virtual TObject* key2obj(const char* key);
public: public:
const TCausale& causale(char tipocf, tipo_movimento tm, const TDate& datadoc); const TCausale& causale(char tipocf, tipo_movimento tm);
void init(const char* cln, const char* frn) { _cln = cln; _frn = frn; } void init(const char* cln, const char* frn) { _cln = cln; _frn = frn; }
}; };
@ -41,9 +41,6 @@ TObject* TCausali_cache::key2obj(const char* key)
{ {
const char tipocf = key[0]; const char tipocf = key[0];
const tipo_movimento tm = tipo_movimento(key[1]-'0'); const tipo_movimento tm = tipo_movimento(key[1]-'0');
int anno = atoi(key + 2);
if (anno <= 0)
anno = TDate(TODAY).year();
TString4 codcaus; TString4 codcaus;
if (tm == tm_fattura) if (tm == tm_fattura)
@ -57,16 +54,15 @@ TObject* TCausali_cache::key2obj(const char* key)
if (caus.move_first()) if (caus.move_first())
codcaus = caus.get(CAU_CODCAUS).as_string(); codcaus = caus.get(CAU_CODCAUS).as_string();
} }
TCausale* pcaus = new TCausale(codcaus, anno); TCausale* pcaus = new TCausale(codcaus);
return pcaus; return pcaus;
} }
const TCausale& TCausali_cache::causale(const char tipocf, tipo_movimento tm, const TDate& datadoc) const TCausale& TCausali_cache::causale(const char tipocf, tipo_movimento tm)
{ {
// Metodo bastardo per evitare TToken_string temporanee "a randa" // Metodo bastardo per evitare TToken_string temporanee "a randa"
// creo chiave a lunghezza fissa TIPOCF+TIPOMOV = C1 // creo chiave a lunghezza fissa TIPOCF+TIPOMOV+ANNO = C12010
TString8 key; const char key[4] = { tipocf, '0'+tm, '\0' };
key.format("%c%1d%4d" , tipocf, tm, datadoc.year());
return *(const TCausale*)objptr(key); return *(const TCausale*)objptr(key);
} }
@ -91,28 +87,26 @@ bool TImporta_sc_mask::on_field_event(TOperable_field& f, TField_event e, long j
{ {
switch (f.dlg()) switch (f.dlg())
{ {
//giochetto per avere la lista dei files validi nella directory di trasferimento! //giochetto per avere la lista dei files validi nella directory di trasferimento!
case F_NAME: case F_NAME:
if (e == fe_button) if (e == fe_button)
{
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), "File@32");
TFilename path = get(F_PATH);
path.add("*.txt"); //file da importare
list_files(path, as.rows_array());
TFilename name;
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
{ {
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), "File@32"); name = *row;
TFilename path = get(F_PATH); *row = name.name();
path.add("*.txt"); //file da importare
list_files(path, as.rows_array());
TFilename name;
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
{
name = *row;
*row = name.name();
}
if (as.run() == K_ENTER)
{
f.set(as.row(as.selected()));
}
} }
break; if (as.run() == K_ENTER)
default: f.set(as.row(as.selected()));
break; }
break;
default:
break;
} }
return true; return true;
} }
@ -128,17 +122,18 @@ class TImporta_sc : public TSkeleton_application
TBill _clienti, _fornitori; TBill _clienti, _fornitori;
private: private:
void nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, TPartita& game, tipo_movimento tm); void nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, TPartita& game, tipo_movimento tm, bool is_riba);
bool paga_rata(TPartita& game, int nrata, int nrigp, real& importo) const; bool paga_rata(TPartita& game, int nrata, int nrigp, real& importo) const;
void set_descr(TRectype& rec) const;
protected: protected:
bool log_error(TLog_report& log, const char* msg, const TRecordset& recset); bool log_error(TLog_report& log, const char* msg, const TRecordset& recset);
const TCausale& causale(char tipocf, tipo_movimento tm, const TDate& datadoc); const TCausale& causale(char tipocf, tipo_movimento tm);
char get_tmcf(int gruppo, int conto) const; char get_tmcf(int gruppo, int conto) const;
bool find_clifo_bill(char tipocf, int& gruppo, int& conto, long sottoconto); bool find_clifo_bill(char tipocf, int& gruppo, int& conto, long sottoconto);
TRiga_partite& nuova_fattura(const TImporta_cogeco_recset& recset, TPartita& game); TRiga_partite& nuova_fattura(const TImporta_cogeco_recset& recset, TPartita& game);
void nuova_scadenza(const TImporta_cogeco_recset& recset, TPartita& game); void nuova_scadenza(const TImporta_cogeco_recset& recset, TPartita& game, bool is_riba);
void nuova_riba(const TImporta_cogeco_recset& recset, TPartita& game); void nuova_riba(const TImporta_cogeco_recset& recset, TPartita& game);
void nuovo_pagamento(const TImporta_cogeco_recset& recset, TPartita& game); void nuovo_pagamento(const TImporta_cogeco_recset& recset, TPartita& game);
void nuova_nota_credito(const TImporta_cogeco_recset& recset, TPartita& game); void nuova_nota_credito(const TImporta_cogeco_recset& recset, TPartita& game);
@ -153,8 +148,8 @@ public:
}; };
// Cerca una causale appropriata in base a TIPOCF (C o F) e TIPOMOV (1, 2, 3, ...) // Cerca una causale appropriata in base a TIPOCF (C o F) e TIPOMOV (1, 2, 3, ...)
const TCausale& TImporta_sc::causale(char tipocf, tipo_movimento tm, const TDate& datadoc) const TCausale& TImporta_sc::causale(char tipocf, tipo_movimento tm)
{ return _cache_causali.causale(tipocf, tm, datadoc); } { return _cache_causali.causale(tipocf, tm); }
// Ricava il campo TMCF (Cliente o Fornitore) di un dato conto // Ricava il campo TMCF (Cliente o Fornitore) di un dato conto
char TImporta_sc::get_tmcf(int gruppo, int conto) const char TImporta_sc::get_tmcf(int gruppo, int conto) const
@ -189,8 +184,7 @@ bool TImporta_sc::find_clifo_bill(char tipocf, int& gruppo, int& conto, long sot
if (!found) if (!found)
{ {
// Cerca sulla prima riga dellla causale // Cerca sulla prima riga dellla causale
const TDate datadoc(TODAY); const TCausale& caus = causale(tipocf, tm_fattura);
const TCausale& caus = causale(tipocf, tm_fattura, datadoc);
TBill bill; caus.bill(1, bill); TBill bill; caus.bill(1, bill);
gruppo = bill.gruppo(); gruppo = bill.gruppo();
conto = bill.conto(); conto = bill.conto();
@ -216,6 +210,33 @@ bool TImporta_sc::find_clifo_bill(char tipocf, int& gruppo, int& conto, long sot
return found; return found;
} }
void TImporta_sc::set_descr(TRectype& rec) const
{
TString descr;
descr << "*** ";
switch (rec.num())
{
case LF_SCADENZE:
descr << TR("Rata") << ' ' << rec.get(SCAD_NRATA);
rec.put(SCAD_DESCR, descr);
break;
case LF_PARTITE:
switch (tipo_movimento(rec.get_int(PART_TIPOMOV)))
{
case tm_fattura : descr << TR("Fattura") << ' '
<< rec.get(PART_ANNO) << '/' << rec.get(PART_NUMDOC); break;
case tm_nota_credito: descr << TR("Nota di credito")
<< rec.get(PART_ANNO) << '/' << rec.get(PART_NUMDOC); break;
case tm_insoluto : descr << TR("Insoluto"); break;
default : descr << TR("Pagamento"); break;
}
rec.put(PART_DESCR, descr);
break;
default:
break;
}
}
// Aggiunge una nuova riga fattura a 'game' in base ai dati in 'recset' // Aggiunge una nuova riga fattura a 'game' in base ai dati in 'recset'
TRiga_partite& TImporta_sc::nuova_fattura(const TImporta_cogeco_recset& recset, TPartita& game) TRiga_partite& TImporta_sc::nuova_fattura(const TImporta_cogeco_recset& recset, TPartita& game)
{ {
@ -227,10 +248,12 @@ TRiga_partite& TImporta_sc::nuova_fattura(const TImporta_cogeco_recset& recset,
const TDate datadoc = recset.get_date(CGC_DATADOC); const TDate datadoc = recset.get_date(CGC_DATADOC);
fattura.put(PART_DATAREG, datadoc); fattura.put(PART_DATAREG, datadoc);
fattura.put(PART_DATADOC, datadoc); fattura.put(PART_DATADOC, datadoc);
fattura.put(PART_DESCR, TR("*** Fattura gnerata da COGECO ***")); const long numdoc = recset.get(CGC_NUMDOC).as_int();
if (numdoc > 0)
fattura.put(PART_NUMDOC, numdoc);
const char tipocf = game.conto().tipo(); const char tipocf = game.conto().tipo();
const TCausale& caus = causale(tipocf, tm_fattura, datadoc); const TCausale& caus = causale(tipocf, tm_fattura);
if (caus.ok()) if (caus.ok())
{ {
fattura.put(PART_CODCAUS, caus.codice()); fattura.put(PART_CODCAUS, caus.codice());
@ -243,6 +266,8 @@ TRiga_partite& TImporta_sc::nuova_fattura(const TImporta_cogeco_recset& recset,
fattura.put(PART_TIPOMOV, tm_fattura); fattura.put(PART_TIPOMOV, tm_fattura);
fattura.put(PART_SEZ, tipocf == 'C' ? 'D' : 'A'); fattura.put(PART_SEZ, tipocf == 'C' ? 'D' : 'A');
} }
set_descr(fattura);
nriga = fattura.get_int(PART_NRIGA); nriga = fattura.get_int(PART_NRIGA);
} }
@ -257,7 +282,7 @@ TRiga_partite& TImporta_sc::nuova_fattura(const TImporta_cogeco_recset& recset,
// Aggiunge una nuova rata alla UNICA fattura di 'game'. // Aggiunge una nuova rata alla UNICA fattura di 'game'.
// Attenzione: in assenza di fattura ne viene creata una "al volo" di pari importo. // Attenzione: in assenza di fattura ne viene creata una "al volo" di pari importo.
void TImporta_sc::nuova_scadenza(const TImporta_cogeco_recset& recset, TPartita& game) void TImporta_sc::nuova_scadenza(const TImporta_cogeco_recset& recset, TPartita& game, bool is_riba)
{ {
int nriga = game.prima_fattura(); // PART_NRIGA della fattura (solitamente = 1) int nriga = game.prima_fattura(); // PART_NRIGA della fattura (solitamente = 1)
if (nriga <= 0) // Se non ci sono fattura in questa partita ... if (nriga <= 0) // Se non ci sono fattura in questa partita ...
@ -266,12 +291,28 @@ void TImporta_sc::nuova_scadenza(const TImporta_cogeco_recset& recset, TPartita&
nriga = game.prima_fattura(); // Aggiorno PART_NRIGA che valeva -1 nriga = game.prima_fattura(); // Aggiorno PART_NRIGA che valeva -1
} }
TRiga_partite& fattura = game.riga(nriga); // Accedo alla riga di fattura, che ora DEVE esistere! TRiga_partite& fattura = game.riga(nriga); // Accedo alla riga di fattura, che ora DEVE esistere!
TRiga_scadenze& scadenza = fattura.new_row(); // Creo nuova rata, alla faccia di SCAD_CODPAG
// Se la scadenza coincide o precede l'ultima, non creo una rata nuova
const TDate datascad = recset.get_date(CGC_SCADENZA);
int nrata = fattura.rate();
if (nrata > 0)
{
const TRiga_scadenze& rata = fattura.rata(nrata);
if (datascad > rata.get_date(SCAD_DATASCAD))
nrata = 0; // Devo creare una rata nuova
}
if (nrata <= 0)
{
TRiga_scadenze& scadenza = fattura.new_row(); // Creo nuova rata, alla faccia di SCAD_CODPAG
nrata = scadenza.get_int(SCAD_NRATA); // valeva 0
scadenza.put(SCAD_DATASCAD, recset.get_date(CGC_SCADENZA));
scadenza.put(SCAD_TIPOPAG, is_riba ? 3 : 1);
set_descr(scadenza);
}
TRiga_scadenze& scadenza = fattura.rata(nrata);
const real importo = recset.get_real(CGC_IMPORTO); const real importo = recset.get_real(CGC_IMPORTO);
scadenza.put(SCAD_DATASCAD, recset.get_date(CGC_SCADENZA)); scadenza.add(SCAD_IMPORTO, importo);
scadenza.put(SCAD_IMPORTO, importo);
scadenza.put(SCAD_DESCR, TR("*** Rata generata da COGECO ***"));
} }
bool TImporta_sc::paga_rata(TPartita& game, int nrata, int nrigp, real& importo) const bool TImporta_sc::paga_rata(TPartita& game, int nrata, int nrigp, real& importo) const
@ -293,6 +334,7 @@ bool TImporta_sc::paga_rata(TPartita& game, int nrata, int nrigp, real& importo)
rpag.put(field[k], scadenza.get(field[k])); rpag.put(field[k], scadenza.get(field[k]));
rpag.put(PAGSCA_NRIGP, nrigp); // Completa la chiave di PAGSCA col numero riga di partita rpag.put(PAGSCA_NRIGP, nrigp); // Completa la chiave di PAGSCA col numero riga di partita
rpag.put(PAGSCA_IMPORTO, pagare); rpag.put(PAGSCA_IMPORTO, pagare);
rpag.put(PAGSCA_ACCSAL, pagare >= residuo ? 'S' : 'A');
const TValuta euro; const TValuta euro;
game.modifica_pagamento(rpag, euro, true); // Speriamo che faccia tutto lei :-) game.modifica_pagamento(rpag, euro, true); // Speriamo che faccia tutto lei :-)
importo -= pagare; importo -= pagare;
@ -303,7 +345,7 @@ bool TImporta_sc::paga_rata(TPartita& game, int nrata, int nrigp, real& importo)
} }
// Aggiunge una nuova riga tipo 2 (n.c.) o 3 (pag.) alla partita // Aggiunge una nuova riga tipo 2 (n.c.) o 3 (pag.) alla partita
void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, TPartita& game, tipo_movimento tm) void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, TPartita& game, tipo_movimento tm, bool is_riba)
{ {
// Crea una nuova riga di partita // Crea una nuova riga di partita
TRiga_partite& pagamento = game.new_row(); TRiga_partite& pagamento = game.new_row();
@ -313,13 +355,17 @@ void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, T
pagamento.put(PART_DATAREG, datadoc); pagamento.put(PART_DATAREG, datadoc);
pagamento.put(PART_DATADOC, datadoc); pagamento.put(PART_DATADOC, datadoc);
if (tm == tm_nota_credito) if (tm == tm_nota_credito)
pagamento.put(PART_DESCR, TR("*** Nota di credito generata da COGECO ***")); {
const long numdoc = recset.get(CGC_NUMDOC).as_int();
if (numdoc > 0)
pagamento.put(PART_NUMDOC, numdoc);
}
else else
pagamento.put(PART_DESCR, TR("*** Pagamento generato da COGECO ***")); pagamento.put(PART_DATAPAG, datadoc);
// Cerca di inizlizzare la riga con una causale appropriata // Cerca di inizlizzare la riga con una causale appropriata
const char tipocf = game.conto().tipo(); const char tipocf = game.conto().tipo();
const TCausale& caus = causale(tipocf, tm, datadoc); const TCausale& caus = causale(tipocf, tm);
if (caus.ok()) if (caus.ok())
{ {
pagamento.put(PART_CODCAUS, caus.codice()); pagamento.put(PART_CODCAUS, caus.codice());
@ -332,6 +378,7 @@ void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, T
pagamento.put(PART_TIPOMOV, tm); pagamento.put(PART_TIPOMOV, tm);
pagamento.put(PART_SEZ, tipocf == 'F' ? 'D' : 'A'); pagamento.put(PART_SEZ, tipocf == 'F' ? 'D' : 'A');
} }
set_descr(pagamento); // Ora sono certo del TIPOMOV e posso generare la descrizione
// Somma da distribuire sulle rate aperte // Somma da distribuire sulle rate aperte
real importo = recset.get_real(CGC_IMPORTO); real importo = recset.get_real(CGC_IMPORTO);
@ -373,7 +420,15 @@ void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, T
} }
} }
if (best_rata > 0) if (best_rata > 0)
{
if (is_riba)
{
const TRiga_scadenze& rata = fattura.rata(best_rata);
if (rata.get_int(SCAD_TIPOPAG) == 3) // Per le RIBA precisa la data pagamento
pagamento.put(PART_DATAPAG, rata.get(SCAD_DATASCAD));
}
paga_rata(game, best_rata, nrigp, importo); paga_rata(game, best_rata, nrigp, importo);
}
else else
break; break;
} }
@ -390,6 +445,7 @@ void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, T
rpag.put(PAGSCA_NRATA, 9999); // Questo 9999 significa "rata ignota" rpag.put(PAGSCA_NRATA, 9999); // Questo 9999 significa "rata ignota"
rpag.put(PAGSCA_NRIGP, nrigp); // Completa la chiave di PAGSCA col numero riga di partita rpag.put(PAGSCA_NRIGP, nrigp); // Completa la chiave di PAGSCA col numero riga di partita
rpag.put(PAGSCA_IMPORTO, importo); rpag.put(PAGSCA_IMPORTO, importo);
rpag.put(PAGSCA_ACCSAL, 'A'); // Gli ancticipi sono sempre in acconto :-)
const TValuta euro; const TValuta euro;
game.modifica_pagamento(rpag, euro, true); game.modifica_pagamento(rpag, euro, true);
} }
@ -399,17 +455,17 @@ void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, T
// per cui in CAMPO viene aperta una scadenza ed immediatamente chiusa col relativo pagamento // per cui in CAMPO viene aperta una scadenza ed immediatamente chiusa col relativo pagamento
void TImporta_sc::nuova_riba(const TImporta_cogeco_recset& recset, TPartita& game) void TImporta_sc::nuova_riba(const TImporta_cogeco_recset& recset, TPartita& game)
{ {
nuova_scadenza(recset, game); nuova_scadenza(recset, game, true);
nuovo_pagamento(recset, game); nuovo_pagamento_o_nota(recset, game, tm_pagamento, true);
} }
// Creo una nuova riga partita corrispondente ad una riga pagamento in PAGSCA // Creo una nuova riga partita corrispondente ad una riga pagamento in PAGSCA
void TImporta_sc::nuovo_pagamento(const TImporta_cogeco_recset& recset, TPartita& game) void TImporta_sc::nuovo_pagamento(const TImporta_cogeco_recset& recset, TPartita& game)
{ nuovo_pagamento_o_nota(recset, game, tm_pagamento); } { nuovo_pagamento_o_nota(recset, game, tm_pagamento, false); }
// Creo una nuova riga partita corrispondente ad una riga nota di credito in PAGSCA // Creo una nuova riga partita corrispondente ad una riga nota di credito in PAGSCA
void TImporta_sc::nuova_nota_credito(const TImporta_cogeco_recset& recset, TPartita& game) void TImporta_sc::nuova_nota_credito(const TImporta_cogeco_recset& recset, TPartita& game)
{ nuovo_pagamento_o_nota(recset, game, tm_nota_credito); } { nuovo_pagamento_o_nota(recset, game, tm_nota_credito, false); }
// Creo una nuova riga partita corrispondente ad una riga di insoluto PAGSCA // Creo una nuova riga partita corrispondente ad una riga di insoluto PAGSCA
bool TImporta_sc::nuovo_insoluto(const TImporta_cogeco_recset& recset, TPartita& game, TLog_report& log) bool TImporta_sc::nuovo_insoluto(const TImporta_cogeco_recset& recset, TPartita& game, TLog_report& log)
@ -457,11 +513,10 @@ bool TImporta_sc::nuovo_insoluto(const TImporta_cogeco_recset& recset, TPartita&
insoluto.put(PART_DATAREG, datadoc); insoluto.put(PART_DATAREG, datadoc);
insoluto.put(PART_DATADOC, datadoc); insoluto.put(PART_DATADOC, datadoc);
insoluto.put(PART_DESCR, TR("*** Insoluto trasferito da COGECO ***"));
insoluto.put(PART_IMPTOTDOC, importo); insoluto.put(PART_IMPTOTDOC, importo);
const char tipocf = game.conto().tipo(); const char tipocf = game.conto().tipo();
const TCausale& caus = causale(tipocf, tm_insoluto, datadoc); const TCausale& caus = causale(tipocf, tm_insoluto);
if (caus.ok()) if (caus.ok())
{ {
insoluto.put(PART_CODCAUS, caus.codice()); insoluto.put(PART_CODCAUS, caus.codice());
@ -474,6 +529,7 @@ bool TImporta_sc::nuovo_insoluto(const TImporta_cogeco_recset& recset, TPartita&
insoluto.put(PART_TIPOMOV, tm_insoluto); insoluto.put(PART_TIPOMOV, tm_insoluto);
insoluto.put(PART_SEZ, fattura.sezione()); insoluto.put(PART_SEZ, fattura.sezione());
} }
set_descr(insoluto);
paga_rata(game, best_rata, nrigp, importo); paga_rata(game, best_rata, nrigp, importo);
} }
else else
@ -576,7 +632,7 @@ void TImporta_sc::transfer(const TFilename& file)
TImporta_cogeco_recset recset(file); TImporta_cogeco_recset recset(file);
recset.sort(game_sorter); recset.sort(game_sorter);
TString caption; _msk->get_caption(caption); const TString& caption = main_app().title();
TProgind pi(recset.items(), caption, true, true); TProgind pi(recset.items(), caption, true, true);
TConfig* conf = NULL; TConfig* conf = NULL;
@ -664,7 +720,7 @@ void TImporta_sc::transfer(const TFilename& file)
case 11: nuovo_pagamento(recset, *game); break; // Pagamento case 11: nuovo_pagamento(recset, *game); break; // Pagamento
case 13: nuova_nota_credito(recset, *game); break; // Nota di credito su RB clienti case 13: nuova_nota_credito(recset, *game); break; // Nota di credito su RB clienti
case 14: nuova_nota_credito(recset, *game); break; // Abbuono case 14: nuova_nota_credito(recset, *game); break; // Abbuono
case 15: nuova_scadenza(recset, *game); break; case 15: nuova_scadenza(recset, *game, false); break;
case 18: nuova_riba(recset, *game); break; // Paghero' case 18: nuova_riba(recset, *game); break; // Paghero'
case 19: nuova_riba(recset, *game); break; // Avviso di scadenza case 19: nuova_riba(recset, *game); break; // Avviso di scadenza
case 20: nuova_riba(recset, *game); break; // R.I.D. case 20: nuova_riba(recset, *game); break; // R.I.D.