Patch level : 2.0 476

Files correlati     : ve0.exe
Ricompilazione Demo : [ ]
Commento            :

AO20030
Se premo sulle frecce di riferimento record sul pulsante "Ricerca" apre
sempre l'ultima registrazione presente ma dell'ultimo tipo documento inserito.
Ad esempio se scelgo come tipo documento F01 e premo sulla freccia di
puntamento all'ultimo record mi apre l'ultimo documento inserito per il
tipo documento ORC.

CM791064
Durante la fase di importazione fatture in CAMPO da altre procedure tramite
il protocolo INI, fare in modo che se nelle righe del documento da importare
viene riscontrato un articolo non esistente in anagrafica articoli,
la procedura non si blocchi con la segnalazione di "Errore fatale" che
obbliga a resettare il Pc , ma dare una segnalazione tipo "Manca codice
articolo in anagrafica" e dare la possibilità all'utente di inserirlo
direttamente dalla fase di importazione nella relativa pagina del documento
ricevuto in quel momento.


git-svn-id: svn://10.65.10.50/trunk@11171 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-05-22 15:20:01 +00:00
parent cdc029a904
commit 6055e4ab1a
6 changed files with 114 additions and 95 deletions

View File

@ -18,14 +18,15 @@ void TMotore_application::init_query_mode( TMask& m )
{
disable_menu_item(M_FILE_PRINT);
if (_msk->get(F_CODNUM).empty())
TEdit_field& cn = _msk->efield(F_CODNUM);
if (cn.empty())
{
_msk->set(F_CODNUM, _codnum);
cn.set(_codnum);
if (_msk->field(F_TIPODOC).empty())
{
_msk->field(F_CODNUM).set_focusdirty(TRUE);
_msk->field(F_CODNUM).on_key(K_TAB);
_msk->field(F_CODNUM).set_dirty(FALSE);
cn.set_focusdirty(TRUE);
cn.on_key(K_TAB);
cn.set_dirty(FALSE);
_msk->set(F_TIPODOC, _tipodoc, TRUE);
}
}
@ -469,8 +470,23 @@ void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query)
// l'autoload ??
f.insert(-1, FALSE);
// Aggiunge la riga allo sheet
const bool checked = rec.get_bool(RDOC_CHECKED);
if (checked)
{
const TString& codart = rec.get(RDOC_CODARTMAG);
if (!codart.blank())
{
const TRectype& art = cache().get(LF_ANAMAG, codart);
if (art.empty())
{
error_box(FR("Articolo non valido sulla riga %d: %s"), i, (const char*)codart);
rec.zero(RDOC_CODARTMAG);
}
}
}
rec.autoload(f);
f.check_row(f.items()-1, 0x2);
@ -515,6 +531,6 @@ int ve0100( int argc, char* argv[])
{
TMotore_application a;
a.run( argc, argv, "Gestione documenti" );
a.run( argc, argv, TR("Gestione documenti"));
return 0;
}
}

View File

@ -49,6 +49,7 @@ class TMotore_application : public TRelation_application
virtual int write( const TMask& m );
virtual int rewrite( const TMask& m );
virtual void print();
virtual bool has_filtered_cursor() const { return TRUE; }
// Funzioni da associare ad ogni procedura
int user_function( int index );

View File

@ -11,6 +11,16 @@ PAGE "Estremi del documento" 1 1 60 14
PROMPT 1 0 "Estremi del documento"
END
LISTBOX F_PROVV 14
BEGIN
FIELD PROVV
PROMPT 46 3 "Tipo "
ITEM "D|Definitiva "
ITEM "P|Provvisoria"
KEY 1 2
FLAGS "P"
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 1 "Numerazione "
@ -82,8 +92,8 @@ PAGE "Estremi del documento" 1 1 60 14
FIELD NDOC
USE LF_DOC
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT ANNO F_ANNO SELECT
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_NDOC
DISPLAY "Num." CODNUM
@ -104,16 +114,6 @@ PAGE "Estremi del documento" 1 1 60 14
FLAG "R"
END
LISTBOX F_PROVV 14
BEGIN
FIELD PROVV
PROMPT 46 3 "Tipo "
ITEM "D|Definitiva "
ITEM "P|Provvisoria"
KEY 1 2
FLAGS "P"
END
STRING F_STATO 1
BEGIN
PROMPT 69 3 "Stato "
@ -160,4 +160,5 @@ PAGE "Estremi del documento" 1 1 60 14
END
ENDPAGE
ENDMASK

