Patch level : 10.944
Files correlati : ve0.exe ve1.exe ve5.exe ve6.exe Ricompilazione Demo : [ ] Commento : Nella generazione dei movimenti di magazzino ora viene controllato se esiste già un movimento dl documento in oggetto anche se il numero di movimento di magazzino sul documento e' zero in modo da non generare mai movimenti doppi. Si puo' provare simulando questa situazionecio'e toglienfodo il numero di mvimento di magazzino dalla testata del documento. Aggiornata l'indetraibilità delle righe a cambio di commessa. git-svn-id: svn://10.65.10.50/branches/R_10_00@21719 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ae29cd6219
commit
a61449905f
@ -19,9 +19,10 @@ TIPOCF|1|1|0|Tipo <C>liente / <F>ornitore
|
||||
CODCF|3|6|0|Codice cliente /fornitore
|
||||
CODINDSP|2|3|0|Codice Indirizzo di spedizione
|
||||
NUMREGST|3|7|0|Numero di registrazione sul giornale
|
||||
5
|
||||
6
|
||||
NUMREG|
|
||||
ANNOES+NUMREG|X
|
||||
DATAREG+NUMREG|X
|
||||
DATACOMP+NUMREG|X
|
||||
TIPOCF+CODCF+CODINDSP+DATACOMP+NUMREG|X
|
||||
DOCPROVV+ANNODOC+CODNUM+NUMDOC|X
|
||||
|
@ -389,6 +389,8 @@ real TDocumento::spese_incasso(real & imp, int ndec, TTipo_importo t) const
|
||||
if (pag.importo_rata(i) >= impmineff) // Se la rata supera il minimo contrattuale
|
||||
{
|
||||
const TTipo_pag tp = (TTipo_pag)pag.tipo_rata(i);
|
||||
|
||||
if (spese_inc.objptr(tp) != NULL)
|
||||
imp_spese += (const real&)spese_inc[tp];
|
||||
}
|
||||
}
|
||||
@ -1113,6 +1115,22 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
||||
TLocalisamfile m(LF_MOVMAG);
|
||||
mov.zero();
|
||||
if (do_movmag && num_movmag <= 0)
|
||||
{
|
||||
m.setkey(6);
|
||||
m.zero();
|
||||
m.put(MOVMAG_DOCPROVV, myself.get(DOC_PROVV));
|
||||
m.put(MOVMAG_ANNODOC, myself.anno());
|
||||
m.put(MOVMAG_CODNUM, myself.numerazione());
|
||||
m.put(MOVMAG_NUMDOC, myself.numero());
|
||||
if (m.read(_isequal) == NOERR)
|
||||
{
|
||||
num_movmag = m.get_long(MOVMAG_NUMREG);
|
||||
myself.put(DOC_MOVMAG, num_movmag);
|
||||
}
|
||||
m.setkey(1);
|
||||
m.zero();
|
||||
}
|
||||
if (do_movmag && num_movmag <= 0)
|
||||
{
|
||||
err = mov.write(m);
|
||||
if (err != NOERR)
|
||||
|
@ -2659,6 +2659,27 @@ bool codcms_handler(TMask_field& f, KEY key)
|
||||
if ((key == K_TAB && f.focusdirty()) || key == K_ENTER)
|
||||
{
|
||||
// Controlla se c'e' la gestione dei centri di costo al secondo livello
|
||||
if (mask.codcms() != codcms)
|
||||
{
|
||||
TDocumento & doc = mask.doc();
|
||||
TSheet_field & sf = mask.sfield(F_SHEET);
|
||||
const int rows = doc.physical_rows();
|
||||
|
||||
doc.put(DOC_CODCMS, codcms);
|
||||
for (int r = 1; r <= rows; r++)
|
||||
{
|
||||
TRiga_documento & riga = doc[r];
|
||||
const TMask & m = sf.sheet_row_mask(r -1);
|
||||
|
||||
if (m.id2pos(FR_TIPODET) >= 0 && m.field(FR_TIPODET).active()) //solo se attivo il campo di indetraibilita'...
|
||||
{
|
||||
riga.cms2tipodet();
|
||||
riga.autoload(sf);
|
||||
sf.force_update(r - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mask.cdc_start() > 0 && mask.cdc_start() > mask.cms_start() && mask.codcms() != codcms)
|
||||
{
|
||||
mask.codcms() = codcms;
|
||||
|
Loading…
x
Reference in New Issue
Block a user