Patch level : 10.0
Files correlati : lvmenu.men Ricompilazione Demo : [ ] Commento : Aggiunta a menu la generazione bolle di consegna git-svn-id: svn://10.65.10.50/trunk@17413 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7a88e65102
commit
c6a114ab99
@ -39,7 +39,6 @@ bool TGenera_documenti_mask::on_field_event(TOperable_field& o, TField_event e,
|
||||
|
||||
class TGenera_documenti_app : public TSkeleton_application
|
||||
{
|
||||
|
||||
TGenera_documenti_mask* _msk;
|
||||
TAssoc_array _quantita;
|
||||
TConfig* _configlv;
|
||||
@ -59,7 +58,7 @@ private:
|
||||
void scansione_ritiri_anticipi(const long codcli, const long codind, const char ritoant);
|
||||
void scansione_consegne(const long codcli, const long codind);
|
||||
//Metodo per il calcolo delle quantità in bolla
|
||||
void calcolo_quantita(TDocumento& doc, const char ritoant);
|
||||
void calcolo_quantita(const TDocumento& doc, const char ritoant);
|
||||
//Metodi aggiornare il conguaglio sui contratti
|
||||
void aggiorna_conguaglio(const long codcli, const long codcont, const TString& codart, const real arr) const;
|
||||
|
||||
@ -524,55 +523,51 @@ void TGenera_documenti_app::scansione_consegne(const long codcli, const long cod
|
||||
//CALCOLO_QUANTITA: questa funzione scorre tutte le righe documento di una bolla di ritiro, riempiendo un...
|
||||
//TAssoc_array con le quantità ritirate per ogni articolo, sommando le diverse righe con lo stesso articolo...
|
||||
//Questa funzione viene richiamata per ogni documento valido individuato dalla SCANSIONE_RITIRI
|
||||
void TGenera_documenti_app::calcolo_quantita(TDocumento& doc, const char ritoant)
|
||||
void TGenera_documenti_app::calcolo_quantita(const TDocumento& doc, const char ritoant)
|
||||
{
|
||||
//scorro le righe documento
|
||||
for (long i = 1; i <= doc.rows(); i++)
|
||||
{
|
||||
//instanzio la riga corrente
|
||||
TRiga_documento& rdoc = doc[i];
|
||||
const TRiga_documento& rdoc = doc[i];
|
||||
//estraggo i dati di interesse
|
||||
const TString80 codart = rdoc.get(RDOC_CODARTMAG);
|
||||
const real qtardoc = rdoc.get_real(RDOC_QTA);
|
||||
//se è una riga che riguarda un articolo e se la quantità su questa riga non è nulla, allora la elaboro
|
||||
if (codart.full() && !qtardoc.is_zero())
|
||||
{
|
||||
TArticolo* art = rdoc.articolo();
|
||||
//se l'articolo esiste
|
||||
if (art != NULL)
|
||||
TArticolo& art = rdoc.articolo();
|
||||
//leggo se esiste già nel TAssoc_array
|
||||
real *qta = (real*)_quantita.objptr(codart);
|
||||
//se non esiste
|
||||
if (qta == NULL)
|
||||
{
|
||||
//leggo se esiste già nel TAssoc_array
|
||||
real *qta = (real*)_quantita.objptr(codart);
|
||||
//se non esiste
|
||||
if (qta == NULL)
|
||||
{
|
||||
//per ora memorizzo zero
|
||||
qta = new real;
|
||||
_quantita.add(codart,qta);
|
||||
}
|
||||
//aggiorno la quantità convertendola all'unità di misura di base, aggiungendola o sottraendola
|
||||
//...se si tratta di un ritiro o di un anticipo rispettivamente; nel caso della scansione delle
|
||||
//...bolle di consegna modificate a mano (caso 'B'), devo modificare la quantità da consegnare
|
||||
//...tenendo conto delle modifiche manuali
|
||||
switch (ritoant)
|
||||
{
|
||||
case 'R':
|
||||
*qta += art->convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA));
|
||||
break;
|
||||
case 'A':
|
||||
*qta -= art->convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA));
|
||||
break;
|
||||
case 'B':
|
||||
{
|
||||
const real qtagg3 = rdoc.get_real(RDOC_QTAGG3);
|
||||
real modifica = qtardoc - qtagg3;
|
||||
*qta -= art->convert_to_um(modifica, NULL, rdoc.get(RDOC_UMQTA));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//per ora memorizzo zero
|
||||
qta = new real;
|
||||
_quantita.add(codart,qta);
|
||||
}
|
||||
//aggiorno la quantità convertendola all'unità di misura di base, aggiungendola o sottraendola
|
||||
//...se si tratta di un ritiro o di un anticipo rispettivamente; nel caso della scansione delle
|
||||
//...bolle di consegna modificate a mano (caso 'B'), devo modificare la quantità da consegnare
|
||||
//...tenendo conto delle modifiche manuali
|
||||
switch (ritoant)
|
||||
{
|
||||
case 'R':
|
||||
*qta += art.convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA));
|
||||
break;
|
||||
case 'A':
|
||||
*qta -= art.convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA));
|
||||
break;
|
||||
case 'B':
|
||||
{
|
||||
const real qtagg3 = rdoc.get_real(RDOC_QTAGG3);
|
||||
real modifica = qtardoc - qtagg3;
|
||||
*qta -= art.convert_to_um(modifica, NULL, rdoc.get(RDOC_UMQTA));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
@ -72,6 +72,8 @@ Flags = ""
|
||||
Item_01 = "Generazione Automatica", "lv2 -0", "F"
|
||||
Item_02 = "Gestione Manuale", "lv2 -1", "F"
|
||||
Item_03 = "Stampe", [LVMENU_050]
|
||||
Item_04 = "Generazione Bolle di consegna", "lv2 -3", "F"
|
||||
Item_05 = "Acquisizione Bolle di ritiro", "", "F"
|
||||
|
||||
[LVMENU_050]
|
||||
Caption = "Stampe Giri"
|
||||
|
Loading…
x
Reference in New Issue
Block a user