View File

@ -762,36 +762,36 @@ void TRiga_documento::autosave(TSheet_field & f)
row.add(" ", lordo_id);
f.sheet_mask().reset(FR_LORDO);
}
put( "TIPORIGA", row.get( f.cid2index(FR_TIPORIGA )) );
put( RDOC_TIPORIGA, row.get( f.cid2index(FR_TIPORIGA )) );
TString16 codmag(row.get(f.cid2index(FR_CODMAG)));
codmag.left_just(3);
codmag << row.get( f.cid2index(FR_CODDEP ));
put( "CODMAG", codmag);
put( "CODART", row.get( f.cid2index(FR_CODART )) );
put( RDOC_CODMAG, codmag);
put( RDOC_CODART, row.get( f.cid2index(FR_CODART )) );
TString liv;
for (int l = 0; l<4 ; l++)
doc().livelli().pack_grpcode(liv,row.get(f.cid2index(FR_LIV1+l)),l+1);
put( "LIVELLO", liv); // da modificare
put( RDOC_LIVELLO, liv); // da modificare
TString s(row.get(f.cid2index(FR_DESCR)));
int split_pos = s.find('\n');
const int descr_len = length("DESCR");
const int descr_len = length(RDOC_DESCR);
if (split_pos < 0 && s.len() > descr_len)
split_pos = descr_len;
if (split_pos > descr_len)
split_pos = descr_len;
if (split_pos > 0)
{
put( "DESCR", s.left(split_pos));
put("DESCLUNGA", "X");
put("DESCEST", s.mid(split_pos));
put(RDOC_DESCR, s.left(split_pos));
put(RDOC_DESCLUNGA, "X");
put(RDOC_DESCEST, s.mid(split_pos));
}
else
{
put("DESCR", s);
put("DESCLUNGA", "");
zero("DESCEST");
put(RDOC_DESCR, s);
zero(RDOC_DESCLUNGA);
zero(RDOC_DESCEST);
}
const int prezzo_id = f.cid2index(FR_PREZZO);
@ -802,35 +802,34 @@ void TRiga_documento::autosave(TSheet_field & f)
iva(codiva).scorpora(prezzo, doc().decimals(TRUE));
const TString prezzo_str(prezzo.string());
row.add(prezzo_str, prezzo_id);
f.sheet_mask().set(FR_PREZZO, prezzo_str);
}
put( "PREZZO", prezzo);
put( "UMQTA", row.get( f.cid2index(FR_UMQTA )) );
put( "QTA", row.get( f.cid2index(FR_QTA )) );
put( "QTAEVASA", row.get( f.cid2index(FR_QTAEVASA )) );
put( "RIGAEVASA", row.get( f.cid2index(FR_RIGAEVASA )) );
put( "TARA", row.get( f.cid2index(FR_TARA )) );
put( "PNETTO", row.get( f.cid2index(FR_PNETTO )) );
put( "NCOLLI", row.get( f.cid2index(FR_NCOLLI )) );
put( "DAEVADERE", row.get( f.cid2index(FR_DAEVADERE )) );
put( "SCONTO", row.get( f.cid2index(FR_SCONTO )) );
put( "PERCPROV", row.get( f.cid2index(FR_PERCPROV )) );
put( "IMPFISUN", row.get( f.cid2index(FR_IMPFISUN )) );
put( "IMPFISSO", row.get( f.cid2index(FR_IMPFISSO )) );
put( "CODIVA", codiva);
put( "ADDIVA", row.get( f.cid2index(FR_ADDIVA )) );
put( "ASPBENI", row.get( f.cid2index(FR_ASPBENI )) );
put( "CAUSMAG", row.get( f.cid2index(FR_CAUS )) );
put( RDOC_PREZZO, prezzo);
put( RDOC_UMQTA, row.get( f.cid2index(FR_UMQTA )) );
put( RDOC_QTA, row.get( f.cid2index(FR_QTA )) );
put( RDOC_QTAEVASA, row.get( f.cid2index(FR_QTAEVASA )) );
put( RDOC_RIGAEVASA, row.get( f.cid2index(FR_RIGAEVASA )) );
put( RDOC_TARA, row.get( f.cid2index(FR_TARA )) );
put( RDOC_PNETTO, row.get( f.cid2index(FR_PNETTO )) );
put( RDOC_NCOLLI, row.get( f.cid2index(FR_NCOLLI )) );
put( RDOC_DAEVADERE, row.get( f.cid2index(FR_DAEVADERE )) );
put( RDOC_SCONTO, row.get( f.cid2index(FR_SCONTO )) );
put( RDOC_PERCPROV, row.get( f.cid2index(FR_PERCPROV )) );
put( RDOC_IMPFISUN, row.get( f.cid2index(FR_IMPFISUN )) );
put( RDOC_IMPFISSO, row.get( f.cid2index(FR_IMPFISSO )) );
put( RDOC_CODIVA, codiva);
put( RDOC_ADDIVA, row.get( f.cid2index(FR_ADDIVA )) );
put( RDOC_ASPBENI, row.get( f.cid2index(FR_ASPBENI )) );
put( RDOC_CAUSMAG, row.get( f.cid2index(FR_CAUS )) );
TString16 codmagc(row.get(f.cid2index(FR_CODMAGC)));
codmagc.left_just(3);
codmagc << row.get( f.cid2index(FR_CODDEPC ));
put( "CODMAGC", codmagc);
put( "DATACONS", row.get( f.cid2index(FR_DATACONS )) );
put( "CODARTMAG", row.get( f.cid2index(FR_CODARTMAG )) );
put( "CHECKED", row.get( f.cid2index(FR_CHECKED )) );
put( RDOC_CODMAGC, codmagc);
put( RDOC_DATACONS, row.get( f.cid2index(FR_DATACONS )) );
put( RDOC_CODARTMAG, row.get( f.cid2index(FR_CODARTMAG )) );
put( RDOC_CHECKED, row.get( f.cid2index(FR_CHECKED )) );
put( RDOC_QTAGG1, row.get( f.cid2index(FR_QTAGG1 )) );
put( RDOC_QTAGG2, row.get( f.cid2index(FR_QTAGG2 )) );
put( RDOC_QTAGG3, row.get( f.cid2index(FR_QTAGG3 )) );
@ -850,42 +849,42 @@ void TRiga_documento::autoload(TSheet_field & f)
TToken_string & row = f.row(num);
row.cut(0);
row.add( get( "TIPORIGA" ), f.cid2index(FR_TIPORIGA ));
const TString16 codmag(get("CODMAG"));
row.add( get( RDOC_TIPORIGA ), f.cid2index(FR_TIPORIGA ));
const TString16 codmag(get(RDOC_CODMAG));
row.add( codmag.left(3), f.cid2index(FR_CODMAG ));
row.add( codmag.mid(3), f.cid2index(FR_CODDEP ));
row.add( get( "CODART" ), f.cid2index(FR_CODART ));
TString16 liv(get("LIVELLO"));
row.add( get( RDOC_CODART ), f.cid2index(FR_CODART ));
TString16 liv(get(RDOC_LIVELLO));
for (int l = 0; l<4 ; l++)
row.add(doc().livelli().unpack_grpcode(liv,l+1), f.cid2index(FR_LIV1+l ));
TString s(1024); s = get("DESCR");
if (get_bool("DESCLUNGA"))
TString s(1024); s = get(RDOC_DESCR);
if (get_bool(RDOC_DESCLUNGA))
s << get("DESCEST");
row.add(s, f.cid2index(FR_DESCR ));
row.add( get( "UMQTA" ), f.cid2index(FR_UMQTA ));
row.add( get( "PREZZO" ), f.cid2index(FR_PREZZO ));
row.add( get( "QTA" ), f.cid2index(FR_QTA ));
row.add( get( "QTAEVASA" ), f.cid2index(FR_QTAEVASA ));
row.add( get( "RIGAEVASA" ), f.cid2index(FR_RIGAEVASA ));
row.add( get( "TARA" ), f.cid2index(FR_TARA ));
row.add( get( "PNETTO" ), f.cid2index(FR_PNETTO ));
row.add( get( "NCOLLI" ), f.cid2index(FR_NCOLLI ));
row.add( get( "DAEVADERE" ), f.cid2index(FR_DAEVADERE ));
row.add( get( "SCONTO" ), f.cid2index(FR_SCONTO ));
row.add( get( "PERCPROV" ), f.cid2index(FR_PERCPROV ));
row.add( get( "IMPFISUN" ), f.cid2index(FR_IMPFISUN ));
row.add( get( "IMPFISSO" ), f.cid2index(FR_IMPFISSO ));
row.add( get( "CODIVA" ), f.cid2index(FR_CODIVA ));
row.add( get( "ADDIVA" ), f.cid2index(FR_ADDIVA ));
row.add( get( "ASPBENI" ), f.cid2index(FR_ASPBENI ));
row.add( get( "CAUSMAG" ), f.cid2index(FR_CAUS ));
row.add( get( RDOC_UMQTA ), f.cid2index(FR_UMQTA ));
row.add( get( RDOC_PREZZO ), f.cid2index(FR_PREZZO ));
row.add( get( RDOC_QTA ), f.cid2index(FR_QTA ));
row.add( get( RDOC_QTAEVASA ), f.cid2index(FR_QTAEVASA ));
row.add( get( RDOC_RIGAEVASA ), f.cid2index(FR_RIGAEVASA ));
row.add( get( RDOC_TARA ), f.cid2index(FR_TARA ));
row.add( get( RDOC_PNETTO ), f.cid2index(FR_PNETTO ));
row.add( get( RDOC_NCOLLI ), f.cid2index(FR_NCOLLI ));
row.add( get( RDOC_DAEVADERE ), f.cid2index(FR_DAEVADERE ));
row.add( get( RDOC_SCONTO ), f.cid2index(FR_SCONTO ));
row.add( get( RDOC_PERCPROV ), f.cid2index(FR_PERCPROV ));
row.add( get( RDOC_IMPFISUN ), f.cid2index(FR_IMPFISUN ));
row.add( get( RDOC_IMPFISSO ), f.cid2index(FR_IMPFISSO ));
row.add( get( RDOC_CODIVA ), f.cid2index(FR_CODIVA ));
row.add( get( RDOC_ADDIVA ), f.cid2index(FR_ADDIVA ));
row.add( get( RDOC_ASPBENI ), f.cid2index(FR_ASPBENI ));
row.add( get( RDOC_CAUSMAG ), f.cid2index(FR_CAUS ));
const TString16 codmagc(get("CODMAGC"));
row.add( codmagc.left(3), f.cid2index(FR_CODMAGC ));
row.add( codmagc.mid(3), f.cid2index(FR_CODDEPC ));
row.add( get("DATACONS"), f.cid2index(FR_DATACONS ));
row.add( get( "CODARTMAG" ), f.cid2index(FR_CODARTMAG));
row.add( get( "CHECKED" ), f.cid2index(FR_CHECKED));
row.add( get( RDOC_DATACONS ), f.cid2index(FR_DATACONS ));
row.add( get( RDOC_CODARTMAG ), f.cid2index(FR_CODARTMAG));
row.add( get( RDOC_CHECKED ), f.cid2index(FR_CHECKED));
row.add( get( RDOC_QTAGG1), f.cid2index(FR_QTAGG1));
row.add( get( RDOC_QTAGG2), f.cid2index(FR_QTAGG2));
row.add( get( RDOC_QTAGG3), f.cid2index(FR_QTAGG3));

