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:
luca 2008-10-10 14:29:21 +00:00
parent 7a88e65102
commit c6a114ab99
2 changed files with 35 additions and 38 deletions

View File

@ -39,7 +39,6 @@ bool TGenera_documenti_mask::on_field_event(TOperable_field& o, TField_event e,
class TGenera_documenti_app : public TSkeleton_application class TGenera_documenti_app : public TSkeleton_application
{ {
TGenera_documenti_mask* _msk; TGenera_documenti_mask* _msk;
TAssoc_array _quantita; TAssoc_array _quantita;
TConfig* _configlv; TConfig* _configlv;
@ -59,7 +58,7 @@ private:
void scansione_ritiri_anticipi(const long codcli, const long codind, const char ritoant); void scansione_ritiri_anticipi(const long codcli, const long codind, const char ritoant);
void scansione_consegne(const long codcli, const long codind); void scansione_consegne(const long codcli, const long codind);
//Metodo per il calcolo delle quantità in bolla //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 //Metodi aggiornare il conguaglio sui contratti
void aggiorna_conguaglio(const long codcli, const long codcont, const TString& codart, const real arr) const; void aggiorna_conguaglio(const long codcli, const long codcont, const TString& codart, const real arr) const;
@ -524,23 +523,20 @@ 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... //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... //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 //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 //scorro le righe documento
for (long i = 1; i <= doc.rows(); i++) for (long i = 1; i <= doc.rows(); i++)
{ {
//instanzio la riga corrente //instanzio la riga corrente
TRiga_documento& rdoc = doc[i]; const TRiga_documento& rdoc = doc[i];
//estraggo i dati di interesse //estraggo i dati di interesse
const TString80 codart = rdoc.get(RDOC_CODARTMAG); const TString80 codart = rdoc.get(RDOC_CODARTMAG);
const real qtardoc = rdoc.get_real(RDOC_QTA); 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 //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()) if (codart.full() && !qtardoc.is_zero())
{ {
TArticolo* art = rdoc.articolo(); TArticolo& art = rdoc.articolo();
//se l'articolo esiste
if (art != NULL)
{
//leggo se esiste già nel TAssoc_array //leggo se esiste già nel TAssoc_array
real *qta = (real*)_quantita.objptr(codart); real *qta = (real*)_quantita.objptr(codart);
//se non esiste //se non esiste
@ -557,16 +553,16 @@ void TGenera_documenti_app::calcolo_quantita(TDocumento& doc, const char ritoant
switch (ritoant) switch (ritoant)
{ {
case 'R': case 'R':
*qta += art->convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA)); *qta += art.convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA));
break; break;
case 'A': case 'A':
*qta -= art->convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA)); *qta -= art.convert_to_um(qtardoc, NULL, rdoc.get(RDOC_UMQTA));
break; break;
case 'B': case 'B':
{ {
const real qtagg3 = rdoc.get_real(RDOC_QTAGG3); const real qtagg3 = rdoc.get_real(RDOC_QTAGG3);
real modifica = qtardoc - qtagg3; real modifica = qtardoc - qtagg3;
*qta -= art->convert_to_um(modifica, NULL, rdoc.get(RDOC_UMQTA)); *qta -= art.convert_to_um(modifica, NULL, rdoc.get(RDOC_UMQTA));
} }
break; break;
default: default:
@ -574,7 +570,6 @@ void TGenera_documenti_app::calcolo_quantita(TDocumento& doc, const char ritoant
} }
} }
} }
}
return; return;
} }

View File

@ -72,6 +72,8 @@ Flags = ""
Item_01 = "Generazione Automatica", "lv2 -0", "F" Item_01 = "Generazione Automatica", "lv2 -0", "F"
Item_02 = "Gestione Manuale", "lv2 -1", "F" Item_02 = "Gestione Manuale", "lv2 -1", "F"
Item_03 = "Stampe", [LVMENU_050] Item_03 = "Stampe", [LVMENU_050]
Item_04 = "Generazione Bolle di consegna", "lv2 -3", "F"
Item_05 = "Acquisizione Bolle di ritiro", "", "F"
[LVMENU_050] [LVMENU_050]
Caption = "Stampe Giri" Caption = "Stampe Giri"