Correzioni a gestione distinte in modo da non bloccarsi su distinte non generate da questo programma

git-svn-id: svn://10.65.10.50/branches/R_10_00@22656 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-05-23 14:29:40 +00:00
parent 896b7a6552
commit e361f0becd
3 changed files with 74 additions and 31 deletions

View File

@ -11,13 +11,23 @@ BEGIN
PROMPT 0 0 "" PROMPT 0 0 ""
END END
LIST F_TIPOCF 10
BEGIN
PROMPT 1 1 "Tipo effetto "
ITEM "C|Attivo"
MESSAGE SHOW,8@|HIDE,9@
ITEM "F|Passivo"
MESSAGE HIDE,8@|SHOW,9@
FIELD TIPOCF
END
NUMBER F_NPROGTR 7 NUMBER F_NPROGTR 7
BEGIN BEGIN
PROMPT 1 1 "Numero " PROMPT 1 2 "Numero "
FIELD NPROGTR FIELD NPROGTR
KEY 1 KEY 1
USE LF_EFFETTI KEY 1 USE LF_EFFETTI SELECT (TIPOCF=#F_TIPOCF)&&(BETWEEN(CODCF,#F_CODCF,#F_CODCF))
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF=TIPOCF JOIN LF_CLIFO INTO CODCF=CODCF TIPOCF=TIPOCF
INPUT NPROGTR F_NPROGTR INPUT NPROGTR F_NPROGTR
DISPLAY "Nr.progr." NPROGTR DISPLAY "Nr.progr." NPROGTR
DISPLAY "Tipo" TIPOCF DISPLAY "Tipo" TIPOCF
@ -32,16 +42,6 @@ BEGIN
MESSAGE COPY,10@ MESSAGE COPY,10@
END END
LIST F_TIPOCF 10
BEGIN
PROMPT 1 2 "Tipo effetto "
ITEM "C|Attivo"
MESSAGE SHOW,8@|HIDE,9@
ITEM "F|Passivo"
MESSAGE HIDE,8@|SHOW,9@
FIELD TIPOCF
END
TEXT DLG_NULL TEXT DLG_NULL
BEGIN BEGIN
PROMPT 1 3 "Cliente" PROMPT 1 3 "Cliente"
@ -91,8 +91,8 @@ BEGIN
PROMPT 1 4 "Data scadenza " PROMPT 1 4 "Data scadenza "
FIELD DATASCAD FIELD DATASCAD
KEY 3 KEY 3
USE LF_EFFETTI KEY 3 USE LF_EFFETTI KEY 3 SELECT (TIPOCF=#F_TIPOCF)&&(BETWEEN(CODCF, #F_CODCF, #F_CODCF))
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF="C" JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT DATASCAD F_DATASCAD INPUT DATASCAD F_DATASCAD
INPUT NPROGTR F_NPROGTR INPUT NPROGTR F_NPROGTR
DISPLAY "Data scadenza" DATASCAD DISPLAY "Data scadenza" DATASCAD
@ -100,6 +100,7 @@ BEGIN
DISPLAY "Codice cliente" CODCF DISPLAY "Codice cliente" CODCF
DISPLAY "Nr. distinta" NDIST DISPLAY "Nr. distinta" NDIST
DISPLAY "Tipo distinta" TIPODIST DISPLAY "Tipo distinta" TIPODIST
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
COPY OUTPUT F_NPROGTR COPY OUTPUT F_NPROGTR
OUTPUT F_DATASCAD DATASCAD OUTPUT F_DATASCAD DATASCAD
CHECKTYPE REQUIRED CHECKTYPE REQUIRED

View File

@ -10,7 +10,7 @@
#include <clifo.h> #include <clifo.h>
#include <cfven.h> #include <cfven.h>
#include <partite.h> #include <doc.h>
#include <mov.h> #include <mov.h>
#include <rmov.h> #include <rmov.h>
#include "../cg/cgsaldac.h" #include "../cg/cgsaldac.h"
@ -488,8 +488,45 @@ bool TPE_mask::fill_distinta(bool clear_all)
for (int r = 1; r <= eff.rows_r(); r++) for (int r = 1; r <= eff.rows_r(); r++)
{ {
const TRectype& reff = eff.row_r(r); const TRectype& reff = eff.row_r(r);
const int anno = reff.get_int(REFF_ANNO); int anno = reff.get_int(REFF_ANNO);
const TString16 part = reff.get(REFF_NUMPART); TString8 part = reff.get(REFF_NUMPART);
if (anno <= 0 || part.blank())
{
TToken_string dockey;
dockey.add(reff.get(REFF_PROVV));
dockey.add(reff.get(REFF_ANNODOC));
dockey.add(reff.get(REFF_CODNUM));
dockey.add(reff.get(REFF_NFATT));
const long numreg = atol(cache().get(LF_DOC, dockey, DOC_NUMREG));
if (numreg > 0)
{
TPartite_array games;
if (games.add_numreg(numreg) == 1)
{
const TPartita* g = games.first();
const int nriga = g->prima_fattura(numreg);
if (nriga > 0)
{
TRectype& wreff = (TRectype&)reff;
wreff.put(REFF_ANNO, anno = g->anno());
wreff.put(REFF_NUMPART, part = g->numero());
wreff.put(REFF_NRIGA, nriga);
}
}
}
if (anno <= 0)
{
warning_box(TR("La riga %d della distinta è priva di riferimenti al saldaconto"), e+1);
if (e == 0)
{
e = dist.items();
break;
}
}
}
const int nriga = reff.get_int(REFF_NRIGA); const int nriga = reff.get_int(REFF_NRIGA);
const int nrata = reff.get_int(REFF_NRATA); const int nrata = reff.get_int(REFF_NRATA);
TPartita game(clifo, anno, part); TPartita game(clifo, anno, part);
@ -883,12 +920,17 @@ bool TPE_mask::on_sheet_event(TOperable_field& o, TField_event e, long jolly)
switch(e) switch(e)
{ {
case se_query_add: case se_query_add:
if (!field(F_UNCONTABIL).active()) // Non posso modificare distinte contabilizzate
{ {
TOperable_field& ronaldo = (TOperable_field&)field(F_AGGIORNA); TOperable_field& ronaldo = (TOperable_field&)field(F_AGGIORNA);
if (ronaldo.active()) if (ronaldo.active())
on_field_event(ronaldo, fe_button, 0); on_field_event(ronaldo, fe_button, 0);
} }
return false; return false;
case se_query_modify:
if (field(F_UNCONTABIL).active()) // Non posso modificare distinte contabilizzate
return false;
break;
case se_notify_modify: case se_notify_modify:
_spork = true; _spork = true;
update_total(); update_total();
@ -989,7 +1031,7 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
TEdit_field& numdist = efield(F_DIST); TEdit_field& numdist = efield(F_DIST);
if (!numdist.empty()) if (!numdist.empty())
{ {
bool go = TRUE; bool go = true;
if (!numdist.enabled() && sfield(F_SHEET).items() > 0) if (!numdist.enabled() && sfield(F_SHEET).items() > 0)
{ {
go = check_fields(); go = check_fields();
@ -1057,7 +1099,7 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
if (movs.items() > 0) if (movs.items() > 0)
{ {
TString msg; TString msg;
msg = "E' necessario cancellare i seguenti movimenti contabili:\n"; msg = TR("E' necessario cancellare i seguenti movimenti contabili:\n");
FOR_EACH_ASSOC_OBJECT(movs, hash, key, obj) FOR_EACH_ASSOC_OBJECT(movs, hash, key, obj)
msg << key << ' '; msg << key << ' ';
warning_box(msg); warning_box(msg);
@ -1067,7 +1109,7 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
} }
break; break;
case DLG_DELREC: case DLG_DELREC:
if (e == fe_button && yesno_box("Confermare l'eliminazione della distinta %ld", if (e == fe_button && yesno_box(FR("Confermare l'eliminazione della distinta %ld"),
get_long(F_DIST))) get_long(F_DIST)))
{ {
TSheet_field& sheet = sfield(F_SHEET); TSheet_field& sheet = sfield(F_SHEET);

View File

@ -312,11 +312,11 @@ END
SPREADSHEET F_SHEET 0 -2 SPREADSHEET F_SHEET 0 -2
BEGIN BEGIN
PROMPT 0 12 "" PROMPT 0 12 ""
ITEM "Importo@18" ITEM "Importo@16"
ITEM "A/S@3" ITEM "A/S@3"
ITEM "Data Pagamento" ITEM "Data\nPagamento@10"
ITEM "Val.Ben." ITEM "Val.\nBen.@3"
ITEM "Residuo@18" ITEM "Residuo@16"
ITEM "Codice" ITEM "Codice"
ITEM "Ragione Sociale@20" ITEM "Ragione Sociale@20"
ITEM "Anno" ITEM "Anno"
@ -458,9 +458,9 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DCUP 50 30 STRING F_DCUP 50 35
BEGIN BEGIN
PROMPT 40 8 "" PROMPT 28 8 ""
USE %CUP KEY 2 USE %CUP KEY 2
INPUT S0 F_DCUP INPUT S0 F_DCUP
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
@ -482,9 +482,9 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DCIG 50 30 STRING F_DCIG 50 35
BEGIN BEGIN
PROMPT 40 9 "" PROMPT 28 9 ""
USE %CIG KEY 2 USE %CIG KEY 2
INPUT S0 F_DCIG INPUT S0 F_DCIG
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0