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:
parent
cdc029a904
commit
6055e4ab1a
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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 );
|
||||
|
@ -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
|
||||
|
117
ve/velib02.cpp
117
ve/velib02.cpp
@ -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));
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user