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:
alex 2011-02-26 22:49:55 +00:00
parent ae29cd6219
commit a61449905f
3 changed files with 41 additions and 1 deletions

@ -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;