Patch level :10.0 1000!!
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunta trattazione al rendiconto delle parcelle che, in base allo stato, devono essere considerate come bolle o fatture. git-svn-id: svn://10.65.10.50/branches/R_10_00@22125 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b3a87f898d
commit
ce2750e446
@ -111,7 +111,7 @@ void TConf_Analitica::config_loader(TSheet_field& sf, TConfig& config, TString4
|
|||||||
row.add(num_doc.get(0));
|
row.add(num_doc.get(0));
|
||||||
row.add("");
|
row.add("");
|
||||||
row.add(num_doc.get(1));
|
row.add(num_doc.get(1));
|
||||||
if (tipo == "ND")
|
if (tipo == "ND" || tipo == "PA")
|
||||||
{
|
{
|
||||||
row.add(num_doc.get(2));
|
row.add(num_doc.get(2));
|
||||||
row.add(num_doc.get(3));
|
row.add(num_doc.get(3));
|
||||||
@ -135,7 +135,7 @@ void TConf_Analitica::config_setter(TSheet_field& sf, TConfig& config, TString4
|
|||||||
{
|
{
|
||||||
TToken_string num_doc;
|
TToken_string num_doc;
|
||||||
num_doc.add(row->get(0));
|
num_doc.add(row->get(0));
|
||||||
if (tipo == "ND")
|
if (tipo == "ND" || tipo == "PA")
|
||||||
{
|
{
|
||||||
num_doc.add(row->get(2));
|
num_doc.add(row->get(2));
|
||||||
num_doc.add(row->get(3));
|
num_doc.add(row->get(3));
|
||||||
@ -150,6 +150,7 @@ bool TConf_Analitica::preprocess_config (TMask& mask, TConfig& config)
|
|||||||
config_loader(mask.sfield(F_RIGHE_NUM), config, "ND");
|
config_loader(mask.sfield(F_RIGHE_NUM), config, "ND");
|
||||||
config_loader(mask.sfield(F_RIGHE_FDR), config, "NF");
|
config_loader(mask.sfield(F_RIGHE_FDR), config, "NF");
|
||||||
config_loader(mask.sfield(F_RIGHE_RER), config, "RR");
|
config_loader(mask.sfield(F_RIGHE_RER), config, "RR");
|
||||||
|
config_loader(mask.sfield(F_RIGHE_PAR), config, "PA");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,6 +159,7 @@ bool TConf_Analitica::postprocess_config (TMask& mask, TConfig& config)
|
|||||||
config_setter(mask.sfield(F_RIGHE_NUM), config, "ND");
|
config_setter(mask.sfield(F_RIGHE_NUM), config, "ND");
|
||||||
config_setter(mask.sfield(F_RIGHE_FDR), config, "NF");
|
config_setter(mask.sfield(F_RIGHE_FDR), config, "NF");
|
||||||
config_setter(mask.sfield(F_RIGHE_RER), config, "RR");
|
config_setter(mask.sfield(F_RIGHE_RER), config, "RR");
|
||||||
|
config_setter(mask.sfield(F_RIGHE_PAR), config, "PA");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,9 +49,11 @@
|
|||||||
#define F_PDCREQ 143
|
#define F_PDCREQ 143
|
||||||
#define F_SEZRIF 144
|
#define F_SEZRIF 144
|
||||||
|
|
||||||
|
//pagina con le regole del rendiconto
|
||||||
#define F_RIGHE_NUM 170
|
#define F_RIGHE_NUM 170
|
||||||
#define F_RIGHE_FDR 171
|
#define F_RIGHE_FDR 171
|
||||||
#define F_RIGHE_RER 172
|
#define F_RIGHE_RER 172
|
||||||
|
#define F_RIGHE_PAR 173
|
||||||
|
|
||||||
//elementi dello sheet dei documenti da escludere dal rendiconto
|
//elementi dello sheet dei documenti da escludere dal rendiconto
|
||||||
#define SN_CODNUM 101
|
#define SN_CODNUM 101
|
||||||
@ -66,4 +68,9 @@
|
|||||||
|
|
||||||
//elementi dello sheet delle causali per ratei e risconti
|
//elementi dello sheet delle causali per ratei e risconti
|
||||||
#define SR_CODNUM 101
|
#define SR_CODNUM 101
|
||||||
#define SR_DESCR 102
|
#define SR_DESCR 102
|
||||||
|
|
||||||
|
//elementi dello sheet degli stati numerazione parcella
|
||||||
|
#define SP_CODNUM 101
|
||||||
|
#define SP_DESCR 102
|
||||||
|
#define SP_STATOFATT 103
|
||||||
|
@ -405,14 +405,14 @@ END
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Regole rendiconto" -1 -1 78 20
|
PAGE "Regole rendiconto" -1 -1 78 23
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bNumerazioni documenti da escludere nel rendiconto"
|
PROMPT 1 1 "@bNumerazioni documenti da escludere nel rendiconto"
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE_NUM -1 4
|
SPREADSHEET F_RIGHE_NUM -1 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 ""
|
PROMPT 1 2 ""
|
||||||
ITEM "Numerazione"
|
ITEM "Numerazione"
|
||||||
@ -424,28 +424,41 @@ END
|
|||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "@bNumerazioni documenti per le fatture da ricevere nel rendiconto"
|
PROMPT 1 6 "@bNumerazioni documenti per le fatture da ricevere nel rendiconto"
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE_FDR -1 4
|
SPREADSHEET F_RIGHE_FDR -1 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 ""
|
PROMPT 1 7 ""
|
||||||
ITEM "Numerazione"
|
ITEM "Numerazione"
|
||||||
ITEM "Descrizione@50"
|
ITEM "Descrizione@50"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 13 "@bCausali per ratei e risconti"
|
PROMPT 1 11 "@bCausali per ratei e risconti"
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE_RER -1 4
|
SPREADSHEET F_RIGHE_RER -1 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 14 ""
|
PROMPT 1 12 ""
|
||||||
ITEM "Causale"
|
ITEM "Causale"
|
||||||
ITEM "Descrizione@50"
|
ITEM "Descrizione@50"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
TEXT -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 16 "@bRegole su numerazioni Parcella"
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET F_RIGHE_PAR -1 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 17 ""
|
||||||
|
ITEM "Numerazione"
|
||||||
|
ITEM "Descrizione@50"
|
||||||
|
ITEM "Stato fattura"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
@ -522,7 +535,7 @@ ENDPAGE
|
|||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Riga numerazione per fatture da ricevere" -1 -1 78 8
|
PAGE "Riga numerazione per fatture da ricevere" -1 -1 78 4
|
||||||
|
|
||||||
STRING SF_CODNUM 4
|
STRING SF_CODNUM 4
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -540,7 +553,7 @@ END
|
|||||||
|
|
||||||
STRING SF_DESCR 50
|
STRING SF_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Descrizione "
|
PROMPT 1 2 "Descrizione "
|
||||||
USE %NUM KEY 2
|
USE %NUM KEY 2
|
||||||
INPUT S0 SF_DESCR
|
INPUT S0 SF_DESCR
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
@ -571,7 +584,7 @@ ENDPAGE
|
|||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Riga causali per ratei e risconti" -1 -1 78 8
|
PAGE "Riga causali per ratei e risconti" -1 -1 78 4
|
||||||
|
|
||||||
STRING SR_CODNUM 4
|
STRING SR_CODNUM 4
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -588,7 +601,7 @@ END
|
|||||||
|
|
||||||
STRING SR_DESCR 50
|
STRING SR_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Descrizione "
|
PROMPT 1 2 "Descrizione "
|
||||||
USE LF_CAUSALI
|
USE LF_CAUSALI
|
||||||
KEY 2
|
KEY 2
|
||||||
SELECT MOVIND!=''
|
SELECT MOVIND!=''
|
||||||
@ -620,3 +633,58 @@ END
|
|||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
|
PAGE "Riga numerazioni di tipo Parcella" -1 -1 78 6
|
||||||
|
|
||||||
|
STRING SP_CODNUM 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Codice numerazione "
|
||||||
|
USE %NUM
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
INPUT CODTAB SP_CODNUM
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT SP_CODNUM CODTAB
|
||||||
|
OUTPUT SP_DESCR S0
|
||||||
|
KEY 1
|
||||||
|
FLAGS "UZ"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING SP_DESCR 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Descrizione "
|
||||||
|
USE %NUM KEY 2
|
||||||
|
INPUT S0 SP_DESCR
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
COPY OUTPUT SP_CODNUM
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING SP_STATOFATT 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Stato da cui considerare il documento come fattura "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DELREC 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
@ -331,6 +331,7 @@ class TPrint_rendiconto_ca_recordset : public TISAM_recordset
|
|||||||
TString _prefix;
|
TString _prefix;
|
||||||
TAssoc_array _ratrisc;
|
TAssoc_array _ratrisc;
|
||||||
TString_array _num_fdr;
|
TString_array _num_fdr;
|
||||||
|
TString_array _num_par;
|
||||||
TRiclass _ricl;
|
TRiclass _ricl;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -360,7 +361,8 @@ protected:
|
|||||||
int sort_indbil(int indbil) const;
|
int sort_indbil(int indbil) const;
|
||||||
const TString& riclassifica(const TBill& zio, TRectype& tmpcurr) const;
|
const TString& riclassifica(const TBill& zio, TRectype& tmpcurr) const;
|
||||||
const TString& riclassifica(const TString& contone, TRectype& tmpcurr) const;
|
const TString& riclassifica(const TString& contone, TRectype& tmpcurr) const;
|
||||||
bool is_causale_rateo_risconto(const char* codcaus);
|
bool is_causale_rateo_risconto(const char* codcaus) const;
|
||||||
|
int ricava_tipo_documento (const TDocumento& doc) const;
|
||||||
|
|
||||||
public: //da libreria
|
public: //da libreria
|
||||||
virtual const TVariant& get(const char* column_name) const;
|
virtual const TVariant& get(const char* column_name) const;
|
||||||
@ -400,6 +402,15 @@ TPrint_rendiconto_ca_recordset::TPrint_rendiconto_ca_recordset(const TString& sq
|
|||||||
break;
|
break;
|
||||||
_num_fdr.add(codfdr);
|
_num_fdr.add(codfdr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TString_array contenente le numerazioni delle parcelle e lo stato da cui considerarle fatture
|
||||||
|
for (int j = 0;;j++)
|
||||||
|
{
|
||||||
|
TToken_string num_par(config.get("PA", NULL, j)); //scansione delle righe PA(i)=.. sul paragrafo di configurazione CA
|
||||||
|
if (num_par.empty_items())
|
||||||
|
break;
|
||||||
|
_num_par.add(num_par);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -712,11 +723,39 @@ static int bill2indbil(const TString& codconto, bool is_anal)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//controlla se la causale passata e' di tipo rateo/risconto
|
//controlla se la causale passata e' di tipo rateo/risconto
|
||||||
bool TPrint_rendiconto_ca_recordset::is_causale_rateo_risconto(const char* codcaus)
|
bool TPrint_rendiconto_ca_recordset::is_causale_rateo_risconto(const char* codcaus) const
|
||||||
{
|
{
|
||||||
return _ratrisc.objptr(codcaus) != NULL;
|
return _ratrisc.objptr(codcaus) != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int TPrint_rendiconto_ca_recordset::ricava_tipo_documento (const TDocumento& doc) const
|
||||||
|
{
|
||||||
|
int tipo_documento = doc.tipo_riclassificato();
|
||||||
|
|
||||||
|
if (tipo_documento == TTipo_documento::_fattura)
|
||||||
|
{
|
||||||
|
//attenzione! se il documento fosse una ignorantissima parcella, il tipo documento verrebbe..
|
||||||
|
//..deciso in base allo stato del documento stesso, secondo la regola data nella configurazione del..
|
||||||
|
//..rendiconto
|
||||||
|
const TString4 codnum = doc.numerazione();
|
||||||
|
const TString4 stato = doc.get(DOC_STATO);
|
||||||
|
|
||||||
|
FOR_EACH_ARRAY_ROW(_num_par, r, riga)
|
||||||
|
{
|
||||||
|
const TString4 par_codnum = riga->get(0);
|
||||||
|
if (par_codnum == codnum)
|
||||||
|
{
|
||||||
|
const TString4 par_stato = riga->get(1);
|
||||||
|
if (stato < par_stato)
|
||||||
|
tipo_documento = TTipo_documento::_bolla;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return tipo_documento;
|
||||||
|
}
|
||||||
|
|
||||||
//compila i campi del file temporaneo che sara' poi stampato
|
//compila i campi del file temporaneo che sara' poi stampato
|
||||||
void TPrint_rendiconto_ca_recordset::scrive_riga(TLocalisamfile& tmp, const TRectype& rmovana, const TRectype& movana,
|
void TPrint_rendiconto_ca_recordset::scrive_riga(TLocalisamfile& tmp, const TRectype& rmovana, const TRectype& movana,
|
||||||
const TDocumento* doc, TLog_report& log)
|
const TDocumento* doc, TLog_report& log)
|
||||||
@ -790,16 +829,16 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(TLocalisamfile& tmp, const TRec
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//serve un documento da cui ricavare i parametri di stampa
|
//serve un documento da cui ricavare i parametri di stampa
|
||||||
TDocumento* newdoc = (TDocumento*)doc;
|
TDocumento* original_doc = (TDocumento*)doc;
|
||||||
bool should_delete = false;
|
bool should_delete = false;
|
||||||
if (newdoc == NULL && movana.get_long(MOVANA_DNDOC) > 0)
|
if (original_doc == NULL && movana.get_long(MOVANA_DNDOC) > 0)
|
||||||
{
|
{
|
||||||
const TString4 dacodnum = movana.get(MOVANA_DCODNUM);
|
const TString4 dacodnum = movana.get(MOVANA_DCODNUM);
|
||||||
newdoc = new TDocumento('D', movana.get_int(MOVANA_DANNO), dacodnum, movana.get_long(MOVANA_DNDOC));
|
original_doc = new TDocumento('D', movana.get_int(MOVANA_DANNO), dacodnum, movana.get_long(MOVANA_DNDOC));
|
||||||
should_delete = true; //settato true per cancellare il doc al termine del metodo(sennò addio memoria!)
|
should_delete = true; //settato true per cancellare il doc al termine del metodo(sennò addio memoria!)
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool dadoc = newdoc != NULL;
|
const bool dadoc = original_doc != NULL;
|
||||||
//i movimenti possono essere normali o generati da documento...
|
//i movimenti possono essere normali o generati da documento...
|
||||||
if (dadoc) //movimento generato da documento
|
if (dadoc) //movimento generato da documento
|
||||||
{
|
{
|
||||||
@ -807,7 +846,7 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(TLocalisamfile& tmp, const TRec
|
|||||||
tmpcurr.put("CODNUM", codnum); //codnum del documento che origina il movana
|
tmpcurr.put("CODNUM", codnum); //codnum del documento che origina il movana
|
||||||
tmpcurr.put("ANNO", movana.get(MOVANA_DANNO)); //anno del doc di origine
|
tmpcurr.put("ANNO", movana.get(MOVANA_DANNO)); //anno del doc di origine
|
||||||
tmpcurr.put("NUMRD", movana.get(MOVANA_DNDOC)); //numero del doc che origina movana
|
tmpcurr.put("NUMRD", movana.get(MOVANA_DNDOC)); //numero del doc che origina movana
|
||||||
tmpcurr.put("DATA", newdoc->get(DOC_DATADOC)); //data del documento che genera movana..
|
tmpcurr.put("DATA", original_doc->get(DOC_DATADOC)); //data del documento che genera movana..
|
||||||
} //..non esiste il campo in movana
|
} //..non esiste il campo in movana
|
||||||
else //movimento normale (senza documento)
|
else //movimento normale (senza documento)
|
||||||
{
|
{
|
||||||
@ -821,25 +860,26 @@ void TPrint_rendiconto_ca_recordset::scrive_riga(TLocalisamfile& tmp, const TRec
|
|||||||
const int anno_caus = movana.get_date(MOVANA_DATAREG).year();
|
const int anno_caus = movana.get_date(MOVANA_DATAREG).year();
|
||||||
const TCausale caus(movana.get(MOVANA_CODCAUS), anno_caus); //la causale serve un po' ovunque...
|
const TCausale caus(movana.get(MOVANA_CODCAUS), anno_caus); //la causale serve un po' ovunque...
|
||||||
|
|
||||||
|
//caso in cui il movimento derivi da un documento
|
||||||
//ricerca del mitico documento padre della riga documento attuale!
|
//ricerca del mitico documento padre della riga documento attuale!
|
||||||
if (newdoc != NULL)
|
if (original_doc != NULL)
|
||||||
{
|
{
|
||||||
tmpcurr.put("NUMDOCRIF", newdoc->get(DOC_NUMDOCRIF)); //docrif del documento originante il movana
|
tmpcurr.put("NUMDOCRIF", original_doc->get(DOC_NUMDOCRIF)); //docrif del documento originante il movana
|
||||||
tmpcurr.put("DATADOCRIF", newdoc->get(DOC_DATADOCRIF)); //datadocrif del documento originante il movana
|
tmpcurr.put("DATADOCRIF", original_doc->get(DOC_DATADOCRIF)); //datadocrif del documento originante il movana
|
||||||
|
|
||||||
//procedura per ottenere i campi del documento
|
//procedura per ottenere i campi del documento
|
||||||
//deve tener conto del vero tipo del documento,nel caso sia classificato come _altro;in questo
|
int tipo_babbo = TTipo_documento::_altro;
|
||||||
|
//deve tener conto del vero tipo del documento,nel caso sia classificato come _altro; in questo..
|
||||||
//..caso si deve accorgere se e' in realta' una bolla o una fattura (utilizza la tipo_riclassificato())
|
//..caso si deve accorgere se e' in realta' una bolla o una fattura (utilizza la tipo_riclassificato())
|
||||||
const int tipo_documento = newdoc->tipo_riclassificato();
|
const int tipo_documento = ricava_tipo_documento(*original_doc);
|
||||||
int tipo_babbo = TTipo_documento::_altro;
|
|
||||||
|
|
||||||
TToken_string riferimento(20, '\n'); //tokenstring su cui scrivere gli estremi dei docs padri (se li trova!)
|
TToken_string riferimento(20, '\n'); //tokenstring su cui scrivere gli estremi dei docs padri (se li trova!)
|
||||||
TString80 rif; //stringa di lavoro su cui viene scritto un doc originale
|
TString80 rif; //stringa di lavoro su cui viene scritto un doc originale
|
||||||
const int rows = newdoc->physical_rows(); //righe del doc attuale
|
const int rows = original_doc->physical_rows(); //righe del doc attuale
|
||||||
|
|
||||||
for (int i = 1; i <= rows; i++) //scandisce tutte le righe del doc..
|
for (int i = 1; i <= rows; i++) //scandisce tutte le righe del doc..
|
||||||
{
|
{
|
||||||
const TRiga_documento& riga = (*newdoc)[i];
|
const TRiga_documento& riga = (*original_doc)[i];
|
||||||
//commessa e fase della riga documento
|
//commessa e fase della riga documento
|
||||||
const TString codcms_rigadoc = riga.codice_commessa();
|
const TString codcms_rigadoc = riga.codice_commessa();
|
||||||
const TString codfase_rigadoc = riga.fase_commessa();
|
const TString codfase_rigadoc = riga.fase_commessa();
|
||||||
@ -966,7 +1006,7 @@ F=IMF*/
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} //if(newdoc != NULL)
|
} //if(original_doc != NULL)
|
||||||
else //movimenti puri di analitica (no documento di origine!)
|
else //movimenti puri di analitica (no documento di origine!)
|
||||||
{
|
{
|
||||||
if (is_causale_rateo_risconto(caus.codice())) //movimenti con causali "rateo/risconto"
|
if (is_causale_rateo_risconto(caus.codice())) //movimenti con causali "rateo/risconto"
|
||||||
@ -979,7 +1019,7 @@ F=IMF*/
|
|||||||
selettore |= MATURATO;
|
selettore |= MATURATO;
|
||||||
selettore |= IMPEGNATO;
|
selettore |= IMPEGNATO;
|
||||||
}
|
}
|
||||||
} //if(newdoc != NULL)
|
} //if(original_doc != NULL)
|
||||||
|
|
||||||
//riempie i record del file temporaneo nel caso di rmovana con documento di origine
|
//riempie i record del file temporaneo nel caso di rmovana con documento di origine
|
||||||
char sezione = rmovana.get_char(RMOVANA_SEZIONE);
|
char sezione = rmovana.get_char(RMOVANA_SEZIONE);
|
||||||
@ -1014,9 +1054,9 @@ F=IMF*/
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ //iva errata -> non ha causali -> cerca di capire se cliente o fornitore
|
{ //iva errata -> non ha causali -> cerca di capire se cliente o fornitore
|
||||||
if (newdoc != NULL)
|
if (original_doc != NULL)
|
||||||
{
|
{
|
||||||
if (newdoc->get_char(DOC_TIPOCF) == 'C')
|
if (original_doc->get_char(DOC_TIPOCF) == 'C')
|
||||||
sezione_normale = 'A';
|
sezione_normale = 'A';
|
||||||
else
|
else
|
||||||
sezione_normale = 'D';
|
sezione_normale = 'D';
|
||||||
@ -1070,7 +1110,7 @@ F=IMF*/
|
|||||||
tmpcurr.put("CODFASE", rmovana.get(RMOVANA_CODFASE)); //codice fase
|
tmpcurr.put("CODFASE", rmovana.get(RMOVANA_CODFASE)); //codice fase
|
||||||
|
|
||||||
if (should_delete)
|
if (should_delete)
|
||||||
delete newdoc;
|
delete original_doc;
|
||||||
|
|
||||||
//I movimenti di budget (preventivi e variazioni) vanno nascosti nei body!!! Devono essere considerati in..
|
//I movimenti di budget (preventivi e variazioni) vanno nascosti nei body!!! Devono essere considerati in..
|
||||||
//..quanto servono per sapere quali conti sono stati movimentati per i budget, in modo che per ogni conto..
|
//..quanto servono per sapere quali conti sono stati movimentati per i budget, in modo che per ogni conto..
|
||||||
|
@ -2344,7 +2344,7 @@ bool TAnal_mov::save_saldi(const int annoes)
|
|||||||
saldi.put(SALDANA_FASE, key.get(4));
|
saldi.put(SALDANA_FASE, key.get(4));
|
||||||
saldi.put(SALDANA_CONTO, key.get(5));
|
saldi.put(SALDANA_CONTO, key.get(5));
|
||||||
|
|
||||||
int err = saldi.read(_isequal, _testandlock);
|
int err = saldi.read(_isequal, _lock);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
{
|
{
|
||||||
//Richiesta specifica del nostro Fuhrer! I saldi appartenenti ad esercizi futuri NON ancora aperti vanno..
|
//Richiesta specifica del nostro Fuhrer! I saldi appartenenti ad esercizi futuri NON ancora aperti vanno..
|
||||||
@ -2359,6 +2359,8 @@ bool TAnal_mov::save_saldi(const int annoes)
|
|||||||
saldi.put(SALDANA_FASE, key.get(4));
|
saldi.put(SALDANA_FASE, key.get(4));
|
||||||
saldi.put(SALDANA_CONTO, key.get(5));
|
saldi.put(SALDANA_CONTO, key.get(5));
|
||||||
err = saldi.write();
|
err = saldi.write();
|
||||||
|
if (err != NOERR)
|
||||||
|
cantwrite_box(saldi.name());
|
||||||
}
|
}
|
||||||
// else
|
// else
|
||||||
// continue; // NON devo dare errori fuorvianti causa saldi nel futuro che ci saranno ma non vanno scritti
|
// continue; // NON devo dare errori fuorvianti causa saldi nel futuro che ci saranno ma non vanno scritti
|
||||||
|
Loading…
x
Reference in New Issue
Block a user