Corretta gestione quantità ritirata/consegnata in eccesso
git-svn-id: svn://10.65.10.50/branches/R_10_00@23140 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
07f592bd22
commit
3e4fc7888e
@ -303,7 +303,7 @@ bool TGenera_documenti_app::crea_documento_ritiro(const TISAM_recordset& ritiro,
|
|||||||
doc.put("CODITI", coditi); //codice itinerario
|
doc.put("CODITI", coditi); //codice itinerario
|
||||||
|
|
||||||
//calcola tutte le quantità riportate sui documenti di ritiro, sui documenti di anticipo
|
//calcola tutte le quantità riportate sui documenti di ritiro, sui documenti di anticipo
|
||||||
int numerodoc = scansione_ritiri_anticipi(codcli, dtcons, 'R', doc);
|
const int numerodoc = scansione_ritiri_anticipi(codcli, dtcons, 'R', doc);
|
||||||
scansione_ritiri_anticipi(codcli, dtcons, 'A', doc);
|
scansione_ritiri_anticipi(codcli, dtcons, 'A', doc);
|
||||||
|
|
||||||
int err = 1;
|
int err = 1;
|
||||||
@ -597,7 +597,6 @@ bool TGenera_documenti_app::crea_documento_plan(const TISAM_recordset& plan, TLo
|
|||||||
void TGenera_documenti_app::crea_riga(TToken_string& chiave, const char modpas, const int tplis,
|
void TGenera_documenti_app::crea_riga(TToken_string& chiave, const char modpas, const int tplis,
|
||||||
const bool tmp, const bool prinbo, TDocumento& doc, TLog_report& rep)
|
const bool tmp, const bool prinbo, TDocumento& doc, TLog_report& rep)
|
||||||
{
|
{
|
||||||
const int perarr = ini_get_int(CONFIG_DITTA, "lv", "Perarr");
|
|
||||||
//creo la nuova riga
|
//creo la nuova riga
|
||||||
TString4 tiporiga;
|
TString4 tiporiga;
|
||||||
switch (_buono)
|
switch (_buono)
|
||||||
@ -609,7 +608,7 @@ void TGenera_documenti_app::crea_riga(TToken_string& chiave, const char modpas,
|
|||||||
|
|
||||||
const long codcli = doc.get_long(DOC_CODCF);
|
const long codcli = doc.get_long(DOC_CODCF);
|
||||||
const long codcont = doc.get_long(DOC_CODCONT);
|
const long codcont = doc.get_long(DOC_CODCONT);
|
||||||
const TString80 codart = chiave.get(0);
|
const TCodice_articolo codart = chiave.get(0);
|
||||||
const TString4 causale = chiave.get(1);
|
const TString4 causale = chiave.get(1);
|
||||||
|
|
||||||
//calcolo della quantità che va sulla bolla
|
//calcolo della quantità che va sulla bolla
|
||||||
@ -633,7 +632,7 @@ void TGenera_documenti_app::crea_riga(TToken_string& chiave, const char modpas,
|
|||||||
//instanzio una cache sulla tabella del magazzino
|
//instanzio una cache sulla tabella del magazzino
|
||||||
const TRectype& anamag = cache().get(LF_ANAMAG,codart);
|
const TRectype& anamag = cache().get(LF_ANAMAG,codart);
|
||||||
//recupero i dati di interesse dall'anagrafica di magazzino, ma devo evitare divisioni per 0
|
//recupero i dati di interesse dall'anagrafica di magazzino, ma devo evitare divisioni per 0
|
||||||
const real ppconf = anamag.get_real(ANAMAG_PPCONF) != 0 ? anamag.get_real(ANAMAG_PPCONF) : 1;
|
const long ppconf = anamag.get_real(ANAMAG_PPCONF) != 0 ? anamag.get_int(ANAMAG_PPCONF) : 1;
|
||||||
TString descrart;
|
TString descrart;
|
||||||
descrart << anamag.get(ANAMAG_DESCR) << anamag.get(ANAMAG_DESCRAGG);
|
descrart << anamag.get(ANAMAG_DESCR) << anamag.get(ANAMAG_DESCRAGG);
|
||||||
|
|
||||||
@ -753,13 +752,14 @@ void TGenera_documenti_app::crea_riga(TToken_string& chiave, const char modpas,
|
|||||||
if (quantita_arr > ZERO && arrot)
|
if (quantita_arr > ZERO && arrot)
|
||||||
{
|
{
|
||||||
//calcolo di quanti pezzi sforo
|
//calcolo di quanti pezzi sforo
|
||||||
long arr = quantita_arr.integer() % ppconf.integer();
|
long arr = quantita_arr.integer() % ppconf;
|
||||||
//se sforo (arr > 0) allora calcolo quanti pezzi in più gli devo dare e aggiorno la quantità
|
//se sforo (arr > 0) allora calcolo quanti pezzi in più gli devo dare e aggiorno la quantità
|
||||||
if (arr > 0)
|
if (arr > 0)
|
||||||
{
|
{
|
||||||
if (arr > ppconf.integer() * perarr / 100) //arr <= ppconf*perarr/100 -> formula calcolo congualgio di Tassan
|
const int perarr = ini_get_int(CONFIG_DITTA, "lv", "Perarr");
|
||||||
|
if (arr > ppconf * perarr / 100) //arr <= ppconf*perarr/100 -> formula calcolo conguaglio di Tassan
|
||||||
{
|
{
|
||||||
arr = ppconf.integer() - arr;
|
arr = ppconf - arr;
|
||||||
quantita_arr += arr;
|
quantita_arr += arr;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -890,8 +890,8 @@ void TGenera_documenti_app::crea_riga(TToken_string& chiave, const char modpas,
|
|||||||
rdoc.put(RDOC_UMQTA, um);
|
rdoc.put(RDOC_UMQTA, um);
|
||||||
|
|
||||||
//scrivo il magazzino
|
//scrivo il magazzino
|
||||||
TCausale_magazzino rit(cau.causale_ritiro());
|
const TCausale_magazzino rit(cau.causale_ritiro());
|
||||||
TCausale_magazzino con(cau.causale_consegna());
|
const TCausale_magazzino con(cau.causale_consegna());
|
||||||
|
|
||||||
TString8 magazzino;
|
TString8 magazzino;
|
||||||
TString8 magazzinoc;
|
TString8 magazzinoc;
|
||||||
@ -931,18 +931,15 @@ bool TGenera_documenti_app::numerazione_ddt(TString& codnum, TString& tpdoc, TSt
|
|||||||
switch (_buono)
|
switch (_buono)
|
||||||
{
|
{
|
||||||
case 'P':
|
case 'P':
|
||||||
{
|
|
||||||
codnum = _configlv->get("NUM_PRE(0)");
|
codnum = _configlv->get("NUM_PRE(0)");
|
||||||
tpdoc = _configlv->get("TIPODOC_PRE(0)");
|
tpdoc = _configlv->get("TIPODOC_PRE(0)");
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
{
|
|
||||||
codnum = _configlv->get("NUM_GEN");
|
codnum = _configlv->get("NUM_GEN");
|
||||||
tpdoc = _configlv->get("TIPODOC_GEN");
|
tpdoc = _configlv->get("TIPODOC_GEN");
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default: break;
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//instanzio una cache sulla tabella dei tipi documento (cerco lo stato iniziale)
|
//instanzio una cache sulla tabella dei tipi documento (cerco lo stato iniziale)
|
||||||
@ -1055,12 +1052,12 @@ int TGenera_documenti_app::scansione_ritiri_anticipi(const long codcli, const TD
|
|||||||
void TGenera_documenti_app::calcolo_quantita(const TDocumento& doc, const char ritoant)
|
void TGenera_documenti_app::calcolo_quantita(const TDocumento& doc, const char ritoant)
|
||||||
{
|
{
|
||||||
//scorro le righe documento
|
//scorro le righe documento
|
||||||
for (long i = 1; i <= doc.rows(); i++)
|
FOR_EACH_PHYSICAL_RDOC(doc, i, prdoc)
|
||||||
{
|
{
|
||||||
//instanzio la riga corrente
|
//instanzio la riga corrente
|
||||||
const TRiga_documento& rdoc = doc[i];
|
const TRiga_documento& rdoc = *prdoc;
|
||||||
//estraggo i dati di interesse
|
//estraggo i dati di interesse
|
||||||
const TString80 codart = rdoc.get(RDOC_CODARTMAG);
|
const TCodice_articolo codart = rdoc.get(RDOC_CODARTMAG);
|
||||||
const TString4 codcau = rdoc.get(RDOC_CODAGG1);
|
const TString4 codcau = rdoc.get(RDOC_CODAGG1);
|
||||||
TToken_string key; key.add(codart); key.add(codcau);
|
TToken_string key; key.add(codart); key.add(codcau);
|
||||||
const real qtardoc = rdoc.get_real(RDOC_QTAGG1);
|
const real qtardoc = rdoc.get_real(RDOC_QTAGG1);
|
||||||
@ -1140,7 +1137,7 @@ bool TGenera_documenti_app::transfer()
|
|||||||
|
|
||||||
long codcli = _msk->get_long(F_CODCF);
|
long codcli = _msk->get_long(F_CODCF);
|
||||||
|
|
||||||
TLog_report rep("Riepilogo associazioni");
|
TLog_report rep(TR("Riepilogo associazioni"));
|
||||||
rep.kill_duplicates(true);
|
rep.kill_duplicates(true);
|
||||||
|
|
||||||
//preparo un recordset che contiene tutti planning per cui voglio creare i documenti relativi
|
//preparo un recordset che contiene tutti planning per cui voglio creare i documenti relativi
|
||||||
@ -1259,14 +1256,14 @@ bool TGenera_documenti_app::transfer()
|
|||||||
outf << "[Transaction]" << endl; // Transaction header
|
outf << "[Transaction]" << endl; // Transaction header
|
||||||
outf << "Action=S" << endl; // 'S'tampa o 'A'nteprima
|
outf << "Action=S" << endl; // 'S'tampa o 'A'nteprima
|
||||||
outf << "Mode=D" << endl; // Definitive (always?)
|
outf << "Mode=D" << endl; // Definitive (always?)
|
||||||
outf << "NoPrintDlg=X" << endl; // Dont' prompt the user with the print dialog
|
outf << "NoPrintDlg=X" << endl; // Don't prompt the user with the print dialog
|
||||||
outf << endl;
|
outf << endl;
|
||||||
outf << "[33]" << endl; // Transaction body
|
outf << "[33]" << endl; // Transaction body
|
||||||
long nx = 0; // Document counter
|
long nx = 0; // Document counter
|
||||||
|
|
||||||
FOR_EACH_ASSOC_OBJECT(documenti, obj, r, riga)
|
FOR_EACH_ASSOC_OBJECT(documenti, obj, r, riga)
|
||||||
{
|
{
|
||||||
TDoc_key& kdoc = *(TDoc_key*)riga;
|
const TDoc_key& kdoc = *(TDoc_key*)riga;
|
||||||
outf << "Doc(" << (nx++) << ")=";
|
outf << "Doc(" << (nx++) << ")=";
|
||||||
outf << chiavedoc << kdoc.ndoc() << endl;
|
outf << chiavedoc << kdoc.ndoc() << endl;
|
||||||
}
|
}
|
||||||
@ -1279,20 +1276,22 @@ bool TGenera_documenti_app::transfer()
|
|||||||
TExternal_app app(cmdline);
|
TExternal_app app(cmdline);
|
||||||
app.run();
|
app.run();
|
||||||
}
|
}
|
||||||
|
/* Il 6-11-2015 ci siamo accorti che lv1 -3 non esiste (e nella 10.0 non lo chiamava nemmeno)
|
||||||
{
|
{
|
||||||
TString cmdline; cmdline << "lv1 -3 -i" << tmp;
|
TString cmdline; cmdline << "lv1 -3 -i" << tmp;
|
||||||
TExternal_app app(cmdline);
|
TExternal_app app(cmdline);
|
||||||
app.run();
|
app.run();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
tmp.fremove();
|
tmp.fremove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (documenti.items() == 0)
|
if (documenti.items() == 0)
|
||||||
warning_box(TR("Non è stato possibile generare nessun documento; probabilmente i documenti richiesti esistono già"));
|
warning_box(TR("Non è stato possibile generare alcun documento:\nprobabilmente i documenti richiesti esistono già."));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (adata < TODAY && _msk->get_int(F_TPGEN) == 0)
|
if (adata < TDate(TODAY) && _msk->get_int(F_TPGEN) == 0)
|
||||||
warning_box(TR("Non è stato possibile generare documenti con data prevista consegna nel passato"));
|
warning_box(TR("Non è stato possibile generare documenti con data prevista consegna nel passato"));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -530,7 +530,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
|||||||
bool elcons = contr.get_bool(LVCONDV_ELCONS);
|
bool elcons = contr.get_bool(LVCONDV_ELCONS);
|
||||||
bool rifbol = contr.get_bool(LVCONDV_RIFBOL);
|
bool rifbol = contr.get_bool(LVCONDV_RIFBOL);
|
||||||
|
|
||||||
const bool splitpay = doc.clifor().get_bool(CLI_SPLITPAY);
|
const bool splitpay = doc.anno() > 2015 && doc.clifor().get_bool(CLI_SPLITPAY);
|
||||||
real consvconv;
|
real consvconv;
|
||||||
real impvconv;
|
real impvconv;
|
||||||
TAssoc_array nolo_computed;
|
TAssoc_array nolo_computed;
|
||||||
@ -602,8 +602,6 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
|||||||
const bool ragart = contr.get_bool(LVCONDV_RAGART); // leggo il flag di testata raggruppa su unico articolo
|
const bool ragart = contr.get_bool(LVCONDV_RAGART); // leggo il flag di testata raggruppa su unico articolo
|
||||||
const int tipocan = contr.get_int(LVCONDV_TIPOCAN); // leggo il tipo canone
|
const int tipocan = contr.get_int(LVCONDV_TIPOCAN); // leggo il tipo canone
|
||||||
const real redditivita = contr.get_real(LVCONDV_REDDI);
|
const real redditivita = contr.get_real(LVCONDV_REDDI);
|
||||||
|
|
||||||
|
|
||||||
if (ragart)
|
if (ragart)
|
||||||
{
|
{
|
||||||
real totmerc;
|
real totmerc;
|
||||||
@ -1760,9 +1758,9 @@ void TFatturazione_lav_app::log(const char* msg, int sev)
|
|||||||
//GENERA_BOLLE_NOLO: metodo che genera le fatture di solo nolo per quei clienti a cui non è stato consegnato niente
|
//GENERA_BOLLE_NOLO: metodo che genera le fatture di solo nolo per quei clienti a cui non è stato consegnato niente
|
||||||
void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazione_lavanderie& elab, int& numdocgen, real& totimp, real& imposta, real& totdoc, real& spese)
|
void TFatturazione_lav_app::genera_bolle_nolo(TAssoc_array& cliela, TFatturazione_lavanderie& elab, int& numdocgen, real& totimp, real& imposta, real& totdoc, real& spese)
|
||||||
{
|
{
|
||||||
TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN");
|
const TString4 codnum = ini_get_string(CONFIG_DITTA, "lv", "NUM_GEN");
|
||||||
TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN");
|
const TString4 tipodoc = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_GEN");
|
||||||
char stato = cache().get("%TIP", tipodoc, "S2").mid(1,1)[0];
|
const char stato = cache().get("%TIP", tipodoc, "S2").mid(1,1)[0];
|
||||||
|
|
||||||
//preparo la query sui contratti
|
//preparo la query sui contratti
|
||||||
TString str;
|
TString str;
|
||||||
@ -2044,8 +2042,8 @@ bool TFatturazione_lav_app::copy_file(const TFilename& src, const TFilename& dst
|
|||||||
{
|
{
|
||||||
// Crea la cartella di destinazione se necessario
|
// Crea la cartella di destinazione se necessario
|
||||||
const char* dstdir = dst.path();
|
const char* dstdir = dst.path();
|
||||||
if (*dstdir && !xvt_fsys_mkdir(dstdir))
|
if (*dstdir && !xvt_fsys_dir_exists(dstdir) && !xvt_fsys_mkdir(dstdir))
|
||||||
return error_box(FR("Impossibile creare la cartella %s"), dst.path());
|
return cantwrite_box(dstdir);
|
||||||
|
|
||||||
// Copia veramente il file
|
// Copia veramente il file
|
||||||
return ::fcopy(src, dst);
|
return ::fcopy(src, dst);
|
||||||
@ -2346,6 +2344,7 @@ void TFatturazione_lav_app::main_loop()
|
|||||||
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 ") << clifo << " " << clirec.get(CLI_RICALT) << TR(" in data ") << datafat.string();
|
||||||
log(msg);
|
log(msg);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
const int contrper = contr.get_int(LVCONDV_PERFAT);
|
const int contrper = contr.get_int(LVCONDV_PERFAT);
|
||||||
|
|
||||||
|
@ -30,7 +30,6 @@ NUMBER F_DACODCF 6
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Dal Cliente "
|
PROMPT 2 2 "Dal Cliente "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
KEY 1
|
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF F_DACODCF
|
INPUT CODCF F_DACODCF
|
||||||
@ -46,7 +45,6 @@ END
|
|||||||
STRING F_DARAGSOC 50 30
|
STRING F_DARAGSOC 50 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 2 ""
|
PROMPT 32 2 ""
|
||||||
KEY 1
|
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT RAGSOC F_DARAGSOC
|
INPUT RAGSOC F_DARAGSOC
|
||||||
@ -62,13 +60,10 @@ NUMBER F_ACODCF 6
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Al Cliente "
|
PROMPT 2 3 "Al Cliente "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
KEY 1
|
COPY USE F_DACODCF
|
||||||
USE LF_CLIFO
|
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF F_ACODCF
|
INPUT CODCF F_ACODCF
|
||||||
DISPLAY "Codice" CODCF
|
COPY DISPLAY F_DACODCF
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
|
||||||
DISPLAY "Partita IVA@11" PAIV
|
|
||||||
OUTPUT F_ACODCF CODCF
|
OUTPUT F_ACODCF CODCF
|
||||||
OUTPUT F_ARAGSOC RAGSOC
|
OUTPUT F_ARAGSOC RAGSOC
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
@ -78,13 +73,10 @@ END
|
|||||||
STRING F_ARAGSOC 50 30
|
STRING F_ARAGSOC 50 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 3 ""
|
PROMPT 32 3 ""
|
||||||
KEY 1
|
COPY USE F_DARAGSOC
|
||||||
USE LF_CLIFO KEY 2
|
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT RAGSOC F_ARAGSOC
|
INPUT RAGSOC F_ARAGSOC
|
||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
COPY DISPLAY F_DARAGSOC
|
||||||
DISPLAY "Partita IVA@11" PAIV
|
|
||||||
DISPLAY "Codice" CODCF
|
|
||||||
COPY OUTPUT F_ACODCF
|
COPY OUTPUT F_ACODCF
|
||||||
CHECKTYPE SEARCH
|
CHECKTYPE SEARCH
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
|
@ -664,8 +664,7 @@ bool TAcquisizione_lavanderie_app::elabora_file(const TString& file, TLog_report
|
|||||||
|
|
||||||
TDate datadoc;
|
TDate datadoc;
|
||||||
long codcf = 0;
|
long codcf = 0;
|
||||||
TString80 codcf_str;
|
TCodice_articolo codart;
|
||||||
TString80 codart;
|
|
||||||
long qta;
|
long qta;
|
||||||
long rotti;
|
long rotti;
|
||||||
long ndoc = 0;
|
long ndoc = 0;
|
||||||
@ -689,7 +688,7 @@ bool TAcquisizione_lavanderie_app::elabora_file(const TString& file, TLog_report
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
codcf_str = riga.mid(8,6); codcf = atol(codcf_str);
|
const TString& codcf_str = riga.mid(8,6); codcf = atol(codcf_str);
|
||||||
codart = riga.mid(14,8);
|
codart = riga.mid(14,8);
|
||||||
qta = atol(riga.mid(22,6));
|
qta = atol(riga.mid(22,6));
|
||||||
rotti = atol(riga.mid(28,6));
|
rotti = atol(riga.mid(28,6));
|
||||||
@ -705,7 +704,7 @@ bool TAcquisizione_lavanderie_app::elabora_file(const TString& file, TLog_report
|
|||||||
const int d = atoi(riga.mid(6,2));
|
const int d = atoi(riga.mid(6,2));
|
||||||
if (d > 0 && d <= 31 && m > 0 && m <= 12 && y > 2000)
|
if (d > 0 && d <= 31 && m > 0 && m <= 12 && y > 2000)
|
||||||
{
|
{
|
||||||
codcf_str = riga.mid(28,20); codcf = atol(codcf_str);
|
const TString& codcf_str = riga.mid(28,20); codcf = atol(codcf_str);
|
||||||
datadoc = TDate(d, m, y);
|
datadoc = TDate(d, m, y);
|
||||||
codart = riga.mid(8,20);
|
codart = riga.mid(8,20);
|
||||||
qta = atoi(riga.mid(48,11));
|
qta = atoi(riga.mid(48,11));
|
||||||
@ -1040,9 +1039,7 @@ bool TAcquisizione_lavanderie_app::transfer()
|
|||||||
//tutti, altrimenti elaboro esattamente il file che è scritto sullo sheet
|
//tutti, altrimenti elaboro esattamente il file che è scritto sullo sheet
|
||||||
bool elaborato = false;
|
bool elaborato = false;
|
||||||
bool esiste = false;
|
bool esiste = false;
|
||||||
FOR_EACH_SHEET_ROW(sheet, r1, row1)
|
FOR_EACH_SHEET_ROW(sheet, r1, row1) if (!row1->empty_items())
|
||||||
{
|
|
||||||
if(row1->full())
|
|
||||||
{
|
{
|
||||||
if (row1->find('/') >= 0 || row1->find('\\') >= 0)
|
if (row1->find('/') >= 0 || row1->find('\\') >= 0)
|
||||||
file = *row1;
|
file = *row1;
|
||||||
@ -1077,7 +1074,6 @@ bool TAcquisizione_lavanderie_app::transfer()
|
|||||||
if (!esiste)
|
if (!esiste)
|
||||||
warning_box(TR("ATTENZIONE: non è stato trovato nessun file da elaborare"));
|
warning_box(TR("ATTENZIONE: non è stato trovato nessun file da elaborare"));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (elaborato)
|
if (elaborato)
|
||||||
{
|
{
|
||||||
@ -1151,9 +1147,9 @@ bool TAcquisizione_lavanderie_app::transfer()
|
|||||||
|
|
||||||
FOR_EACH_ARRAY_ROW(lista_file, r2, row2)
|
FOR_EACH_ARRAY_ROW(lista_file, r2, row2)
|
||||||
{
|
{
|
||||||
TFilename strname(*row2);
|
const TFilename strname(*row2);
|
||||||
if (strname.exist())
|
if (strname.exist())
|
||||||
sposta_file(*row2);
|
sposta_file(strname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (file.exist())
|
else if (file.exist())
|
||||||
@ -1192,5 +1188,5 @@ int lv2600(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
TAcquisizione_lavanderie_app a;
|
TAcquisizione_lavanderie_app a;
|
||||||
a.run (argc, argv, TR("Acquisizione da contapezzi"));
|
a.run (argc, argv, TR("Acquisizione da contapezzi"));
|
||||||
return TRUE;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -188,8 +188,9 @@ void TRiepBolle_app::elabora(const TMask& mask)const
|
|||||||
TRelation rel(LF_CLIFO);
|
TRelation rel(LF_CLIFO);
|
||||||
TCursor cli(&rel, "", 1, &from, &to);
|
TCursor cli(&rel, "", 1, &from, &to);
|
||||||
const long ncli = cli.items();
|
const long ncli = cli.items();
|
||||||
|
if (ncli > 0)
|
||||||
|
{
|
||||||
TProgress_monitor pi_cli(ncli, TR("Estrazione clienti"));
|
TProgress_monitor pi_cli(ncli, TR("Estrazione clienti"));
|
||||||
|
|
||||||
for (cli = 0L; cli.pos() < ncli && pi_cli.add_status(); ++cli)
|
for (cli = 0L; cli.pos() < ncli && pi_cli.add_status(); ++cli)
|
||||||
{
|
{
|
||||||
const long codcli = cli.curr().get_long(CLI_CODCF);
|
const long codcli = cli.curr().get_long(CLI_CODCF);
|
||||||
@ -319,6 +320,7 @@ void TRiepBolle_app::elabora(const TMask& mask)const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (b.pages() > 0)
|
if (b.pages() > 0)
|
||||||
b.print_or_preview(); // Stampa effettivamente
|
b.print_or_preview(); // Stampa effettivamente
|
||||||
else
|
else
|
||||||
|
@ -673,7 +673,7 @@ bool TGestione_buoni_msk::pre_ritirato_handler(TMask_field& f, KEY k)
|
|||||||
real dotod = magcli.get_long(CLIFOGIAC_DOTOD); //segnalazione Tassan mail 05/04/2011 ore 17:08
|
real dotod = magcli.get_long(CLIFOGIAC_DOTOD); //segnalazione Tassan mail 05/04/2011 ore 17:08
|
||||||
|
|
||||||
if (ritirato > dotod && f.dirty() && dotin > 0 && dotod > 0) //accordi da Tassan in data 06/04/2011
|
if (ritirato > dotod && f.dirty() && dotin > 0 && dotod > 0) //accordi da Tassan in data 06/04/2011
|
||||||
warning_box(TR("ATTENZIONE: stai ritirando un quantitativo maggiore della dotazione!"));
|
warning_box(TR("ATTENZIONE: si sta ritirando un quantitativo maggiore della dotazione!"));
|
||||||
|
|
||||||
|
|
||||||
TDocumento& doc = dmsk.doc();
|
TDocumento& doc = dmsk.doc();
|
||||||
@ -900,7 +900,15 @@ bool TGestione_buoni_msk::pre_codart_handler(TMask_field& f, KEY k)
|
|||||||
|
|
||||||
//controllo se si vuole aggiungere un eventuale nuovo articolo al contratto
|
//controllo se si vuole aggiungere un eventuale nuovo articolo al contratto
|
||||||
if (cont.get_int(LVCONDV_CODCONT) <= 0)
|
if (cont.get_int(LVCONDV_CODCONT) <= 0)
|
||||||
warning_box(TR("ATTENZIONE: stai generando una bolla per un cliente che non ha nessun contratto in essere"));
|
{
|
||||||
|
static clock_t _next_time = 0;
|
||||||
|
const clock_t curr_time = clock();
|
||||||
|
if (curr_time > _next_time)
|
||||||
|
{
|
||||||
|
xvt_dm_popup_warning(TR("ATTENZIONE: il cliente non ha nessun contratto in essere"));
|
||||||
|
_next_time = curr_time + 5 * CLOCKS_PER_SEC;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (k == K_ENTER && f.dirty() && msk.get(FR_CODARTMAG).full() && rcont.empty() &&
|
else if (k == K_ENTER && f.dirty() && msk.get(FR_CODARTMAG).full() && rcont.empty() &&
|
||||||
yesno_box(TR("L'articolo in esame non fa parte della dotazione standard di questo cliente."
|
yesno_box(TR("L'articolo in esame non fa parte della dotazione standard di questo cliente."
|
||||||
"Si desidera aggiungerla ai contratti?")))
|
"Si desidera aggiungerla ai contratti?")))
|
||||||
|
@ -1009,13 +1009,16 @@ const TString& TBuono_prelievo_row::codart() const
|
|||||||
|
|
||||||
//DESART: metodo che restituisce la descrizione dell'articolo
|
//DESART: metodo che restituisce la descrizione dell'articolo
|
||||||
const TString& TBuono_prelievo_row::desart() const
|
const TString& TBuono_prelievo_row::desart() const
|
||||||
|
{
|
||||||
|
if (_rdoc.get_bool(RDOC_DESCLUNGA))
|
||||||
{
|
{
|
||||||
TString& str = get_tmp_string();
|
TString& str = get_tmp_string();
|
||||||
str = _rdoc.get(RDOC_DESCR);
|
str = _rdoc.get(RDOC_DESCR);
|
||||||
if (_rdoc.get_bool(RDOC_DESCLUNGA))
|
|
||||||
str << _rdoc.get(RDOC_DESCEST);
|
str << _rdoc.get(RDOC_DESCEST);
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
return _rdoc.get(RDOC_DESCR);
|
||||||
|
}
|
||||||
|
|
||||||
//CAUSALE: metodo che restituisce il codice della causale della riga
|
//CAUSALE: metodo che restituisce il codice della causale della riga
|
||||||
const TString& TBuono_prelievo_row::causale() const
|
const TString& TBuono_prelievo_row::causale() const
|
||||||
|
@ -132,7 +132,7 @@ Item_07 = "Buoni di Consegna", "lv3 -0 -filtI1=1 -defNUM_GEN,TIPODOC_GEN,lv", "F
|
|||||||
Item_08 = "Fatture", "ve0 -1 -filtI1=2 -defNUM_FAT,TIPODOC_FAT,lv", "F"
|
Item_08 = "Fatture", "ve0 -1 -filtI1=2 -defNUM_FAT,TIPODOC_FAT,lv", "F"
|
||||||
Item_09 = "Ordini Fornitori", "ve0 -1 -filtI1=3 -defNUM_ORF,TIPODOC_ORF,lv", "F"
|
Item_09 = "Ordini Fornitori", "ve0 -1 -filtI1=3 -defNUM_ORF,TIPODOC_ORF,lv", "F"
|
||||||
Item_10 = "Ordini Clienti", "ve0 -1 -filtI1=3 -defNUM_ORC,TIPODOC_ORC,lv", "F"
|
Item_10 = "Ordini Clienti", "ve0 -1 -filtI1=3 -defNUM_ORC,TIPODOC_ORC,lv", "F"
|
||||||
Item_11 = "Fatturazione definitva", "lv2 -4 -defFatDif", "F"
|
Item_11 = "Fatturazione definitiva", "lv2 -4 -defFatDif", "F"
|
||||||
Item_12 = "Fatturazione di prova", "lv2 -4 -defFatPro", "F"
|
Item_12 = "Fatturazione di prova", "lv2 -4 -defFatPro", "F"
|
||||||
Item_13 = "Evasione Buoni di Prelievo manuale", "lv3 -1 M", "F"
|
Item_13 = "Evasione Buoni di Prelievo manuale", "lv3 -1 M", "F"
|
||||||
Item_14 = "Evasione Buoni di Prelievo barcode", "lv3 -1 B", "F"
|
Item_14 = "Evasione Buoni di Prelievo barcode", "lv3 -1 B", "F"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user