Patch level : 12.0 1076
Files correlati : ve0.exe ve1.exe ve5.exe ve6.exe fp0.exe li0300a.msk lv2.exe Commento : In fatturazione bolle scritto il cliente originale della fattura nel campo CFORIG quando uso il cliente FATTURARE A per poterlo recuperae nelle lettere d'intento In configurazione delle lettere d'intento c'è il parametro "Uitlizza il cliente originale nelle fatture" per attivare il meccanismo.
This commit is contained in:
parent
6d4be4fadb
commit
7835079aae
@ -6,7 +6,7 @@
|
|||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
|
|
||||||
#include "../cg/cglib01.h"
|
#include "../cg/cglib.h"
|
||||||
|
|
||||||
#include "lvcondv.h"
|
#include "lvcondv.h"
|
||||||
#include "lvrcondv.h"
|
#include "lvrcondv.h"
|
||||||
|
@ -246,9 +246,9 @@ END
|
|||||||
|
|
||||||
STRING F_NUM_G 4
|
STRING F_NUM_G 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 16 "Numerazione "
|
PROMPT 2 16 "Numerazione"
|
||||||
FIELD #CODNUM_G
|
FIELD #CODNUM_G
|
||||||
FLAGS "H"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#include "../pr/agenti.h"
|
#include "../pr/agenti.h"
|
||||||
#include "../pr/percprov.h"
|
#include "../pr/percprov.h"
|
||||||
#include "../cg/cfban.h"
|
#include "../cg/cfban.h"
|
||||||
#include "../cg/cglib03.h"
|
#include "../cg/cglib.h"
|
||||||
|
|
||||||
#include "comuni.h"
|
#include "comuni.h"
|
||||||
#include "lvcondv.h"
|
#include "lvcondv.h"
|
||||||
@ -1212,7 +1212,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
|||||||
|
|
||||||
if (row_has_02)
|
if (row_has_02)
|
||||||
{
|
{
|
||||||
const TString key = format("%04d%04d", doc.get_int("FATID"), rdoc.get_int(RDOC_IDRIGA));
|
const TString key = format("%04d%04d", doc.get_int(DOC_FATID), rdoc.get_int(RDOC_IDRIGA));
|
||||||
real new_qta = real_qta;
|
real new_qta = real_qta;
|
||||||
TCalc_02_data * data = (TCalc_02_data *) _output_rows_02.objptr(key);
|
TCalc_02_data * data = (TCalc_02_data *) _output_rows_02.objptr(key);
|
||||||
|
|
||||||
@ -1418,6 +1418,10 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
|||||||
|
|
||||||
if (new_cli > 0L)
|
if (new_cli > 0L)
|
||||||
{
|
{
|
||||||
|
TToken_string cf_orig = tipocf;
|
||||||
|
|
||||||
|
cf_orig.add(act_cli);
|
||||||
|
doc.put(DOC_CFORIG, cf_orig);
|
||||||
doc.put(DOC_CODCF, new_cli);
|
doc.put(DOC_CODCF, new_cli);
|
||||||
key = tipocf;
|
key = tipocf;
|
||||||
key.add(new_cli);
|
key.add(new_cli);
|
||||||
@ -1583,7 +1587,7 @@ TRiga_documento& TFatturazione_lavanderie::find_or_create_row(TDocumento& doc_ou
|
|||||||
if (fatt_02())
|
if (fatt_02())
|
||||||
{
|
{
|
||||||
doc_out.set_row_ids();
|
doc_out.set_row_ids();
|
||||||
const TString key = format("%04d%04d", doc_out.get_int("FATID"), doc_out[r].get_int(RDOC_IDRIGA));
|
const TString key = format("%04d%04d", doc_out.get_int(DOC_FATID), doc_out[r].get_int(RDOC_IDRIGA));
|
||||||
TCalc_02_data * data = (TCalc_02_data *) _output_rows_02.objptr(key);
|
TCalc_02_data * data = (TCalc_02_data *) _output_rows_02.objptr(key);
|
||||||
|
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
@ -2178,21 +2182,22 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
_msk = new TFatturazione_msk();
|
_msk = new TFatturazione_msk();
|
||||||
_msk->show(F_SAVEDATA, lv_is_02_active());
|
_msk->show(F_SAVEDATA, lv_is_02_active());
|
||||||
|
|
||||||
while (_msk->run()!= K_QUIT)
|
while (_msk->run() != K_QUIT)
|
||||||
{
|
{
|
||||||
_solototali = _msk->get_bool(F_SOLOTOTALI);
|
_solototali = _msk->get_bool(F_SOLOTOTALI);
|
||||||
|
|
||||||
const int annoes = _msk->get_date(F_DATAFAT).year();
|
const int annoes = _msk->get_date(F_DATAFAT).year();
|
||||||
|
|
||||||
if (!controlli_preliminari())
|
if (!controlli_preliminari())
|
||||||
{
|
{
|
||||||
TString str;
|
TString str;
|
||||||
|
|
||||||
str << "Prima di poter eseguire la fatturazione è necessario correggere tutti gli errori segnalati.\n"
|
str << "Prima di poter eseguire la fatturazione è necessario correggere tutti gli errori segnalati.\n"
|
||||||
<< "Si prega di controllare i dati di configurazione.";
|
<< "Si prega di controllare i dati di configurazione.";
|
||||||
warning_box(str);
|
warning_box(str);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_log = new TLog_report(TR("Fatturazione"));
|
_log = new TLog_report(TR("Fatturazione"));
|
||||||
|
|
||||||
if (_msk->get_bool(F_SAVEDATA))
|
if (_msk->get_bool(F_SAVEDATA))
|
||||||
{
|
{
|
||||||
TFilename src = firm2dir(-1);
|
TFilename src = firm2dir(-1);
|
||||||
@ -2200,11 +2205,13 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
copy_tree(src, dst);
|
copy_tree(src, dst);
|
||||||
}
|
}
|
||||||
//leggo i dati di primo interesse
|
//leggo i dati di primo interesse
|
||||||
|
|
||||||
const TString4 mskzona = _msk->get(F_CODZONA);
|
const TString4 mskzona = _msk->get(F_CODZONA);
|
||||||
const TString4 mskcat = _msk->get(F_CODCATC);
|
const TString4 mskcat = _msk->get(F_CODCATC);
|
||||||
//preparo le date estremi (dal - al) della query e l'anno dell'esercizio
|
//preparo le date estremi (dal - al) della query e l'anno dell'esercizio
|
||||||
TDate al = _msk->get_date(F_ADATA);
|
TDate al = _msk->get_date(F_ADATA);
|
||||||
//se la data "al" non è corretta, la pongo uguale alla data fattura
|
//se la data "al" non è corretta, la pongo uguale alla data fattura
|
||||||
|
|
||||||
if (!al.ok())
|
if (!al.ok())
|
||||||
al = _msk->get_date(F_DATAFAT);
|
al = _msk->get_date(F_DATAFAT);
|
||||||
|
|
||||||
@ -2212,6 +2219,7 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
|
|
||||||
TDate dal = _msk->get_date(F_DADATA);
|
TDate dal = _msk->get_date(F_DADATA);
|
||||||
//se la data "dal" non è corretta, la pongo uguale a 1/1/annoes
|
//se la data "dal" non è corretta, la pongo uguale a 1/1/annoes
|
||||||
|
|
||||||
if (!dal.ok())
|
if (!dal.ok())
|
||||||
{
|
{
|
||||||
dal.set_day(1);
|
dal.set_day(1);
|
||||||
@ -2246,15 +2254,11 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
const TString& fromcod = _msk->get(F_DACODCF);
|
const TString& fromcod = _msk->get(F_DACODCF);
|
||||||
const TString& tocod = _msk->get(F_ACODCF);
|
const TString& tocod = _msk->get(F_ACODCF);
|
||||||
|
|
||||||
//&&(BETWEEN(DATADOC,#DADATA,#ADATA))&&(STATO==\"2\")&&(TIPODOC==\"B01\")
|
|
||||||
query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&"
|
query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&"
|
||||||
<< "STR(BETWEEN(CODCF,\"" << fromcod << "\",\"" << tocod << "\"))\n"
|
<< "STR(BETWEEN(CODCF,\"" << fromcod << "\",\"" << tocod << "\"))\n"
|
||||||
<< "BY TIPOCF CODCF DATADOC\n"
|
<< "BY TIPOCF CODCF DATADOC\n"
|
||||||
<< "FROM DATADOC=#DAL PROVV=D ANNO=" << year << "\n"
|
<< "FROM DATADOC=#DAL PROVV=D ANNO=" << year << "\n"
|
||||||
<< "TO DATADOC=#AL PROVV=D ANNO=" << year << "\n";
|
<< "TO DATADOC=#AL PROVV=D ANNO=" << year << "\n";
|
||||||
// query << "USE DOC KEY 2 SELECT BETWEEN(DATADOC,#DADATA,#ADATA)&&STATO==\"2\")&&(TIPODOC==\"B01\")\n"
|
|
||||||
// << "FROM " << "TIPOCF=C PROVV=D ANNO=#ANNO DATADOC=#DADATA \n"
|
|
||||||
// << "TO " << "TIPOCF=C PROVV=D ANNO=#ANNO DATADOC=#ADATA \n";
|
|
||||||
|
|
||||||
//instanzio il recordset011
|
//instanzio il recordset011
|
||||||
|
|
||||||
@ -2276,24 +2280,25 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
//TAssoc_array dei clienti per cui ho generato dei documenti
|
//TAssoc_array dei clienti per cui ho generato dei documenti
|
||||||
TAssoc_array cliela;
|
TAssoc_array cliela;
|
||||||
//scorro tutti documenti che la query mi restiuisce
|
//scorro tutti documenti che la query mi restiuisce
|
||||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
|
||||||
|
recset.cursor()->relation()->lfile().set_curr(new TDocumento);
|
||||||
|
for (bool ok = recset.move_first(); ok && pi->add_status(); ok = recset.move_next())
|
||||||
{
|
{
|
||||||
//leggo il codcf
|
TDocumento & doc =(TDocumento &) recset.cursor()->curr();
|
||||||
const long clifo = recset.get(DOC_CODCF).as_int();
|
const TCli_for &cli = cached_clifor('C', doc.get_long(DOC_CODCF));
|
||||||
if (clifo != last_clifo)
|
//preparo la chiave e recupero da CFVEN i dati di quel cliente
|
||||||
|
|
||||||
|
if (cli.codice() != last_clifo)
|
||||||
{
|
{
|
||||||
key.format("C|%ld", clifo);
|
key.format("C|%ld", cli.codice());
|
||||||
TString str;
|
TString str;
|
||||||
str << TR("Cliente") << ' ' << clifo << ' ' << cache().get(LF_CLIFO, key, CLI_RAGSOC);
|
str << TR("Cliente") << ' ' << cli.codice() << ' ' << cache().get(LF_CLIFO, key, CLI_RAGSOC);
|
||||||
pi->set_text(str);
|
pi->set_text(str);
|
||||||
last_clifo=clifo;
|
last_clifo = cli.codice();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pi->add_status())
|
|
||||||
break;
|
|
||||||
|
|
||||||
//se non è l'ultimo cliente, allora:
|
//se non è l'ultimo cliente, allora:
|
||||||
if (clifo != lastcli)
|
if (cli.codice() != lastcli)
|
||||||
{
|
{
|
||||||
//se effettivamente devo elaborare delle bolle per questo cliente, allora:
|
//se effettivamente devo elaborare delle bolle per questo cliente, allora:
|
||||||
if (docsin.items() > 0)
|
if (docsin.items() > 0)
|
||||||
@ -2339,24 +2344,19 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
docsin.rewrite();
|
docsin.rewrite();
|
||||||
docsin.destroy(-1);
|
docsin.destroy(-1);
|
||||||
}
|
}
|
||||||
lastcli = clifo;
|
lastcli = cli.codice();
|
||||||
}
|
}
|
||||||
|
|
||||||
//preparo la chiave e recupero da CFVEN i dati di quel cliente
|
|
||||||
key.format("C|%ld", clifo);
|
|
||||||
const TRectype& clienti = cache().get(LF_CFVEN,key);
|
|
||||||
const TRectype& docrec = recset.cursor()->curr();
|
|
||||||
const TRectype& clirec = cache().get(LF_CLIFO,key);
|
|
||||||
|
|
||||||
//se il documento che sto analizzando è corretto, allora:
|
//se il documento che sto analizzando è corretto, allora:
|
||||||
bool cliok = elab.is_document_ok(docrec);
|
bool cliok = elab.is_document_ok(doc);
|
||||||
|
|
||||||
if (cliok)
|
if (cliok)
|
||||||
{
|
{
|
||||||
//se il codice di zona è pieno, allora:
|
//se il codice di zona è pieno, allora:
|
||||||
if (mskzona.full())
|
if (mskzona.full())
|
||||||
{
|
{
|
||||||
//leggo il codice di zona standard di quel cliente e lo confronto con quello della maschera (V o F)
|
//leggo il codice di zona standard di quel cliente e lo confronto con quello della maschera (V o F)
|
||||||
const TString& codzona = clienti.get(CFV_CODZONA);
|
const TString& codzona = cli.vendite().get(CFV_CODZONA);
|
||||||
cliok = (codzona == mskzona);
|
cliok = (codzona == mskzona);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2364,15 +2364,16 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
if (cliok && mskcat.full())
|
if (cliok && mskcat.full())
|
||||||
{
|
{
|
||||||
//leggo il codice categoria economica standard di quel cliente e lo confronto con quello della maschera (V o F)
|
//leggo il codice categoria economica standard di quel cliente e lo confronto con quello della maschera (V o F)
|
||||||
const TString& codcat = clienti.get(CFV_CODCATC);
|
const TString& codcat = cli.vendite().get(CFV_CODCATC);
|
||||||
cliok = (codcat == mskcat);
|
cliok = (codcat == mskcat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (!_solototali && elab.is_document_compatible(docrec) && docrec.get(DOC_STATO) < stato_min)
|
if (!_solototali && elab.is_document_compatible(doc) && doc.get(DOC_STATO) < stato_min)
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << "Cli. " << clifo << ' ' << clirec.get(CLI_RICALT) << " Bolla n. " << docrec.get(DOC_NDOC) << " del " << docrec.get(DOC_DATADOC) << " in stato " << docrec.get(DOC_STATO);
|
|
||||||
|
msg << "Cli. " << cli.codice() << ' ' << cli.get(CLI_RICALT) << " Bolla n. " << doc.get(DOC_NDOC) << " del " << doc.get(DOC_DATADOC) << " in stato " << doc.get(DOC_STATO);
|
||||||
log(msg);
|
log(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2380,33 +2381,34 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
if (cliok)
|
if (cliok)
|
||||||
{
|
{
|
||||||
//cerco sul contratto qual'è il periodo di fatturazione di quel cliente
|
//cerco sul contratto qual'è il periodo di fatturazione di quel cliente
|
||||||
indsped = recset.get(DOC_CODINDSP).as_int();
|
indsped = doc.get_int(DOC_CODINDSP);
|
||||||
TLaundry_contract contr(clifo, indsped, datafat);
|
|
||||||
|
TLaundry_contract contr(cli.codice(), indsped, datafat);
|
||||||
|
|
||||||
if(!contr.ok())
|
if(!contr.ok())
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << TR("Non ci sono contratti in essere per il cliente ") << clifo << " " << clirec.get(CLI_RICALT) << TR(" in data ") << datafat.string();
|
|
||||||
|
msg << TR("Non ci sono contratti in essere per il cliente ") << cli.codice() << " " << cli.get(CLI_RICALT) << TR(" in data ") << datafat.string();
|
||||||
log(msg);
|
log(msg);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int contrper = contr.get_int(LVCONDV_PERFAT);
|
const int contrper = contr.get_int(LVCONDV_PERFAT);
|
||||||
|
|
||||||
//se il cliente non è sospeso e se si è nel periodo di fatturazione giusto, aggiungo il documento alla
|
//se il cliente non è sospeso e se si è nel periodo di fatturazione giusto, aggiungo il documento alla
|
||||||
//lista dei documenti da elaborare
|
//lista dei documenti da elaborare
|
||||||
if (!contr.get_bool(LVCONDV_FATTSOSP) && contrper <= period)
|
if (!contr.get_bool(LVCONDV_FATTSOSP) && contrper <= period)
|
||||||
{
|
{
|
||||||
TDocumento * doc = new TDocumento(recset.cursor()->curr());
|
|
||||||
|
|
||||||
// if (aggcli && !_solototali && doc->get(DOC_CODNUM) == num_buoni && doc->tipo().codice() == tipo_buoni)
|
// if (aggcli && !_solototali && doc->get(DOC_CODNUM) == num_buoni && doc->tipo().codice() == tipo_buoni)
|
||||||
if (aggcli && !_solototali)
|
if (aggcli && !_solototali)
|
||||||
{
|
{
|
||||||
bool doc_updated = false;
|
bool doc_updated = false;
|
||||||
// banche
|
// banche
|
||||||
|
|
||||||
|
|
||||||
key.cut(0);
|
key.cut(0);
|
||||||
key.add(clirec.get(CLI_TIPOCF));
|
key.add(cli.get(CLI_TIPOCF));
|
||||||
key.add(clirec.get(CLI_CODCF));
|
key.add(cli.get(CLI_CODCF));
|
||||||
key.add("V");
|
key.add("V");
|
||||||
key.add("1");
|
key.add("1");
|
||||||
|
|
||||||
@ -2417,9 +2419,9 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
|
|
||||||
if (cfban.empty())
|
if (cfban.empty())
|
||||||
{
|
{
|
||||||
abi = clirec.get(CLI_CODABI);
|
abi = cli.get(CLI_CODABI);
|
||||||
cab = clirec.get(CLI_CODCAB);
|
cab = cli.get(CLI_CODCAB);
|
||||||
iban = clirec.get(CLI_IBAN);
|
iban = cli.get(CLI_IBAN);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2435,8 +2437,8 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
doc->put(DOC_IBAN, iban);
|
doc->put(DOC_IBAN, iban);
|
||||||
}
|
}
|
||||||
key.cut(0);
|
key.cut(0);
|
||||||
key.add(clirec.get(CLI_TIPOCF));
|
key.add(cli.get(CLI_TIPOCF));
|
||||||
key.add(clirec.get(CLI_CODCF));
|
key.add(cli.get(CLI_CODCF));
|
||||||
key.add("N");
|
key.add("N");
|
||||||
key.add("1");
|
key.add("1");
|
||||||
|
|
||||||
@ -2445,8 +2447,8 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
|
|
||||||
if (cfbanpr.empty())
|
if (cfbanpr.empty())
|
||||||
{
|
{
|
||||||
abi = clienti.get(CFV_CODABIPR);
|
abi = cli.vendite().get(CFV_CODABIPR);
|
||||||
cab = clienti.get(CFV_CODCABPR);
|
cab = cli.vendite().get(CFV_CODCABPR);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2486,26 +2488,27 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
if (doc_updated)
|
if (doc_updated)
|
||||||
{
|
{
|
||||||
TString msg(" Cli.");
|
TString msg(" Cli.");
|
||||||
msg << clifo << " " << clirec.get(CLI_RICALT) << "Bolla " << docrec.get(DOC_CODNUM) << ' ' << docrec.get(DOC_TIPODOC)
|
|
||||||
<< ' ' << docrec.get(DOC_NDOC) << " del " << docrec.get(DOC_DATADOC) << " aggiornata la testata ";
|
msg << cli.codice() << " " << cli.get(CLI_RICALT) << "Bolla " << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_TIPODOC)
|
||||||
|
<< ' ' << doc.get(DOC_NDOC) << " del " << doc.get(DOC_DATADOC) << " aggiornata la testata ";
|
||||||
log(msg);
|
log(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int r = 1; !_solototali && r <= doc->physical_rows(); r++)
|
for (int r = 1; !_solototali && r <= doc.physical_rows(); r++)
|
||||||
{
|
{
|
||||||
const TRiga_documento& rdoc = (*doc)[r];
|
const TRiga_documento& rdoc = doc[r];
|
||||||
const TCodice_articolo codart = rdoc.get(RDOC_CODARTMAG);
|
const TCodice_articolo codart = rdoc.get(RDOC_CODARTMAG);
|
||||||
|
|
||||||
if (codart.full())
|
if (codart.full())
|
||||||
{
|
{
|
||||||
const TRectype & rcont = contr.row(codart);
|
const TRectype & rcont = contr.row(codart);
|
||||||
const TArticolo_lavanderie& art = cached_article_laundry(codart, 'C', clifo, use_indsp ? indsped : 0);
|
const TArticolo_lavanderie& art = cached_article_laundry(codart, 'C', cli.codice(), use_indsp ? indsped : 0);
|
||||||
//estraggo il record corrispondente su LF_CLIFOGIAC
|
//estraggo il record corrispondente su LF_CLIFOGIAC
|
||||||
const TRecmag_lavanderie& rec = art.find_rec(annoes);
|
const TRecmag_lavanderie& rec = art.find_rec(annoes);
|
||||||
|
|
||||||
TString str;
|
TString str;
|
||||||
str << "Cli." << clifo << ' ' << clirec.get(CLI_RICALT) << " Bolla " << docrec.get(DOC_CODNUM) << ' ' << docrec.get(DOC_TIPODOC)
|
str << "Cli." << cli.codice() << ' ' << cli.get(CLI_RICALT) << " Bolla " << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_TIPODOC)
|
||||||
<< ' ' << docrec.get(DOC_NDOC) << " del " << docrec.get(DOC_DATADOC) << " art." << codart << " - ";
|
<< ' ' << doc.get(DOC_NDOC) << " del " << doc.get(DOC_DATADOC) << " art." << codart << " - ";
|
||||||
|
|
||||||
if (rec.get_real("DOTOD") < ZERO)
|
if (rec.get_real("DOTOD") < ZERO)
|
||||||
{
|
{
|
||||||
@ -2521,15 +2524,11 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool prezzo_nullo = false;
|
bool prezzo_nullo = false;
|
||||||
|
|
||||||
if (prezzo_da_contratto)
|
if (prezzo_da_contratto)
|
||||||
{
|
prezzo_nullo = rcont.get_real(LVRCONDV_PREZZO) == ZERO && contr.get_real(LVCONDV_IMPFIX) == ZERO; // Segnalo prezzo nullo solo se il contratto non è ad importo fisso (07/11/2011)
|
||||||
// Segnalo prezzo nullo solo se il contratto non è ad importo fisso (07/11/2011)
|
|
||||||
prezzo_nullo = rcont.get_real(LVRCONDV_PREZZO).is_zero() && contr.get_real(LVCONDV_IMPFIX).is_zero();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
prezzo_nullo = rdoc.get_real(RDOC_PREZZO) == ZERO; // Prezzo sulla bolla
|
||||||
prezzo_nullo = rdoc.get_real(RDOC_PREZZO).is_zero(); // Prezzo sulla bolla
|
|
||||||
}
|
|
||||||
if (prezzo_nullo)
|
if (prezzo_nullo)
|
||||||
{
|
{
|
||||||
const TString8 causale = rdoc.get(RDOC_CODAGG1);
|
const TString8 causale = rdoc.get(RDOC_CODAGG1);
|
||||||
@ -2547,17 +2546,11 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
docsin.add(doc);
|
docsin.add(doc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
safe_delete(pi); // se ho dei documenti in lista li elaboro e poi svuoto le TList_file
|
||||||
// Forzo l'eliminazione
|
|
||||||
if(pi != NULL)
|
|
||||||
delete pi;
|
|
||||||
|
|
||||||
//se ho dei documenti in lista li elaboro e poi svuoto le TList_file
|
|
||||||
if (docsin.items() != 0)
|
if (docsin.items() != 0)
|
||||||
{
|
{
|
||||||
if (ini_get_bool(CONFIG_DITTA, "lv", "RifTest"))
|
if (ini_get_bool(CONFIG_DITTA, "lv", "RifTest"))
|
||||||
@ -2611,9 +2604,15 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
|
|
||||||
switch (numdocgen)
|
switch (numdocgen)
|
||||||
{
|
{
|
||||||
case 0: str << TR("Non è stata ") << parolasi << TR(" alcuna fattura"); break;
|
case 0:
|
||||||
case 1: str << TR("E' stata ") << parolasi << TR(" una fattura"); break;
|
str << TR("Non è stata ") << parolasi << TR(" alcuna fattura");
|
||||||
default: str << TR("Sono state ") << parolapl << ' ' << numdocgen << TR(" fatture"); break;
|
break;
|
||||||
|
case 1:
|
||||||
|
str << TR("E' stata ") << parolasi << TR(" una fattura");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
str << TR("Sono state ") << parolapl << ' ' << numdocgen << TR(" fatture");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (numdocgen <= 0)
|
if (numdocgen <= 0)
|
||||||
warning_box(str);
|
warning_box(str);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user