Patch level : 2.2
Files correlati : Ricompilazione Demo : [ ] Commento : Gestione data di attivazione del saldaconto git-svn-id: svn://10.65.10.50/trunk@13418 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
e18a8a03b5
commit
ae2555b539
@ -821,6 +821,7 @@ bool TReport_doc_app::print_loop(const TString& query)
|
|||||||
{
|
{
|
||||||
TString msg; msg << TR("Report inesistente") << " : " << codprof;
|
TString msg; msg << TR("Report inesistente") << " : " << codprof;
|
||||||
statbar_set_title(TASK_WIN, msg);
|
statbar_set_title(TASK_WIN, msg);
|
||||||
|
beep(2);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
237
ve/ve1400.cpp
237
ve/ve1400.cpp
@ -1,246 +1,29 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
|
||||||
#include <defmask.h>
|
|
||||||
#include <execp.h>
|
|
||||||
#include <reprint.h>
|
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include "velib.h"
|
|
||||||
#include "vereplib.h"
|
#include "vereplib.h"
|
||||||
|
|
||||||
#include "../ba/ba8400.h"
|
#include "../ba/ba8400.h"
|
||||||
|
#include "../ba/ba8500.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Utility
|
// TPeterParker_app
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static bool cod2app(const char* tok, TString& app)
|
class TPeterParker_app : public TKlarkKent_app
|
||||||
{
|
|
||||||
if (isalpha(tok[0]) && isalpha(tok[1]) && atoi(tok+2) > 1000)
|
|
||||||
{
|
|
||||||
app.strncpy(tok, 3);
|
|
||||||
app << " -" << char(tok[3]-1);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool get_xml_attr(const TString& line, const char* attr, TString& value)
|
|
||||||
{
|
|
||||||
TString str; str << ' ' << attr << "=\"";
|
|
||||||
const int pos = line.find(str);
|
|
||||||
if (pos >= 0)
|
|
||||||
{
|
|
||||||
const int apicia = line.find('"', pos)+1;
|
|
||||||
const int apicic = line.find('"', apicia);
|
|
||||||
if (apicic > apicia)
|
|
||||||
{
|
|
||||||
value = line.sub(apicia, apicic);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool get_xml_child(const TString& line, const char* tag, TString& value)
|
|
||||||
{
|
|
||||||
TString str; str << '<' << tag << '>';
|
|
||||||
const int pos = line.find(str);
|
|
||||||
if (pos >= 0)
|
|
||||||
{
|
|
||||||
const int apicia = line.find('>', pos)+1;
|
|
||||||
const int apicic = line.find('<', apicia);
|
|
||||||
if (apicic > apicia)
|
|
||||||
{
|
|
||||||
value = line.sub(apicia, apicic);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool rep2app(const char* name, TString& app, TString& desc)
|
|
||||||
{
|
|
||||||
app = desc = "";
|
|
||||||
|
|
||||||
TFilename report_name(name);
|
|
||||||
report_name.ext("rep");
|
|
||||||
if (!report_name.custom_path())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
TToken_string libraries(50, ',');
|
|
||||||
|
|
||||||
TString stringona;
|
|
||||||
TScanner scan(report_name);
|
|
||||||
for (int i = 0; i < 3 && scan.good(); i++) // Leggo solo le prime righe
|
|
||||||
stringona << scan.line();
|
|
||||||
get_xml_attr(stringona, "libraries", libraries);
|
|
||||||
get_xml_child(stringona, "description", desc);
|
|
||||||
|
|
||||||
FOR_EACH_TOKEN(libraries, tok) if (strlen(tok) == 6)
|
|
||||||
{
|
|
||||||
if (cod2app(tok, app))
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
cod2app(report_name.name(), app);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
// TKlarkKent_mask
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TKlarkKent_mask : public TAutomask
|
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual TReport* create_report(const char* name) const;
|
||||||
|
|
||||||
public:
|
|
||||||
TKlarkKent_mask() : TAutomask("ba8500a") { }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TKlarkKent_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
TReport* TPeterParker_app::create_report(const char* name) const
|
||||||
{
|
{
|
||||||
switch (o.dlg())
|
TDocument_report* rep = new TDocument_report;
|
||||||
{
|
rep->load(name);
|
||||||
case F_REPORT:
|
return rep;
|
||||||
if (e == fe_button)
|
|
||||||
{
|
|
||||||
TArray_sheet a(-1, -1, 75, 20, "Report", "Nome@16|Progr.|Descrizione@50");
|
|
||||||
TString_array& arr = a.rows_array();
|
|
||||||
|
|
||||||
list_files("*.rep", arr);
|
|
||||||
TFilename dir = firm2dir(-1); dir.add("custom"); dir.add("*.rep");
|
|
||||||
list_files(dir, arr);
|
|
||||||
|
|
||||||
TString app, desc;
|
|
||||||
FOR_EACH_ARRAY_ROW(arr, i, row)
|
|
||||||
{
|
|
||||||
rep2app(*row, app, desc);
|
|
||||||
|
|
||||||
TFilename n = *row; n = n.name(); n.ext("");
|
|
||||||
*row = n;
|
|
||||||
row->add(app);
|
|
||||||
row->add(desc);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (a.run() == K_ENTER)
|
|
||||||
{
|
|
||||||
o.set(a.row(-1).get(0));
|
|
||||||
e = fe_modify;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (e == fe_init || e == fe_modify)
|
|
||||||
{
|
|
||||||
TFilename name = o.get();
|
|
||||||
TString app, desc;
|
|
||||||
const bool ok = rep2app(name, app, desc);
|
|
||||||
set(F_FORM, desc);
|
|
||||||
set(F_DOC, app);
|
|
||||||
enable(DLG_PRINT, ok);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DLG_EDIT:
|
|
||||||
if (e == fe_button && !field(F_REPORT).empty())
|
|
||||||
{
|
|
||||||
TString str;
|
|
||||||
str << "ba8 -2 " << get(F_REPORT);
|
|
||||||
TExternal_app app(str);
|
|
||||||
app.run(true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
// TKlarkKent_app
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TKlarkKent_app : public TSkeleton_application
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
virtual void main_loop();
|
|
||||||
};
|
|
||||||
|
|
||||||
void TKlarkKent_app::main_loop()
|
|
||||||
{
|
|
||||||
TString_array arr;
|
|
||||||
for (int i = 2; i < argc(); i++)
|
|
||||||
{
|
|
||||||
TString name = argv(i);
|
|
||||||
if (name[0] == '%')
|
|
||||||
name.ltrim(1);
|
|
||||||
if (name.len() == 3) //il file in questione e' la stampa di una tabella?
|
|
||||||
{
|
|
||||||
TFilename filename(name);
|
|
||||||
filename.insert("vest");
|
|
||||||
filename.ext("rep");
|
|
||||||
if (filename.custom_path())
|
|
||||||
name = filename.name();
|
|
||||||
}
|
|
||||||
name.lower();
|
|
||||||
arr.add(name);
|
|
||||||
}
|
|
||||||
if (arr.items() == 0)
|
|
||||||
arr.add(EMPTY_STRING);
|
|
||||||
|
|
||||||
bool can_repeat = false;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
TReport_book book;
|
|
||||||
FOR_EACH_ARRAY_ROW(arr, r, row)
|
|
||||||
{
|
|
||||||
TFilename report_name = *row;
|
|
||||||
report_name.ext("rep");
|
|
||||||
if (row->blank() || !report_name.custom_path())
|
|
||||||
{
|
|
||||||
TKlarkKent_mask m;
|
|
||||||
m.set(F_REPORT, report_name);
|
|
||||||
if (m.run() == K_ENTER)
|
|
||||||
{
|
|
||||||
report_name = m.get(F_REPORT);
|
|
||||||
report_name.ext("rep");
|
|
||||||
report_name.custom_path();
|
|
||||||
*row = report_name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TString appname, desc;
|
|
||||||
rep2app(report_name, appname, desc);
|
|
||||||
if (appname.not_empty())
|
|
||||||
{
|
|
||||||
appname << ' ' << report_name;
|
|
||||||
TExternal_app app(appname);
|
|
||||||
app.run(true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TDocument_report rep;
|
|
||||||
if (rep.load(report_name))
|
|
||||||
{
|
|
||||||
const bool ok = book.add(rep);
|
|
||||||
if (ok && arr.items() == 1) // Controlla se e' pensabile ripetere la stampa
|
|
||||||
{
|
|
||||||
TFilename msk = report_name;
|
|
||||||
msk.ext("msk");
|
|
||||||
can_repeat = msk.exist(); // Posso ripetere se ho una maschera collegata
|
|
||||||
}
|
|
||||||
else
|
|
||||||
can_repeat = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (book.pages() > 0)
|
|
||||||
book.print_or_preview();
|
|
||||||
} while (can_repeat);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ve1400(int argc, char* argv[])
|
int ve1400(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TKlarkKent_app app;
|
TPeterParker_app app;
|
||||||
app.run(argc, argv, TR("Stampa Report Vendite"));
|
app.run(argc, argv, TR("Stampa Report Vendite"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
// SHEET 0 (unita' di misura) DI VE2400
|
// SHEET 0 (unita' di misura) DI VE2400
|
||||||
|
|
||||||
PAGE "Pagina 1" 8 5 65 11
|
PAGE "Pagina 1" -1 -1 65 11
|
||||||
|
|
||||||
STRING FS_CODUM 2
|
STRING FS_CODUM 2
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
// SHEET 1 (descrizioni in lingua) DI VE2400
|
// SHEET 1 (descrizioni in lingua) DI VE2400
|
||||||
|
|
||||||
PAGE "Pagina 1" 8 5 65 11
|
PAGE "Pagina 1" -1 -1 65 11
|
||||||
|
|
||||||
STRING FS_CODLIN 1
|
STRING FS_CODLIN 1
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
// SHEET 2 (codici alternativi) DI VE2400
|
// SHEET 2 (codici alternativi) DI VE2400
|
||||||
|
|
||||||
PAGE "Pagina 1" 8 5 65 11
|
PAGE "Pagina 1" -1 -1 65 11
|
||||||
|
|
||||||
STRING FS_CODARTALT 20
|
STRING FS_CODARTALT 20
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -339,9 +339,9 @@ protected:
|
|||||||
// restituisce la sezione per sto cliente
|
// restituisce la sezione per sto cliente
|
||||||
char sezione() const;
|
char sezione() const;
|
||||||
// Cerca il conto cliente per il movimento d'anticipo
|
// Cerca il conto cliente per il movimento d'anticipo
|
||||||
error_type search_clifo_bill(TString &);
|
error_type search_clifo_bill(const TString& catven);
|
||||||
// Cerca il conto di contropartita per il movimento d'anticipo
|
// Cerca il conto di contropartita per il movimento d'anticipo
|
||||||
error_type search_counter_bill(TDocumento&);
|
error_type search_counter_bill(TDocumento& doc, const TDate& datareg);
|
||||||
// compila la testata del movimento di anticipo
|
// compila la testata del movimento di anticipo
|
||||||
error_type compile_head_anticipo(TDocumento&);
|
error_type compile_head_anticipo(TDocumento&);
|
||||||
// compila le righe del movimento di anticipo
|
// compila le righe del movimento di anticipo
|
||||||
@ -361,7 +361,7 @@ protected:
|
|||||||
// Verifica se non ci sono stati errori
|
// Verifica se non ci sono stati errori
|
||||||
bool good() const { return _error == no_error;}
|
bool good() const { return _error == no_error;}
|
||||||
// Ritorna true se il saldaconto e' abilitato (verifica anche la causale del documento corrente)
|
// Ritorna true se il saldaconto e' abilitato (verifica anche la causale del documento corrente)
|
||||||
bool sc_enabled() const ;
|
bool sc_enabled(const TDate& data) const ;
|
||||||
// Ritorna true se il modulo INTRA e' abilitato (verifica anche la causale del documento corrente)
|
// Ritorna true se il modulo INTRA e' abilitato (verifica anche la causale del documento corrente)
|
||||||
bool in_enabled() const ;
|
bool in_enabled() const ;
|
||||||
// Controlla se il tipo riga esiste
|
// Controlla se il tipo riga esiste
|
||||||
|
@ -1135,7 +1135,7 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
|
|||||||
TRegistro& registro = _caus->reg();
|
TRegistro& registro = _caus->reg();
|
||||||
const bool iva_mov = registro.ok();
|
const bool iva_mov = registro.ok();
|
||||||
|
|
||||||
/*
|
/* Causa errori non desiderati
|
||||||
if (!iva_mov && !_caus->saldaconto())
|
if (!iva_mov && !_caus->saldaconto())
|
||||||
{
|
{
|
||||||
_error = register_error;
|
_error = register_error;
|
||||||
@ -1225,8 +1225,8 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Codice pagamento
|
// Codice pagamento
|
||||||
TString4 codpag(doc.get(DOC_CODPAG));
|
const TString4 codpag(doc.get(DOC_CODPAG));
|
||||||
if (sc_enabled() || codpag.not_empty()) // La condizione di pagamento va controllata
|
if (sc_enabled(data_reg) || codpag.not_empty()) // La condizione di pagamento va controllata
|
||||||
{ // se e' abilitato il saldaconto o se e' stata inserita
|
{ // se e' abilitato il saldaconto o se e' stata inserita
|
||||||
_cpg->put("CODTAB",codpag);
|
_cpg->put("CODTAB",codpag);
|
||||||
if (_cpg->read() != NOERR)
|
if (_cpg->read() != NOERR)
|
||||||
@ -2761,7 +2761,7 @@ error_type TContabilizzazione::write_all(TDocumento& doc, TMovimentoPN_VE & movi
|
|||||||
// Aggiorno subito i saldi
|
// Aggiorno subito i saldi
|
||||||
aggiorna_saldi(saldo, movimento, true);
|
aggiorna_saldi(saldo, movimento, true);
|
||||||
|
|
||||||
if (sc_enabled())
|
if (sc_enabled(head.get_date(MOV_DATAREG)))
|
||||||
write_scadenze(doc);
|
write_scadenze(doc);
|
||||||
|
|
||||||
if (good() && in_enabled())
|
if (good() && in_enabled())
|
||||||
@ -2840,7 +2840,7 @@ error_type TContabilizzazione::compile_head_anticipo(TDocumento& doc)
|
|||||||
{
|
{
|
||||||
TString descr;
|
TString descr;
|
||||||
const TString4 codcaus = doc.tipo().caus_anticipo();
|
const TString4 codcaus = doc.tipo().caus_anticipo();
|
||||||
TDate datareg(_movimento->lfile().get_date(MOV_DATAREG));
|
const TDate datareg = _movimento->curr().get_date(MOV_DATAREG);
|
||||||
|
|
||||||
if (!_caus->read(codcaus,datareg.year()))
|
if (!_caus->read(codcaus,datareg.year()))
|
||||||
return caus_ant_error;
|
return caus_ant_error;
|
||||||
@ -2873,7 +2873,7 @@ error_type TContabilizzazione::compile_head_anticipo(TDocumento& doc)
|
|||||||
// real cambio = head.get_real(MOV_CAMBIOI);
|
// real cambio = head.get_real(MOV_CAMBIOI);
|
||||||
head.zero(MOV_CODVALI);
|
head.zero(MOV_CODVALI);
|
||||||
head.zero(MOV_CAMBIOI);
|
head.zero(MOV_CAMBIOI);
|
||||||
if (sc_enabled())
|
if (sc_enabled(datareg))
|
||||||
{
|
{
|
||||||
TCurrency_documento p(doc.get_real(DOC_IMPPAGATO), doc);
|
TCurrency_documento p(doc.get_real(DOC_IMPPAGATO), doc);
|
||||||
TCurrency_documento plit(p); p.change_to_firm_val();
|
TCurrency_documento plit(p); p.change_to_firm_val();
|
||||||
@ -2923,10 +2923,10 @@ char TContabilizzazione::sezione() const
|
|||||||
return sezione;
|
return sezione;
|
||||||
}
|
}
|
||||||
|
|
||||||
error_type TContabilizzazione::search_clifo_bill(TString & catven)
|
error_type TContabilizzazione::search_clifo_bill(const TString& catven)
|
||||||
{
|
{
|
||||||
_error = no_error;
|
_error = no_error;
|
||||||
TLocalisamfile& clifo = _clifo->lfile();
|
const TRectype& clifo = _clifo->curr();
|
||||||
const long codcf = clifo.get_long(CLI_CODCF);
|
const long codcf = clifo.get_long(CLI_CODCF);
|
||||||
const char tipocf = clifo.get_char(CLI_TIPOCF);
|
const char tipocf = clifo.get_char(CLI_TIPOCF);
|
||||||
_co_cliente.set(0,0,0);
|
_co_cliente.set(0,0,0);
|
||||||
@ -2954,7 +2954,7 @@ error_type TContabilizzazione::search_clifo_bill(TString & catven)
|
|||||||
return _error;
|
return _error;
|
||||||
}
|
}
|
||||||
|
|
||||||
error_type TContabilizzazione::search_counter_bill(TDocumento& doc)
|
error_type TContabilizzazione::search_counter_bill(TDocumento& doc, const TDate& datareg)
|
||||||
{
|
{
|
||||||
_error = no_error;
|
_error = no_error;
|
||||||
// cerca il conto relativo alla riga di causale:
|
// cerca il conto relativo alla riga di causale:
|
||||||
@ -2969,7 +2969,8 @@ error_type TContabilizzazione::search_counter_bill(TDocumento& doc)
|
|||||||
// 9 Bonifici riga 2
|
// 9 Bonifici riga 2
|
||||||
// Se il saldaconto e' attivo prende il conto relativo al tipo pagamento
|
// Se il saldaconto e' attivo prende il conto relativo al tipo pagamento
|
||||||
// Altrimenti sempre la riga 2
|
// Altrimenti sempre la riga 2
|
||||||
if (sc_enabled())
|
|
||||||
|
if (sc_enabled(datareg))
|
||||||
{
|
{
|
||||||
int tipopag = doc.pagamento().tipo_rata(0); // Quello della prima rata... prolly is right .. ;P
|
int tipopag = doc.pagamento().tipo_rata(0); // Quello della prima rata... prolly is right .. ;P
|
||||||
_caus->bill(tipopag>0 && tipopag<8 ? tipopag+1:2,_co_controp);
|
_caus->bill(tipopag>0 && tipopag<8 ? tipopag+1:2,_co_controp);
|
||||||
@ -2991,14 +2992,14 @@ error_type TContabilizzazione::compile_rows_anticipo(TDocumento& doc)
|
|||||||
// per il conto di contropartita se non c'e' il saldaconto lo si prende dalla
|
// per il conto di contropartita se non c'e' il saldaconto lo si prende dalla
|
||||||
// seconda riga. Se il saldaconto esiste si consulta la riga relativa al
|
// seconda riga. Se il saldaconto esiste si consulta la riga relativa al
|
||||||
// tipo di pagamento.
|
// tipo di pagamento.
|
||||||
TString16 codpag(doc.get(DOC_CODPAG));
|
const TString4 codpag(doc.get(DOC_CODPAG));
|
||||||
TString16 catven(doc.get(DOC_CATVEN));
|
const TString4 catven(doc.get(DOC_CATVEN));
|
||||||
if (search_clifo_bill(catven) == no_error && search_counter_bill(doc) == no_error)
|
const TRectype& mov = _anticipo->curr();
|
||||||
|
const TDate datareg = mov.get_date(MOV_DATAREG);
|
||||||
|
if (search_clifo_bill(catven) == no_error && search_counter_bill(doc, datareg) == no_error)
|
||||||
{
|
{
|
||||||
TCurrency_documento importo(doc.get_real(DOC_IMPPAGATO), doc); importo.change_to_firm_val();
|
TCurrency_documento importo(doc.get_real(DOC_IMPPAGATO), doc); importo.change_to_firm_val();
|
||||||
TLocalisamfile& mov = _anticipo->lfile();
|
const TString4 codes = mov.get(MOV_ANNOES);
|
||||||
TDate datareg = mov.get_date(MOV_DATAREG);
|
|
||||||
TString16 codes = mov.get(MOV_ANNOES);
|
|
||||||
const long numreg = mov.get_long(MOV_NUMREG);
|
const long numreg = mov.get_long(MOV_NUMREG);
|
||||||
TRectype& c_rec = _anticipo->cg(0);
|
TRectype& c_rec = _anticipo->cg(0);
|
||||||
// setta i valori per la riga cliente
|
// setta i valori per la riga cliente
|
||||||
@ -3014,7 +3015,7 @@ error_type TContabilizzazione::compile_rows_anticipo(TDocumento& doc)
|
|||||||
c_rec.put(RMV_GRUPPOC,_co_controp.gruppo());
|
c_rec.put(RMV_GRUPPOC,_co_controp.gruppo());
|
||||||
c_rec.put(RMV_CONTOC,_co_controp.conto());
|
c_rec.put(RMV_CONTOC,_co_controp.conto());
|
||||||
c_rec.put(RMV_SOTTOCONTOC,_co_controp.sottoconto());
|
c_rec.put(RMV_SOTTOCONTOC,_co_controp.sottoconto());
|
||||||
c_rec.put(RMV_ROWTYPE,sc_enabled() ? "K" : " ");
|
c_rec.put(RMV_ROWTYPE,sc_enabled(datareg) ? "K" : " ");
|
||||||
c_rec.put(RMV_IMPORTO, importo.get_num());
|
c_rec.put(RMV_IMPORTO, importo.get_num());
|
||||||
|
|
||||||
TRectype& co_rec = _anticipo->cg(1);
|
TRectype& co_rec = _anticipo->cg(1);
|
||||||
@ -3030,7 +3031,7 @@ error_type TContabilizzazione::compile_rows_anticipo(TDocumento& doc)
|
|||||||
co_rec.put(RMV_GRUPPOC,_co_cliente.gruppo());
|
co_rec.put(RMV_GRUPPOC,_co_cliente.gruppo());
|
||||||
co_rec.put(RMV_CONTOC,_co_cliente.conto());
|
co_rec.put(RMV_CONTOC,_co_cliente.conto());
|
||||||
co_rec.put(RMV_SOTTOCONTOC,_co_cliente.sottoconto());
|
co_rec.put(RMV_SOTTOCONTOC,_co_cliente.sottoconto());
|
||||||
co_rec.put(RMV_ROWTYPE,sc_enabled() ? "I" : " ");
|
co_rec.put(RMV_ROWTYPE,sc_enabled(datareg) ? "I" : " ");
|
||||||
}
|
}
|
||||||
return _error;
|
return _error;
|
||||||
}
|
}
|
||||||
@ -3221,7 +3222,7 @@ error_type TContabilizzazione::write_anticipo(TDocumento& doc)
|
|||||||
if (_error == no_error)
|
if (_error == no_error)
|
||||||
{
|
{
|
||||||
// Scrive il movimento... gestendo la rinumerazione
|
// Scrive il movimento... gestendo la rinumerazione
|
||||||
if (sc_enabled())
|
if (sc_enabled(_anticipo->curr().get_date(MOV_DATAREG)))
|
||||||
// ... il pagamento vero e proprio, scrivendo la partita e modificando
|
// ... il pagamento vero e proprio, scrivendo la partita e modificando
|
||||||
// il movimento se vi sono abbuoni
|
// il movimento se vi sono abbuoni
|
||||||
write_pagamento_anticipo(doc);
|
write_pagamento_anticipo(doc);
|
||||||
@ -3707,18 +3708,21 @@ void TContabilizzazione::display_error(TDocumento& doc)
|
|||||||
_can_write = false; // But from now on u cannot write anymore. U must exit this program and repair errors occurred.
|
_can_write = false; // But from now on u cannot write anymore. U must exit this program and repair errors occurred.
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TContabilizzazione::sc_enabled() const
|
bool TContabilizzazione::sc_enabled(const TDate& data) const
|
||||||
{
|
{
|
||||||
bool rt = _sc_enabled;
|
bool rt = _sc_enabled;
|
||||||
if (_caus != NULL) rt &= _caus->saldaconto();
|
if (_caus != NULL)
|
||||||
if (_clifo != NULL) rt &= !_clifo->lfile().get_bool(CLI_OCCAS); // Saldaconto solo se C/F non occasionale
|
rt &= _caus->saldaconto(data);
|
||||||
|
if (_clifo != NULL)
|
||||||
|
rt &= !_clifo->curr().get_bool(CLI_OCCAS); // Saldaconto solo se C/F non occasionale
|
||||||
return rt;
|
return rt;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TContabilizzazione::in_enabled() const
|
bool TContabilizzazione::in_enabled() const
|
||||||
{
|
{
|
||||||
bool rt = _in_enabled;
|
bool rt = _in_enabled;
|
||||||
if (_caus != NULL) rt &= _caus->intra();
|
if (_caus != NULL)
|
||||||
|
rt &= _caus->intra();
|
||||||
return rt;
|
return rt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user