Correzioni su contratti di nolo
git-svn-id: svn://10.65.10.50/branches/R_10_00@22846 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2c5d6aded2
commit
453890fd36
@ -770,7 +770,7 @@ bool THardy_elab_docs::genera_fat(const TMask& mask, TContratto_premi& contratto
|
|||||||
const TString4 fat_codnum = ini_get_string(CONFIG_DITTA, "ha", "NaNoloNum");
|
const TString4 fat_codnum = ini_get_string(CONFIG_DITTA, "ha", "NaNoloNum");
|
||||||
const TString4 fat_tipodoc = ini_get_string(CONFIG_DITTA, "ha", "FtNoloTip");
|
const TString4 fat_tipodoc = ini_get_string(CONFIG_DITTA, "ha", "FtNoloTip");
|
||||||
const TString4 fat_codpag = ini_get_string(CONFIG_DITTA, "ha", "CodPagFat");
|
const TString4 fat_codpag = ini_get_string(CONFIG_DITTA, "ha", "CodPagFat");
|
||||||
const TString8 cod_riga = ini_get_string(CONFIG_DITTA, "ha", "FtNoloSpe");
|
const TString8 cod_spesa = ini_get_string(CONFIG_DITTA, "ha", "FtNoloSpe");
|
||||||
|
|
||||||
TDocumento fat(provv, datadoc.year(), fat_codnum, 0); //num_doc = 0 perchè viene aggiornato in fase di registrazione
|
TDocumento fat(provv, datadoc.year(), fat_codnum, 0); //num_doc = 0 perchè viene aggiornato in fase di registrazione
|
||||||
fat.set_tipo(fat_tipodoc);
|
fat.set_tipo(fat_tipodoc);
|
||||||
@ -778,15 +778,18 @@ bool THardy_elab_docs::genera_fat(const TMask& mask, TContratto_premi& contratto
|
|||||||
fat.put(DOC_DATADOC, datadoc);
|
fat.put(DOC_DATADOC, datadoc);
|
||||||
fat.put(DOC_TIPOCF, 'C');
|
fat.put(DOC_TIPOCF, 'C');
|
||||||
fat.put(DOC_CODCF, contratto.get(DOC_CODCF));
|
fat.put(DOC_CODCF, contratto.get(DOC_CODCF));
|
||||||
|
fat.cli2doc();
|
||||||
fat.put(DOC_CODAG, contratto.get(DOC_CODAG));
|
fat.put(DOC_CODAG, contratto.get(DOC_CODAG));
|
||||||
fat.put(DOC_CODPAG, fat_codpag);
|
|
||||||
fat.put(DOC_DOC1, contratto.get(DOC_NDOC));
|
fat.put(DOC_DOC1, contratto.get(DOC_NDOC));
|
||||||
fat.put(DOC_DATADOCRIF, contratto.get(DOC_DATADOC));
|
fat.put(DOC_DATADOCRIF, contratto.get(DOC_DATADOC));
|
||||||
fat.cli2doc();
|
fat.put(DOC_CODPAG, fat_codpag);
|
||||||
|
|
||||||
const TRectype& rec_spp = cache().get("SPP", cod_riga);
|
const TRectype& rec_spp = cache().get("SPP", cod_spesa);
|
||||||
const TString4 tipo_riga_spp = rec_spp.get("S8");
|
|
||||||
const TString80 descr_riga_spp = rec_spp.get("S0");
|
const TString80 descr_riga_spp = rec_spp.get("S0");
|
||||||
|
const TString4 codiva = rec_spp.get("S3");
|
||||||
|
const TString4 tipo_riga_spp = rec_spp.get("S8");
|
||||||
|
|
||||||
|
TString msg_rata;
|
||||||
|
|
||||||
real importo = contratto.get_real(DOC_IMPPAGATO);
|
real importo = contratto.get_real(DOC_IMPPAGATO);
|
||||||
const TDate recesso = contratto.data_recesso();
|
const TDate recesso = contratto.data_recesso();
|
||||||
@ -795,22 +798,33 @@ bool THardy_elab_docs::genera_fat(const TMask& mask, TContratto_premi& contratto
|
|||||||
const real rate_da_pagare = contratto.get_int(DOC_NCOLLI) - contratto.get_int(DOC_NUMANT);
|
const real rate_da_pagare = contratto.get_int(DOC_NCOLLI) - contratto.get_int(DOC_NUMANT);
|
||||||
importo *= rate_da_pagare;
|
importo *= rate_da_pagare;
|
||||||
contratto.put(DOC_NUMANT, contratto.get(DOC_NCOLLI)); // Chiude contratto forzosamente
|
contratto.put(DOC_NUMANT, contratto.get(DOC_NCOLLI)); // Chiude contratto forzosamente
|
||||||
|
msg_rata = TR("\nRata di cessazione contratto");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
const TDate d = mask.get(F_ADATA);
|
||||||
contratto.add(DOC_NUMANT, UNO); // Incrementa numero di rate pagate
|
contratto.add(DOC_NUMANT, UNO); // Incrementa numero di rate pagate
|
||||||
|
|
||||||
|
msg_rata << TR("\nRata ") << contratto.get(DOC_NUMANT) << '/' << contratto.get_int(DOC_NCOLLI)
|
||||||
|
<< ' ' << itom(d.month()) << ' ' << d.year();
|
||||||
|
}
|
||||||
|
|
||||||
if (provv == 'D')
|
if (provv == 'D')
|
||||||
{
|
{
|
||||||
const int err = contratto.rewrite();
|
const int err = contratto.rewrite();
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
log.log(2, TR("Impossibile aggiornare il numero di rate pagate sul cotratto"));
|
log.log(2, TR("Impossibile aggiornare il numero di rate pagate sul contratto"));
|
||||||
}
|
}
|
||||||
|
|
||||||
TRiga_documento& rdoc = fat.new_row(tipo_riga_spp);
|
TRiga_documento& rdoc = fat.new_row(tipo_riga_spp);
|
||||||
rdoc.put(RDOC_CODART, cod_riga);
|
rdoc.put(RDOC_CODART, cod_spesa);
|
||||||
rdoc.put(RDOC_DESCR, descr_riga_spp);
|
rdoc.put(RDOC_DESCR, descr_riga_spp);
|
||||||
|
rdoc.put(RDOC_DESCEST, msg_rata);
|
||||||
|
rdoc.put(RDOC_DESCLUNGA, "X");
|
||||||
|
|
||||||
rdoc.put(RDOC_QTA, UNO);
|
rdoc.put(RDOC_QTA, UNO);
|
||||||
rdoc.put(RDOC_PREZZO, importo);
|
rdoc.put(RDOC_PREZZO, importo);
|
||||||
|
rdoc.put(RDOC_CODIVA, codiva);
|
||||||
|
|
||||||
const int err = fat.write();
|
const int err = fat.write();
|
||||||
|
|
||||||
|
@ -493,8 +493,7 @@ void TIni2Txt::genera_sospeso_var_txt(TConfig& ini, TString_array& ini_paragraph
|
|||||||
void TIni2Txt::main_loop()
|
void TIni2Txt::main_loop()
|
||||||
{
|
{
|
||||||
//stabilisce una volta per tutte ad inizio programma quale cavolo è la directory dove sbattere i .txt generati
|
//stabilisce una volta per tutte ad inizio programma quale cavolo è la directory dove sbattere i .txt generati
|
||||||
TConfig hardy(CONFIG_DITTA, "ha");
|
_output_dir = ini_get_string(CONFIG_DITTA, "ha", "OutputPath");
|
||||||
_output_dir = hardy.get("OutputPath");
|
|
||||||
|
|
||||||
//dalla riga di comando raccatta il path completo del file .ini da tradurre
|
//dalla riga di comando raccatta il path completo del file .ini da tradurre
|
||||||
TFilename path = argv(2);
|
TFilename path = argv(2);
|
||||||
|
@ -36,9 +36,8 @@ bool TFile2Txt_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
|||||||
{
|
{
|
||||||
//in base alla configurazione Hardyca completa i campi chiave sulla maschera così che, in caso..
|
//in base alla configurazione Hardyca completa i campi chiave sulla maschera così che, in caso..
|
||||||
//..l'utonto decida di fare una ricerca sui documenti, gli appaiano solo quelli buoni per il trasferimento!
|
//..l'utonto decida di fare una ricerca sui documenti, gli appaiano solo quelli buoni per il trasferimento!
|
||||||
TConfig config(CONFIG_DITTA, "ha");
|
const TString4 codnum = ini_get_string(CONFIG_DITTA, "ha", "CarDocNum");
|
||||||
const TString& codnum = config.get("CarDocNum");
|
const TString4 stato = ini_get_string(CONFIG_DITTA, "ha", "CarDocSta");
|
||||||
const TString& stato = config.get("CarDocSta");
|
|
||||||
set(F_CODNUM, codnum);
|
set(F_CODNUM, codnum);
|
||||||
set(F_STATO, stato);
|
set(F_STATO, stato);
|
||||||
|
|
||||||
@ -264,7 +263,7 @@ bool TFile2Txt::curr_cod_list(long codcf, TString& codlist, TString& promo) cons
|
|||||||
TLocalisamfile clifo(LF_CFVEN);
|
TLocalisamfile clifo(LF_CFVEN);
|
||||||
clifo.put(CFV_TIPOCF, 'C');
|
clifo.put(CFV_TIPOCF, 'C');
|
||||||
clifo.put(CFV_CODCF, codcf);
|
clifo.put(CFV_CODCF, codcf);
|
||||||
if (clifo.read(_isequal, _lock) == NOERR)
|
if (clifo.read(_isequal, _testandlock) == NOERR)
|
||||||
{
|
{
|
||||||
clifo.put(CFV_CODLIST, codlist);
|
clifo.put(CFV_CODLIST, codlist);
|
||||||
clifo.rewrite();
|
clifo.rewrite();
|
||||||
|
@ -200,8 +200,8 @@ void THardy_transaction::main_loop()
|
|||||||
bool THardy_transaction::create()
|
bool THardy_transaction::create()
|
||||||
{
|
{
|
||||||
TConfig config(CONFIG_DITTA, "ha");
|
TConfig config(CONFIG_DITTA, "ha");
|
||||||
_output_path = config.get("OutputPath");
|
_output_path = config.get("OutputPath");
|
||||||
_input_path = config.get("InputPath");
|
_input_path = config.get("InputPath");
|
||||||
_archive_path = config.get("ArchivePath");
|
_archive_path = config.get("ArchivePath");
|
||||||
|
|
||||||
if (!_output_path.exist())
|
if (!_output_path.exist())
|
||||||
@ -226,6 +226,8 @@ bool THardy_transaction::create()
|
|||||||
return error_box(FR("Non esiste la cartella di transazione %s!"), (const char*)_trans_path);
|
return error_box(FR("Non esiste la cartella di transazione %s!"), (const char*)_trans_path);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_DOC, LF_RIGHEDOC, LF_SVRIEP, 0);
|
||||||
|
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1002,16 +1002,14 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
|||||||
const TString& str_datadoc = recset.get(DOC_DATADOC).as_string();
|
const TString& str_datadoc = recset.get(DOC_DATADOC).as_string();
|
||||||
const TDate datadoc = upload_format_date6(str_datadoc);
|
const TDate datadoc = upload_format_date6(str_datadoc);
|
||||||
|
|
||||||
|
|
||||||
//2a) tipo documento
|
//2a) tipo documento
|
||||||
TString4 tipodoc;
|
TString4 tipodoc;
|
||||||
TConfig hardy(CONFIG_DITTA, "ha");
|
|
||||||
switch (rec_tipodoc)
|
switch (rec_tipodoc)
|
||||||
{
|
{
|
||||||
case 'F': tipodoc = hardy.get("InpFatTip"); break; //Fatture
|
case 'F': tipodoc = ini_get_string(CONFIG_DITTA, "ha", "InpFatTip"); break; //Fatture
|
||||||
case 'B': tipodoc = hardy.get("InpBolTip"); break; //Bolle
|
case 'B': tipodoc = ini_get_string(CONFIG_DITTA, "ha", "InpBolTip"); break; //Bolle
|
||||||
case 'V': tipodoc = hardy.get("InpValTip"); break; //bolle Valorizzate: attenzione!! devono essere trasformate in 'B'olle alla creazione della numerazione di Campo
|
case 'V': tipodoc = ini_get_string(CONFIG_DITTA, "ha", "InpValTip"); break; //bolle Valorizzate: attenzione!! devono essere trasformate in 'B'olle alla creazione della numerazione di Campo
|
||||||
case 'O': tipodoc = hardy.get("InpOrdTip"); break; //Ordini
|
case 'O': tipodoc = ini_get_string(CONFIG_DITTA, "ha", "InpOrdTip"); break; //Ordini
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
_can_write = false;
|
_can_write = false;
|
||||||
@ -1040,7 +1038,8 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
|||||||
|
|
||||||
const long ndoc = recset.get(DOC_NDOC).as_int();
|
const long ndoc = recset.get(DOC_NDOC).as_int();
|
||||||
|
|
||||||
TDocumento doc('D', datadoc.year(), codnum, ndoc);
|
TDocumento doc;
|
||||||
|
doc.read('D', datadoc.year(), codnum, ndoc, _isequal, _can_write ? _lock : _nolock);
|
||||||
|
|
||||||
//2c) tipo documento e data documento
|
//2c) tipo documento e data documento
|
||||||
doc.put(DOC_TIPODOC, tipodoc);
|
doc.put(DOC_TIPODOC, tipodoc);
|
||||||
@ -1190,6 +1189,10 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
|||||||
rigadoc.put(RDOC_CODMAG, codmag); //questo viene dall'agente ed è stato preso all'inizio del metodo
|
rigadoc.put(RDOC_CODMAG, codmag); //questo viene dall'agente ed è stato preso all'inizio del metodo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const real totdoc = doc.totale_doc();
|
||||||
|
if (totdoc.is_zero())
|
||||||
|
doc.put(DOC_STATO, 5); // Evita problemi di contabilizzazione dei documenti nulli
|
||||||
|
|
||||||
//incredibilmente arriva in fondo
|
//incredibilmente arriva in fondo
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << datadoc.year() << "-" << codnum << "-" << ndoc << " Terminale: " << codice_terminale << " Cliente: " << codcf;
|
msg << datadoc.year() << "-" << codnum << "-" << ndoc << " Terminale: " << codice_terminale << " Cliente: " << codcf;
|
||||||
@ -1233,7 +1236,7 @@ void TUpload2Campo::elabora_RC(THardy_upload_recordset& recset, TLog_report& log
|
|||||||
|
|
||||||
//2a) numerazione e tipo documento
|
//2a) numerazione e tipo documento
|
||||||
TConfig hardy(CONFIG_DITTA, "ha");
|
TConfig hardy(CONFIG_DITTA, "ha");
|
||||||
const TString4 codnum = hardy.get("CarDocNum");
|
const TString4 codnum = hardy.get("CarDocNum");
|
||||||
const TString4 tipodoc = hardy.get("CarDocTip");
|
const TString4 tipodoc = hardy.get("CarDocTip");
|
||||||
|
|
||||||
//2b) documento vero e proprio (stessi campi del caso tipo record = TF)
|
//2b) documento vero e proprio (stessi campi del caso tipo record = TF)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "ha1300a.h"
|
#include "ha1300a.h"
|
||||||
|
|
||||||
PAGE "Importazione dati da file upload" -1 -1 78 9
|
PAGE "Importazione dati da file upload" -1 -1 78 11
|
||||||
|
|
||||||
STRING F_INPUT_PATH 256 46
|
STRING F_INPUT_PATH 256 46
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -26,12 +26,11 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
RADIOBUTTON F_DEFINITIVO 73
|
RADIOBUTTON F_DEFINITIVO 1 75
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Tipo elaborazione"
|
PROMPT 1 6 "Tipo elaborazione"
|
||||||
ITEM "0|Di prova (simulazione)"
|
ITEM "0|Di prova (simulazione)"
|
||||||
ITEM "1|Definitiva (scrittura sul database)"
|
ITEM "1|Definitiva (scrittura sul database)"
|
||||||
FLAGS "Z"
|
|
||||||
FIELD Definitiva
|
FIELD Definitiva
|
||||||
END
|
END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user