Patch level : 10.0 173
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1272 git-svn-id: svn://10.65.10.50/trunk@17725 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9223718b8c
commit
a644845c22
174
co/co0300a.uml
174
co/co0300a.uml
@ -24,17 +24,19 @@ END
|
|||||||
NUMBER F_CODDITTA 5
|
NUMBER F_CODDITTA 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Codice "
|
PROMPT 2 2 "Codice "
|
||||||
FLAGS "FD"
|
FLAGS "FDG"
|
||||||
USE LF_NDITTE
|
USE LF_NDITTE
|
||||||
INPUT CODDITTA F_CODDITTA
|
INPUT CODDITTA F_CODDITTA
|
||||||
OUTPUT F_RAGSOC RAGSOC
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
MESSAGE COPY,1@
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RAGSOC 50
|
STRING F_RAGSOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 22 2 ""
|
PROMPT 22 2 ""
|
||||||
FLAGS "D"
|
FLAGS "DG"
|
||||||
|
MESSAGE COPY,2@
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_RITQTA 5 2
|
NUMBER F_RITQTA 5 2
|
||||||
@ -158,5 +160,173 @@ END
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Configurazione chiusure mensili" -1 -1 0 0
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "@bDitta corrente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER DLG_NULL 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Codice "
|
||||||
|
GROUP 1
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_NULL 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 22 2 ""
|
||||||
|
FLAGS "D"
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_NUMCHI 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Numeraz. chiusura mensile "
|
||||||
|
FIELD NumChi
|
||||||
|
HELP "Codice numerazione"
|
||||||
|
USE %NUM SELECT I1>5
|
||||||
|
INPUT CODTAB F_NUMCHI
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_NUMCHI CODTAB
|
||||||
|
OUTPUT F_DNUMCHI S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAG "UPA"
|
||||||
|
WARNING "Numerazione assente"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DNUMCHI 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 4 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TIPORIT 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 5 "Tipo doc.ritenuta mensile "
|
||||||
|
FIELD TipoRit
|
||||||
|
HELP "Codice tipo documento"
|
||||||
|
USE %TIP SELECT I1>5
|
||||||
|
INPUT CODTAB F_TIPORIT
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_TIPORIT CODTAB
|
||||||
|
OUTPUT F_DTIPORIT S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAG "UP"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DTIPORIT 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 5 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_SPRITCHI 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 "Cod.spesa ritenuta mensile "
|
||||||
|
USE SPP SELECT (S6="V")
|
||||||
|
FLAGS "U"
|
||||||
|
INPUT CODTAB F_SPRITCHI
|
||||||
|
DISPLAY "Codice " CODTAB
|
||||||
|
DISPLAY "Descrizione@50 " S0
|
||||||
|
OUTPUT F_SPRITCHI CODTAB
|
||||||
|
OUTPUT F_DSPRITCHI S0
|
||||||
|
FIELD SpRitChi
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DSPRITCHI 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 6 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TIPOCHI 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Tipo doc.chiusura mensile "
|
||||||
|
FIELD TipoChi
|
||||||
|
HELP "Codice tipo documento"
|
||||||
|
USE %TIP SELECT I1>5
|
||||||
|
INPUT CODTAB F_TIPOCHI
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_TIPOCHI CODTAB
|
||||||
|
OUTPUT F_DTIPOCHI S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAG "UP"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DTIPOCHI 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 7 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_SPCHI 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Cod.spesa chiusura mensile "
|
||||||
|
USE SPP SELECT (S6="V")
|
||||||
|
FLAGS "U"
|
||||||
|
INPUT CODTAB F_SPCHI
|
||||||
|
DISPLAY "Codice " CODTAB
|
||||||
|
DISPLAY "Descrizione@50 " S0
|
||||||
|
OUTPUT F_SPCHI CODTAB
|
||||||
|
OUTPUT F_DSPCHI S0
|
||||||
|
FIELD SpChi
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DSPCHI 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 8 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TIPOASS 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Tipo doc.assegno "
|
||||||
|
FIELD TipoAss
|
||||||
|
HELP "Codice tipo documento"
|
||||||
|
USE %TIP SELECT I1>5
|
||||||
|
INPUT CODTAB F_TIPOASS
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_TIPOASS CODTAB
|
||||||
|
OUTPUT F_DTIPOASS S0
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAG "UP"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DTIPOASS 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 9 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_SPASS 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 10 "Cod.spesa assegni "
|
||||||
|
USE SPP SELECT (S6="V")
|
||||||
|
FLAGS "U"
|
||||||
|
INPUT CODTAB F_SPASS
|
||||||
|
DISPLAY "Codice " CODTAB
|
||||||
|
DISPLAY "Descrizione@50 " S0
|
||||||
|
OUTPUT F_SPASS CODTAB
|
||||||
|
OUTPUT F_DSPASS S0
|
||||||
|
FIELD SpAss
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DSPASS 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 10 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <defmask.h>
|
#include <defmask.h>
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <agasys.h>
|
#include <agasys.h>
|
||||||
|
#include <recset.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
@ -21,6 +22,7 @@
|
|||||||
|
|
||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
#include "socicoop.h"
|
#include "socicoop.h"
|
||||||
|
#include "co0700b.h"
|
||||||
|
|
||||||
#include <user.h>
|
#include <user.h>
|
||||||
|
|
||||||
@ -79,9 +81,55 @@ public:
|
|||||||
virtual ~TConferimenti_mask() {}
|
virtual ~TConferimenti_mask() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool genera_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_SPACE)
|
||||||
|
{
|
||||||
|
TConferimenti_mask& m = (TConferimenti_mask&) f.mask();
|
||||||
|
TMask select_mask("co0700b");
|
||||||
|
TDocumento campione(m.doc());
|
||||||
|
const TDate datadoc = campione.get_date(DOC_DATADOC);
|
||||||
|
long codsocio = campione.get_long(DOC_CODCF);
|
||||||
|
|
||||||
|
campione.zero(DOC_NDOC);
|
||||||
|
|
||||||
|
if (select_mask.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
TISAM_recordset recset("USE SOCICOOP\nFROM CODCF=#DASOCIO\nTO CODCF=#ASOCIO");
|
||||||
|
|
||||||
|
recset.set_var("#DASOCIO", select_mask.get_long(F_DASOCIO));
|
||||||
|
recset.set_var("#ASOCIO", select_mask.get_long(F_ASOCIO));
|
||||||
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||||
|
{
|
||||||
|
const long socio = recset.get(SC_CODCF).as_int();
|
||||||
|
|
||||||
|
if (socio != codsocio)
|
||||||
|
{
|
||||||
|
const TDate dataass = recset.get(SC_DATAASS).as_date();
|
||||||
|
const TDate datarec = recset.get(SC_DATAREC).as_date();
|
||||||
|
const bool ok = (!dataass.ok() || dataass <= datadoc) && (!datarec.ok() || datarec >= datadoc);
|
||||||
|
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
TDocumento d(campione);
|
||||||
|
|
||||||
|
d.put(DOC_CODCF, socio);
|
||||||
|
d.write();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
TConferimenti_mask::TConferimenti_mask(const char* tipodoc):
|
TConferimenti_mask::TConferimenti_mask(const char* tipodoc):
|
||||||
TDocumento_mask(tipodoc)
|
TDocumento_mask(tipodoc)
|
||||||
{
|
{
|
||||||
|
const int pos = id2pos(499);
|
||||||
|
|
||||||
|
if (pos >= 0)
|
||||||
|
set_handler(499, genera_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
int TConferimenti_application::rewrite( const TMask& m )
|
int TConferimenti_application::rewrite( const TMask& m )
|
||||||
@ -103,6 +151,21 @@ int TConferimenti_application::rewrite( const TMask& m )
|
|||||||
int TConferimenti_application::write( const TMask& m )
|
int TConferimenti_application::write( const TMask& m )
|
||||||
{
|
{
|
||||||
int err = NOERR;
|
int err = NOERR;
|
||||||
|
TDocumento & doc = ((TConferimenti_mask & )m).doc();
|
||||||
|
const int nrows = doc.physical_rows();
|
||||||
|
bool zero_doc = true;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
for (r = nrows; zero_doc && r >= 1; r--)
|
||||||
|
{
|
||||||
|
const TRiga_documento & row = doc[r];
|
||||||
|
|
||||||
|
if (row.imponibile() != ZERO)
|
||||||
|
zero_doc = false;
|
||||||
|
}
|
||||||
|
if (zero_doc)
|
||||||
|
return false;
|
||||||
|
|
||||||
const TTipo_documento tipodoc(m.get(172));
|
const TTipo_documento tipodoc(m.get(172));
|
||||||
if (tipodoc.tipo() == 5)
|
if (tipodoc.tipo() == 5)
|
||||||
{
|
{
|
||||||
@ -230,6 +293,15 @@ bool TConferimenti_query_mask::on_field_event(TOperable_field& o, TField_event e
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case F_NUMDOCRIF:
|
||||||
|
if (e == fe_button)
|
||||||
|
TDocumento_mask::numdocrif_search_handler(o, K_F9);
|
||||||
|
break;
|
||||||
|
case F_RAGSOCSEARCH:
|
||||||
|
if (e == fe_button)
|
||||||
|
TDocumento_mask::ragsoc_search_handler(o, K_F9);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -113,6 +113,7 @@ BEGIN
|
|||||||
FIELD NDOC
|
FIELD NDOC
|
||||||
USE LF_DOC
|
USE LF_DOC
|
||||||
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
|
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||||
|
JOIN LF_RIGHEDOC TO LF_DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC NRIGA==1
|
||||||
INPUT PROVV F_PROVV SELECT
|
INPUT PROVV F_PROVV SELECT
|
||||||
INPUT ANNO F_ANNO SELECT
|
INPUT ANNO F_ANNO SELECT
|
||||||
INPUT CODNUM F_CODNUM SELECT
|
INPUT CODNUM F_CODNUM SELECT
|
||||||
@ -127,6 +128,7 @@ BEGIN
|
|||||||
DISPLAY "C/F" TIPOCF
|
DISPLAY "C/F" TIPOCF
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
|
||||||
|
DISPLAY "Tipo Movimento" LF_RIGHEDOC->CODART
|
||||||
OUTPUT F_NDOC NDOC
|
OUTPUT F_NDOC NDOC
|
||||||
OUTPUT F_STATO STATO
|
OUTPUT F_STATO STATO
|
||||||
OUTPUT F_TIPODOC TIPODOC
|
OUTPUT F_TIPODOC TIPODOC
|
||||||
@ -178,6 +180,18 @@ BEGIN
|
|||||||
KEY 2
|
KEY 2
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_NUMDOCRIF 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 46 8 "Riferimento "
|
||||||
|
FLAGS "B"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOCSEARCH 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Ragione Sociale "
|
||||||
|
FLAGS "B"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
4
co/co0700b.h
Executable file
4
co/co0700b.h
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#define F_DASOCIO 101
|
||||||
|
#define F_ASOCIO 102
|
||||||
|
#define F_DARAGSOC 103
|
||||||
|
#define F_ARAGSOC 104
|
65
co/co0700b.uml
Executable file
65
co/co0700b.uml
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
#include "co0700b.h"
|
||||||
|
|
||||||
|
PAGE "Generazione prestazioni" -1 -1 78 10
|
||||||
|
|
||||||
|
NUMBER F_DASOCIO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 1 "Da socio "
|
||||||
|
FIELD #DASOCIO
|
||||||
|
USE LF_CLIFO SELECT LF_SOCICOOP->CODCF!=""
|
||||||
|
JOIN LF_SOCICOOP INTO CODCF==CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_DASOCIO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice fiscale@16" COFI
|
||||||
|
OUTPUT F_DASOCIO CODCF
|
||||||
|
OUTPUT F_DARAGSOC RAGSOC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DARAGSOC 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 1 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ASOCIO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 3 "A socio "
|
||||||
|
FIELD #ASOCIO
|
||||||
|
USE LF_CLIFO SELECT LF_SOCICOOP->CODCF!=""
|
||||||
|
JOIN LF_SOCICOOP INTO CODCF==CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_ASOCIO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||||
|
DISPLAY "Codice fiscale@16" 20->COFI
|
||||||
|
OUTPUT F_ASOCIO CODCF
|
||||||
|
OUTPUT F_ARAGSOC RAGSOC
|
||||||
|
STR_EXPR #F_ASOCIO>=#F_DASOCIO
|
||||||
|
WARNING "Range codice socio non corretto"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_ARAGSOC 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 3 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 "~Genera"
|
||||||
|
MESSAGE EXIT,K_ENTER
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
@ -172,8 +172,8 @@ void TImportazioneConf::main_loop()
|
|||||||
const TString16 cf = trec.get(fcf);
|
const TString16 cf = trec.get(fcf);
|
||||||
const TDate datadoc(trec.get(fdata));
|
const TDate datadoc(trec.get(fdata));
|
||||||
|
|
||||||
if ((cf != last_cf) || (datadoc != last_data))
|
// if ((cf != last_cf) || (datadoc != last_data)) non si raggruppa piu'
|
||||||
{
|
// {
|
||||||
if (d != NULL && d->rows() > 0)
|
if (d != NULL && d->rows() > 0)
|
||||||
{
|
{
|
||||||
m.doc() = *d;
|
m.doc() = *d;
|
||||||
@ -241,7 +241,7 @@ void TImportazioneConf::main_loop()
|
|||||||
else
|
else
|
||||||
row.put(name, val);
|
row.put(name, val);
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
TString80 codice = row.get(RDOC_CODART);
|
TString80 codice = row.get(RDOC_CODART);
|
||||||
TString80 key;
|
TString80 key;
|
||||||
key.format("%06ld%s", codmercato, (const char*) codice);
|
key.format("%06ld%s", codmercato, (const char*) codice);
|
||||||
|
@ -70,7 +70,7 @@ JOIN ANAMAG INTO CODART==CODARTMAG
|
|||||||
FROM PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
FROM PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
||||||
TO PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
TO PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
||||||
</sql>
|
</sql>
|
||||||
<field x="2" y="1" type="Data" width="12" pattern="1">
|
<field x="2" y="1" type="Data" width="14" pattern="1">
|
||||||
<font face="Courier New" bold="1" size="10" />
|
<font face="Courier New" bold="1" size="10" />
|
||||||
<source>#PARENT.DATADOC</source>
|
<source>#PARENT.DATADOC</source>
|
||||||
</field>
|
</field>
|
||||||
@ -98,6 +98,30 @@ TO PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
|||||||
<font face="Courier New" bold="1" size="10" />
|
<font face="Courier New" bold="1" size="10" />
|
||||||
<source>RDOC.NDOC</source>
|
<source>RDOC.NDOC</source>
|
||||||
</field>
|
</field>
|
||||||
|
<field x="2" y="2" type="Testo" valign="bottom" width="12" pattern="1" text="Cooperativa:">
|
||||||
|
<source>#PARENT.101@.CODCF</source>
|
||||||
|
</field>
|
||||||
|
<field x="12" y="2" type="Numero" valign="bottom" align="right" width="10" pattern="1" hide_zero="1" text="#######,@@">
|
||||||
|
<source>RDOC.QTAGG1</source>
|
||||||
|
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.101</prescript>
|
||||||
|
</field>
|
||||||
|
<field x="25" y="2" type="Prezzo" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
|
<prescript description="B11.0 PRESCRIPT">"RDOC.PREZZONN" @
|
||||||
|
"ANAMAG.USER1" @
|
||||||
|
"X"
|
||||||
|
=
|
||||||
|
IF
|
||||||
|
"QTA" @
|
||||||
|
DUP
|
||||||
|
0
|
||||||
|
C;E;
|
||||||
|
IF
|
||||||
|
F;
|
||||||
|
THEN
|
||||||
|
THEN
|
||||||
|
#THIS !
|
||||||
|
</prescript>
|
||||||
|
</field>
|
||||||
<field x="37" y="2" type="Valuta" valign="bottom" align="right" width="10" pattern="1" text="###.###.###,@@">
|
<field x="37" y="2" type="Valuta" valign="bottom" align="right" width="10" pattern="1" text="###.###.###,@@">
|
||||||
<source>RDOC.IMPCNN</source>
|
<source>RDOC.IMPCNN</source>
|
||||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.103</prescript>
|
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.103</prescript>
|
||||||
@ -117,15 +141,15 @@ TO PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
|||||||
<source>RDOC.NCOLLI</source>
|
<source>RDOC.NCOLLI</source>
|
||||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.108</prescript>
|
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.108</prescript>
|
||||||
</field>
|
</field>
|
||||||
<field x="2" y="3" type="Testo" valign="bottom" width="12" pattern="1" text="Cooperativa:">
|
<field x="2" y="3" type="Testo" valign="bottom" width="10" pattern="1" text="Pescatore:">
|
||||||
<source>#PARENT.101@.CODCF</source>
|
<source>#PARENT.101@.CODCF</source>
|
||||||
</field>
|
</field>
|
||||||
<field x="12" y="3" type="Numero" valign="bottom" align="right" width="10" pattern="1" hide_zero="1" text="#######,@@">
|
<field x="12" y="3" type="Numero" valign="bottom" align="right" width="10" pattern="1" hide_zero="1" text="#######,@@">
|
||||||
<source>RDOC.QTAGG1</source>
|
<source>RDOC.QTA</source>
|
||||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.101</prescript>
|
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.102</prescript>
|
||||||
</field>
|
</field>
|
||||||
<field x="25" y="3" type="Prezzo" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
<field x="25" y="3" type="Prezzo" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
<prescript description="B11.0 PRESCRIPT">"RDOC.PREZZONN" @
|
<prescript description="B11.0 PRESCRIPT">"RDOC.PREZZONS" @
|
||||||
"ANAMAG.USER1" @
|
"ANAMAG.USER1" @
|
||||||
"X"
|
"X"
|
||||||
=
|
=
|
||||||
@ -172,30 +196,6 @@ THEN
|
|||||||
<source>RDOC.SCONTOR</source>
|
<source>RDOC.SCONTOR</source>
|
||||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.107</prescript>
|
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.107</prescript>
|
||||||
</field>
|
</field>
|
||||||
<field x="2" y="4" type="Testo" valign="bottom" width="10" pattern="1" text="Pescatore:">
|
|
||||||
<source>#PARENT.101@.CODCF</source>
|
|
||||||
</field>
|
|
||||||
<field x="12" y="4" type="Numero" valign="bottom" align="right" width="10" pattern="1" hide_zero="1" text="#######,@@">
|
|
||||||
<source>RDOC.QTA</source>
|
|
||||||
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.102</prescript>
|
|
||||||
</field>
|
|
||||||
<field x="25" y="4" type="Prezzo" valign="bottom" align="right" width="8" pattern="1" hide_zero="1" text="###.###.###,@@">
|
|
||||||
<prescript description="B11.0 PRESCRIPT">"RDOC.PREZZONS" @
|
|
||||||
"ANAMAG.USER1" @
|
|
||||||
"X"
|
|
||||||
=
|
|
||||||
IF
|
|
||||||
"QTA" @
|
|
||||||
DUP
|
|
||||||
0
|
|
||||||
C;E;
|
|
||||||
IF
|
|
||||||
F;
|
|
||||||
THEN
|
|
||||||
THEN
|
|
||||||
#THIS !
|
|
||||||
</prescript>
|
|
||||||
</field>
|
|
||||||
<field x="18" y="1" type="Stringa" width="4" id="100" pattern="1">
|
<field x="18" y="1" type="Stringa" width="4" id="100" pattern="1">
|
||||||
<font face="Courier New" bold="1" size="10" />
|
<font face="Courier New" bold="1" size="10" />
|
||||||
<source>#PARENT.CODCF</source>
|
<source>#PARENT.CODCF</source>
|
||||||
|
114
co/co1300.cpp
114
co/co1300.cpp
@ -32,7 +32,29 @@ TEstrattoConto_mask::TEstrattoConto_mask() :TAutomask ("co1300a")
|
|||||||
|
|
||||||
bool TEstrattoConto_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
bool TEstrattoConto_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
return TRUE;
|
switch (f.dlg())
|
||||||
|
{
|
||||||
|
case F_DATAINI:
|
||||||
|
case F_DATAFIN:
|
||||||
|
if (e == fe_init || e == fe_modify)
|
||||||
|
{
|
||||||
|
const TDate ini = get_date(F_DATAINI);
|
||||||
|
const TDate fin = get_date(F_DATAFIN);
|
||||||
|
|
||||||
|
if (ini.year() == fin.year() && ini.month() == fin.month() &&
|
||||||
|
ini.day() == 1 && fin.is_end_month())
|
||||||
|
enable(F_CHIUSURA);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
disable(F_CHIUSURA);
|
||||||
|
reset(F_CHIUSURA);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
@ -42,14 +64,29 @@ bool TEstrattoConto_mask::on_field_event(TOperable_field& f, TField_event e, lon
|
|||||||
class TEstrattoConto_rep : public TDocument_report
|
class TEstrattoConto_rep : public TDocument_report
|
||||||
{
|
{
|
||||||
int _riga;
|
int _riga;
|
||||||
|
long _socio;
|
||||||
|
real _saldocred;
|
||||||
|
real _saldodeb;
|
||||||
|
real _ritenuta;
|
||||||
|
|
||||||
|
TString _numchi;
|
||||||
|
TString _tiporit;
|
||||||
|
TString _sprit;
|
||||||
|
|
||||||
|
TString _tipochi;
|
||||||
|
TString _tipoass;
|
||||||
|
TString _spchi;
|
||||||
|
TString _spass;
|
||||||
|
bool _chiusura;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool use_mask() {return false;}
|
virtual bool use_mask() {return false;}
|
||||||
virtual bool set_usr_val(const TString& name, const TVariant& var);
|
virtual bool set_usr_val(const TString& name, const TVariant& var);
|
||||||
bool incr_field(int idx, const TVariant& var);
|
bool incr_field(int idx, const TVariant& var);
|
||||||
|
void chiudi_mese() ;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TEstrattoConto_rep();
|
TEstrattoConto_rep(bool chiusura);
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TEstrattoConto_rep::incr_field(int idx, const TVariant& var)
|
bool TEstrattoConto_rep::incr_field(int idx, const TVariant& var)
|
||||||
@ -133,10 +170,67 @@ bool TEstrattoConto_rep::set_usr_val(const TString& name, const TVariant& var)
|
|||||||
incr_field(9, var);
|
incr_field(9, var);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (name == "#EC_SOCIO")
|
||||||
|
{
|
||||||
|
_socio = var.as_int();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (name == "#EC_CRED")
|
||||||
|
{
|
||||||
|
const real val = var.as_real();
|
||||||
|
_saldocred += val;
|
||||||
|
|
||||||
|
TVariant cod;
|
||||||
|
|
||||||
|
get_record_field(RDOC_CODART, cod);
|
||||||
|
if (_sprit == cod.as_string() && val != ZERO)
|
||||||
|
{
|
||||||
|
_chiusura = false;
|
||||||
|
TVariant totrit;
|
||||||
|
get_usr_val("#F1.98", totrit);
|
||||||
|
real v = totrit.as_real() + val;
|
||||||
|
totrit = v;
|
||||||
|
set_usr_val("#F1.98", totrit);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name == "#EC_DEB")
|
||||||
|
{
|
||||||
|
const real val = var.as_real();
|
||||||
|
|
||||||
|
_saldodeb += val;
|
||||||
|
TVariant cod;
|
||||||
|
|
||||||
|
get_record_field(RDOC_CODART, cod);
|
||||||
|
if (_sprit == cod.as_string() && val != ZERO)
|
||||||
|
{
|
||||||
|
_chiusura = false;
|
||||||
|
TVariant totrit;
|
||||||
|
get_usr_val("#F1.98", totrit);
|
||||||
|
real v = totrit.as_real() - val;
|
||||||
|
totrit = v;
|
||||||
|
set_usr_val("#F1.98", totrit);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name == "#EC_RIT")
|
||||||
|
{
|
||||||
|
_ritenuta += var.as_real();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name == "#EC_CHIUDI")
|
||||||
|
{
|
||||||
|
chiudi_mese();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return TDocument_report::set_usr_val(name,var);
|
return TDocument_report::set_usr_val(name,var);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEstrattoConto_rep::TEstrattoConto_rep()
|
TEstrattoConto_rep::TEstrattoConto_rep(bool chiusura) : _chiusura(chiusura), _saldocred(), _saldodeb(ZERO), _ritenuta(ZERO)
|
||||||
{
|
{
|
||||||
load("co1300a");
|
load("co1300a");
|
||||||
TReport_section& b11 = section('B',11);
|
TReport_section& b11 = section('B',11);
|
||||||
@ -162,8 +256,18 @@ TEstrattoConto_rep::TEstrattoConto_rep()
|
|||||||
}
|
}
|
||||||
y += 100;
|
y += 100;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
TConfig c(CONFIG_DITTA);
|
||||||
|
|
||||||
|
_numchi = c.get("NumChi");
|
||||||
|
_tiporit = c.get("TipoRit");
|
||||||
|
_sprit = c.get("SpRitChi");
|
||||||
|
_tipochi = c.get("TipoChi");
|
||||||
|
_spchi = c.get("SpChi");
|
||||||
|
_tipoass = c.get("TipoAss");
|
||||||
|
_spass = c.get("SpAss");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
// APPLICAZIONE
|
// APPLICAZIONE
|
||||||
@ -181,7 +285,7 @@ void TEstrattoConto::main_loop()
|
|||||||
while (m.run() == K_ENTER)
|
while (m.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
TReport_book book;
|
TReport_book book;
|
||||||
TEstrattoConto_rep rep;
|
TEstrattoConto_rep rep(m.get_bool(F_CHIUSURA));
|
||||||
|
|
||||||
const TDate dataini = m.get_date(F_DATAINI);
|
const TDate dataini = m.get_date(F_DATAINI);
|
||||||
const TDate datafin = m.get_date(F_DATAFIN);
|
const TDate datafin = m.get_date(F_DATAFIN);
|
||||||
|
@ -7,3 +7,4 @@
|
|||||||
#define F_DATAFIN 105
|
#define F_DATAFIN 105
|
||||||
#define F_DESDASOCIO 106
|
#define F_DESDASOCIO 106
|
||||||
#define F_DESASOCIO 107
|
#define F_DESASOCIO 107
|
||||||
|
#define F_CHIUSURA 108
|
||||||
|
@ -25,6 +25,10 @@
|
|||||||
<field x="2" y="2.5" type="Stringa" width="60" pattern="1">
|
<field x="2" y="2.5" type="Stringa" width="60" pattern="1">
|
||||||
<font face="Courier New" bold="1" size="10" />
|
<font face="Courier New" bold="1" size="10" />
|
||||||
<source>101@.CODCF+' '+TRIM(101@.RAGSOC[1,30])+' '+TRIM(101@.RAGSOC[31,50])</source>
|
<source>101@.CODCF+' '+TRIM(101@.RAGSOC[1,30])+' '+TRIM(101@.RAGSOC[31,50])</source>
|
||||||
|
<postscript description="H0.0 POSTSCRIPT">"101@.CODCF" @
|
||||||
|
#EC_SOCIO !
|
||||||
|
|
||||||
|
</postscript>
|
||||||
</field>
|
</field>
|
||||||
<field x="2" y="3.5" type="Stringa" width="50" pattern="1">
|
<field x="2" y="3.5" type="Stringa" width="50" pattern="1">
|
||||||
<source>101@.INDCF+" ,"+101@.CIVCF</source>
|
<source>101@.INDCF+" ,"+101@.CIVCF</source>
|
||||||
@ -82,7 +86,11 @@
|
|||||||
<font face="Courier New" size="7" />
|
<font face="Courier New" size="7" />
|
||||||
</field>
|
</field>
|
||||||
</section>
|
</section>
|
||||||
<section type="Head" level="1" />
|
<section type="Head" level="1">
|
||||||
|
<prescript description="H1 PRESCRIPT">0 #F1.98 !
|
||||||
|
0 #F1.107 !
|
||||||
|
0 #F1.108 !</prescript>
|
||||||
|
</section>
|
||||||
<section type="Body" />
|
<section type="Body" />
|
||||||
<section type="Body" level="1" />
|
<section type="Body" level="1" />
|
||||||
<section type="Head" level="11" />
|
<section type="Head" level="11" />
|
||||||
@ -218,8 +226,12 @@ THEN
|
|||||||
! \ lo scrivo effettivamente</prescript>
|
! \ lo scrivo effettivamente</prescript>
|
||||||
<postscript description="B11.107 POSTSCRIPT">#THIS @
|
<postscript description="B11.107 POSTSCRIPT">#THIS @
|
||||||
DUP
|
DUP
|
||||||
|
DUP
|
||||||
"F1.107" +!
|
"F1.107" +!
|
||||||
#EC_IMPCRE !</postscript>
|
#EC_IMPCRE !
|
||||||
|
#EC_CRED !
|
||||||
|
|
||||||
|
</postscript>
|
||||||
</field>
|
</field>
|
||||||
<field x="116" type="Valuta" align="right" width="15" id="108" pattern="1" hide_zero="1" text="###.###.###,@@">
|
<field x="116" type="Valuta" align="right" width="15" id="108" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
<font face="Courier New" size="7" />
|
<font face="Courier New" size="7" />
|
||||||
@ -248,8 +260,12 @@ THEN
|
|||||||
! \ lo scrivo effettivamente</prescript>
|
! \ lo scrivo effettivamente</prescript>
|
||||||
<postscript description="B11.108 POSTSCRIPT">#THIS @
|
<postscript description="B11.108 POSTSCRIPT">#THIS @
|
||||||
DUP
|
DUP
|
||||||
|
DUP
|
||||||
"F1.108" +!
|
"F1.108" +!
|
||||||
#EC_IMPDEB !</postscript>
|
#EC_IMPDEB !
|
||||||
|
#EC_DEB !
|
||||||
|
|
||||||
|
</postscript>
|
||||||
</field>
|
</field>
|
||||||
<field x="133" type="Prezzo" hidden="1" align="right" width="10" id="109" pattern="1" hide_zero="1" text="#########,@@">
|
<field x="133" type="Prezzo" hidden="1" align="right" width="10" id="109" pattern="1" hide_zero="1" text="#########,@@">
|
||||||
<font face="Courier New" size="7" />
|
<font face="Courier New" size="7" />
|
||||||
@ -276,7 +292,9 @@ DUP
|
|||||||
<postscript description="B11.208 POSTSCRIPT">#THIS @
|
<postscript description="B11.208 POSTSCRIPT">#THIS @
|
||||||
DUP
|
DUP
|
||||||
"F1.98" +!
|
"F1.98" +!
|
||||||
"F1.108" +!</postscript>
|
#EC_RIT !
|
||||||
|
|
||||||
|
</postscript>
|
||||||
</field>
|
</field>
|
||||||
</section>
|
</section>
|
||||||
<section type="Foot" level="11" />
|
<section type="Foot" level="11" />
|
||||||
@ -320,6 +338,10 @@ DUP
|
|||||||
<field border="2" y="12" type="Linea" width="170" height="0" pattern="1" />
|
<field border="2" y="12" type="Linea" width="170" height="0" pattern="1" />
|
||||||
<field x="116" type="Valuta" align="right" width="15" id="98" pattern="1" hide_zero="1" text="###.###.###,@@">
|
<field x="116" type="Valuta" align="right" width="15" id="98" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
<font face="Courier New" size="7" />
|
<font face="Courier New" size="7" />
|
||||||
|
<prescript description="F1.98 PRESCRIPT">#THIS @
|
||||||
|
#108 @
|
||||||
|
+
|
||||||
|
#108 !</prescript>
|
||||||
</field>
|
</field>
|
||||||
<field x="46" y="1" type="Numero" align="right" width="8" id="102" pattern="1" text="###.###,@@">
|
<field x="46" y="1" type="Numero" align="right" width="8" id="102" pattern="1" text="###.###,@@">
|
||||||
<font face="Courier New" size="7" />
|
<font face="Courier New" size="7" />
|
||||||
@ -348,24 +370,26 @@ ELSE
|
|||||||
THEN
|
THEN
|
||||||
!</prescript>
|
!</prescript>
|
||||||
</field>
|
</field>
|
||||||
<field x="158" y="1" type="Valuta" align="right" width="12" id="110" pattern="1" text="#########,@@">
|
<field x="158" y="1" type="Valuta" align="right" width="12" id="110" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
<font face="Courier New" bold="1" size="8" />
|
<font face="Courier New" bold="1" size="8" />
|
||||||
<prescript description="F1.110 PRESCRIPT">"F1.107" @ \ leggo il contenuto del campo 107
|
<prescript description="F1.110 PRESCRIPT">"F1.107" @ \ leggo il contenuto del campo 107
|
||||||
"F1.108" @ \ leggo il conetnuto del campo 108
|
"F1.108" @ \ leggo il conetnuto del campo 108
|
||||||
- \ faccio la sottrazione tra i due
|
- \ faccio la sottrazione tra i due
|
||||||
DUP \ duplico il risultato
|
DUP \ duplico il risultato
|
||||||
0 C;= IF \ se il risultato &#E8; negativo, gli cambio segno
|
0 C;= IF \ se il risultato &#E8; negativo, gli cambio segno
|
||||||
* -1
|
-1 *
|
||||||
THEN \ e lo scrivo nel campo 110
|
THEN \ e lo scrivo nel campo 110
|
||||||
"F1.110" !
|
#THIS !
|
||||||
</prescript>
|
</prescript>
|
||||||
|
<postscript description="F1.110 POSTSCRIPT">1 #EC_CHIUDI !</postscript>
|
||||||
</field>
|
</field>
|
||||||
</section>
|
</section>
|
||||||
<sql>USE DOC
|
<sql>USE DOC
|
||||||
KEY 2
|
KEY 2
|
||||||
SELECT BETWEEN(DATADOC,#DATAINI,#DATAFIN)
|
SELECT BETWEEN(DATADOC,#DATAINI,#DATAFIN)(201@.I1E;4)
|
||||||
JOIN CLIFO ALIAS 101 INTO TIPOCF==TIPOCF CODCF==CODCF
|
JOIN CLIFO ALIAS 101 INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||||
JOIN COMUNI TO 101@ INTO STATO==STATOCF COM==COMCF
|
JOIN COMUNI TO 101@ INTO STATO==STATOCF COM==COMCF
|
||||||
|
JOIN %NUM ALIAS 201@ INTO CODTAB==CODNUM
|
||||||
FROM TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAINI
|
FROM TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAINI
|
||||||
TO TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAFIN
|
TO TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO DATADOC=#DATAFIN
|
||||||
</sql>
|
</sql>
|
||||||
|
@ -80,6 +80,11 @@ BEGIN
|
|||||||
FIELD DATAFIN
|
FIELD DATAFIN
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_CHIUSURA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Genera la chiusura mensile"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<report name="co1600a" orientation="2" lpi="6">
|
<report name="co1600a" orientation="2" lpi="6" command="ve1 -3">
|
||||||
<description>Stampa Saldi Estratto Conto</description>
|
<description>Stampa Saldi Estratto Conto</description>
|
||||||
<font face="Courier New" size="8" />
|
<font face="Courier New" size="8" />
|
||||||
<section type="Head">
|
<section type="Head">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<report name="co1700a" orientation="2" lpi="6">
|
<report name="co1700a" orientation="2" lpi="6" command="ve1 -3">
|
||||||
<description>Stampa Saldi Estratto Conto per Banca</description>
|
<description>Stampa Saldi Estratto Conto per Banca</description>
|
||||||
<font face="Courier New" size="8" />
|
<font face="Courier New" size="8" />
|
||||||
<section type="Head">
|
<section type="Head">
|
||||||
|
8
co/co1800a.h
Executable file
8
co/co1800a.h
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#define F_DADATA 101
|
||||||
|
#define F_ADATA 102
|
||||||
|
#define F_ANNO 103
|
||||||
|
#define F_FROMCODART 104
|
||||||
|
#define F_TOCODART 105
|
||||||
|
#define F_CODNUM 106
|
||||||
|
#define F_DASOCIO 107
|
||||||
|
#define F_ASOCIO 108
|
118
co/co1800a.rep
Executable file
118
co/co1800a.rep
Executable file
@ -0,0 +1,118 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<report name="co1800a" orientation="2" lpi="6" command="ve1 -3">
|
||||||
|
<description>STAMPA CONFERIMENTI</description>
|
||||||
|
<font face="Courier New" size="8" />
|
||||||
|
<section type="Head">
|
||||||
|
<field x="133.08" y="0.18" type="Testo" valign="bottom" width="6" pattern="1" text="Data" />
|
||||||
|
<field x="139.08" y="0.18" type="Data" valign="bottom" align="right" width="12" pattern="1">
|
||||||
|
<source>#SYSTEM.DATE</source>
|
||||||
|
</field>
|
||||||
|
<field x="157.08" y="0.18" type="Testo" valign="bottom" width="5" pattern="1" text="Pag." />
|
||||||
|
<field x="165.08" y="0.18" type="Numero" valign="bottom" align="right" width="4" pattern="1">
|
||||||
|
<source>#REPORT.PAGE</source>
|
||||||
|
</field>
|
||||||
|
<field x="71.18" y="0.62" type="Testo" valign="center" align="center" width="42" height="2" pattern="1" text="STAMPA CONFERIMENTI">
|
||||||
|
<font face="Courier New" bold="1" size="14" />
|
||||||
|
</field>
|
||||||
|
<field border="2" x="0.18" y="2.62" type="Linea" width="170" height="0" pattern="1" />
|
||||||
|
<field x="3.18" y="3.62" type="Testo" width="6" pattern="1" text="Ditta" />
|
||||||
|
<field x="10.18" y="3.62" type="Stringa" width="60" pattern="1">
|
||||||
|
<source>#SYSTEM.RAGSOC</source>
|
||||||
|
</field>
|
||||||
|
<field x="3.18" y="4.62" type="Testo" valign="bottom" width="12" pattern="1" text="Dalla data" />
|
||||||
|
<field x="15.18" y="4.62" type="Data" valign="bottom" align="right" width="12" pattern="1">
|
||||||
|
<source>#DADATA</source>
|
||||||
|
</field>
|
||||||
|
<field x="28.18" y="4.62" type="Testo" valign="bottom" align="center" width="10" pattern="1" text="alla data" />
|
||||||
|
<field x="40.18" y="4.62" type="Data" valign="bottom" align="right" width="12" pattern="1">
|
||||||
|
<source>#ADATA</source>
|
||||||
|
</field>
|
||||||
|
<field border="2" x="0.18" y="6.62" type="Linea" width="170" height="0" pattern="1" />
|
||||||
|
<field x="2" y="7" type="Testo" width="12" pattern="1" text="Data">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
</field>
|
||||||
|
<field x="10" y="7" type="Testo" align="right" width="8" pattern="1" text="N.reg.">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
</field>
|
||||||
|
<field x="30" y="7" type="Testo" width="27" pattern="1" text="Codice socio">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
</field>
|
||||||
|
<field x="86.5" y="8" type="Testo" valign="bottom" align="right" width="15" pattern="1" text="Importo" />
|
||||||
|
<field x="107.5" y="8" type="Testo" valign="bottom" align="right" width="4" pattern="1" text="IVA" />
|
||||||
|
<field x="119.5" y="8" type="Testo" valign="bottom" align="right" width="15" pattern="1" text="Imposta" />
|
||||||
|
<field x="6.5" y="8.25" type="Testo" width="50" pattern="1" text="Prestazione">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
</field>
|
||||||
|
<field border="2" y="10" type="Linea" width="170" height="0" pattern="1" />
|
||||||
|
</section>
|
||||||
|
<section type="Head" level="1">
|
||||||
|
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.101|RESET,F1.102|RESET,F1.103|RESET,F1.104|RESET,F1.105|RESET,F1.106|RESET,F1.107|RESET,F1.108</prescript>
|
||||||
|
</section>
|
||||||
|
<section type="Body" />
|
||||||
|
<section type="Body" level="1" />
|
||||||
|
<section type="Head" level="11">
|
||||||
|
<field x="39" y="0.25" type="Stringa" width="50" pattern="1">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
<source>TRIM(20.RAGSOC[1,30])+' '+TRIM(20.RAGSOC[31,50])</source>
|
||||||
|
</field>
|
||||||
|
<field x="2.06" y="0.31" type="Data" width="12" pattern="1">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
<source>DATADOC</source>
|
||||||
|
</field>
|
||||||
|
<field x="15.06" y="0.31" type="Numero" align="right" width="8" pattern="1">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
<source>NDOC</source>
|
||||||
|
</field>
|
||||||
|
<field x="30" y="0.31" type="Numero" align="right" width="7" pattern="1">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
<source>CODCF</source>
|
||||||
|
</field>
|
||||||
|
</section>
|
||||||
|
<section type="Body" level="11">
|
||||||
|
<sql>USE RDOC
|
||||||
|
SELECT BETWEEN(CODART,#PARENT.#DACODART,#PARENT.#ACODART)
|
||||||
|
FROM PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
||||||
|
TO PROVV=#PARENT.PROVV ANNO=#PARENT.ANNO CODNUM=#PARENT.CODNUM NDOC=#PARENT.NDOC
|
||||||
|
</sql>
|
||||||
|
<field x="2" type="Numero" align="right" width="3" pattern="1" hide_zero="1">
|
||||||
|
<source>NRIGA</source>
|
||||||
|
</field>
|
||||||
|
<field x="6.5" type="Stringa" width="3" pattern="1">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
<source>RDOC.CODARTMAG</source>
|
||||||
|
</field>
|
||||||
|
<field x="10.5" type="Stringa" width="51" pattern="1">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
<source>DESCR</source>
|
||||||
|
</field>
|
||||||
|
<field x="86.5" type="Valuta" valign="bottom" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
|
<source>RDOC.IMPNS</source>
|
||||||
|
<prescript description="B11.0 PRESCRIPT">MESSAGE ADD,F1.105</prescript>
|
||||||
|
</field>
|
||||||
|
<field x="107.5" type="Stringa" valign="bottom" align="right" width="6" pattern="1">
|
||||||
|
<source>RDOC.CODIVA</source>
|
||||||
|
<prescript description="B11.0 PRESCRIPT">MESSAGE TABLEREAD,%IVA,#THIS,S1</prescript>
|
||||||
|
</field>
|
||||||
|
<field x="119" type="Valuta" valign="bottom" align="right" width="15" pattern="1" hide_zero="1" text="###.###.###,@@">
|
||||||
|
<source>RDOC.IMPOSTA</source>
|
||||||
|
</field>
|
||||||
|
</section>
|
||||||
|
<section type="Foot" level="11" height="1" />
|
||||||
|
<section type="Foot" />
|
||||||
|
<section type="Foot" level="1">
|
||||||
|
<field border="2" y="1" type="Linea" width="170" height="0" pattern="1" />
|
||||||
|
<field x="2" y="2" type="Testo" width="50" pattern="1" text="Totale">
|
||||||
|
<font face="Courier New" bold="1" size="10" />
|
||||||
|
</field>
|
||||||
|
<field x="86.5" y="2" type="Valuta" valign="bottom" align="right" width="15" id="105" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||||
|
<field x="130" y="3" type="Valuta" align="right" width="18" id="106" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||||
|
<field x="155" y="3" type="Valuta" align="right" width="13" id="107" pattern="1" hide_zero="1" text="###.###.###,@@" />
|
||||||
|
</section>
|
||||||
|
<sql>USE DOC
|
||||||
|
SELECT (BETWEEN(DATADOC,#DADATA,#ADATA))(BETWEEN(CODCF,#DASOCIO,#ASOCIO))
|
||||||
|
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
|
||||||
|
FROM PROVV=D ANNO=#ANNO CODNUM=#CODNUM
|
||||||
|
TO PROVV=D ANNO=#ANNO CODNUM=#CODNUM
|
||||||
|
|
||||||
|
</sql>
|
||||||
|
</report>
|
119
co/co1800a.uml
Executable file
119
co/co1800a.uml
Executable file
@ -0,0 +1,119 @@
|
|||||||
|
#include "co1800a.h"
|
||||||
|
|
||||||
|
PAGE "Stampa Prestazioni" -1 -1 78 10
|
||||||
|
|
||||||
|
STRING F_CODNUM 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 1 "Numerazione "
|
||||||
|
USE %NUM
|
||||||
|
INPUT CODTAB F_CODNUM
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizone@50" S0
|
||||||
|
OUTPUT F_CODNUM CODTAB
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD #CODNUM
|
||||||
|
FLAG "U"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 1 "Anno "
|
||||||
|
FIELD #ANNO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_DASOCIO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 2 "Da socio "
|
||||||
|
FIELD #DASOCIO
|
||||||
|
USE LF_CLIFO SELECT LF_SOCICOOP->CODCF!=""
|
||||||
|
JOIN LF_SOCICOOP INTO CODCF==CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_DASOCIO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice fiscale@16" COFI
|
||||||
|
OUTPUT F_DASOCIO CODCF
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ASOCIO 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 3 "A socio "
|
||||||
|
FIELD #ASOCIO
|
||||||
|
USE LF_CLIFO SELECT LF_SOCICOOP->CODCF!=""
|
||||||
|
JOIN LF_SOCICOOP INTO CODCF==CODCF
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_ASOCIO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione sociale@50" 20->RAGSOC
|
||||||
|
DISPLAY "Codice fiscale@16" 20->COFI
|
||||||
|
OUTPUT F_ASOCIO CODCF
|
||||||
|
STR_EXPR #F_ASOCIO>=#F_DASOCIO
|
||||||
|
WARNING "Range codice socio non corretto"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FROMCODART 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 4 "Da prestazione "
|
||||||
|
FLAGS "U"
|
||||||
|
USE SPP
|
||||||
|
INPUT CODTAB F_FROMCODART
|
||||||
|
DISPLAY "Prestazione@20" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_FROMCODART CODTAB
|
||||||
|
GROUP G_ART G_ALL
|
||||||
|
FIELD #DACODART
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TOCODART 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 5 "A prestazione "
|
||||||
|
FLAGS "U"
|
||||||
|
USE SPP
|
||||||
|
INPUT CODTAB F_TOCODART
|
||||||
|
DISPLAY "Prestazione@20" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_TOCODART CODTAB
|
||||||
|
GROUP G_ART G_ALL
|
||||||
|
STR_EXPR #F_TOCODART>=#F_FROMCODART
|
||||||
|
WARNING "Range codice articolo non corretto"
|
||||||
|
FIELD #ACODART
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DADATA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 2 "Da data "
|
||||||
|
FIELD #DADATA
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_ADATA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 3 "A data "
|
||||||
|
FIELD #ADATA
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_PRINT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 "~Stampa"
|
||||||
|
MESSAGE EXIT,K_ENTER
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING DLG_PROFILE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 5 7 "Profilo "
|
||||||
|
PSELECT
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
15
co/coconf.h
15
co/coconf.h
@ -14,4 +14,17 @@
|
|||||||
#define F_SPESACASSE 113
|
#define F_SPESACASSE 113
|
||||||
#define F_D_SPESACASSE 114
|
#define F_D_SPESACASSE 114
|
||||||
#define F_PROGQTA 115
|
#define F_PROGQTA 115
|
||||||
|
#define F_NUMCHI 116
|
||||||
|
#define F_DNUMCHI 117
|
||||||
|
#define F_TIPORIT 118
|
||||||
|
#define F_DTIPORIT 119
|
||||||
|
#define F_SPRITCHI 120
|
||||||
|
#define F_DSPRITCHI 121
|
||||||
|
#define F_TIPOCHI 122
|
||||||
|
#define F_DTIPOCHI 123
|
||||||
|
#define F_SPCHI 124
|
||||||
|
#define F_DSPCHI 125
|
||||||
|
#define F_TIPOASS 126
|
||||||
|
#define F_DTIPOASS 127
|
||||||
|
#define F_SPASS 128
|
||||||
|
#define F_DSPASS 129
|
||||||
|
@ -45,6 +45,7 @@ Module = 29
|
|||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Stampa libro soci", "ba8 -4 co1100a", "F"
|
Item_01 = "Stampa libro soci", "ba8 -4 co1100a", "F"
|
||||||
Item_02 = "Stampa conferimenti", "ve1 -3 co1200a", "F"
|
Item_02 = "Stampa conferimenti", "ve1 -3 co1200a", "F"
|
||||||
Item_03 = "Stampa estratto conto", "co1 -2", "F"
|
Item_02 = "Stampa prestazioni", "ve1 -3 co1800a", "F"
|
||||||
Item_04 = "Stampa saldi estratto conto", "ve1 -3 co1600a", "F"
|
Item_04 = "Stampa estratto conto", "co1 -2", "F"
|
||||||
Item_05 = "Stampa saldi estratto conto per banca", "ve1 -3 co1700a", "F"
|
Item_05 = "Stampa saldi estratto conto", "ve1 -3 co1600a", "F"
|
||||||
|
Item_06 = "Stampa saldi estratto conto per banca", "ve1 -3 co1700a", "F"
|
||||||
|
@ -130,16 +130,17 @@ HE "Codice del socio del documento"
|
|||||||
FLAG "R"
|
FLAG "R"
|
||||||
FI CODCF
|
FI CODCF
|
||||||
GR 1
|
GR 1
|
||||||
US 161 KE 1
|
US 20 KE 1 SELECT 161->CODCF!=""
|
||||||
JO 20 INTO TIPOCF=='F' CODCF==CODCF
|
JO 161 INTO CODCF==CODCF
|
||||||
|
IN TIPOCF "F"
|
||||||
IN CODCF 108
|
IN CODCF 108
|
||||||
DI "Codice" CODCF
|
DI "Codice" CODCF
|
||||||
DI "Ragione Sociale@50" 20->RAGSOC
|
DI "Ragione Sociale@50" RAGSOC
|
||||||
DI "Partita IVA@12" 20->PAIV
|
DI "Partita IVA@12" PAIV
|
||||||
OU 108 CODCF
|
OU 108 CODCF
|
||||||
OU 301 20->RAGSOC
|
OU 301 RAGSOC
|
||||||
OU 328 20->COFI
|
OU 328 COFI
|
||||||
OU 340 20->PAIV
|
OU 340 PAIV
|
||||||
CH REQUIRED
|
CH REQUIRED
|
||||||
ADD RU co0 -5
|
ADD RU co0 -5
|
||||||
ME CO,10@
|
ME CO,10@
|
||||||
@ -150,15 +151,15 @@ WA "Socio assente"
|
|||||||
HE "Ragione sociale del socio del documento"
|
HE "Ragione sociale del socio del documento"
|
||||||
PR 24 6 ""
|
PR 24 6 ""
|
||||||
GR 1
|
GR 1
|
||||||
US 20 KE 2
|
US 20 KE 2 SELECT 161->CODCF!=""
|
||||||
|
JO 161 INTO CODCF==CODCF
|
||||||
IN TIPOCF "F"
|
IN TIPOCF "F"
|
||||||
IN RAGSOC 301
|
IN RAGSOC 301
|
||||||
DI "Ragione Sociale@50" RAGSOC
|
DI "Ragione Sociale@50" RAGSOC
|
||||||
DI "Partita IVA@12" PAIV
|
DI "Partita IVA@12" PAIV
|
||||||
DI "Codice" CODCF
|
DI "Codice" CODCF
|
||||||
OU 108 CODCF
|
CO OU 108
|
||||||
OU 301 RAGSOC
|
CH SEARCH
|
||||||
CH REQUIRED
|
|
||||||
ADD RU cg0 -1 F
|
ADD RU cg0 -1 F
|
||||||
ME CO,11@
|
ME CO,11@
|
||||||
EN
|
EN
|
||||||
|
@ -24,15 +24,15 @@ BEGIN
|
|||||||
CHECKTYPE FORCED
|
CHECKTYPE FORCED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESMER 50
|
STRING F_DESMER 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 14 2 ""
|
PROMPT 34 2 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODARTMER 10
|
STRING F_CODARTMER 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Cod. art. mercato "
|
PROMPT 2 4 "Art.mercato "
|
||||||
KEY 1
|
KEY 1
|
||||||
FIELD CODTAB[7,16]
|
FIELD CODTAB[7,16]
|
||||||
USE %COA
|
USE %COA
|
||||||
@ -49,9 +49,9 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR 50
|
STRING F_DESCR 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 14 3 "Descrizione "
|
PROMPT 34 4 ""
|
||||||
KEY 2
|
KEY 2
|
||||||
FIELD S0
|
FIELD S0
|
||||||
USE %COA KEY 2
|
USE %COA KEY 2
|
||||||
@ -66,7 +66,7 @@ END
|
|||||||
|
|
||||||
STRING F_CODART 20
|
STRING F_CODART 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Articolo "
|
PROMPT 2 6 "Articolo "
|
||||||
FLAG "U"
|
FLAG "U"
|
||||||
FIELD S1
|
FIELD S1
|
||||||
USE LF_ANAMAG
|
USE LF_ANAMAG
|
||||||
@ -78,9 +78,9 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESART 50
|
STRING F_DESART 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 4 ""
|
PROMPT 34 6 ""
|
||||||
USE LF_ANAMAG KEY 2
|
USE LF_ANAMAG KEY 2
|
||||||
INPUT DESCR F_DESART
|
INPUT DESCR F_DESART
|
||||||
DISPLAY "Codice@20" CODART
|
DISPLAY "Codice@20" CODART
|
||||||
|
@ -162,6 +162,11 @@ BE
|
|||||||
PR 42 7 "Partita Iva "
|
PR 42 7 "Partita Iva "
|
||||||
FLAG "D"
|
FLAG "D"
|
||||||
EN
|
EN
|
||||||
|
BU 499 10 2
|
||||||
|
BE
|
||||||
|
PR 2 8 "~Genera"
|
||||||
|
ME EXIT,20082
|
||||||
|
EN
|
||||||
ST 111 3
|
ST 111 3
|
||||||
BE
|
BE
|
||||||
PR 2 11 "Valuta "
|
PR 2 11 "Valuta "
|
||||||
|
@ -352,6 +352,7 @@ void TQuery_mask::create_browse1(TEdit_field& kfld, int level, short key_id) con
|
|||||||
out << "\" CODTAB[2,0]" << endl;
|
out << "\" CODTAB[2,0]" << endl;
|
||||||
out << "DI \"" << TR("Descrizione") << "@50\" S0" << endl;
|
out << "DI \"" << TR("Descrizione") << "@50\" S0" << endl;
|
||||||
out << "OU " << id << " CODTAB[2,0]" << endl;
|
out << "OU " << id << " CODTAB[2,0]" << endl;
|
||||||
|
out << "OU " << 300 + level << " S0" << endl;
|
||||||
if (level == 1)
|
if (level == 1)
|
||||||
out << "CH RE" << endl;
|
out << "CH RE" << endl;
|
||||||
else
|
else
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#include <diction.h>
|
||||||
#include <odbcrset.h>
|
#include <odbcrset.h>
|
||||||
#include <sqlset.h>
|
#include <sqlset.h>
|
||||||
#include <textset.h>
|
#include <textset.h>
|
||||||
@ -356,7 +357,7 @@ void TODBC_recordset::set(const char* sql)
|
|||||||
TString pwd = conn.get(); pwd.strip("\"");
|
TString pwd = conn.get(); pwd.strip("\"");
|
||||||
TString dir = conn.get(); dir.strip("\"");
|
TString dir = conn.get(); dir.strip("\"");
|
||||||
if (!connect(dsn, usr, pwd, dir))
|
if (!connect(dsn, usr, pwd, dir))
|
||||||
error_box("Couldn't connect to %s", (const char*)dsn);
|
error_box(TR("Impossibile connettersi al DSN %s"), (const char*)dsn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,26 +121,26 @@ void TVariable_field::zero()
|
|||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
TVariable_rectype::TVariable_rectype(int logicnum)
|
TVariable_rectype::TVariable_rectype(int logicnum)
|
||||||
: TRectype(logicnum), _memo_fld_to_load(FALSE)
|
: TRectype(logicnum), _memo_fld_to_load(false)
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
TVariable_rectype::TVariable_rectype(const TBaseisamfile* i)
|
TVariable_rectype::TVariable_rectype(const TBaseisamfile* i)
|
||||||
: TRectype(i), _memo_fld_to_load(FALSE)
|
: TRectype(i), _memo_fld_to_load(false)
|
||||||
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
TVariable_rectype::TVariable_rectype(const TRectype& r)
|
TVariable_rectype::TVariable_rectype(const TRectype& r)
|
||||||
: TRectype(r), _memo_fld_to_load(FALSE)
|
: TRectype(r), _memo_fld_to_load(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TVariable_rectype::TVariable_rectype(const TVariable_rectype& r)
|
TVariable_rectype::TVariable_rectype(const TVariable_rectype& r)
|
||||||
: TRectype((const TRectype &) r), _memo_fld_to_load(FALSE)
|
: TRectype((const TRectype &) r), _memo_fld_to_load(false)
|
||||||
{
|
{
|
||||||
_virtual_fields = r._virtual_fields;
|
_virtual_fields = r._virtual_fields;
|
||||||
set_memo_fld(r._memo_fld);
|
set_memo_fld(r._memo_fld);
|
||||||
@ -157,17 +157,14 @@ void TVariable_rectype::write_memo(TIsam_handle file, const TRecnotype recno)
|
|||||||
if (_memo_fld.not_empty())
|
if (_memo_fld.not_empty())
|
||||||
{
|
{
|
||||||
TToken_string t(256, '\n');
|
TToken_string t(256, '\n');
|
||||||
TString s(80);
|
|
||||||
for (TVariable_field * vf = (TVariable_field *) _virtual_fields.first_item(); vf;
|
for (TVariable_field * vf = (TVariable_field *) _virtual_fields.first_item(); vf;
|
||||||
vf = (TVariable_field *) _virtual_fields.succ_item())
|
vf = (TVariable_field *) _virtual_fields.succ_item())
|
||||||
{
|
{
|
||||||
const TString& val = vf->get();
|
const TString& val = vf->get();
|
||||||
|
if (val.full() && val != "0")
|
||||||
if (val.not_empty())
|
|
||||||
{
|
{
|
||||||
s = vf->name();
|
t.add(vf->name());
|
||||||
s << "=" << val;
|
t << "=" << val;
|
||||||
t.add(s);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
put(_memo_fld, t);
|
put(_memo_fld, t);
|
||||||
|
@ -28,6 +28,7 @@ Trasferimento Maestri a TeamSystem
|
|||||||
Convesione file Landi
|
Convesione file Landi
|
||||||
Stampa bollettini postali Condeco
|
Stampa bollettini postali Condeco
|
||||||
copia movimenti magazzino AZ
|
copia movimenti magazzino AZ
|
||||||
|
Importazione anagrafiche e fatture da paghe
|
||||||
|
|
||||||
PG0069 Nautilus (Sipag)
|
PG0069 Nautilus (Sipag)
|
||||||
Importazione e contabilizzazione fatture Nautilus
|
Importazione e contabilizzazione fatture Nautilus
|
||||||
|
@ -15,6 +15,8 @@ int main(int argc, char** argv)
|
|||||||
pg0001400(argc, argv); break; // stampa bollettini postali Condeco
|
pg0001400(argc, argv); break; // stampa bollettini postali Condeco
|
||||||
case 4:
|
case 4:
|
||||||
pg0001500(argc, argv); break; // copia movimenti magazzino AZ
|
pg0001500(argc, argv); break; // copia movimenti magazzino AZ
|
||||||
|
case 5:
|
||||||
|
pg0001600(argc, argv); break; // ricezione clienti e movimenti da paghe
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
pg0001100(argc, argv);
|
pg0001100(argc, argv);
|
||||||
|
@ -3,3 +3,4 @@ int pg0001200(int argc, char* argv[]);
|
|||||||
int pg0001300(int argc, char* argv[]);
|
int pg0001300(int argc, char* argv[]);
|
||||||
int pg0001400(int argc, char* argv[]);
|
int pg0001400(int argc, char* argv[]);
|
||||||
int pg0001500(int argc, char* argv[]);
|
int pg0001500(int argc, char* argv[]);
|
||||||
|
int pg0001600(int argc, char* argv[]);
|
361
ps/pg0001600.cpp
Executable file
361
ps/pg0001600.cpp
Executable file
@ -0,0 +1,361 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <automask.h>
|
||||||
|
#include <execp.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <reprint.h>
|
||||||
|
#include <reputils.h>
|
||||||
|
#include <utility.h>
|
||||||
|
|
||||||
|
#include "pg0001.h"
|
||||||
|
#include "pg0001600a.h"
|
||||||
|
|
||||||
|
#include "textset.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "clifo.h"
|
||||||
|
#include "cfven.h"
|
||||||
|
#include "comuni.h"
|
||||||
|
#include "doc.h"
|
||||||
|
#include "rdoc.h"
|
||||||
|
|
||||||
|
#include "..\cg\cglib01.h"
|
||||||
|
#include "..\ve\velib.h"
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TCLienti_textset
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TClienti_recset : public TAS400_recordset
|
||||||
|
{
|
||||||
|
TAssoc_array _index;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void add_field(const char* name = "Filler", char tipo = 'a', int len = 0, int from = -1,
|
||||||
|
const char* def = NULL);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TClienti_recset(const char * query);
|
||||||
|
};
|
||||||
|
|
||||||
|
void TClienti_recset::add_field(const char* name, char tipo, int len, int from,
|
||||||
|
const char* def)
|
||||||
|
{
|
||||||
|
const bool required = false;
|
||||||
|
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
|
||||||
|
const int pos = from - 1;
|
||||||
|
if (def && *def)
|
||||||
|
{
|
||||||
|
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
|
||||||
|
TVariant var(def); var.convert_to(t);
|
||||||
|
create_field(name, pos, len, t, required, var);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
create_field(name, pos, len, t, required);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TClienti_recset::TClienti_recset(const char * query)
|
||||||
|
: TAS400_recordset(TString("AS400(2138)\n") << query)
|
||||||
|
{
|
||||||
|
const char a = 'a';
|
||||||
|
const char n = 'n';
|
||||||
|
const bool o = true;
|
||||||
|
const bool f = false;
|
||||||
|
|
||||||
|
add_field("FLD001", n, 4, 1); // codice azienda
|
||||||
|
add_field("FLD002", a, 2, 5); // filiale
|
||||||
|
add_field("FLD003", a, 1, 7); // stato record se A annullata
|
||||||
|
add_field(CLI_TIPOPERS, n, 1, 8); // società = 2 persona fisica = 1
|
||||||
|
add_field(CLI_RAGSOC, a, 45, 9); // Ragione sociale
|
||||||
|
add_field("FLD006", a, 30, 54); // indirizzo
|
||||||
|
add_field("FLD007", a, 25, 84); // Comune di residenza
|
||||||
|
add_field("FLD008", a, 2, 109); // Provincia di residenza
|
||||||
|
add_field("FLD009", a, 5, 121); // C.a.p.
|
||||||
|
add_field(CLI_COFI, a, 16, 126); // Codice fiscale o partita I.v.a
|
||||||
|
add_field(CLI_PAIV, a, 11, 142); // Partita I.v.a.
|
||||||
|
add_field("FLD012", a, 30, 153); // Indirizzo domicilio fiscale
|
||||||
|
add_field("FLD013", a, 25, 183); // Comune domicilio fiscale
|
||||||
|
add_field("FLD014", a, 2, 208); // Provincia domicilio fiscale
|
||||||
|
add_field("FLD015", a, 5, 220); // C.a.p. domicilio fiscale
|
||||||
|
add_field("FLD016", a, 1, 241); // Sesso
|
||||||
|
add_field("FLD017", a, 4, 242); // anno di nascita o costituzione
|
||||||
|
add_field("FLD018", a, 2, 246); // mese di nascita o costituzione
|
||||||
|
add_field("FLD019", a, 2, 248); // giorno di nascita o costituzione
|
||||||
|
add_field("FLD020", a, 25, 250); // comune di nascita o costituzione
|
||||||
|
add_field("FLD021", a, 2, 275); // provincia di nascita o costituzione
|
||||||
|
add_field("FLD022", a, 20, 277); // Cognome ditta individuale
|
||||||
|
add_field("FLD023", a, 15, 297); // Nome ditta individuale
|
||||||
|
add_field("FLD024", a, 30, 312); // Indirizzo domicilio fiscale
|
||||||
|
add_field("FLD025", a, 23, 342); // Comune domicilio fiscale
|
||||||
|
add_field("FLD026", a, 5, 375); // C.a.p. domicilio fiscale
|
||||||
|
add_field(CLI_INDCF, a, 30, 394); // Indirizzo sede legale
|
||||||
|
add_field(CLI_COMCF, a, 25, 424); // comune sede legale
|
||||||
|
add_field("FLD029", a, 2, 449); // provincia sede legale
|
||||||
|
add_field(CLI_CAPCF, a, 5, 461); // c..a.p. sede legale
|
||||||
|
add_field(CLI_PTEL, a, 4, 466); // prefisso telefonico sede legale
|
||||||
|
add_field(CLI_TEL, a, 10, 470); // numero telefonico sede legale
|
||||||
|
add_field("FLD033", a, 2, 480); // provincia costituzione
|
||||||
|
add_field("FLD034", n, 1, 494); // Domicilio fiscale diverso da legale se c'è 1 è diverso 0 è uguale}
|
||||||
|
add_field("FILLER", n, 1642, 495); // Domicilio fiscale diverso da legale se c'è 1 è diverso 0 è uguale}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TAutomask
|
||||||
|
|
||||||
|
class TPaghe2mov_mask : public TAutomask
|
||||||
|
{
|
||||||
|
void serialize(bool bSave);
|
||||||
|
protected:
|
||||||
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
public:
|
||||||
|
TPaghe2mov_mask();
|
||||||
|
virtual ~TPaghe2mov_mask();
|
||||||
|
};
|
||||||
|
|
||||||
|
TPaghe2mov_mask::TPaghe2mov_mask() : TAutomask("pg0001600a")
|
||||||
|
{
|
||||||
|
serialize(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TPaghe2mov_mask::~TPaghe2mov_mask()
|
||||||
|
{
|
||||||
|
serialize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPaghe2mov_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPaghe2mov_mask::serialize(bool bSave)
|
||||||
|
{
|
||||||
|
const char* defpar = "MAIN";
|
||||||
|
TConfig ini("pg0001conf.ini", defpar);
|
||||||
|
for (int i = fields()-1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
TMask_field& f = fld(i);
|
||||||
|
const TFieldref* fr = f.field();
|
||||||
|
if (fr != NULL)
|
||||||
|
{
|
||||||
|
if (bSave)
|
||||||
|
fr->write(ini, defpar, f.get());
|
||||||
|
else
|
||||||
|
f.set(fr->read(ini, defpar));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_F9)
|
||||||
|
{
|
||||||
|
FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC));
|
||||||
|
strcpy(fs.type, "");
|
||||||
|
strcpy(fs.name, f.get());
|
||||||
|
xvt_fsys_get_default_dir(&fs.dir);
|
||||||
|
xvt_fsys_save_dir();
|
||||||
|
if (xvt_dm_post_file_open(&fs, TR("Selezione file")) == FL_OK)
|
||||||
|
{
|
||||||
|
TFilename n;
|
||||||
|
xvt_fsys_convert_dir_to_str(&fs.dir, n.get_buffer(n.size()), n.size());
|
||||||
|
n.add(fs.name);
|
||||||
|
f.set(n);
|
||||||
|
}
|
||||||
|
xvt_fsys_restore_dir();
|
||||||
|
f.set_focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TPaghe2mov application
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TPaghe2mov : public TSkeleton_application
|
||||||
|
{
|
||||||
|
TPaghe2mov_mask* _m;
|
||||||
|
TLog_report* _log;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual const char * extra_modules() const {return "ba";}
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
virtual void main_loop();
|
||||||
|
void load_cli();
|
||||||
|
TPaghe2mov() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
TPaghe2mov& app() { return (TPaghe2mov&) main_app(); }
|
||||||
|
|
||||||
|
|
||||||
|
bool TPaghe2mov::create()
|
||||||
|
{
|
||||||
|
_m = new TPaghe2mov_mask();
|
||||||
|
_m->set_handler(F_INPATH, browse_file_handler);
|
||||||
|
return TSkeleton_application::create ();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TPaghe2mov::destroy()
|
||||||
|
{
|
||||||
|
delete _m;
|
||||||
|
return TApplication::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void TPaghe2mov::load_cli()
|
||||||
|
{
|
||||||
|
TString query("SELECT * FROM ");
|
||||||
|
TFilename name = _m->get(F_INPATH);
|
||||||
|
const bool aggcli = _m->get_bool(F_AGGCLI);
|
||||||
|
|
||||||
|
name.add("utenti.txt");
|
||||||
|
if (name.exist())
|
||||||
|
{
|
||||||
|
TLocalisamfile clifo(LF_CLIFO);
|
||||||
|
TLocalisamfile cfven(LF_CFVEN);
|
||||||
|
|
||||||
|
query << name;
|
||||||
|
|
||||||
|
TClienti_recset clienti(query);
|
||||||
|
TProgind pi(clienti.items(), TR("Scansione clienti"), true, true);
|
||||||
|
|
||||||
|
for (bool ok = clienti.move_first(); ok; ok = clienti.move_next())
|
||||||
|
{
|
||||||
|
if (!pi.addstatus(1))
|
||||||
|
break;
|
||||||
|
|
||||||
|
clifo.zero();
|
||||||
|
clifo.put(CLI_TIPOCF, "C");
|
||||||
|
|
||||||
|
TString cf(clienti.get(CLI_COFI).as_string());
|
||||||
|
TString paiv(clienti.get(CLI_PAIV).as_string());
|
||||||
|
|
||||||
|
cf.trim();
|
||||||
|
paiv.trim();
|
||||||
|
|
||||||
|
if (clienti.get("FLD003").as_string() != "A")
|
||||||
|
{
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
|
if (cf.full())
|
||||||
|
{
|
||||||
|
clifo.setkey(4);
|
||||||
|
clifo.put(CLI_COFI, cf);
|
||||||
|
found = clifo.read(_isequal) == NOERR;
|
||||||
|
}
|
||||||
|
if (!found && paiv.full())
|
||||||
|
{
|
||||||
|
clifo.setkey(5);
|
||||||
|
clifo.put(CLI_PAIV, paiv);
|
||||||
|
found = clifo.read(_isequal) == NOERR;
|
||||||
|
}
|
||||||
|
clifo.setkey(1);
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
long codcf = 1L;
|
||||||
|
|
||||||
|
clifo.zero();
|
||||||
|
clifo.put(CLI_TIPOCF, "F");
|
||||||
|
if (clifo.read(_isgteq) == NOERR)
|
||||||
|
clifo.prev() ;
|
||||||
|
if (clifo.get(CLI_TIPOCF) == "C")
|
||||||
|
codcf += clifo.get_long(CLI_CODCF);
|
||||||
|
clifo.zero();
|
||||||
|
clifo.put(CLI_TIPOCF, "C");
|
||||||
|
clifo.put(CLI_CODCF, codcf);
|
||||||
|
cfven.zero();
|
||||||
|
cfven.put(CFV_TIPOCF, "C");
|
||||||
|
cfven.put(CFV_CODCF, codcf);
|
||||||
|
cfven.rewrite();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (!aggcli)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
clifo.put(CLI_TIPOPERS, clienti.get(CLI_TIPOPERS).as_string());
|
||||||
|
clifo.put(CLI_RAGSOC, clienti.get(CLI_RAGSOC).as_string());
|
||||||
|
clifo.put(CLI_INDCF, clienti.get(CLI_INDCF).as_string());
|
||||||
|
clifo.put(CLI_CAPCF, clienti.get(CLI_CAPCF).as_string());
|
||||||
|
|
||||||
|
const TString8 cap(clienti.get(CLI_CAPCF).as_string());
|
||||||
|
TString80 comune(clienti.get(CLI_COMCF).as_string());
|
||||||
|
|
||||||
|
comune.trim();
|
||||||
|
|
||||||
|
const TString& codcom = cap2comune(cap, comune);
|
||||||
|
|
||||||
|
clifo.put(CLI_COMCF, cap);
|
||||||
|
if (codcom.full())
|
||||||
|
comune.cut(0);
|
||||||
|
clifo.put(CLI_LOCCF, comune);
|
||||||
|
clifo.put(CLI_COMCF, codcom);
|
||||||
|
clifo.put(CLI_COFI, cf);
|
||||||
|
clifo.put(CLI_PAIV, paiv);
|
||||||
|
if (found)
|
||||||
|
{
|
||||||
|
const int err = clifo.rewrite();
|
||||||
|
TString msg("Aggiornamento cliente ");
|
||||||
|
|
||||||
|
msg << clifo.get(CLI_CODCF) << " - " << clienti.get(CLI_RAGSOC).as_string();
|
||||||
|
if (err == NOERR)
|
||||||
|
_log->log(0, msg);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
msg << " - errore n. " << err;
|
||||||
|
_log->log(2, msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const int err = clifo.write();
|
||||||
|
TString msg("Inserimento cliente ");
|
||||||
|
|
||||||
|
msg << clifo.get(CLI_CODCF) << " - " << clienti.get(CLI_RAGSOC).as_string();
|
||||||
|
if (err == NOERR)
|
||||||
|
_log->log(0, msg);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
msg << " - errore n. " << err;
|
||||||
|
_log->log(2, msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TPaghe2mov::main_loop()
|
||||||
|
{
|
||||||
|
// eliminazione files delle elaborazioni precedenti
|
||||||
|
TString_array transactions;
|
||||||
|
TFilename pgfiles; pgfiles.tempdir();
|
||||||
|
pgfiles.add("conde*.ini");
|
||||||
|
list_files(pgfiles, transactions);
|
||||||
|
FOR_EACH_ARRAY_ROW(transactions, row, name)
|
||||||
|
remove_file(*name);
|
||||||
|
// main
|
||||||
|
if (_m->run() == K_ENTER)
|
||||||
|
{
|
||||||
|
const char* const title = TR("Importazione clienti");
|
||||||
|
|
||||||
|
_log = new TLog_report(title);
|
||||||
|
load_cli();
|
||||||
|
TReport_book book;
|
||||||
|
book.add(*_log);
|
||||||
|
book.preview();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int pg0001600(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TPaghe2mov app;
|
||||||
|
app.run(argc, argv, TR("Ricezione clienti e fatture da paghe"));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
6
ps/pg0001600a.h
Executable file
6
ps/pg0001600a.h
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
// anagrafiche e fatture da paghe
|
||||||
|
|
||||||
|
#define F_CODDITTA 101
|
||||||
|
#define F_RAGSOC 102
|
||||||
|
#define F_INPATH 103
|
||||||
|
#define F_AGGCLI 104
|
57
ps/pg0001600a.uml
Executable file
57
ps/pg0001600a.uml
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#include "pg0001600a.h"
|
||||||
|
|
||||||
|
PAGE "Importazione anagrafiche e fatture da paghe" -1 -1 78 20
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "@bDitta corrente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CODDITTA 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 2 "Codice "
|
||||||
|
FLAGS "FD"
|
||||||
|
USE LF_NDITTE
|
||||||
|
INPUT CODDITTA F_CODDITTA
|
||||||
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 23 2 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 76 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Sorgente"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_INPATH 256 39
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 5 "Cartella "
|
||||||
|
DSELECT
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FIELD PagheInPath
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_AGGCLI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 7 "Aggiorna clienti esistenti"
|
||||||
|
FIELD AggCli
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
186
ps/pn0001100.cpp
186
ps/pn0001100.cpp
@ -92,12 +92,14 @@ class TDettaglio_receiver : public TSkeleton_application
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
void load_clifo(const TDettaglio_mask & m);
|
void load_clifo(const TDettaglio_mask & m);
|
||||||
|
void load_classi(const TDettaglio_mask & m);
|
||||||
|
void load_marche(const TDettaglio_mask & m);
|
||||||
void load_articoli(const TDettaglio_mask & m);
|
void load_articoli(const TDettaglio_mask & m);
|
||||||
void load_barcode(const TDettaglio_mask & m);
|
void load_barcode(const TDettaglio_mask & m);
|
||||||
void load_listino(const TDettaglio_mask & m);
|
void load_listino(const TDettaglio_mask & m);
|
||||||
void load_giacenze(const TDettaglio_mask & m);
|
void load_giacenze(const TDettaglio_mask & m);
|
||||||
void load_costi(const TDettaglio_mask & m);
|
void load_costi(const TDettaglio_mask & m);
|
||||||
void add_to_tab(const TString & codtab, const TString & cod);
|
void add_to_tab(const TString & codtab, const TString & cod, const char * desc = "");
|
||||||
const TString & build_codart(const TString & gruppo, const long codice);
|
const TString & build_codart(const TString & gruppo, const long codice);
|
||||||
virtual const char * extra_modules() const {return "vd";}
|
virtual const char * extra_modules() const {return "vd";}
|
||||||
|
|
||||||
@ -769,6 +771,99 @@ TCosti_textset::TCosti_textset(const char* query)
|
|||||||
add_field("INVMAG", 8, an, 381);
|
add_field("INVMAG", 8, an, 381);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TClasse_textset
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TClasse_textset : public TAS400_recordset
|
||||||
|
{
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void add_field(const char* name = "Filler", int len = 0, char tipo = 'a',
|
||||||
|
int from = -1, const char* def = NULL);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TClasse_textset(const char* query = "");
|
||||||
|
};
|
||||||
|
|
||||||
|
void TClasse_textset::add_field(const char* name, int len,
|
||||||
|
char tipo, int from, const char* def)
|
||||||
|
{
|
||||||
|
const bool required = false;
|
||||||
|
TString80 fname(name);
|
||||||
|
|
||||||
|
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
|
||||||
|
const int pos = from - 1;
|
||||||
|
if (def && *def)
|
||||||
|
{
|
||||||
|
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
|
||||||
|
TVariant var(def); var.convert_to(t);
|
||||||
|
create_field(fname, pos, len, t, required, var);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
create_field(fname, pos, len, t, required);
|
||||||
|
}
|
||||||
|
|
||||||
|
TClasse_textset::TClasse_textset(const char* query)
|
||||||
|
: TAS400_recordset(TString("AS400(47,0,0)\n") << query)
|
||||||
|
{
|
||||||
|
const char an = 'a';
|
||||||
|
const char n = 'n';
|
||||||
|
|
||||||
|
add_field("CODCLA", 2, an, 1);
|
||||||
|
add_field("DESCLA", 20, an, 3);
|
||||||
|
add_field("TRASF", 1, an, 23);
|
||||||
|
add_field("PERCENT", 22, an, 24);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TMarca_textset
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TMarca_textset : public TAS400_recordset
|
||||||
|
{
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void add_field(const char* name = "Filler", int len = 0, char tipo = 'a',
|
||||||
|
int from = -1, const char* def = NULL);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TMarca_textset(const char* query = "");
|
||||||
|
};
|
||||||
|
|
||||||
|
void TMarca_textset::add_field(const char* name, int len,
|
||||||
|
char tipo, int from, const char* def)
|
||||||
|
{
|
||||||
|
const bool required = false;
|
||||||
|
TString80 fname(name);
|
||||||
|
|
||||||
|
const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
|
||||||
|
const int pos = from - 1;
|
||||||
|
if (def && *def)
|
||||||
|
{
|
||||||
|
CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
|
||||||
|
TVariant var(def); var.convert_to(t);
|
||||||
|
create_field(fname, pos, len, t, required, var);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
create_field(fname, pos, len, t, required);
|
||||||
|
}
|
||||||
|
|
||||||
|
TMarca_textset::TMarca_textset(const char* query)
|
||||||
|
: TAS400_recordset(TString("AS400(29,0,0)\n") << query)
|
||||||
|
{
|
||||||
|
const char an = 'a';
|
||||||
|
const char n = 'n';
|
||||||
|
|
||||||
|
add_field("CODMAR", 6, an, 1);
|
||||||
|
add_field("DESMAR", 20, an, 7);
|
||||||
|
add_field("TRASF", 1, an, 27);
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TDettaglio_receiver
|
// TDettaglio_receiver
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -793,19 +888,63 @@ const TString & TDettaglio_receiver::build_codart(const TString & gruppo, const
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TDettaglio_receiver::add_to_tab(const TString & codtab, const TString & cod)
|
void TDettaglio_receiver::add_to_tab(const TString & codtab, const TString & cod, const char * desc)
|
||||||
{
|
{
|
||||||
if (cod.full())
|
if (cod.full())
|
||||||
{
|
{
|
||||||
TTable tab(codtab);
|
TTable tab(codtab);
|
||||||
|
TString d(desc);
|
||||||
tab.put("CODTAB", cod);
|
tab.put("CODTAB", cod);
|
||||||
|
d.trim();
|
||||||
if (tab.read() != NOERR)
|
if (tab.read() != NOERR)
|
||||||
{
|
{
|
||||||
tab.zero();
|
tab.zero();
|
||||||
tab.put("CODTAB", cod);
|
tab.put("CODTAB", cod);
|
||||||
|
tab.put("S0", desc);
|
||||||
tab.write();
|
tab.write();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
if (d.full())
|
||||||
|
{
|
||||||
|
tab.put("S0", d);
|
||||||
|
tab.rewrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDettaglio_receiver::load_classi(const TDettaglio_mask & m)
|
||||||
|
{
|
||||||
|
TString query("SELECT * FROM ");
|
||||||
|
TFilename name = m.get(F_PATH);
|
||||||
|
|
||||||
|
name.add("tab_cla.txt");
|
||||||
|
query << name;
|
||||||
|
|
||||||
|
TClasse_textset inputfile(query);
|
||||||
|
TProgind pi(inputfile.items(), TR("Importazione classi "), true, true);
|
||||||
|
for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
|
||||||
|
{
|
||||||
|
const TString & cod = inputfile.get("CODCLA").as_string();
|
||||||
|
|
||||||
|
add_to_tab("GMC", cod, inputfile.get("DESCLA").as_string());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDettaglio_receiver::load_marche(const TDettaglio_mask & m)
|
||||||
|
{
|
||||||
|
TString query("SELECT * FROM ");
|
||||||
|
TFilename name = m.get(F_PATH);
|
||||||
|
|
||||||
|
name.add("tab_mar.txt");
|
||||||
|
query << name;
|
||||||
|
|
||||||
|
TMarca_textset inputfile(query);
|
||||||
|
TProgind pi(inputfile.items(), TR("Importazione marche "), true, true);
|
||||||
|
for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
|
||||||
|
{
|
||||||
|
const TString & cod = inputfile.get("CODMAR").as_string();
|
||||||
|
|
||||||
|
add_to_tab("RFA", cod, inputfile.get("DESMAR").as_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,15 +985,13 @@ void TDettaglio_receiver::load_articoli(const TDettaglio_mask & m)
|
|||||||
|
|
||||||
const TString & classe = inputfile.get("ACLASS").as_string();
|
const TString & classe = inputfile.get("ACLASS").as_string();
|
||||||
|
|
||||||
anamag.put(ANAMAG_CLASSEFIS, classe);
|
anamag.put(ANAMAG_GRMERC, classe);
|
||||||
add_to_tab("%ASF", classe);
|
add_to_tab("GMC", classe);
|
||||||
if (marca.full() || classe.full())
|
|
||||||
anamag.put(ANAMAG_ARTFIS, "X");
|
|
||||||
|
|
||||||
const TString & categ = inputfile.get("ACATEG").as_string();
|
const TString & categ = inputfile.get("ACATEG").as_string();
|
||||||
|
|
||||||
anamag.put(ANAMAG_GRMERC, categ);
|
anamag.put(ANAMAG_CLASSEFIS, categ);
|
||||||
add_to_tab("GMC", categ);
|
add_to_tab("ASF", categ);
|
||||||
|
|
||||||
anamag.put(ANAMAG_PPCONF, inputfile.get("ACONFE").as_string());
|
anamag.put(ANAMAG_PPCONF, inputfile.get("ACONFE").as_string());
|
||||||
anamag.write();
|
anamag.write();
|
||||||
@ -1002,6 +1139,8 @@ void TDettaglio_receiver::load_listino(const TDettaglio_mask & m)
|
|||||||
TProgind pi(inputfile.items(), TR("Importazione Listino "), true, true);
|
TProgind pi(inputfile.items(), TR("Importazione Listino "), true, true);
|
||||||
TSystemisamfile rcondv(LF_RCONDV);
|
TSystemisamfile rcondv(LF_RCONDV);
|
||||||
TSystemisamfile condv(LF_CONDV);
|
TSystemisamfile condv(LF_CONDV);
|
||||||
|
TLocalisamfile anamag(LF_ANAMAG);
|
||||||
|
TString4 codlist;
|
||||||
|
|
||||||
condv.zap();
|
condv.zap();
|
||||||
rcondv.zap();
|
rcondv.zap();
|
||||||
@ -1011,11 +1150,28 @@ void TDettaglio_receiver::load_listino(const TDettaglio_mask & m)
|
|||||||
{
|
{
|
||||||
if (inputfile.get("LVALAR").as_string().blank())
|
if (inputfile.get("LVALAR").as_string().blank())
|
||||||
{
|
{
|
||||||
const TString & codart = build_codart (inputfile.get("LGRUPP").as_string(), inputfile.get("LCODAR").as_int());
|
const TString80 codart(build_codart(inputfile.get("LGRUPP").as_string(), inputfile.get("LCODAR").as_int()));
|
||||||
TString4 codlist;
|
|
||||||
const int tipocf = inputfile.get("LTIPCF").as_int();
|
const int tipocf = inputfile.get("LTIPCF").as_int();
|
||||||
|
const int list = inputfile.get("LCODLI").as_int();
|
||||||
|
|
||||||
codlist.format("%01d%02d", tipocf, inputfile.get("LCODLI").as_int());
|
if (list == 0)
|
||||||
|
{
|
||||||
|
if (tipocf == 2)
|
||||||
|
{
|
||||||
|
long codforn = inputfile.get("LCFTAB").as_int();
|
||||||
|
|
||||||
|
anamag.zero();
|
||||||
|
anamag.put(ANAMAG_CODART, codart);
|
||||||
|
if (anamag.read() == NOERR)
|
||||||
|
{
|
||||||
|
anamag.put(ANAMAG_CODFORN, codforn);
|
||||||
|
anamag.rewrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
codlist.format("%01d%02d", tipocf, list);
|
||||||
rcondv.zero();
|
rcondv.zero();
|
||||||
rcondv.put(RCONDV_TIPO, "L");
|
rcondv.put(RCONDV_TIPO, "L");
|
||||||
rcondv.put(RCONDV_COD, codlist);
|
rcondv.put(RCONDV_COD, codlist);
|
||||||
@ -1044,6 +1200,7 @@ void TDettaglio_receiver::load_listino(const TDettaglio_mask & m)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
pi.addstatus(1L);;
|
pi.addstatus(1L);;
|
||||||
if (pi.iscancelled())
|
if (pi.iscancelled())
|
||||||
break;
|
break;
|
||||||
@ -1265,6 +1422,11 @@ void TDettaglio_receiver::main_loop()
|
|||||||
{
|
{
|
||||||
|
|
||||||
_len = m.get_int(F_LEN);
|
_len = m.get_int(F_LEN);
|
||||||
|
if (m.get_bool(F_TB))
|
||||||
|
{
|
||||||
|
load_classi(m);
|
||||||
|
load_marche(m);
|
||||||
|
}
|
||||||
if (m.get_bool(F_CF))
|
if (m.get_bool(F_CF))
|
||||||
load_clifo(m);
|
load_clifo(m);
|
||||||
if (m.get_bool(F_AM))
|
if (m.get_bool(F_AM))
|
||||||
|
@ -8,4 +8,5 @@
|
|||||||
#define F_LI 108
|
#define F_LI 108
|
||||||
#define F_GI 109
|
#define F_GI 109
|
||||||
#define F_CS 110
|
#define F_CS 110
|
||||||
|
#define F_TB 111
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "pn0001100.h"
|
#include "pn0001100.h"
|
||||||
|
|
||||||
PAGE "Invio dati contabilita'" -1 -1 78 10
|
PAGE "Invio dati contabilita'" -1 -1 80 10
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 3
|
GROUPBOX DLG_NULL 76 3
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -66,6 +66,12 @@ BEGIN
|
|||||||
FIELD cs
|
FIELD cs
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_TB
|
||||||
|
BEGIN
|
||||||
|
PROMPT 71 5 "Tabelle"
|
||||||
|
FIELD tb
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_PATH 256 30
|
STRING F_PATH 256 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Cartella di input "
|
PROMPT 2 6 "Cartella di input "
|
||||||
|
@ -1092,9 +1092,7 @@ bool TEC_form::print_game(const TPartita& game)
|
|||||||
printer().print(body.row(0));
|
printer().print(body.row(0));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
riga.export_to(*_recordset);
|
riga.export_to(*_recordset);
|
||||||
}
|
|
||||||
|
|
||||||
TString4 codval;
|
TString4 codval;
|
||||||
if (in_valuta())
|
if (in_valuta())
|
||||||
@ -1870,7 +1868,7 @@ int TStampaEC_application::print_ec(TEC_Game_list* games)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (printed > 0)
|
if (printed > 0 && f.stampa_saldo())
|
||||||
{
|
{
|
||||||
f.export_total();
|
f.export_total();
|
||||||
// f.recordset().new_rec();
|
// f.recordset().new_rec();
|
||||||
@ -1930,6 +1928,7 @@ void TStampaEC_application::main_loop()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
const bool excel = k != K_ENTER;
|
const bool excel = k != K_ENTER;
|
||||||
|
|
||||||
_form = new TEC_form(m, _gesval, excel);
|
_form = new TEC_form(m, _gesval, excel);
|
||||||
|
|
||||||
_form->stampa_saldo(m.get_bool(F_STAMPSALDO));
|
_form->stampa_saldo(m.get_bool(F_STAMPSALDO));
|
||||||
@ -1943,7 +1942,6 @@ void TStampaEC_application::main_loop()
|
|||||||
_lastnumec = m.get_long(F_ULTIMOEC);
|
_lastnumec = m.get_long(F_ULTIMOEC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m.get_bool(F_GROUPAGENT))
|
if (m.get_bool(F_GROUPAGENT))
|
||||||
print_agents();
|
print_agents();
|
||||||
else
|
else
|
||||||
|
136
sc/sc2600.cpp
136
sc/sc2600.cpp
@ -10,6 +10,26 @@
|
|||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
#include <nditte.h>
|
#include <nditte.h>
|
||||||
#include <pconti.h>
|
#include <pconti.h>
|
||||||
|
#include <textset.h>
|
||||||
|
|
||||||
|
class TPRSC_recordset : public TAS400_recordset
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TPRSC_recordset(const TString_array & colnames);
|
||||||
|
};
|
||||||
|
|
||||||
|
TPRSC_recordset::TPRSC_recordset(const TString_array & colnames) : TAS400_recordset("AS400(256,0,0)")
|
||||||
|
{
|
||||||
|
create_field("Cliente", 0, 6, _longfld);
|
||||||
|
create_field("RagioneSociale", -1, 50);
|
||||||
|
create_field("Valuta", -1, 3);
|
||||||
|
for (int i = 0; i < colnames.items(); i++)
|
||||||
|
create_field(colnames.row(i), -1, 15, _realfld);
|
||||||
|
create_field("Totale", -1, 15, _realfld);
|
||||||
|
create_field("Esposto", -1, 15, _realfld);
|
||||||
|
create_field("Saldo", -1, 15, _realfld);
|
||||||
|
create_field("Differenza", -1, 15, _realfld);
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Stampa prospetto scadenze
|
// Stampa prospetto scadenze
|
||||||
@ -81,13 +101,17 @@ class TProspettoScadenze : public TPrintapp
|
|||||||
_t, // Array per i totali
|
_t, // Array per i totali
|
||||||
_ns_date, // Date per non scaduto
|
_ns_date, // Date per non scaduto
|
||||||
_s_date; // Date per lo scaduto
|
_s_date; // Date per lo scaduto
|
||||||
|
bool _excel;
|
||||||
|
TPRSC_recordset * _recset;
|
||||||
|
|
||||||
static TString _last_game;
|
static TString _last_game;
|
||||||
static bool fil_function(const TRelation *);
|
static bool fil_function(const TRelation *);
|
||||||
|
TString_array _colnames;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool preprocess_page(int file, int counter);
|
virtual bool preprocess_page(int file, int counter);
|
||||||
virtual bool preprocess_print(int file, int counter);
|
virtual bool preprocess_print(int file, int counter);
|
||||||
|
virtual void postclose_print();
|
||||||
virtual print_action postprocess_print(int file, int counter);
|
virtual print_action postprocess_print(int file, int counter);
|
||||||
virtual print_action postprocess_page(int file, int counter);
|
virtual print_action postprocess_page(int file, int counter);
|
||||||
virtual void preprocess_header() {};
|
virtual void preprocess_header() {};
|
||||||
@ -97,6 +121,7 @@ public:
|
|||||||
virtual bool set_print(int);
|
virtual bool set_print(int);
|
||||||
virtual void set_page (int file, int counter);
|
virtual void set_page (int file, int counter);
|
||||||
void print_totali_rows(int nriga, bool what);
|
void print_totali_rows(int nriga, bool what);
|
||||||
|
void export_totali_rows();
|
||||||
void print_totali(int nriga);
|
void print_totali(int nriga);
|
||||||
void print_header();
|
void print_header();
|
||||||
int calc_last_column();
|
int calc_last_column();
|
||||||
@ -477,6 +502,18 @@ print_action TProspettoScadenze::postprocess_print(int file, int counter)
|
|||||||
return rt;
|
return rt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TProspettoScadenze::postclose_print()
|
||||||
|
{
|
||||||
|
if (_excel)
|
||||||
|
{
|
||||||
|
TFilename slk; slk.tempdir(); slk.add("prosscad.slk");
|
||||||
|
_recset->save_as(slk, fmt_silk);
|
||||||
|
xvt_sys_goto_url(slk, "open");
|
||||||
|
delete _recset;
|
||||||
|
_recset = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print_action TProspettoScadenze::postprocess_page(int file, int counter)
|
print_action TProspettoScadenze::postprocess_page(int file, int counter)
|
||||||
{
|
{
|
||||||
return NEXT_PAGE;
|
return NEXT_PAGE;
|
||||||
@ -537,9 +574,10 @@ void TProspettoScadenze::riempi_conti_mastro(const char cf)
|
|||||||
|
|
||||||
bool TProspettoScadenze::set_print(int)
|
bool TProspettoScadenze::set_print(int)
|
||||||
{
|
{
|
||||||
if (_m->run() == K_ENTER)
|
KEY k = _m->run();
|
||||||
|
_excel = k != K_ENTER;
|
||||||
|
if (k != K_QUIT)
|
||||||
{
|
{
|
||||||
|
|
||||||
reset_files();
|
reset_files();
|
||||||
reset_print();
|
reset_print();
|
||||||
printer().footerlen(5);
|
printer().footerlen(5);
|
||||||
@ -612,7 +650,27 @@ bool TProspettoScadenze::set_print(int)
|
|||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
} // End of inner switch
|
} // End of inner switch
|
||||||
|
if (_excel)
|
||||||
|
{
|
||||||
|
_colnames.destroy();
|
||||||
|
if (_sinfasce)
|
||||||
|
{
|
||||||
|
_colnames.add(format("Scaduto > %3d gg", limiti[_sfasce]));
|
||||||
|
for (int i = _sfasce; i > 0; i--)
|
||||||
|
_colnames.add(format("Scaduto <= %3d gg", limiti[i]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_colnames.add("Scaduto");
|
||||||
|
if (_nsinfasce)
|
||||||
|
{
|
||||||
|
for (int i = 1; i <= _nsfasce; i++)
|
||||||
|
_colnames.add(format("A Scadere <= %3d gg", limiti[i]));
|
||||||
|
_colnames.add(format("A Scadere > %3d gg", limiti[_nsfasce]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_colnames.add("A Scadere");
|
||||||
|
_recset = new TPRSC_recordset(_colnames);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
} // End if
|
} // End if
|
||||||
return false;
|
return false;
|
||||||
@ -625,11 +683,12 @@ void TProspettoScadenze::print_totali_rows(int nriga, bool what)
|
|||||||
TAssoc_array& xassoc = (TAssoc_array&) _t[what];
|
TAssoc_array& xassoc = (TAssoc_array&) _t[what];
|
||||||
TString_array as;
|
TString_array as;
|
||||||
const int items = xassoc.items();
|
const int items = xassoc.items();
|
||||||
|
|
||||||
xassoc.get_keys(as);
|
xassoc.get_keys(as);
|
||||||
as.sort();
|
as.sort();
|
||||||
for (int i=0; i < items; i++)
|
for (int i=0; i < items; i++)
|
||||||
{
|
{
|
||||||
if (!what)
|
if (!what && !_excel)
|
||||||
calcola_saldo();
|
calcola_saldo();
|
||||||
|
|
||||||
TString k(as.row(i)); // Chiave di ordinamento(valuta)
|
TString k(as.row(i)); // Chiave di ordinamento(valuta)
|
||||||
@ -736,9 +795,76 @@ void TProspettoScadenze::print_totali_rows(int nriga, bool what)
|
|||||||
xassoc.destroy(); // Distrugge il totale appena stampato
|
xassoc.destroy(); // Distrugge il totale appena stampato
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TProspettoScadenze::export_totali_rows()
|
||||||
|
// If what is 0 prints single total... else prints also general total
|
||||||
|
{
|
||||||
|
TAssoc_array& xassoc = (TAssoc_array&) _t[0];
|
||||||
|
TString_array as;
|
||||||
|
const int items = xassoc.items();
|
||||||
|
|
||||||
|
xassoc.get_keys(as);
|
||||||
|
as.sort();
|
||||||
|
for (int i=0; i < items; i++)
|
||||||
|
{
|
||||||
|
TVariant var(_cod_pre);
|
||||||
|
TString k(as.row(i)); // Chiave di ordinamento(valuta)
|
||||||
|
TLineTotal& v = (TLineTotal&)xassoc[k];
|
||||||
|
|
||||||
|
|
||||||
|
calcola_saldo();
|
||||||
|
_recset->new_rec();
|
||||||
|
_recset->set("Cliente", var);
|
||||||
|
var = _des_pre;
|
||||||
|
_recset->set("RagioneSociale", var);
|
||||||
|
var = k;
|
||||||
|
_recset->set("Valuta", var);
|
||||||
|
int col = 0;
|
||||||
|
real tot = ZERO;
|
||||||
|
|
||||||
|
if (_sinfasce)
|
||||||
|
{
|
||||||
|
for (int i = _sfasce; i >= 0; i--)
|
||||||
|
{
|
||||||
|
_recset->set(_colnames.row(col++), v._s[i]);
|
||||||
|
tot += v._s[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_recset->set(_colnames.row(col++), v._s[0]);
|
||||||
|
tot += v._s[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_nsinfasce)
|
||||||
|
{
|
||||||
|
for (int i = 0; i <= _nsfasce; i++)
|
||||||
|
{
|
||||||
|
_recset->set(_colnames.row(col++), v._ns[i]);
|
||||||
|
tot += v._ns[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_recset->set(_colnames.row(col++), v._ns[0]);
|
||||||
|
tot += v._ns[0];
|
||||||
|
col++;
|
||||||
|
}
|
||||||
|
|
||||||
|
const real diff = v._sl - (tot - v._es);
|
||||||
|
|
||||||
|
_recset->set("Totale", tot);
|
||||||
|
_recset->set("Esposto", v._es);
|
||||||
|
_recset->set("Saldo", v._sl);
|
||||||
|
_recset->set("Differenza", diff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TProspettoScadenze::print_totali(int nriga)
|
void TProspettoScadenze::print_totali(int nriga)
|
||||||
{
|
{
|
||||||
reset_row(nriga);
|
reset_row(nriga);
|
||||||
|
if (_excel)
|
||||||
|
export_totali_rows();
|
||||||
print_totali_rows(nriga,0);
|
print_totali_rows(nriga,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -772,7 +898,7 @@ void TProspettoScadenze::print_header()
|
|||||||
case fornitori:
|
case fornitori:
|
||||||
case clienti:
|
case clienti:
|
||||||
{
|
{
|
||||||
TString s1,s2, s3;
|
TString s1,s2, s3, lim;
|
||||||
int o = 0; // Offset per scaglioni.
|
int o = 0; // Offset per scaglioni.
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,23 +4,30 @@ TOOLBAR "" 0 0 0 2
|
|||||||
|
|
||||||
BUTTON DLG_PRINT 10 2
|
BUTTON DLG_PRINT 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -14 -11 ""
|
PROMPT -15 -11 ""
|
||||||
MESSAGE EXIT,K_ENTER
|
MESSAGE EXIT,K_ENTER
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_EDIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -25 -1 ""
|
||||||
|
PICTURE BMP_EDIT
|
||||||
|
MESSAGE EXIT,69
|
||||||
|
END
|
||||||
|
|
||||||
BUTTON DLG_INFO 10 2
|
BUTTON DLG_INFO 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -24 -11 ""
|
PROMPT -35 -11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_HELP 10 2
|
BUTTON DLG_HELP 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -34 -11 ""
|
PROMPT -45 -11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_QUIT 11 2
|
BUTTON DLG_QUIT 11 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -44 -11 ""
|
PROMPT -55 -11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -128,10 +128,11 @@ LIST FW_TIPOSTSC 1 41
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 14 "Tipo stampa scont."
|
PROMPT 2 14 "Tipo stampa scont."
|
||||||
ITEM " |Nessuna" MESSAGE CLEAR,FW_CASSAAPP|CLEAR,FW_CASSADIR
|
ITEM " |Nessuna" MESSAGE CLEAR,FW_CASSAAPP|CLEAR,FW_CASSADIR
|
||||||
ITEM "E|Applcazione esterna" MESSAGE ENABLE,FW_CASSAAPP|ENABLE,FW_CASSADIR
|
|
||||||
ITEM "R|Wincor Nixdorf (ER400)" MESSAGE CLEAR,FW_CASSAAPP|CLEAR,FW_CASSADIR
|
ITEM "R|Wincor Nixdorf (ER400)" MESSAGE CLEAR,FW_CASSAAPP|CLEAR,FW_CASSADIR
|
||||||
ITEM "L|Multiprinter (Crf Open, Logic, EJ, PG)" MESSAGE DISABLE,FW_CASSAAPP|"multiprinter S",FW_CASSAAPP|ENABLE,FW_CASSADIR
|
ITEM "L|Multiprinter (Crf Open, Logic, EJ, PG)" MESSAGE DISABLE,FW_CASSAAPP|"multiprinter S",FW_CASSAAPP|ENABLE,FW_CASSADIR
|
||||||
ITEM "N|Multiprinter (Nettuna)" MESSAGE DISABLE,FW_CASSAAPP|"multiprinter S",FW_CASSAAPP|ENABLE,FW_CASSADIR
|
ITEM "N|Multiprinter (Nettuna)" MESSAGE DISABLE,FW_CASSAAPP|"multiprinter S",FW_CASSAAPP|ENABLE,FW_CASSADIR
|
||||||
|
ITEM "E|Applcazione esterna" MESSAGE ENABLE,FW_CASSAAPP|ENABLE,FW_CASSADIR
|
||||||
|
ITEM "C|Report Campo" MESSAGE CLEAR,FW_CASSAAPP|CLEAR,FW_CASSADIR
|
||||||
FIELD TIPOSTSC
|
FIELD TIPOSTSC
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -176,6 +176,8 @@ public:
|
|||||||
const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;}
|
const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;}
|
||||||
bool set_responsabile(const char * user);
|
bool set_responsabile(const char * user);
|
||||||
void set_authorizations(TMask & m);
|
void set_authorizations(TMask & m);
|
||||||
|
bool printable() const { return _print_type != ' ' && _print_type != '\0'; }
|
||||||
|
|
||||||
|
|
||||||
TTurno_vendita & turno() { return *_turno;}
|
TTurno_vendita & turno() { return *_turno;}
|
||||||
|
|
||||||
@ -709,12 +711,14 @@ bool TScontrino_mask::chiudi_handler( TMask_field& f, KEY key )
|
|||||||
mask.show(-3, sapp().curr_user().can_invoice());
|
mask.show(-3, sapp().curr_user().can_invoice());
|
||||||
mask.enable(DLG_OK, doc.totale_doc() == ZERO);
|
mask.enable(DLG_OK, doc.totale_doc() == ZERO);
|
||||||
if (mask.run() == K_ENTER)
|
if (mask.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
if (sapp().printable())
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
sapp().print();
|
sapp().print();
|
||||||
} while (yesno_box(TR("Vuoi ristampare lo scontrino")));
|
} while (yesno_box(TR("Vuoi ristampare lo scontrino")));
|
||||||
|
}
|
||||||
const real & saldo = mask.get_real(F_SALDO);
|
const real & saldo = mask.get_real(F_SALDO);
|
||||||
const long ndoc = doc.get_long(DOC_NDOC);
|
const long ndoc = doc.get_long(DOC_NDOC);
|
||||||
|
|
||||||
@ -807,6 +811,21 @@ bool TScontrino_mask::sospendi_handler( TMask_field& f, KEY key )
|
|||||||
const TTurno_vendita & turno = sapp().turno();
|
const TTurno_vendita & turno = sapp().turno();
|
||||||
TScontrino_mask & docmask = (TScontrino_mask &) f.mask();
|
TScontrino_mask & docmask = (TScontrino_mask &) f.mask();
|
||||||
TChiusura_scontrino_mask & mask = sapp().chiusura();
|
TChiusura_scontrino_mask & mask = sapp().chiusura();
|
||||||
|
TDocumento & doc = docmask.doc();
|
||||||
|
const int nrows = doc.physical_rows();
|
||||||
|
bool zero_doc = true;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
for (r = nrows; zero_doc && r >= 1; r--)
|
||||||
|
{
|
||||||
|
const TRiga_documento & row = doc[r];
|
||||||
|
|
||||||
|
if (row.imponibile() != ZERO)
|
||||||
|
zero_doc = false;
|
||||||
|
}
|
||||||
|
if (zero_doc)
|
||||||
|
return false;
|
||||||
|
else
|
||||||
mask.update_doc(docmask, turno, false);
|
mask.update_doc(docmask, turno, false);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -1766,7 +1785,7 @@ void TScontrino_application::print()
|
|||||||
{
|
{
|
||||||
switch (_print_type)
|
switch (_print_type)
|
||||||
{
|
{
|
||||||
case ' ':
|
case 'C':
|
||||||
TMotore_application::print();
|
TMotore_application::print();
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
@ -1800,7 +1819,6 @@ void TScontrino_application::print()
|
|||||||
print_multiprinter_nettuna();
|
print_multiprinter_nettuna();
|
||||||
break;
|
break;
|
||||||
default: //
|
default: //
|
||||||
TMotore_application::print();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -573,8 +573,8 @@ public:
|
|||||||
|
|
||||||
TRiga_documento(TDocumento* doc, const char* tipo = NULL);
|
TRiga_documento(TDocumento* doc, const char* tipo = NULL);
|
||||||
TRiga_documento(const TRiga_documento & row);
|
TRiga_documento(const TRiga_documento & row);
|
||||||
TRiga_documento(const TRiga_documento& rec, TDocumento* doc,
|
/* Maialata inguardabile: guai a chi la riporta!
|
||||||
const char* tipo = NULL);
|
TRiga_documento(const TRiga_documento& rec, TDocumento* doc, const char* tipo = NULL); */
|
||||||
virtual ~TRiga_documento() {}
|
virtual ~TRiga_documento() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -172,6 +172,7 @@ TRiga_documento::TRiga_documento(const TRiga_documento & row)
|
|||||||
copy(row);
|
copy(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Maialata inguardabile: guai a chi la riporta!
|
||||||
TRiga_documento::TRiga_documento(const TRiga_documento& rec, TDocumento* doc,
|
TRiga_documento::TRiga_documento(const TRiga_documento& rec, TDocumento* doc,
|
||||||
const char * tipo)
|
const char * tipo)
|
||||||
: TAuto_variable_rectype(rec), _doc(doc)
|
: TAuto_variable_rectype(rec), _doc(doc)
|
||||||
@ -179,7 +180,7 @@ TRiga_documento::TRiga_documento(const TRiga_documento& rec, TDocumento* doc,
|
|||||||
set_memo_fld("RG1");
|
set_memo_fld("RG1");
|
||||||
if (tipo)
|
if (tipo)
|
||||||
set_tipo(tipo);
|
set_tipo(tipo);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
const TTipo_riga_documento& TRiga_documento::tipo() const
|
const TTipo_riga_documento& TRiga_documento::tipo() const
|
||||||
{
|
{
|
||||||
@ -271,8 +272,11 @@ void TRiga_documento::forza_sola_descrizione()
|
|||||||
|
|
||||||
TRiga_documento & TRiga_documento::copy(const TRiga_documento& r)
|
TRiga_documento & TRiga_documento::copy(const TRiga_documento& r)
|
||||||
{
|
{
|
||||||
|
if (_doc == NULL)
|
||||||
_doc = r._doc;
|
_doc = r._doc;
|
||||||
operator=((TRectype &)r);
|
TAuto_variable_rectype::operator=(r);
|
||||||
|
reset_fields(*this);
|
||||||
|
set_fields((TAuto_variable_rectype&)r);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,7 +321,8 @@ void TRiga_documento::test_firm()
|
|||||||
|
|
||||||
TRectype & TRiga_documento::operator =(const TRectype & r)
|
TRectype & TRiga_documento::operator =(const TRectype & r)
|
||||||
{
|
{
|
||||||
TRectype::operator=(r);
|
TAuto_variable_rectype::operator=(r);
|
||||||
|
|
||||||
reset_fields(*this);
|
reset_fields(*this);
|
||||||
set_fields(*this);
|
set_fields(*this);
|
||||||
return *this;
|
return *this;
|
||||||
@ -325,7 +330,8 @@ TRectype & TRiga_documento::operator =(const TRectype & r)
|
|||||||
|
|
||||||
TRectype & TRiga_documento::operator =(const char * r)
|
TRectype & TRiga_documento::operator =(const char * r)
|
||||||
{
|
{
|
||||||
TRectype::operator=(r);
|
TAuto_variable_rectype::operator=(r);
|
||||||
|
|
||||||
reset_fields(*this);
|
reset_fields(*this);
|
||||||
set_fields(*this);
|
set_fields(*this);
|
||||||
return *this;
|
return *this;
|
||||||
@ -393,6 +399,14 @@ void TRiga_documento::set_fields(TAuto_variable_rectype & rec)
|
|||||||
add_field(new TDocumento_variable_field(f->name(), *exp));
|
add_field(new TDocumento_variable_field(f->name(), *exp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (TVariable_field * src_field = rec.first_variable_field();
|
||||||
|
src_field != NULL; src_field = rec.succ_variable_field())
|
||||||
|
{
|
||||||
|
const char * fieldname = src_field->name();
|
||||||
|
|
||||||
|
if (src_field->expression() == NULL)
|
||||||
|
put(fieldname, rec.get(fieldname));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -752,6 +752,8 @@ TRiga_documento& TDocumento::insert_row(int row, const char *tipo)
|
|||||||
TRiga_documento& TDocumento::new_row(const char *tipo)
|
TRiga_documento& TDocumento::new_row(const char *tipo)
|
||||||
{
|
{
|
||||||
TRiga_documento& r = (TRiga_documento&)TMultiple_rectype::new_row();
|
TRiga_documento& r = (TRiga_documento&)TMultiple_rectype::new_row();
|
||||||
|
|
||||||
|
r.set_doc(this);
|
||||||
if (tipo && *tipo)
|
if (tipo && *tipo)
|
||||||
r.set_tipo(tipo);
|
r.set_tipo(tipo);
|
||||||
return r;
|
return r;
|
||||||
@ -1734,12 +1736,12 @@ void TDocumento::set_fields(TAuto_variable_rectype & rec)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (TVariable_field * src_field = rec.first_variable_field();
|
for (TVariable_field * src_field = rec.first_variable_field();
|
||||||
src_field != NULL; src_field = rec.succ_variable_field())
|
src_field != NULL; src_field = rec.succ_variable_field())
|
||||||
{
|
{
|
||||||
const char * fieldname = src_field->name();
|
const char * fieldname = src_field->name();
|
||||||
|
|
||||||
// if (!exist(fieldname))
|
|
||||||
if (src_field->expression() == NULL)
|
if (src_field->expression() == NULL)
|
||||||
put(fieldname, rec.get(fieldname));
|
put(fieldname, rec.get(fieldname));
|
||||||
}
|
}
|
||||||
@ -2368,8 +2370,10 @@ TDocumento & TDocumento::copy(const TDocumento & d)
|
|||||||
for (int i = physical_rows(); i > 0; i--)
|
for (int i = physical_rows(); i > 0; i--)
|
||||||
{
|
{
|
||||||
TRiga_documento& r = row(i);
|
TRiga_documento& r = row(i);
|
||||||
|
|
||||||
r.set_doc(this);
|
r.set_doc(this);
|
||||||
r.set_fields(r);
|
r.reset_fields(r);
|
||||||
|
r.set_fields(((TAuto_variable_rectype &)d[i]));
|
||||||
}
|
}
|
||||||
set_riga_sconto();
|
set_riga_sconto();
|
||||||
if (is_fattura())
|
if (is_fattura())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user