Patch level :2.0 p@rtners 680
Files correlati :cg3 cg3800a.msk/frm Ricompilazione Demo : [ ] Commento :secondo step evolutivo della lista fatture doppie; adesso stampa git-svn-id: svn://10.65.10.50/trunk@11748 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2200151308
commit
b3f899b13c
@ -4067,7 +4067,7 @@ void TStampa_bilanci::preprocess_header()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (_tipo_stampa1 == 1)
|
if (_tipo_stampa1 == 1)
|
||||||
set_header(r,TR("PROGRESSIVI PRECEDENTI"));
|
h << TR("PROGRESSIVI PRECEDENTI");
|
||||||
h << "@80g!@88g";
|
h << "@80g!@88g";
|
||||||
h << TR("MOVIMENTI DEL PERIODO");
|
h << TR("MOVIMENTI DEL PERIODO");
|
||||||
set_header(r, h);
|
set_header(r, h);
|
||||||
|
@ -14,6 +14,7 @@ int main(int argc,char** argv)
|
|||||||
case 4 : cg3500(argc,argv) ; break; // Stampa ripilogo gruppi conti
|
case 4 : cg3500(argc,argv) ; break; // Stampa ripilogo gruppi conti
|
||||||
case 5 : cg3600(argc,argv) ; break; // Visualizzazione mastrini
|
case 5 : cg3600(argc,argv) ; break; // Visualizzazione mastrini
|
||||||
case 6 : cg3700(argc,argv) ; break; // Lista fatture
|
case 6 : cg3700(argc,argv) ; break; // Lista fatture
|
||||||
|
case 7 : cg3800(argc,argv) ; break; // Lista fatture doppie
|
||||||
default: cg3100(argc,argv) ; break; // Lista movimenti
|
default: cg3100(argc,argv) ; break; // Lista movimenti
|
||||||
}
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
|
1
cg/cg3.h
1
cg/cg3.h
@ -20,6 +20,7 @@ int cg3400(int argc, char* argv[]);
|
|||||||
int cg3500(int argc, char* argv[]);
|
int cg3500(int argc, char* argv[]);
|
||||||
int cg3600(int argc, char* argv[]);
|
int cg3600(int argc, char* argv[]);
|
||||||
int cg3700(int argc, char* argv[]);
|
int cg3700(int argc, char* argv[]);
|
||||||
|
int cg3800(int argc, char* argv[]);
|
||||||
|
|
||||||
#endif // __CG3_H
|
#endif // __CG3_H
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
|
|
||||||
|
#include <clifo.h>
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include <partite.h>
|
#include <partite.h>
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
@ -43,36 +44,98 @@ bool TDouble_fatt_mask::on_field_event(TOperable_field& o, TField_event e, long
|
|||||||
class TDouble_fatt_form : public TForm
|
class TDouble_fatt_form : public TForm
|
||||||
{
|
{
|
||||||
|
|
||||||
|
TPointer_array& _duplicati;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool validate(TForm_item &cf, TToken_string &s);
|
virtual bool validate(TForm_item &cf, TToken_string &s);
|
||||||
|
virtual long records() const {return _duplicati.items();}
|
||||||
|
const TRectype& get_mov (int i, int j) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void fill_header_last(int i);
|
||||||
|
void fill_body_odd(int i , int j);
|
||||||
void print(const TMask& m);
|
void print(const TMask& m);
|
||||||
TDouble_fatt_form();
|
TDouble_fatt_form(TPointer_array&);
|
||||||
virtual ~TDouble_fatt_form();
|
virtual ~TDouble_fatt_form();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
bool TDouble_fatt_form::validate(TForm_item &cf, TToken_string &s)
|
bool TDouble_fatt_form::validate(TForm_item &cf, TToken_string &s)
|
||||||
{
|
{
|
||||||
/* if (s == "_NEXTPAG")
|
|
||||||
{
|
|
||||||
_curr_pag ++; //aggiorna il contatore pagamenti quando ne trova uno sull'arrayone
|
|
||||||
return true;
|
|
||||||
}*/
|
|
||||||
return TForm::validate(cf,s);
|
return TForm::validate(cf,s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TRectype& TDouble_fatt_form::get_mov (int i, int j) const
|
||||||
|
{
|
||||||
|
const TPointer_array& dup = (const TPointer_array&)_duplicati[i];
|
||||||
|
const long numreg = dup.get_long(j);
|
||||||
|
|
||||||
|
return cache().get(LF_MOV, numreg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDouble_fatt_form::fill_header_last(int i)
|
||||||
|
{
|
||||||
|
const TRectype& mov = get_mov(i,0);
|
||||||
|
TPrint_section& header = section('H', last_page);
|
||||||
|
|
||||||
|
header.reset();
|
||||||
|
|
||||||
|
header.find_field(FR_ANNODOC).set(mov.get(MOV_DATADOC).right(4));
|
||||||
|
header.find_field(FR_NDOC).set(mov.get(MOV_NUMDOC));
|
||||||
|
const TString& codcf = mov.get(MOV_CODCF);
|
||||||
|
TString16 key;
|
||||||
|
key.format("F|%s",(const char *)codcf);
|
||||||
|
const TRectype& clifo = cache().get(LF_CLIFO, key);
|
||||||
|
header.find_field(FR_CODCF).set(codcf);
|
||||||
|
header.find_field(FR_RAGSOC).set(clifo.get(CLI_RAGSOC));
|
||||||
|
|
||||||
|
header.update();
|
||||||
|
|
||||||
|
for (word k = 0; k < header.height(); k++)
|
||||||
|
printer().print(header.row(k));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDouble_fatt_form::fill_body_odd(int i, int j)
|
||||||
|
{
|
||||||
|
const TRectype& mov = get_mov(i,j);
|
||||||
|
TPrint_section& body = section('B', odd_page);
|
||||||
|
|
||||||
|
body.reset();
|
||||||
|
|
||||||
|
body.find_field(FR_NUMREG).set(mov.get(MOV_NUMREG));
|
||||||
|
body.find_field(FR_DATAREG).set(mov.get(MOV_DATAREG));
|
||||||
|
body.find_field(FR_DESCREG).set(mov.get(MOV_DESCR));
|
||||||
|
|
||||||
|
body.update();
|
||||||
|
for (word k = 0; k < body.height(); k++)
|
||||||
|
printer().print(body.row(k));
|
||||||
|
}
|
||||||
|
|
||||||
void TDouble_fatt_form::print(const TMask& m)
|
void TDouble_fatt_form::print(const TMask& m)
|
||||||
{
|
{
|
||||||
|
|
||||||
TPrint_section& header = section('H', odd_page);
|
TPrint_section& header = section('H', odd_page);
|
||||||
header.find_field(FR_DADATA).set(m.get(F_DADATA));
|
header.find_field(FR_DADATA).set(m.get(F_DADATA));
|
||||||
header.find_field(FR_ADATA).set(m.get(F_ADATA));
|
header.find_field(FR_ADATA).set(m.get(F_ADATA));
|
||||||
|
header.update();
|
||||||
|
set_background(1, TRUE);
|
||||||
|
set_header(1, TRUE);
|
||||||
|
set_footer(1, FALSE);
|
||||||
|
|
||||||
TForm::print(); //chiama la vera print dopo aver azzerato il contatore
|
printer().open();
|
||||||
|
for (int i = 0; i < _duplicati.items(); i++)
|
||||||
|
{
|
||||||
|
fill_header_last(i);
|
||||||
|
const TPointer_array& dup = (const TPointer_array&)_duplicati[i];
|
||||||
|
for (int j = 0; j < dup.items(); j++)
|
||||||
|
fill_body_odd(i,j);
|
||||||
|
|
||||||
|
}
|
||||||
|
printer().close();
|
||||||
}
|
}
|
||||||
|
|
||||||
TDouble_fatt_form::TDouble_fatt_form() :TForm ("cg3800a")
|
TDouble_fatt_form::TDouble_fatt_form(TPointer_array& dupl) :TForm ("cg3800a"), _duplicati(dupl)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,7 +171,7 @@ public:
|
|||||||
bool TDouble_fatt::create()
|
bool TDouble_fatt::create()
|
||||||
{
|
{
|
||||||
_mask = new TDouble_fatt_mask;
|
_mask = new TDouble_fatt_mask;
|
||||||
_form = new TDouble_fatt_form();
|
_form = new TDouble_fatt_form(_duplicati);
|
||||||
|
|
||||||
|
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
@ -208,9 +271,15 @@ void TDouble_fatt::main_loop()
|
|||||||
TCursor cur(&rel, "TIPO=='F'", 2, &darec, &arec);
|
TCursor cur(&rel, "TIPO=='F'", 2, &darec, &arec);
|
||||||
_movimenti.destroy();
|
_movimenti.destroy();
|
||||||
scan_cursor(cur, "Ricerca fatture doppie...", mov_callback, this);
|
scan_cursor(cur, "Ricerca fatture doppie...", mov_callback, this);
|
||||||
|
|
||||||
|
if (_duplicati.items() > 0)
|
||||||
|
_form->print(*_mask);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int cg3800(int argc, char* argv[])
|
int cg3800(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TDouble_fatt a;
|
TDouble_fatt a;
|
||||||
|
@ -3,5 +3,14 @@
|
|||||||
#define FR_DADATA 11
|
#define FR_DADATA 11
|
||||||
#define FR_ADATA 12
|
#define FR_ADATA 12
|
||||||
|
|
||||||
|
#define FR_ANNODOC 15
|
||||||
|
#define FR_NDOC 16
|
||||||
|
#define FR_CODCF 17
|
||||||
|
#define FR_RAGSOC 18
|
||||||
|
|
||||||
|
#define FR_NUMREG 20
|
||||||
|
#define FR_DATAREG 21
|
||||||
|
#define FR_DESCREG 22
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,13 +9,13 @@ END
|
|||||||
|
|
||||||
LINEA -1 132 1
|
LINEA -1 132 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "@b"
|
PROMPT 1 8 "@b"
|
||||||
END
|
END
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
// intestazione generale stampa pagato per commessa
|
// intestazione generale stampa pagato per commessa
|
||||||
SECTION HEADER ODD 7
|
SECTION HEADER ODD 8
|
||||||
|
|
||||||
NUMERO -1
|
NUMERO -1
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -49,110 +49,102 @@ BEGIN
|
|||||||
PROMPT 40 3 "al "
|
PROMPT 40 3 "al "
|
||||||
END
|
END
|
||||||
|
|
||||||
LINEA -1 132 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 4 "B"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRINGA -1
|
STRINGA -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "anno documento"
|
KEY "anno documento"
|
||||||
PROMPT 1 5 "@bANNO"
|
PROMPT 1 6 "@bANNO"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA -1
|
STRINGA -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "numero documento"
|
KEY "numero documento"
|
||||||
PROMPT 6 5 "@bNUM. DOC. "
|
PROMPT 6 6 "@bNUM. DOC. "
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING -1
|
STRING -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "codice fornitore"
|
KEY "codice fornitore"
|
||||||
PROMPT 18 5 "@bFORNITORE"
|
PROMPT 18 6 "@bFORNITORE"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING -1
|
STRING -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "ragione sociale"
|
KEY "ragione sociale"
|
||||||
PROMPT 28 5 "@bRAGIONE SOCIALE"
|
PROMPT 28 6 "@bRAGIONE SOCIALE"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING -1
|
STRING -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "numero registrazione"
|
KEY "numero registrazione"
|
||||||
PROMPT 6 6 "@bNum.Reg."
|
PROMPT 6 7 "@bNum.Reg."
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING -1
|
STRING -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "data registrazione"
|
KEY "data registrazione"
|
||||||
PROMPT 15 6 "@bData Reg."
|
PROMPT 15 7 "@bData Reg."
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING -1
|
STRING -1
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "descrizione registrazione"
|
KEY "descrizione registrazione"
|
||||||
PROMPT 26 6 "@bDescrizione"
|
PROMPT 26 7 "@bDescrizione"
|
||||||
END
|
|
||||||
|
|
||||||
LINEA -1 132 1
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 7 "B"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
END // section header odd
|
END // section header odd
|
||||||
|
|
||||||
// riga di stampa (utilizzata per ogni movimento)
|
// documento duplicato
|
||||||
SECTION BODY ODD 1
|
SECTION HEADER LAST 2
|
||||||
|
|
||||||
NUMERO FR_ANNODOC 4
|
NUMERO FR_ANNODOC 4
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "anno doc"
|
KEY "anno doc"
|
||||||
PROMPT
|
PROMPT 1 2 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA FR_NDOC 7
|
STRINGA FR_NDOC 7
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "num doc"
|
KEY "num doc"
|
||||||
|
PROMPT 6 2 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMERO FR_CODCF 6
|
NUMERO FR_CODCF 6
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "codice clifo"
|
KEY "codice clifo"
|
||||||
|
PROMPT 18 2 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA FR_RAGSOC 50
|
STRINGA FR_RAGSOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "ragsoc"
|
KEY "ragsoc"
|
||||||
|
PROMPT 28 2 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
SECTION REGISTRAZIONI 2 1 1 FILE LF_MOV GROUP LF_MOV->
|
END //end della header last: section del documento che viene duplicato
|
||||||
|
|
||||||
|
SECTION BODY ODD 1 // section dei duplicati
|
||||||
|
|
||||||
NUMERO FR_NUMREG
|
NUMERO FR_NUMREG
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "numero registrazione"
|
KEY "numero registrazione"
|
||||||
PROMPT ""
|
PROMPT 6 1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
DATA FR_DATAREG
|
DATA FR_DATAREG
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "data registrazione"
|
KEY "data registrazione"
|
||||||
PROMPT ""
|
PROMPT 15 1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
STRINGA FR_DESCREG 50
|
STRINGA FR_DESCREG 50
|
||||||
BEGIN
|
BEGIN
|
||||||
KEY "descrizione registrazione"
|
KEY "descrizione registrazione"
|
||||||
PROMPT ""
|
PROMPT 26 1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
END //end section registrazioni
|
END //end section duplicati
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END // section body odd
|
|
||||||
|
|
||||||
SECTION FOOTER ODD 1
|
SECTION FOOTER ODD 1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -258,6 +258,7 @@ Flags = ""
|
|||||||
Item_01 = "Lista fatture con iva indetraibile", "cg3 -6 I", "F"
|
Item_01 = "Lista fatture con iva indetraibile", "cg3 -6 I", "F"
|
||||||
Item_02 = "Lista fatture per tipo costo/ricavo", "cg3 -6 C", "F"
|
Item_02 = "Lista fatture per tipo costo/ricavo", "cg3 -6 C", "F"
|
||||||
Item_03 = "Lista fatture intracomunitarie", "cg3 -6 N", "F"
|
Item_03 = "Lista fatture intracomunitarie", "cg3 -6 N", "F"
|
||||||
|
Item_04 = "Lista fatture doppie", "cg3 -7", "F"
|
||||||
|
|
||||||
[CGMENU_027]
|
[CGMENU_027]
|
||||||
Caption = "Gestione acconti IVA"
|
Caption = "Gestione acconti IVA"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user