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 :
This commit is contained in:
parent
640a6f8ecd
commit
2b2dd71239
@ -191,7 +191,10 @@
|
|||||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\src\ve\ve5700.cpp" />
|
<ClCompile Include="..\src\ve\ve5700.cpp">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\src\ve\ve5800.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<MskCompiler Include="..\src\ve\ve5100a.uml" />
|
<MskCompiler Include="..\src\ve\ve5100a.uml" />
|
||||||
@ -201,6 +204,7 @@
|
|||||||
<MskCompiler Include="..\src\ve\ve5500a.uml" />
|
<MskCompiler Include="..\src\ve\ve5500a.uml" />
|
||||||
<MskCompiler Include="..\src\ve\ve5600a.uml" />
|
<MskCompiler Include="..\src\ve\ve5600a.uml" />
|
||||||
<MskCompiler Include="..\src\ve\ve5700.uml" />
|
<MskCompiler Include="..\src\ve\ve5700.uml" />
|
||||||
|
<MskCompiler Include="..\src\ve\ve5800a.uml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\src\ve\ve5.h" />
|
<ClInclude Include="..\src\ve\ve5.h" />
|
||||||
@ -210,6 +214,7 @@
|
|||||||
<ClInclude Include="..\src\ve\ve5400.h" />
|
<ClInclude Include="..\src\ve\ve5400.h" />
|
||||||
<ClInclude Include="..\src\ve\ve5500.h" />
|
<ClInclude Include="..\src\ve\ve5500.h" />
|
||||||
<ClInclude Include="..\src\ve\ve5700.h" />
|
<ClInclude Include="..\src\ve\ve5700.h" />
|
||||||
|
<ClInclude Include="..\src\ve\ve5800a.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="AgaLib.vcxproj">
|
<ProjectReference Include="AgaLib.vcxproj">
|
||||||
|
@ -39,6 +39,9 @@
|
|||||||
<ClCompile Include="..\src\ve\ve5700.cpp">
|
<ClCompile Include="..\src\ve\ve5700.cpp">
|
||||||
<Filter>Sources</Filter>
|
<Filter>Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\src\ve\ve5800.cpp">
|
||||||
|
<Filter>Sources</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<MskCompiler Include="..\src\ve\ve5100a.uml">
|
<MskCompiler Include="..\src\ve\ve5100a.uml">
|
||||||
@ -62,6 +65,9 @@
|
|||||||
<MskCompiler Include="..\src\ve\ve5700.uml">
|
<MskCompiler Include="..\src\ve\ve5700.uml">
|
||||||
<Filter>Masks</Filter>
|
<Filter>Masks</Filter>
|
||||||
</MskCompiler>
|
</MskCompiler>
|
||||||
|
<MskCompiler Include="..\src\ve\ve5800a.uml">
|
||||||
|
<Filter>Masks</Filter>
|
||||||
|
</MskCompiler>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\src\ve\ve5.h">
|
<ClInclude Include="..\src\ve\ve5.h">
|
||||||
@ -85,6 +91,9 @@
|
|||||||
<ClInclude Include="..\src\ve\ve5700.h">
|
<ClInclude Include="..\src\ve\ve5700.h">
|
||||||
<Filter>Headers</Filter>
|
<Filter>Headers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\src\ve\ve5800a.h">
|
||||||
|
<Filter>Headers</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="campo.rc" />
|
<ResourceCompile Include="campo.rc" />
|
||||||
|
@ -473,6 +473,9 @@ void TMotore_application::do_elab( TDocumento& doc, int when) // C 90
|
|||||||
case _contabilizzazione_analitica :
|
case _contabilizzazione_analitica :
|
||||||
el = new TContabilizzazione_analitica(eld);
|
el = new TContabilizzazione_analitica(eld);
|
||||||
break;
|
break;
|
||||||
|
case _raggruppamento_documento:
|
||||||
|
el = new TRaggruppamento_documento(eld);
|
||||||
|
break;
|
||||||
default :
|
default :
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ int main(int argc, char** argv)
|
|||||||
case 4 : ve5500(argc, argv); break; // Compatta documenti
|
case 4 : ve5500(argc, argv); break; // Compatta documenti
|
||||||
case 5 : ve5600(argc, argv); break; // recupero testate documenti
|
case 5 : ve5600(argc, argv); break; // recupero testate documenti
|
||||||
case 6 : ve5700(argc, argv); break; // Cambiamento tipo documenti fp (TD01, ...)
|
case 6 : ve5700(argc, argv); break; // Cambiamento tipo documenti fp (TD01, ...)
|
||||||
|
case 7 : ve5800(argc, argv); break; // Raggruppamento documenti
|
||||||
default: ve5100(argc, argv); break; // Cancella documenti
|
default: ve5100(argc, argv); break; // Cancella documenti
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -8,6 +8,7 @@ int ve5400(int argc, char* argv[]);
|
|||||||
int ve5500(int argc, char* argv[]);
|
int ve5500(int argc, char* argv[]);
|
||||||
int ve5600(int argc, char* argv[]);
|
int ve5600(int argc, char* argv[]);
|
||||||
int ve5700(int argc, char* argv[]);
|
int ve5700(int argc, char* argv[]);
|
||||||
|
int ve5800(int argc, char* argv[]);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
109
src/ve/ve5800.cpp
Normal file
109
src/ve/ve5800.cpp
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
#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;
|
||||||
|
}
|
8
src/ve/ve5800a.h
Normal file
8
src/ve/ve5800a.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#define F_CODICE_ELAB 101
|
||||||
|
#define F_DESC_ELAB 102
|
||||||
|
#define F_ANNO 103
|
||||||
|
#define F_TIPI_DOC 104
|
||||||
|
#define F_FRNDOC 105
|
||||||
|
#define F_TONDOC 106
|
||||||
|
#define F_CODDITTA 107
|
||||||
|
#define F_RAGSOCDITTA 108
|
101
src/ve/ve5800a.uml
Normal file
101
src/ve/ve5800a.uml
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
#include "ve5800a.h"
|
||||||
|
|
||||||
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
|
#include <stdbar.h>
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Copia Documenti" 0 0 0 0
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "@bDitta"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CODDITTA 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Codice "
|
||||||
|
FLAGS "FD"
|
||||||
|
USE LF_NDITTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
INPUT CODDITTA F_CODDITTA
|
||||||
|
OUTPUT F_RAGSOCDITTA RAGSOC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOCDITTA 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 17 2 "Ragione "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "@bDocumenti sorgente"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODICE_ELAB 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 5 "Codice "
|
||||||
|
FLAG "U"
|
||||||
|
USE %ELD SELECT I0 == 8
|
||||||
|
INPUT CODTAB F_CODICE_ELAB
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@55" S0
|
||||||
|
OUTPUT F_CODICE_ELAB CODTAB
|
||||||
|
OUTPUT F_DESC_ELAB S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "E' necessario specificare il codice elaborazione"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESC_ELAB 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 20 5 ""
|
||||||
|
USE %ELD KEY 2 SELECT I0 == 8
|
||||||
|
INPUT S0 F_DESC_ELAB
|
||||||
|
DISPLAY "Descrizione@55" S0
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
COPY OUTPUT F_CODICE_ELAB
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 "Anno "
|
||||||
|
FLAGS "AU"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_FRNDOC 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Da numero "
|
||||||
|
USE LF_DOC
|
||||||
|
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||||
|
INPUT ANNO F_ANNO SELECT
|
||||||
|
INPUT CODNUM "F01"
|
||||||
|
INPUT PROVV "D"
|
||||||
|
INPUT NDOC F_FRNDOC
|
||||||
|
DISPLAY "Num." CODNUM
|
||||||
|
DISPLAY "Anno" ANNO
|
||||||
|
DISPLAY "Provv" PROVV
|
||||||
|
DISPLAY "Tipo" TIPODOC
|
||||||
|
DISPLAY "Numero@7" NDOC
|
||||||
|
DISPLAY "Data@10" DATADOC
|
||||||
|
DISPLAY "C/F" TIPOCF
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||||
|
OUTPUT F_FRNDOC NDOC
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_TONDOC 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 26 7 "A numero "
|
||||||
|
COPY USE F_FRNDOC
|
||||||
|
INPUT ANNO F_ANNO SELECT
|
||||||
|
INPUT CODNUM "F01"
|
||||||
|
INPUT PROVV "D"
|
||||||
|
INPUT NDOC F_TONDOC
|
||||||
|
COPY DISPLAY F_FRNDOC
|
||||||
|
OUTPUT F_TONDOC NDOC
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
@ -55,22 +55,25 @@ int TLista_documenti::read(char provv, char tipocf, long clifo, int anno,
|
|||||||
const char* codnum, long dn, long an)
|
const char* codnum, long dn, long an)
|
||||||
{
|
{
|
||||||
CHECK(provv == 'D' || provv == 'P', "Provvisorio o Definitivo?");
|
CHECK(provv == 'D' || provv == 'P', "Provvisorio o Definitivo?");
|
||||||
CHECK(tipocf == 'C' || tipocf == 'F', "Il tipo deve essere Cliente o Fornitore");
|
CHECK(tipocf == 'C' || tipocf == 'F' || tipocf == ' ', "Il tipo deve essere Cliente o Fornitore o Entrambi");
|
||||||
CHECKD(clifo > 0L, "Codice cliente non valido", clifo);
|
CHECKD(tipocf == ' ' || clifo > 0L, "Codice cliente non valido", clifo);
|
||||||
CHECKD(anno > 2000, "Anno non valido: ", anno);
|
CHECKD(anno > 2000, "Anno non valido: ", anno);
|
||||||
CHECK(!tipidoc.empty_items(), "Lista dei tipi documento vuota");
|
CHECK(!tipidoc.empty_items(), "Lista dei tipi documento vuota");
|
||||||
CHECK(!statidoc.empty_items(), "Lista degli stati documento vuota");
|
CHECK(!statidoc.empty_items(), "Lista degli stati documento vuota");
|
||||||
|
|
||||||
|
const int key = (tipocf == ' ' && clifo == 0L) ? 1:2;
|
||||||
TRelation doc(LF_DOC);
|
TRelation doc(LF_DOC);
|
||||||
TRectype start(LF_DOC), stop(LF_DOC);
|
TRectype start(LF_DOC), stop(LF_DOC);
|
||||||
int anno_start, anno_stop;
|
int anno_start, anno_stop;
|
||||||
|
|
||||||
start.put(DOC_TIPOCF, tipocf);
|
if (key == 2)
|
||||||
stop.put(DOC_TIPOCF, tipocf);
|
{
|
||||||
|
start.put(DOC_TIPOCF, tipocf);
|
||||||
start.put(DOC_CODCF, clifo);
|
stop.put(DOC_TIPOCF, tipocf);
|
||||||
stop.put(DOC_CODCF, clifo);
|
|
||||||
|
|
||||||
|
start.put(DOC_CODCF, clifo);
|
||||||
|
stop.put(DOC_CODCF, clifo);
|
||||||
|
}
|
||||||
start.put(DOC_PROVV, provv);
|
start.put(DOC_PROVV, provv);
|
||||||
stop.put(DOC_PROVV, provv);
|
stop.put(DOC_PROVV, provv);
|
||||||
|
|
||||||
@ -132,7 +135,7 @@ int TLista_documenti::read(char provv, char tipocf, long clifo, int anno,
|
|||||||
filter << DOC_CODNUM << "=\"" << codnum << '"';
|
filter << DOC_CODNUM << "=\"" << codnum << '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
TCursor cur(&doc, filter, 2, &start, &stop);
|
TCursor cur(&doc, filter, key, &start, &stop);
|
||||||
const TRectype& head = cur.curr();
|
const TRectype& head = cur.curr();
|
||||||
|
|
||||||
_documenti.destroy();
|
_documenti.destroy();
|
||||||
@ -823,3 +826,81 @@ bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TRaggruppamento_documento
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
TRaggruppamento_documento::TRaggruppamento_documento(const char* cod)
|
||||||
|
: TElaborazione(cod)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
bool TRaggruppamento_documento::raggruppabile(const TRiga_documento & rin, const TRiga_documento & rout) const
|
||||||
|
{
|
||||||
|
bool ok = true;
|
||||||
|
TToken_string campi= RDOC_TIPORIGA "|" RDOC_CODIVA;
|
||||||
|
TString campo;
|
||||||
|
|
||||||
|
for (const char* c = campi.get(0); c && ok; c = campi.get())
|
||||||
|
{
|
||||||
|
campo = rin.get(c);
|
||||||
|
ok &= campo == rout.get(c);
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TRaggruppamento_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||||
|
const TDate& data_elab, bool interattivo)
|
||||||
|
{
|
||||||
|
pre_process_input(doc_in);
|
||||||
|
const TString4 codnum = codice_numerazione_finale();
|
||||||
|
|
||||||
|
for (int d = 0; d < doc_in.items(); d++)
|
||||||
|
{
|
||||||
|
TDocumento& doc_src = doc_in[d];
|
||||||
|
|
||||||
|
doc_out.add(new TDocumento('D', doc_src.get_int(DOC_ANNO), codnum, doc_src.get_long(DOC_NDOC)));
|
||||||
|
|
||||||
|
TDocumento& doc_dest = doc_out[d];
|
||||||
|
|
||||||
|
TDocumento::copy_data(doc_dest,doc_src);
|
||||||
|
|
||||||
|
if (interattivo)
|
||||||
|
doc_dest.put(DOC_TIPODOC, doc_src.get(DOC_TIPODOC) );
|
||||||
|
|
||||||
|
if (doc_dest.physical_rows() > 0)
|
||||||
|
doc_dest.destroy_rows();
|
||||||
|
|
||||||
|
FOR_EACH_PHYSICAL_RDOC(doc_src, nr_input, rin) // ... cerca una riga compatibile
|
||||||
|
{
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
|
if (!rin->sola_descrizione())
|
||||||
|
{
|
||||||
|
FOR_EACH_PHYSICAL_RDOC(doc_dest, nr_output, rout)
|
||||||
|
{
|
||||||
|
if (raggruppabile(*rin, *rout))
|
||||||
|
{
|
||||||
|
rout->add(RDOC_PREZZO,rin->get_real(RDOC_PREZZO));
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
TRiga_documento & row = doc_dest.new_row(); // ... crea una riga nuova e
|
||||||
|
|
||||||
|
TDocumento::copy_data(row, *rin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const TString & stato = stato_finale();
|
||||||
|
|
||||||
|
doc_dest.put(DOC_STATO, stato);
|
||||||
|
doc_src.put(DOC_STATO, stato_finale_doc_iniziale());
|
||||||
|
}
|
||||||
|
post_process_input(doc_in);
|
||||||
|
post_process(doc_out, doc_in);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@ -139,7 +139,7 @@ public:
|
|||||||
enum TTipo_elaborazione { _esterna, _consegna_ordini, _fatturazione_bolle,
|
enum TTipo_elaborazione { _esterna, _consegna_ordini, _fatturazione_bolle,
|
||||||
_contabilizzazione, _copia_documento,
|
_contabilizzazione, _copia_documento,
|
||||||
_generazione_effetti, _consuntivazione_produzione,
|
_generazione_effetti, _consuntivazione_produzione,
|
||||||
_contabilizzazione_analitica };
|
_contabilizzazione_analitica, _raggruppamento_documento };
|
||||||
|
|
||||||
class TParametri_elaborazione : public TObject // velib04
|
class TParametri_elaborazione : public TObject // velib04
|
||||||
{
|
{
|
||||||
@ -665,4 +665,16 @@ public:
|
|||||||
virtual ~TContabilizzazione_analitica();
|
virtual ~TContabilizzazione_analitica();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TRaggruppamento_documento : public TElaborazione // velib04
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool raggruppabile(const TRiga_documento & rin, const TRiga_documento & rout) const;
|
||||||
|
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
|
||||||
|
const TDate& data_elab, bool interattivo = false);
|
||||||
|
|
||||||
|
TRaggruppamento_documento(const char* cod);
|
||||||
|
TRaggruppamento_documento(const TRectype& rec) : TElaborazione(rec) { }
|
||||||
|
virtual ~TRaggruppamento_documento() { }
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2477,6 +2477,9 @@ void TLista_elaborazioni::read()
|
|||||||
case _contabilizzazione_analitica :
|
case _contabilizzazione_analitica :
|
||||||
el = new TContabilizzazione_analitica(eld.curr());
|
el = new TContabilizzazione_analitica(eld.curr());
|
||||||
break;
|
break;
|
||||||
|
case _raggruppamento_documento:
|
||||||
|
el = new TRaggruppamento_documento(eld.curr());
|
||||||
|
break;
|
||||||
default :
|
default :
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ Item_01 = "Fatturazione bolle", "ve6 -2", "F"
|
|||||||
Item_02 = "Contabilizzazione fatture", "ve6 -1", "F"
|
Item_02 = "Contabilizzazione fatture", "ve6 -1", "F"
|
||||||
Item_03 = "Generazione effetti", "ve6 -3", "F"
|
Item_03 = "Generazione effetti", "ve6 -3", "F"
|
||||||
Item_04 = "Contabilizzazione analitica", "ve6 -8", "F"
|
Item_04 = "Contabilizzazione analitica", "ve6 -8", "F"
|
||||||
|
Item_05 = "Raggruppamento documenti per riga", "ve5 -7", "F"
|
||||||
|
|
||||||
[VEMENU_051]
|
[VEMENU_051]
|
||||||
Caption = "Servizi"
|
Caption = "Servizi"
|
||||||
|
@ -49,21 +49,23 @@ LIST F_TIPO 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Tipo "
|
PROMPT 2 3 "Tipo "
|
||||||
ITEM " |Esterna"
|
ITEM " |Esterna"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|SHOW,9@|SHOW,F_KILLDESC
|
MESSAGE SHOW,10@|HIDE,1@|HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|SHOW,9@|SHOW,F_KILLDESC
|
||||||
ITEM "1|Consegna Ordini"
|
ITEM "1|Consegna Ordini"
|
||||||
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,9@|SHOW,F_KILLDESC
|
MESSAGE SHOW,10@|SHOW,1@|HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,9@|SHOW,F_KILLDESC
|
||||||
ITEM "2|Fatturazione bolle"
|
ITEM "2|Fatturazione bolle"
|
||||||
MESSAGE HIDE,1@|SHOW,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,9@|SHOW,F_KILLDESC
|
MESSAGE SHOW,10@|HIDE,1@|SHOW,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,9@|SHOW,F_KILLDESC
|
||||||
ITEM "3|Trasferimento a contabilità"
|
ITEM "3|Trasferimento a contabilità"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@|HIDE,4@|HIDE,5@|SHOW,9@|HIDE,F_KILLDESC
|
MESSAGE SHOW,10@|HIDE,1@|HIDE,2@|SHOW,3@|HIDE,4@|HIDE,5@|SHOW,9@|HIDE,F_KILLDESC
|
||||||
ITEM "4|Copia documento"
|
ITEM "4|Copia documento"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|HIDE,3@|SHOW,4@|HIDE,5@|HIDE,9@|HIDE,F_KILLDESC
|
MESSAGE SHOW,10@|HIDE,1@|HIDE,2@|HIDE,3@|SHOW,4@|HIDE,5@|HIDE,9@|HIDE,F_KILLDESC
|
||||||
ITEM "5|Generazione effetti"
|
ITEM "5|Generazione effetti"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|HIDE,3@|HIDE,4@|SHOW,5@|HIDE,9@|HIDE,F_KILLDESC
|
MESSAGE SHOW,10@|HIDE,1@|HIDE,2@|HIDE,3@|HIDE,4@|SHOW,5@|HIDE,9@|HIDE,F_KILLDESC
|
||||||
ITEM "6|Consuntivazione produzione"
|
ITEM "6|Consuntivazione produzione"
|
||||||
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,9@|SHOW,F_KILLDESC
|
MESSAGE SHOW,10@|SHOW,1@|HIDE,2@|HIDE,3@|HIDE,4@|HIDE,5@|HIDE,9@|SHOW,F_KILLDESC
|
||||||
ITEM "7|Trasferimento a contabilità analitica"
|
ITEM "7|Trasferimento a contabilità analitica"
|
||||||
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@|HIDE,4@|HIDE,5@|SHOW,9@|HIDE,F_KILLDESC
|
MESSAGE SHOW,10@|HIDE,1@|HIDE,2@|SHOW,3@|HIDE,4@|HIDE,5@|SHOW,9@|HIDE,F_KILLDESC
|
||||||
|
ITEM "8|Raggruppamento documento"
|
||||||
|
MESSAGE HIDE,10@|HIDE,1@|HIDE,2@|HIDE,3@|SHOW,4@|HIDE,5@|HIDE,9@|HIDE,F_KILLDESC
|
||||||
FIELD I0
|
FIELD I0
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -581,96 +583,112 @@ GROUPBOX DLG_NULL 78 8
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bCondizioni per raggruppamento documenti"
|
PROMPT 1 1 "@bCondizioni per raggruppamento documenti"
|
||||||
FLAG "R"
|
FLAG "R"
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CAMBIO
|
BOOLEAN F_CAMBIO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Cambio"
|
PROMPT 2 2 "Cambio"
|
||||||
FIELD S1[1,1]
|
FIELD S1[1,1]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_SCONTO
|
BOOLEAN F_SCONTO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Sconto"
|
PROMPT 2 3 "Sconto"
|
||||||
FIELD S1[2,2]
|
FIELD S1[2,2]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_TIPODOC
|
BOOLEAN F_TIPODOC
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMP 2 4 "Tipo documento"
|
PROMP 2 4 "Tipo documento"
|
||||||
FIELD S1[3,3]
|
FIELD S1[3,3]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CODNUM
|
BOOLEAN F_CODNUM
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMP 2 5 "Codice numerazione"
|
PROMP 2 5 "Codice numerazione"
|
||||||
FIELD S1[4,4]
|
FIELD S1[4,4]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_SPEDIZIONE
|
BOOLEAN F_SPEDIZIONE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Modalità di spedizione"
|
PROMPT 2 6 "Modalità di spedizione"
|
||||||
FIELD S1[9,9]
|
FIELD S1[9,9]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PORTO
|
BOOLEAN F_PORTO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Porto"
|
PROMPT 2 7 "Porto"
|
||||||
FIELD S1[10,10]
|
FIELD S1[10,10]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CONDPAG
|
BOOLEAN F_CONDPAG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMP 28 2 "Condizione di pagamento"
|
PROMP 28 2 "Condizione di pagamento"
|
||||||
FIELD S1[5,5]
|
FIELD S1[5,5]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_BANCA
|
BOOLEAN F_BANCA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 28 3 "Banca di appoggio"
|
PROMPT 28 3 "Banca di appoggio"
|
||||||
FIELD S1[6,6]
|
FIELD S1[6,6]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_LISTINO
|
BOOLEAN F_LISTINO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 28 4 "Listino"
|
PROMPT 28 4 "Listino"
|
||||||
FIELD S1[7,7]
|
FIELD S1[7,7]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_AGENTE
|
BOOLEAN F_AGENTE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMP 28 5 "Agente"
|
PROMP 28 5 "Agente"
|
||||||
FIELD S1[8,8]
|
FIELD S1[8,8]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_TRASPORTO
|
BOOLEAN F_TRASPORTO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 28 6 "Causale di trasporto"
|
PROMPT 28 6 "Causale di trasporto"
|
||||||
FIELD S1[11,11]
|
FIELD S1[11,11]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_VETTORI
|
BOOLEAN F_VETTORI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 28 7 "Vettori"
|
PROMPT 28 7 "Vettori"
|
||||||
FIELD S1[12,12]
|
FIELD S1[12,12]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_DESTINAZIONE
|
BOOLEAN F_DESTINAZIONE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 56 2 "Destinazione"
|
PROMPT 56 2 "Destinazione"
|
||||||
FIELD S1[13,13]
|
FIELD S1[13,13]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_COMMESSA
|
BOOLEAN F_COMMESSA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 56 3 "Commessa"
|
PROMPT 56 3 "Commessa"
|
||||||
FIELD S1[14,14]
|
FIELD S1[14,14]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 5
|
GROUPBOX DLG_NULL 78 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 "@bModalità di raggruppamento delle righe"
|
PROMPT 1 9 "@bModalità di raggruppamento delle righe"
|
||||||
FLAG "R"
|
FLAG "R"
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_SOMMA_RIGHE
|
BOOLEAN F_SOMMA_RIGHE
|
||||||
@ -679,24 +697,28 @@ BEGIN
|
|||||||
MESSAGE FALSE ENABLE,F_RIFERIMENTI_IN_TESTA|ENABLE,F_GROUP_BY_REF
|
MESSAGE FALSE ENABLE,F_RIFERIMENTI_IN_TESTA|ENABLE,F_GROUP_BY_REF
|
||||||
MESSAGE TRUE DISABLE,F_RIFERIMENTI_IN_TESTA|"X",F_RIFERIMENTI_IN_TESTA|CLEAR,F_GROUP_BY_REF
|
MESSAGE TRUE DISABLE,F_RIFERIMENTI_IN_TESTA|"X",F_RIFERIMENTI_IN_TESTA|CLEAR,F_GROUP_BY_REF
|
||||||
FIELD B0
|
FIELD B0
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_MAGAZZINO
|
BOOLEAN F_MAGAZZINO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Magazzino"
|
PROMPT 2 11 "Magazzino"
|
||||||
FIELD S1[41,41]
|
FIELD S1[41,41]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_IVA
|
BOOLEAN F_IVA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 28 11 "Codice IVA"
|
PROMPT 28 11 "Codice IVA"
|
||||||
FIELD S1[42,42]
|
FIELD S1[42,42]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PREZZO
|
BOOLEAN F_PREZZO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Prezzo e Sconto"
|
PROMPT 2 12 "Prezzo e Sconto"
|
||||||
FIELD S1[43,43]
|
FIELD S1[43,43]
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PREZZO_DA_ORDINE
|
BOOLEAN F_PREZZO_DA_ORDINE
|
||||||
@ -704,7 +726,7 @@ BEGIN
|
|||||||
PROMPT 28 12 "Ricava prezzo e sconto da ordine"
|
PROMPT 28 12 "Ricava prezzo e sconto da ordine"
|
||||||
FIELD B5
|
FIELD B5
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
GROUP 2
|
GROUP 2 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_AGGIORNA_PREZZO
|
BOOLEAN F_AGGIORNA_PREZZO
|
||||||
@ -712,42 +734,48 @@ BEGIN
|
|||||||
PROMPT 28 12 "Aggiorna prezzi"
|
PROMPT 28 12 "Aggiorna prezzi"
|
||||||
FIELD B5
|
FIELD B5
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
GROUP 1
|
GROUP 1 10
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 6
|
GROUPBOX DLG_NULL 78 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 14 "@bGestione descrizioni"
|
PROMPT 1 14 "@bGestione descrizioni"
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_RIFERIMENTI
|
BOOLEAN F_RIFERIMENTI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 15 "Gestione riferimenti"
|
PROMPT 2 15 "Gestione riferimenti"
|
||||||
FIELD B1
|
FIELD B1
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_RIFERIMENTI_IN_TESTA
|
BOOLEAN F_RIFERIMENTI_IN_TESTA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 15 "Tutti i riferimenti in testa"
|
PROMPT 42 15 "Tutti i riferimenti in testa"
|
||||||
FIELD B2
|
FIELD B2
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_IGNORA_DESCRIZIONI
|
BOOLEAN F_IGNORA_DESCRIZIONI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 16 "Ignora righe con solo descrizione"
|
PROMPT 2 16 "Ignora righe con solo descrizione"
|
||||||
FIELD B3
|
FIELD B3
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PACKRIF
|
BOOLEAN F_PACKRIF
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 16 "Rif.sintetici"
|
PROMPT 42 16 "Rif.sintetici"
|
||||||
FIELD B15
|
FIELD B15
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_USA_DOCRIF
|
BOOLEAN F_USA_DOCRIF
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 17 "Usa documento di riferimento in descrizione rif."
|
PROMPT 2 17 "Usa documento di riferimento in descrizione rif."
|
||||||
FIELD B8
|
FIELD B8
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX F_SPALMA 1 2
|
LISTBOX F_SPALMA 1 2
|
||||||
@ -756,7 +784,7 @@ BEGIN
|
|||||||
ITEM " |No"
|
ITEM " |No"
|
||||||
ITEM "1|Si"
|
ITEM "1|Si"
|
||||||
FIELD I2
|
FIELD I2
|
||||||
GROUP 3 9
|
GROUP 3 9 10
|
||||||
END
|
END
|
||||||
|
|
||||||
LISTBOX F_GROUP_BY_REF 1 2
|
LISTBOX F_GROUP_BY_REF 1 2
|
||||||
@ -765,7 +793,7 @@ BEGIN
|
|||||||
ITEM " |Si"
|
ITEM " |Si"
|
||||||
ITEM "1|No"
|
ITEM "1|No"
|
||||||
FIELD I3
|
FIELD I3
|
||||||
GROUP 1
|
GROUP 1 10
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@ -779,6 +807,7 @@ BEGIN
|
|||||||
OUTPUT F_RIF_DOCIN CODTAB
|
OUTPUT F_RIF_DOCIN CODTAB
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
FIELD S11
|
FIELD S11
|
||||||
|
GROUP 10
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_COLONNE_CO 1
|
NUMBER F_COLONNE_CO 1
|
||||||
@ -790,7 +819,7 @@ BEGIN
|
|||||||
ITEM "2|Residuo|Da evadere"
|
ITEM "2|Residuo|Da evadere"
|
||||||
INPUT F_COLONNE_CO
|
INPUT F_COLONNE_CO
|
||||||
OUTPUT F_COLONNE_CO
|
OUTPUT F_COLONNE_CO
|
||||||
GROUP 1
|
GROUP 1 10
|
||||||
FIELD I1
|
FIELD I1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user