git-svn-id: svn://10.65.10.50/branches/R_10_00@23189 c028cbd2-c16b-5b4b-a496-9718f37d4682

This commit is contained in:
guy 2016-04-15 08:16:03 +00:00
parent 5977b9d122
commit 86448985ed
3 changed files with 183 additions and 101 deletions

View File

@ -149,14 +149,21 @@ TExclusion_mode TSpesometro_msk::segnala_movimento(const TRectype& mov, TExclusi
const long numreg = mov.get_long(MOV_NUMREG); const long numreg = mov.get_long(MOV_NUMREG);
const char tipocf = mov.get_char(MOV_TIPO); const char tipocf = mov.get_char(MOV_TIPO);
const long codcf = mov.get_long(MOV_CODCF); const long codcf = mov.get_long(MOV_CODCF);
const TAnagrafica a(tipocf, codcf, mov.get(MOV_OCFPI));
TString msg; TString msg;
if (codcf > 0)
{
const TAnagrafica a(tipocf, codcf, mov.get(MOV_OCFPI));
msg.format(FR("Mov. %7ld %s %s: "), numreg, msg.format(FR("Mov. %7ld %s %s: "), numreg,
tipocf=='F' ? TR("For.") : TR("Cli."), (const char*)a.ragione_sociale()); tipocf=='F' ? TR("For.") : TR("Cli."), (const char*)a.ragione_sociale());
msg << mode2string(motivo); msg << mode2string(motivo);
if (a.estero() && a.stato_estero_UNICO().blank()) if (a.estero() && a.stato_estero_UNICO().blank())
msg << " (Codice UNICO non specificato)"; msg << " (Codice UNICO non specificato)";
}
else
{
msg.format(FR("Mov. %7ld %s senza codice: "), numreg, tipocf=='F' ? TR("For.") : TR("Cli."));
}
msg.strip_double_spaces(); msg.strip_double_spaces();
_log->log(1, msg); _log->log(1, msg);
@ -173,6 +180,11 @@ TExclusion_mode TSpesometro_msk::validate_clifo(const TRectype& mov)
if (tipocf <= ' ' || (codcf <= 0 && ocfpi.blank())) if (tipocf <= ' ' || (codcf <= 0 && ocfpi.blank()))
return segnala_movimento(mov, em_no_allegato); return segnala_movimento(mov, em_no_allegato);
#ifdef DBG
if (codcf == 269)
int ok=false;
#endif
TString8 key; key.format("%c|%ld", tipocf, codcf); TString8 key; key.format("%c|%ld", tipocf, codcf);
const TRectype& rec_clifo = cache().get(LF_CLIFO, key); const TRectype& rec_clifo = cache().get(LF_CLIFO, key);
const int alleg = rec_clifo.get_int(CLI_ALLEG); const int alleg = rec_clifo.get_int(CLI_ALLEG);
@ -232,17 +244,17 @@ TExclusion_mode TSpesometro_msk::validate_mov(const TRectype& mov)
if (anno < 2012) if (anno < 2012)
return segnala_movimento(mov, em_data_limite); return segnala_movimento(mov, em_data_limite);
TExclusion_mode em = validate_clifo(mov); #ifdef DBG
if (em != em_normale) if (mov.get_long(MOV_NUMREG) ==14224)
return em; int sn = 1;
#endif
// Trova i movimenti INTRA
if (!mov.get_real(MOV_CORRLIRE).is_zero() || !mov.get_real(MOV_CORRVALUTA).is_zero())
em = segnala_movimento(mov, em_intra);
else
{
const TString& keytok = mov.get(MOV_NUMREG);
const char tipocf = mov.get_char(MOV_TIPO); const char tipocf = mov.get_char(MOV_TIPO);
const real impmin = get_real(F_IMPMIN);
if (tipocf == 'C' && impmin > ZERO && abs(mov.get_real(MOV_TOTDOC)) <= impmin)
return segnala_movimento(mov, em_importo_limite);
const TString& keytok = mov.get(MOV_NUMREG);
TRecord_array righe_iva(keytok, LF_RMOVIVA); TRecord_array righe_iva(keytok, LF_RMOVIVA);
real tot_imponibile, tot_imposta; real tot_imponibile, tot_imposta;
//calcolo di imponibile ed imposta di tutte le righe iva del movimento //calcolo di imponibile ed imposta di tutte le righe iva del movimento
@ -257,8 +269,17 @@ TExclusion_mode TSpesometro_msk::validate_mov(const TRectype& mov)
tot_imposta += rmi.get_real(RMI_IMPOSTA); tot_imposta += rmi.get_real(RMI_IMPOSTA);
} }
if (tot_imponibile.is_zero() && tot_imposta.is_zero()) if (tot_imponibile.is_zero() && tot_imposta.is_zero())
em = segnala_movimento(mov, em_importo_limite); return segnala_movimento(mov, em_importo_limite);
} if (tipocf == 'C' && abs(tot_imponibile) < impmin)
return segnala_movimento(mov, em_importo_limite);
TExclusion_mode em = validate_clifo(mov);
if (em != em_normale)
return em;
// Trova i movimenti INTRA
if (!mov.get_real(MOV_CORRLIRE).is_zero() || !mov.get_real(MOV_CORRVALUTA).is_zero())
em = segnala_movimento(mov, em_intra);
return em; return em;
} }
@ -297,11 +318,14 @@ TExclusion_mode TSpesometro_msk::elabora_movimento(const TRectype& mov, TBaseisa
} }
} }
real tot_imponibile, tot_imposta;
int tipo_iva = 1; // Normale
real ser_imponibile, mer_imponibile;
if (em != em_importo_limite)
{
const TString& keytok = mov.get(MOV_NUMREG); const TString& keytok = mov.get(MOV_NUMREG);
TRecord_array righe_iva(keytok, LF_RMOVIVA); TRecord_array righe_iva(keytok, LF_RMOVIVA);
int tipo_iva = 1; // Normale
real tot_imponibile, tot_imposta;
real ser_imponibile, mer_imponibile;
//calcolo di imponibile ed imposta di tutte le righe iva del movimento //calcolo di imponibile ed imposta di tutte le righe iva del movimento
for (int r = righe_iva.last_row(); r > 0; r = righe_iva.pred_row(r)) for (int r = righe_iva.last_row(); r > 0; r = righe_iva.pred_row(r))
{ {
@ -341,6 +365,7 @@ TExclusion_mode TSpesometro_msk::elabora_movimento(const TRectype& mov, TBaseisa
mer_imponibile += rmi_imponibile; mer_imponibile += rmi_imponibile;
} }
} }
}
const long numreg = mov.get_long(MOV_NUMREG); const long numreg = mov.get_long(MOV_NUMREG);
@ -988,6 +1013,7 @@ void TSpesometro_msk::load_sheet()
const char tipocf = get(F_TIPOCF)[0]; const char tipocf = get(F_TIPOCF)[0];
const long codcf = get_long(F_CODCF); const long codcf = get_long(F_CODCF);
const TString& ocfpi = get(F_OCFPI); const TString& ocfpi = get(F_OCFPI);
real vendite, acquisti;
TSheet_field& s = sfield(F_RIGHE); TSheet_field& s = sfield(F_RIGHE);
s.hide(); // Nascondo lo sheet per guadagnare un 20% di velocità di caricamento s.hide(); // Nascondo lo sheet per guadagnare un 20% di velocità di caricamento
@ -1072,11 +1098,22 @@ void TSpesometro_msk::load_sheet()
default: break; default: break;
} }
} }
s.autoload_line(++rec, curr); if (s.autoload_line(++rec, curr))
{
const real imp = curr.get(ALL_IMPORTO);
if (curr.get_char(ALL_TIPOCF) == 'F')
acquisti += imp;
else
vendite += imp;
}
} }
} }
//alleg_sort(s); //alleg_sort(s);
set(F_ACQUISTI, acquisti);
set(F_VENDITE, vendite);
set(F_TOTALE, real(acquisti+vendite));
s.force_update(); s.force_update();
s.show(); s.show();
set_dirty(false); set_dirty(false);
@ -1436,10 +1473,11 @@ bool TSpesometro_app::create()
{ {
if (!has_module(F3AUT)) if (!has_module(F3AUT))
{ {
const TDate oggi(TODAY);
TString html; TString html;
html << "<html><body>" html << "<html><body>"
<< "<h5>Attenzione: Il modulo FE deve essere attivato in congiunzione a F3.</h5>\n" << "<h5>Attenzione: Il modulo FE deve essere attivato in congiunzione a F3.</h5>\n"
<< "<p align=justify>Al fine di poter attivare l'utilizzo della Comunicazione Polivalente 2014 " << "<p align=justify>Al fine di poter attivare l'utilizzo della Comunicazione Polivalente " << oggi.year() << " "
<< "La preghiamo di contattare <b>Sirio informatica e sistemi</b> al seguente riferimento:</p><br/>" << "La preghiamo di contattare <b>Sirio informatica e sistemi</b> al seguente riferimento:</p><br/>"
<< "<ul>" << "<ul>"
<< "<li>Casella vocale Hotline Campo: <br /><a href=mailto:hotlinecampo@sirio-is.it>hotlinecampo@sirio-is.it</a> Tel. 02-36583540</li>" << "<li>Casella vocale Hotline Campo: <br /><a href=mailto:hotlinecampo@sirio-is.it>hotlinecampo@sirio-is.it</a> Tel. 02-36583540</li>"

View File

@ -11,6 +11,11 @@
#define F_OCFPI 313 #define F_OCFPI 313
#define F_RAGSOC 314 #define F_RAGSOC 314
#define F_RAGOCC 315 #define F_RAGOCC 315
#define F_IMPMIN 318
#define F_VENDITE 320
#define F_ACQUISTI 321
#define F_TOTALE 322
#define F_RIGHE 300 #define F_RIGHE 300

View File

@ -67,24 +67,14 @@ ENDPAGE
PAGE "Comunicazione Polivalente" 0 2 0 0 PAGE "Comunicazione Polivalente" 0 2 0 0
GROUPBOX DLG_NULL 78 6 GROUPBOX DLG_NULL 53 5
BEGIN BEGIN
PROMPT 1 0 "@bFiltri di visualizzazione" PROMPT 1 0 "@bFiltri di visualizzazione"
END END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
CHECKTYPE REQUIRED
FLAGS "AU"
GROUP 1
NUM_EXPR #THIS_FIELD>=2012
WARNING "Anno non valido"
END
LIST F_TIPO 2 10 LIST F_TIPO 2 10
BEGIN BEGIN
PROMPT 21 1 "Tipo " PROMPT 2 1 ""
ITEM "FE|Spesometro" ITEM "FE|Spesometro"
ITEM "BL|Black List" ITEM "BL|Black List"
ITEM "XX|Ignorati" ITEM "XX|Ignorati"
@ -92,6 +82,16 @@ BEGIN
ITEM "**|Tutti" ITEM "**|Tutti"
END END
NUMBER F_ANNO 4
BEGIN
PROMPT 16 1 "Anno "
CHECKTYPE REQUIRED
FLAGS "AU"
GROUP 1
NUM_EXPR #THIS_FIELD>=2012
WARNING "Anno non valido"
END
LIST F_TIPOCF 1 10 LIST F_TIPOCF 1 10
BEGIN BEGIN
PROMPT 2 2 "" PROMPT 2 2 ""
@ -118,24 +118,9 @@ BEGIN
GROUP 1 GROUP 1
END END
STRING F_RAGSOC 50 49
BEGIN
PROMPT 26 2 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT
INPUT RAGSOC F_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Partita IVA@15" PAIV
COPY OUTPUT F_CODCF
ADD RUN CG0 -1
GROUP 1
END
STRING F_OCFPI 16 STRING F_OCFPI 16
BEGIN BEGIN
PROMPT 2 3 "Occ." PROMPT 29 2 "Occas."
USE LF_OCCAS USE LF_OCCAS
INPUT CFPI F_OCFPI INPUT CFPI F_OCFPI
DISPLAY "Codice@16" CFPI DISPLAY "Codice@16" CFPI
@ -149,30 +134,84 @@ BEGIN
MESSAGE HIDE,F_RAGSOC|SHOW,F_RAGOCC MESSAGE HIDE,F_RAGSOC|SHOW,F_RAGOCC
END END
STRING F_RAGSOC 50 49
BEGIN
PROMPT 2 3 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT
INPUT RAGSOC F_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice" CODCF
DISPLAY "Codice Fiscale@16" COFI
DISPLAY "Partita IVA@15" PAIV
COPY OUTPUT F_CODCF
ADD RUN CG0 -1
GROUP 1
END
STRING F_RAGOCC 50 49 STRING F_RAGOCC 50 49
BEGIN BEGIN
PROMPT 26 3 "" PROMPT 1 3 ""
FLAGS "H" FLAGS "H"
GROUP 1 GROUP 1
END END
STRING F_OUTFOLDER 255 45 GROUPBOX DLG_NULL 24 5
BEGIN BEGIN
PROMPT 2 4 "Cartella " PROMPT 55 0 "@bTotali"
END
CURRENCY F_VENDITE 16
BEGIN
PROMPT 56 1 "Ven. "
FLAGS "L"
END
CURRENCY F_ACQUISTI 16
BEGIN
PROMPT 56 2 "Acq. "
FLAGS "L"
END
TEXT DLG_NULL
BEGIN
PROMPT 56 3 "@bTot."
END
CURRENCY F_TOTALE 16
BEGIN
PROMPT 61 3 ""
FLAGS "LG"
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 5 "@bParametri di generazione file"
END
STRING F_OUTFOLDER 255 65
BEGIN
PROMPT 2 6 "Cartella "
DSELECT DSELECT
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "M" FLAGS "M"
WARNING "Specificare una cartella di destinazione valida" WARNING "Specificare una cartella di destinazione valida"
END END
CURRENCY F_IMPMIN 8
BEGIN
PROMPT 2 7 "Imponibile minimo fatture (dettaglianti) "
END
BOOLEAN F_DEFINITIVO BOOLEAN F_DEFINITIVO
BEGIN BEGIN
PROMPT 65 4 "Definitivo" PROMPT 58 7 "Invio definitivo"
END END
SPREADSHEET F_RIGHE SPREADSHEET F_RIGHE
BEGIN BEGIN
PROMPT 0 6 "" PROMPT 0 9 ""
ITEM "Numero\nRegistraz.@7F" ITEM "Numero\nRegistraz.@7F"
ITEM "Forzata@C" ITEM "Forzata@C"
ITEM "Ignora@5" ITEM "Ignora@5"