Patch level : 4.0 666

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

Bugs 0000689
Aggiungere ai documenti un campo data rientro (DATASCIMP) da considerare nella disponibilità per articolo


git-svn-id: svn://10.65.10.50/trunk@14623 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2006-12-12 13:53:57 +00:00
parent f58394143c
commit e51725555c
5 changed files with 35 additions and 14 deletions

View File

@ -208,9 +208,9 @@ bool TStampa_ordini::document_row_filter(const TRectype& row) const
{
const TDate datacons = row.get(RDOC_DATACONS);
if (_from_cons.ok() && datacons < _from_cons)
return FALSE;
return false;
if (_to_cons.ok() && datacons > _from_cons)
return FALSE;
return false;
}
if (_TEA_rord > ' ')

View File

@ -168,9 +168,10 @@ void TStampa_dettaglio_articoli::set_form()
if (_data_oss.ok())
{
s.format("&& (ANSI(%d->DATACONS)<=\"%s\")", LF_RIGHEDOC,
(const char*)_data_oss.string(ANSI));
s.format("&& (ANSI(%d->DATACONS)<=\"%s\")", LF_RIGHEDOC, (const char*) _data_oss.string(ANSI));
filter_expr << s;
// s.format("&& ((ANSI(%d->DATASCIMP)==\"\")||(ANSI(%d->DATASCIMP)>=\"%s\"))", LF_DOC, LF_DOC, (const char*) _data_oss.string(ANSI));
// filter_expr << s;
}
// Setta i range per il codice articolo

View File

@ -22,14 +22,21 @@ TOrdine_form::~TOrdine_form()
const int TOrdine_form::find_period(const TDate& dc)
{
CHECK(_date_array, "Invalid date array in TOrdine_form");
for (int i = _date_array->last(); i >= 0; i--) // ciuccialo alla rovescia... ehehe ;)
{
TDate& dt = (TDate&)*_date_array->objptr(i);
if (dc > dt)
break;
}
return i+1;
if (dc <= (TDate&)*_date_array->objptr(0))
return 0;
const int last = _date_array->last();
for (int i = last; i >= 0; i--)
{
TDate& dt = (TDate&)*_date_array->objptr(i);
if (dc > dt)
return i + 1;
}
return -1;
}
bool TOrdine_form::genera_intestazione_supplementare(pagetype p, short y)
@ -252,7 +259,7 @@ bool TOrdine_form::validate(TForm_item &cf, TToken_string &s)
const bool is_ordine_cliente = doc.get(DOC_TIPOCF)[0] == 'C';
const TString16 causmag(doc.get(DOC_CAUSMAG));
const TString16 um(rdoc.get(RDOC_UMQTA));
const TDate datacons(doc.get_date(RDOC_DATACONS));
const TDate datacons(rdoc.get_date(RDOC_DATACONS));
int segno = is_ordine_cliente ? -1 : +1; // default
if (causmag.not_empty()) // se la causale esiste consulta il segno
{
@ -270,6 +277,18 @@ bool TOrdine_form::validate(TForm_item &cf, TToken_string &s)
_totdisp.add(ZERO, index); // Added by Guy! Should never happen :-)
real& rv = (real&) _totdisp[index];
rv += qtares;
const TDate datascimp(doc.get_date("DATASCIMP"));
if (datascimp.ok())
{
const int last_index = find_period(datascimp);
if (last_index >= 0)
{
real& rv = (real&) _totdisp[last_index];
rv -= qtares;
}
}
}
else
if (command == "PRNUM") // Stampa l'unita' di misura principale

View File

@ -1,3 +1,3 @@
33
0
$doc|0|0|523|0|Documenti di vendita|NDOC*3||
$doc|0|0|531|0|Documenti di vendita|NDOC||

View File

@ -1,5 +1,5 @@
33
79
80
CODNUM|1|4|0|Codice della numerazione
ANNO|2|4|0|Anno
PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo
@ -79,6 +79,7 @@ CODCOSTO|1|20|0|Centro di costo
NUMREG|3|7|0|Numero movimento contabilizzato
NUMANT|3|7|0|Numero movimento anticipo contabilizzato
NUMREGCA|3|7|0|Numero di operazione contabilita' analitica
DATASCIMP|5|8|0|Data fine impegno
4
PROVV+ANNO+CODNUM+NDOC|
TIPOCF+CODCF+PROVV+ANNO+DATADOC+CODNUM+NDOC|X