View File

@ -845,9 +845,8 @@ void TDocumento_mask::update_giacenza()
const TString codart = row.get(sf.cid2index(FR_CODARTMAG));
real giac, disp;
if (codart.not_empty())
if (!codart.blank())
{
const TString& annoes = get(F_ANNO);
TString16 codmag = row.get(sf.cid2index(FR_CODMAG));
const TString16 coddep = row.get(sf.cid2index(FR_CODDEP));
if (!coddep.blank())
@ -863,6 +862,7 @@ void TDocumento_mask::update_giacenza()
break;
}
const TString8 annoes = get(F_ANNO);
TArticolo_giacenza art(codart);
giac = art.disponibilita(annoes, codmag, livello, TRUE);
disp = art.disponibilita(annoes, codmag, livello, FALSE);

View File

@ -477,8 +477,8 @@ bool codart_handler(TMask_field& f, KEY key )
if (f.to_check(key, TRUE))
{
if (f.get().not_empty())
row_mask.enable(FR_LIV1);
if (!f.empty())
row_mask.enable(FR_LIV1);
else
{
row_mask.reset(FR_LIV1);
@ -494,13 +494,10 @@ bool codart_handler(TMask_field& f, KEY key )
condv.set_testa(&mask);
condv.set_riga(&row_mask);
TLocalisamfile anamag(LF_ANAMAG);
TLocalisamfile umart(LF_UMART);
TString80 codart = f.get();
TRectype anamag = cache().get(LF_ANAMAG, codart); // anamag puo' cambiare
bool found = !anamag.empty();
TString80 codart(f.get());
anamag.setkey(1);
anamag.put(ANAMAG_CODART, codart);
bool found = anamag.read() == NOERR;
if (found)
row_mask.set(FR_CODARTMAG, codart, TRUE);
else
@ -510,18 +507,17 @@ bool codart_handler(TMask_field& f, KEY key )
codalt.setkey(2);
codalt.put(CODCORR_CODARTALT, codart);
if (codalt.read() == NOERR)
{
{
codart = codalt.get(CODCORR_CODART);
anamag.zero();
anamag.put(ANAMAG_CODART, codart);
found = anamag.read() == NOERR;
anamag = cache().get(LF_ANAMAG, codart);
found = !anamag.empty();
if (found)
row_mask.set(FR_CODARTMAG, codart, TRUE);
}
}
row_mask.set(FR_CHECKED, "X");
if (!found)
row_mask.set(FR_CODARTMAG, "", TRUE);
row_mask.set(FR_CODARTMAG, "", TRUE);
else
{
const TString16 lingua = mask.get(F_CODLIN);
@ -571,11 +567,17 @@ bool codart_handler(TMask_field& f, KEY key )
desc << "\n" << descest;
row_mask.set(FR_DESCR, desc);
/*
TLocalisamfile umart(LF_UMART);
umart.setkey(1);
umart.zero();
umart.put(UMART_CODART, codart);
if (umart.read(_isgteq) == NOERR && codart == umart.get(UMART_CODART))
*/
TString key; key << codart << "|1";
const TRectype& umart = cache().get(LF_UMART, key);
if (!umart.empty())
{
curr_um = umart.get(UMART_UM);
curr_fc = umart.get_real(UMART_FC);
@ -586,7 +588,7 @@ bool codart_handler(TMask_field& f, KEY key )
curr_fc = 1.0;
}
row_mask.set(FR_UMQTA, curr_um);
upd_colli_peso_tara(row_mask, anamag.curr());
upd_colli_peso_tara(row_mask, anamag);
}
condv.ricerca();