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:
guy 2013-05-06 08:47:52 +00:00
parent 2c5d6aded2
commit 453890fd36
6 changed files with 42 additions and 26 deletions

@ -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_tipodoc = ini_get_string(CONFIG_DITTA, "ha", "FtNoloTip");
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
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_TIPOCF, 'C');
fat.put(DOC_CODCF, contratto.get(DOC_CODCF));
fat.cli2doc();
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_DATADOCRIF, contratto.get(DOC_DATADOC));
fat.cli2doc();
fat.put(DOC_CODPAG, fat_codpag);
const TRectype& rec_spp = cache().get("SPP", cod_riga);
const TString4 tipo_riga_spp = rec_spp.get("S8");
const TRectype& rec_spp = cache().get("SPP", cod_spesa);
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);
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);
importo *= rate_da_pagare;
contratto.put(DOC_NUMANT, contratto.get(DOC_NCOLLI)); // Chiude contratto forzosamente
msg_rata = TR("\nRata di cessazione contratto");
}
else
{
const TDate d = mask.get(F_ADATA);
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')
{
const int err = contratto.rewrite();
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);
rdoc.put(RDOC_CODART, cod_riga);
rdoc.put(RDOC_CODART, cod_spesa);
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_PREZZO, importo);
rdoc.put(RDOC_CODIVA, codiva);
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()
{
//stabilisce una volta per tutte ad inizio programma quale cavolo è la directory dove sbattere i .txt generati
TConfig hardy(CONFIG_DITTA, "ha");
_output_dir = hardy.get("OutputPath");
_output_dir = ini_get_string(CONFIG_DITTA, "ha", "OutputPath");
//dalla riga di comando raccatta il path completo del file .ini da tradurre
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..
//..l'utonto decida di fare una ricerca sui documenti, gli appaiano solo quelli buoni per il trasferimento!
TConfig config(CONFIG_DITTA, "ha");
const TString& codnum = config.get("CarDocNum");
const TString& stato = config.get("CarDocSta");
const TString4 codnum = ini_get_string(CONFIG_DITTA, "ha", "CarDocNum");
const TString4 stato = ini_get_string(CONFIG_DITTA, "ha", "CarDocSta");
set(F_CODNUM, codnum);
set(F_STATO, stato);
@ -264,7 +263,7 @@ bool TFile2Txt::curr_cod_list(long codcf, TString& codlist, TString& promo) cons
TLocalisamfile clifo(LF_CFVEN);
clifo.put(CFV_TIPOCF, 'C');
clifo.put(CFV_CODCF, codcf);
if (clifo.read(_isequal, _lock) == NOERR)
if (clifo.read(_isequal, _testandlock) == NOERR)
{
clifo.put(CFV_CODLIST, codlist);
clifo.rewrite();

@ -200,8 +200,8 @@ void THardy_transaction::main_loop()
bool THardy_transaction::create()
{
TConfig config(CONFIG_DITTA, "ha");
_output_path = config.get("OutputPath");
_input_path = config.get("InputPath");
_output_path = config.get("OutputPath");
_input_path = config.get("InputPath");
_archive_path = config.get("ArchivePath");
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);
*/
open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_DOC, LF_RIGHEDOC, LF_SVRIEP, 0);
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 TDate datadoc = upload_format_date6(str_datadoc);
//2a) tipo documento
TString4 tipodoc;
TConfig hardy(CONFIG_DITTA, "ha");
switch (rec_tipodoc)
{
case 'F': tipodoc = hardy.get("InpFatTip"); break; //Fatture
case 'B': tipodoc = hardy.get("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 'O': tipodoc = hardy.get("InpOrdTip"); break; //Ordini
case 'F': tipodoc = ini_get_string(CONFIG_DITTA, "ha", "InpFatTip"); break; //Fatture
case 'B': tipodoc = ini_get_string(CONFIG_DITTA, "ha", "InpBolTip"); break; //Bolle
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 = ini_get_string(CONFIG_DITTA, "ha", "InpOrdTip"); break; //Ordini
default:
{
_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();
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
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
}
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
TString msg;
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
TConfig hardy(CONFIG_DITTA, "ha");
const TString4 codnum = hardy.get("CarDocNum");
const TString4 codnum = hardy.get("CarDocNum");
const TString4 tipodoc = hardy.get("CarDocTip");
//2b) documento vero e proprio (stessi campi del caso tipo record = TF)

@ -1,6 +1,6 @@
#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
BEGIN
@ -26,12 +26,11 @@ BEGIN
FLAGS "D"
END
RADIOBUTTON F_DEFINITIVO 73
RADIOBUTTON F_DEFINITIVO 1 75
BEGIN
PROMPT 1 6 "Tipo elaborazione"
ITEM "0|Di prova (simulazione)"
ITEM "1|Definitiva (scrittura sul database)"
FLAGS "Z"
FIELD Definitiva
END