campo-sirio/src/ve/ve5800.cpp
francescofucarino 2b2dd71239 Patch level : 12.0 1014
Files correlati     : ve0.exe ve5800a.h ve5800a.msk ve5800a.uml ve5800.cpp velib04.cpp
Commento            :

Aggiunto Raggruppamento righe documenti con medesima descrizione.

Interno :
2020-11-25 16:50:43 +01:00

110 lines
2.8 KiB
C++

#include "ve5.h"
#include "velib.h"
#include "ve5800a.h"
#include <applicat.h>
#include <automask.h>
#include <config.h>
#include <defmask.h>
#include <execp.h>
#include <incstr.h>
#include <golem.h>
#include <prefix.h>
#include <clifo.h>
#include <doc.h>
#include <rdoc.h>
#include "velib04.h"
#include "../mg/mglib.h"
///////////////////////////////////////////////////////////
// Maschera principale
///////////////////////////////////////////////////////////
class TRaggruppamento_documenti_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TRaggruppamento_documenti_mask() : TAutomask("ve5800a") {}
virtual ~TRaggruppamento_documenti_mask() {}
};
bool TRaggruppamento_documenti_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case DLG_SAVEREC:
if (e == fe_button)
stop_run(K_AUTO_ENTER);
break;
default:
break;
}
return TRUE;
}
///////////////////////////////////////////////////////////
// Applicazione principale
///////////////////////////////////////////////////////////
class TRaggruppamento_documenti : public TSkeleton_application
{
public:
void raggruppa_doc(const TMask & m);
virtual void main_loop();
};
void TRaggruppamento_documenti::raggruppa_doc(const TMask & m)
{
TRaggruppamento_documento ragg(m.get(F_CODICE_ELAB));
TLista_documenti doc_ingresso;
TLista_documenti doc_uscita;
TToken_string tipi_iniziali;
TToken_string stati_iniziali;
TString numerazione_iniziale = ragg.codice_numerazione_iniziale();
const int anno = m.get_int(F_ANNO);
const long dal_ndoc = m.get_long(F_FRNDOC);
const long al_ndoc = m.get_long(F_TONDOC);
ragg.tipi_stati_iniziali(tipi_iniziali, stati_iniziali);
if (doc_ingresso.read('D', ' ', 0L, anno, tipi_iniziali, stati_iniziali,
nulldate, nulldate, numerazione_iniziale, dal_ndoc, al_ndoc) > 0)
{
if (ragg.elabora(doc_ingresso, doc_uscita, today))
{
if (doc_uscita.write(true) == NOERR)
{
if (doc_ingresso.rewrite() != NOERR)
fatal_box(TR("Errore nella scrittura documenti d'ingresso"));
}
else
fatal_box(TR("Errore nella scrittura documenti di destinazione"));
}
}
}
void TRaggruppamento_documenti::main_loop()
{
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, LF_MOVMAG, NULL);
open_files(LF_ANAMAG, LF_CLIFO, LF_CFVEN, LF_OCCAS, LF_RMOVMAG, NULL);
TRaggruppamento_documenti_mask m;
m.set(F_CODDITTA, prefix().get_codditta(), true);
while (m.run()==K_ENTER)
raggruppa_doc(m);
}
int ve5800(int argc, char** argv)
{
TRaggruppamento_documenti app;
app.run(argc, argv, TR("Raggruppamento documenti"));
return 0;
}