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 ""
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
BEGIN
PROMPT 1 1 "Numero "
PROMPT 1 2 "Numero "
FIELD NPROGTR
KEY 1
USE LF_EFFETTI KEY 1
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF=TIPOCF
USE LF_EFFETTI SELECT (TIPOCF=#F_TIPOCF)&&(BETWEEN(CODCF,#F_CODCF,#F_CODCF))
JOIN LF_CLIFO INTO CODCF=CODCF TIPOCF=TIPOCF
INPUT NPROGTR F_NPROGTR
DISPLAY "Nr.progr." NPROGTR
DISPLAY "Tipo" TIPOCF
@ -32,16 +42,6 @@ BEGIN
MESSAGE COPY,10@
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
BEGIN
PROMPT 1 3 "Cliente"
@ -91,8 +91,8 @@ BEGIN
PROMPT 1 4 "Data scadenza "
FIELD DATASCAD
KEY 3
USE LF_EFFETTI KEY 3
JOIN LF_CLIFO TO LF_EFFETTI KEY 1 INTO CODCF=CODCF TIPOCF="C"
USE LF_EFFETTI KEY 3 SELECT (TIPOCF=#F_TIPOCF)&&(BETWEEN(CODCF, #F_CODCF, #F_CODCF))
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT DATASCAD F_DATASCAD
INPUT NPROGTR F_NPROGTR
DISPLAY "Data scadenza" DATASCAD
@ -100,6 +100,7 @@ BEGIN
DISPLAY "Codice cliente" CODCF
DISPLAY "Nr. distinta" NDIST
DISPLAY "Tipo distinta" TIPODIST
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
COPY OUTPUT F_NPROGTR
OUTPUT F_DATASCAD DATASCAD
CHECKTYPE REQUIRED

View File

@ -10,7 +10,7 @@
#include <clifo.h>
#include <cfven.h>
#include <partite.h>
#include <doc.h>
#include <mov.h>
#include <rmov.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++)
{
const TRectype& reff = eff.row_r(r);
const int anno = reff.get_int(REFF_ANNO);
const TString16 part = reff.get(REFF_NUMPART);
int anno = reff.get_int(REFF_ANNO);
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 nrata = reff.get_int(REFF_NRATA);
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)
{
case se_query_add:
if (!field(F_UNCONTABIL).active()) // Non posso modificare distinte contabilizzate
{
TOperable_field& ronaldo = (TOperable_field&)field(F_AGGIORNA);
if (ronaldo.active())
on_field_event(ronaldo, fe_button, 0);
}
return false;
case se_query_modify:
if (field(F_UNCONTABIL).active()) // Non posso modificare distinte contabilizzate
return false;
break;
case se_notify_modify:
_spork = true;
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);
if (!numdist.empty())
{
bool go = TRUE;
bool go = true;
if (!numdist.enabled() && sfield(F_SHEET).items() > 0)
{
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)
{
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)
msg << key << ' ';
warning_box(msg);
@ -1067,7 +1109,7 @@ bool TPE_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
}
break;
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)))
{
TSheet_field& sheet = sfield(F_SHEET);

View File

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