Controllo della data di registrazione rispetto alla data di stampa del libro

giornale dell'esercizio corrispondente.


git-svn-id: svn://10.65.10.50/trunk@220 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-09-12 09:33:02 +00:00
parent 5053839767
commit 2442a6edf3
5 changed files with 2083 additions and 2084 deletions

View File

@ -831,13 +831,12 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
if (f.dirty() || f.mask().query_mode()) if (f.dirty() || f.mask().query_mode())
{ {
const TLibro_giornale& gio = app().giornale(); const TLibro_giornale& gio = app().giornale();
const TDate ljp(gio.global_last_print()); if (dr <= gio.last_print())
if (dr <= ljp) return f.error_box("La data dell'operazione e' antecedente al %s, ultima stampa\n"
return f.error_box("La data dell'operazione e' antecedente alla data\n" "del libro giornale dell'esercizio %d", gio.last_reg().string(), ae);
"dell'ultima stampa del libro giornale: %s", ljp.string());
if (dr < gio.last_reg()) if (dr < gio.last_reg())
warning_box("La data dell'operazione e' antecedente al %s, ultima registrazione\n" warning_box("La data dell'operazione e' antecedente al %s, ultima registrazione\n"
"sul libro giornale del %d", "sul libro giornale dell'esercizio %d",
gio.last_reg().string(), ae); gio.last_reg().string(), ae);
if (m.query_mode()) if (m.query_mode())

File diff suppressed because it is too large Load Diff

View File

@ -1,128 +1,128 @@
// //
// cg4400.h // cg4400.h
// //
#include <isam.h> #include <isam.h>
#include <lffiles.h> #include <lffiles.h>
#include <printapp.h> #include <printapp.h>
#include <mask.h> #include <mask.h>
#include <strings.h> #include <strings.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <stdlib.h> #include <stdlib.h>
#include <urldefid.h> #include <urldefid.h>
#include <sheet.h> #include <sheet.h>
#include <config.h> #include <config.h>
#include <nditte.h> #include <nditte.h>
#include <anagr.h> #include <anagr.h>
#include <comuni.h> #include <comuni.h>
#include <mov.h> #include <mov.h>
#include <rmoviva.h> #include <rmoviva.h>
#include <clifo.h> #include <clifo.h>
#include <occas.h> #include <occas.h>
#include <causali.h> #include <causali.h>
#include "cglib03.h" #include "cglib03.h"
//enum STAMPA { bollati=1, unici=2 }; //enum STAMPA { bollati=1, unici=2 };
const int TABREG = (int)TTable::name2log("REG"); const int TABREG = (int)TTable::name2log("REG");
bool filter_func (const TRelation*); bool filter_func (const TRelation*);
bool my_handler (TMask_field&, KEY); bool my_handler (TMask_field&, KEY);
bool mask_from_to (TMask_field&, KEY); bool mask_from_to (TMask_field&, KEY);
bool mask_cod (TMask_field&, KEY); bool mask_cod (TMask_field&, KEY);
bool mask_data (TMask_field&, KEY); bool mask_data (TMask_field&, KEY);
bool mask_mese (TMask_field&, KEY); bool mask_mese (TMask_field&, KEY);
bool mask_fino_a_mese (TMask_field&, KEY); bool mask_fino_a_mese (TMask_field&, KEY);
bool mask_select (TMask_field&, KEY); bool mask_select (TMask_field&, KEY);
bool mask_verifica (TMask_field&, KEY); bool mask_verifica (TMask_field&, KEY);
bool mask_annulla (TMask_field&, KEY); bool mask_annulla (TMask_field&, KEY);
class TDati_ditta : public TObject class TDati_ditta : public TObject
{ {
TLocalisamfile * _nditte, * _anag, *_comuni; TLocalisamfile * _nditte, * _anag, *_comuni;
TString _ragsoc, _cofi, _paiva; TString _ragsoc, _cofi, _paiva;
TString _comunefis, _viafis, _provfis, _cap; TString _comunefis, _viafis, _provfis, _cap;
long _codditta; long _codditta;
int _stampa_width; int _stampa_width;
protected: protected:
void get_dati_ditta(); void get_dati_ditta();
TRectype& look_com (const char * codice); TRectype& look_com (const char * codice);
public: public:
const char* prima_riga (); const char* prima_riga ();
const char* seconda_riga (); const char* seconda_riga ();
TDati_ditta (long cod_ditta, int stampa_width); TDati_ditta (long cod_ditta, int stampa_width);
virtual ~TDati_ditta(); virtual ~TDati_ditta();
}; };
class CG4400_application : public TPrintapp class CG4400_application : public TPrintapp
{ {
friend bool filter_func (const TRelation *r); friend bool filter_func (const TRelation *r);
friend bool mask_cod (TMask_field&, KEY); friend bool mask_cod (TMask_field&, KEY);
friend bool mask_from_to (TMask_field&, KEY); friend bool mask_from_to (TMask_field&, KEY);
friend bool mask_mese (TMask_field&, KEY); friend bool mask_mese (TMask_field&, KEY);
friend bool my_handler (TMask_field&, KEY); friend bool my_handler (TMask_field&, KEY);
friend bool mask_select (TMask_field&, KEY); friend bool mask_select (TMask_field&, KEY);
friend bool mask_verifica (TMask_field&, KEY); friend bool mask_verifica (TMask_field&, KEY);
friend bool mask_annulla (TMask_field&, KEY); friend bool mask_annulla (TMask_field&, KEY);
TCursor * _cur; TCursor * _cur;
TRelation *_rel; TRelation *_rel;
TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom; TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom;
TTable *_tabreg, *_tablbu, *_tabinl, *_tablim, *_tabpim; TTable *_tabreg, *_tablbu, *_tabinl, *_tablim, *_tabpim;
TRigaiva_array _iva_array, _riga_rmi; TRigaiva_array _iva_array, _riga_rmi;
TTipodoc_array _doc_array; TTipodoc_array _doc_array;
TRiga_array _tot_iva_array; TRiga_array _tot_iva_array;
TArray_sheet *_ditte; TArray_sheet *_ditte;
TBit_array _selected; TBit_array _selected;
TArray _nomiditte; //array descrizioni ditte per sheet TArray _nomiditte; //array descrizioni ditte per sheet
TRecnotype _nrec; TRecnotype _nrec;
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri; bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri;
char _frequiva; char _frequiva;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg; TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
long _n_ditte, _u_stampata, _primast; long _n_ditte, _u_stampata, _primast;
int _fino_a_mese, _tipo_reg, _tipo_stampa, _pagine_stampate; int _fino_a_mese, _tipo_reg, _tipo_stampa, _pagine_stampate;
int _annoes, _r, _stampa_width; // riga corrente di stampa int _annoes, _r, _stampa_width; // riga corrente di stampa
real _totale_doc; real _totale_doc;
TString _codreg, _desc_lib, _codatt, _attivita; TString _codreg, _desc_lib, _codatt, _attivita;
TString _tipodoc, _descr_doc, _codlib; TString _tipodoc, _descr_doc, _codlib;
public: public:
const char* desc_attivita (const char * codatt); const char* desc_attivita (const char * codatt);
const char* descr_doc (const char * tipo); const char* descr_doc (const char * tipo);
const char* descr_iva (const char * cod); const char* descr_iva (const char * cod);
const char* ricerca_cf (char tipocf, long codcf); const char* ricerca_cf (char tipocf, long codcf);
const char* ricerca_occ(const char * occ); const char* ricerca_occ(const char * occ);
int setta_riga (int, const TRigaiva&, real&, real&, real&, real&); int setta_riga (int, const TRigaiva&, real&, real&, real&, real&);
int riga_rmoviva(); int riga_rmoviva();
bool set_print(int); bool set_print(int);
bool set_ditte(TMask&); bool set_ditte(TMask&);
bool compila_reg(const TMask&); bool compila_reg(const TMask&);
bool compila_lib(); bool compila_lib();
bool controlla_liquidazione(); bool controlla_liquidazione();
bool controlla_mov(); bool controlla_mov();
void cerca_reg(const TString&, byte&, TDate&); void cerca_reg(const TString&, byte&, TDate&);
//void leggi_movimenti(const TDate&, const TString&, bool&); //void leggi_movimenti(const TDate&, const TString&, bool&);
void stampa_registri_IVA(const TMask&); void stampa_registri_IVA(const TMask&);
void set_page_tot_reg(); void set_page_tot_reg();
void aggiorna_reg(); void aggiorna_reg();
void aggiorna_lib(); void aggiorna_lib();
void calcola_progressivi(real&, real&, const char*, const int); void calcola_progressivi(real&, real&, const char*, const int);
void user_create(); void user_create();
void user_destroy(); void user_destroy();
bool preprocess_page(int, int); bool preprocess_page(int, int);
int stampa_intestazione_ditta(); int stampa_intestazione_ditta();
bool preprocess_print(int, int); bool preprocess_print(int, int);
print_action postprocess_print(int, int); print_action postprocess_print(int, int);
print_action postprocess_page (int, int); print_action postprocess_page (int, int);
void preprocess_header(); void preprocess_header();
CG4400_application() : TPrintapp(),_ditte(NULL),_selected(10000), CG4400_application() : TPrintapp(),_ditte(NULL),_selected(10000),
_nomiditte(100) {} _nomiditte(100) {}
virtual ~CG4400_application() {} virtual ~CG4400_application() {}
}; };

View File

@ -1,236 +1,236 @@
// cg4400a.uml // cg4400a.uml
// Stampa tabella registri // Stampa tabella registri
#include "cg4400a.h" #include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 19 PAGE "Stampa registri IVA" -1 -1 56 19
/* /*
LISTBOX TIPO_STAMPA 2 27 LISTBOX TIPO_STAMPA 2 27
BEGIN BEGIN
PROMPT 2 1 "Tipo stampa " PROMPT 2 1 "Tipo stampa "
ITEM "1|Libri bollati della ditta" ITEM "1|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
ITEM "2|Libri unici dello studio" ITEM "2|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@ MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
ITEM "3|Stampa di prova" ITEM "3|Stampa di prova"
MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO
ITEM "4|Stampa libri con riferimenti al libro giornale" ITEM "4|Stampa libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
END END
*/ */
NUMBER TIPO_STAMPA 1 NUMBER TIPO_STAMPA 1
BEGIN BEGIN
PROMPT 2 1 "Tipo stampa " PROMPT 2 1 "Tipo stampa "
SHEET "Cod|Descrizione@50" SHEET "Cod|Descrizione@50"
INPUT TIPO_STAMPA INPUT TIPO_STAMPA
OUTPUT TIPO_STAMPA OUTPUT TIPO_STAMPA
ITEM "1|Libri bollati della ditta" ITEM "1|Libri bollati della ditta"
ITEM "2|Libri unici dello studio" ITEM "2|Libri unici dello studio"
ITEM "3|Stampa di prova" ITEM "3|Stampa di prova"
ITEM "4|Stampa libri con riferimenti al libro giornale" ITEM "4|Stampa libri con riferimenti al libro giornale"
END END
GROUPBOX DLG_NULL 35 5 GROUPBOX DLG_NULL 35 5
BEGIN BEGIN
PROMPT 20 1 "Scelta ditte" PROMPT 20 1 "Scelta ditte"
END END
NUMBER DA_CODICE 6 NUMBER DA_CODICE 6
BEGIN BEGIN
PROMPT 21 2 "Da codice " PROMPT 21 2 "Da codice "
HELP "Immettere codice ditta di partenza per la selezione" HELP "Immettere codice ditta di partenza per la selezione"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
CHECKTYPE NORMAL CHECKTYPE NORMAL
INPUT CODDITTA DA_CODICE INPUT CODDITTA DA_CODICE
DISPLAY "Codice" CODDITTA DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT DA_CODICE CODDITTA OUTPUT DA_CODICE CODDITTA
END END
NUMBER A_CODICE 6 NUMBER A_CODICE 6
BEGIN BEGIN
PROMPT 21 3 "A codice " PROMPT 21 3 "A codice "
HELP "Immettere codice ditta di fine selezione" HELP "Immettere codice ditta di fine selezione"
COPY USE DA_CODICE COPY USE DA_CODICE
CHECKTYPE NORMAL CHECKTYPE NORMAL
INPUT CODDITTA A_CODICE INPUT CODDITTA A_CODICE
COPY DISPLAY DA_CODICE COPY DISPLAY DA_CODICE
OUTPUT A_CODICE CODDITTA OUTPUT A_CODICE CODDITTA
END END
STRING F_SELECT 6 STRING F_SELECT 6
BEGIN BEGIN
PROMPT 21 4 "Scelte n. " PROMPT 21 4 "Scelte n. "
FLAGS "D" FLAGS "D"
END END
BUTTON DLG_SELECT 9 BUTTON DLG_SELECT 9
BEGIN BEGIN
PROMPT 42 2 "Selezione" PROMPT 42 2 "Selezione"
//MESSAGE EXIT,DLG_SELECT //MESSAGE EXIT,DLG_SELECT
END END
BUTTON F_ANNULLA 9 BUTTON F_ANNULLA 9
BEGIN BEGIN
PROMPT 42 3 "Annulla" PROMPT 42 3 "Annulla"
//MESSAGE EXIT,F_ANNULLA //MESSAGE EXIT,F_ANNULLA
END END
BUTTON F_VERIFICA 9 BUTTON F_VERIFICA 9
BEGIN BEGIN
PROMPT 42 4 "Verifica" PROMPT 42 4 "Verifica"
//MESSAGE EXIT,F_VERIFICA //MESSAGE EXIT,F_VERIFICA
END END
DATE DATA_STAMPA DATE DATA_STAMPA
BEGIN BEGIN
PROMPT 2 6 "Data stampa " PROMPT 2 6 "Data stampa "
FLAG "AH" FLAG "AH"
GROUP 3 GROUP 3
END END
NUMBER ANNO 4 NUMBER ANNO 4
BEGIN BEGIN
PROMPT 2 7 "Anno " PROMPT 2 7 "Anno "
FLAGS "A" FLAGS "A"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING CODICE_LIBRO 3 STRING CODICE_LIBRO 3
BEGIN BEGIN
PROMPT 20 7 "Codice libro " PROMPT 20 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7] OUTPUT CODICE_LIBRO CODTAB[5,7]
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UR" FLAGS "UR"
GROUP 1 GROUP 1
END END
STRING CODICE_LIBRO_PROVA 3 STRING CODICE_LIBRO_PROVA 3
BEGIN BEGIN
PROMPT 20 7 "Codice libro " PROMPT 20 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_PROVA INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7] OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UR" FLAGS "UR"
GROUP 1 GROUP 1
END END
STRING CODICE_LIB_UN 3 STRING CODICE_LIB_UN 3
BEGIN BEGIN
PROMPT 20 7 "Cod.libro unico " PROMPT 20 7 "Cod.libro unico "
HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa" HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111 USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7] OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR" FLAGS "UR"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
GROUP 2 GROUP 2
END END
GROUPBOX DLG_NULL 52 3 GROUPBOX DLG_NULL 52 3
BEGIN BEGIN
PROMPT 2 9 "Stampa movimenti" PROMPT 2 9 "Stampa movimenti"
END END
DATE DA_DATA DATE DA_DATA
BEGIN BEGIN
PROMPT 5 10 "Dalla data " PROMPT 5 10 "Dalla data "
GROUP 3 GROUP 3
END END
DATE A_DATA DATE A_DATA
BEGIN BEGIN
PROMPT 30 10 "Alla data " PROMPT 30 10 "Alla data "
GROUP 3 GROUP 3
END END
LISTBOX FINO_A_MESE 10 LISTBOX FINO_A_MESE 10
BEGIN BEGIN
PROMPT 5 10 "Fino al mese " PROMPT 5 10 "Fino al mese "
FLAGS "M" FLAGS "M"
GROUP 1 GROUP 1
END END
LISTBOX MESE 10 LISTBOX MESE 10
BEGIN BEGIN
PROMPT 5 10 "Mese " PROMPT 5 10 "Mese "
FLAGS "M" FLAGS "M"
GROUP 2 GROUP 2
END END
LISTBOX TIPO_RIEPILOGATIVO 11 LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN BEGIN
PROMPT 2 12 "Tipo riepilogativo " PROMPT 2 12 "Tipo riepilogativo "
HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale" HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale"
ITEM "P|Del periodo" ITEM "P|Del periodo"
ITEM "A|Annuale" ITEM "A|Annuale"
GROUP 1 GROUP 1
END END
LISTBOX ULTIMO_MESE 10 LISTBOX ULTIMO_MESE 10
BEGIN BEGIN
PROMPT 2 13 "Ultimo mese stampa su libro unico " PROMPT 2 13 "Ultimo mese stampa su libro unico "
FLAGS "MD" FLAGS "MD"
GROUP 2 GROUP 2
END END
NUMBER ULTIMA_PAGINA 4 NUMBER ULTIMA_PAGINA 4
BEGIN BEGIN
PROMPT 2 14 "Ultimo numero di pagina stampata libro unico " PROMPT 2 14 "Ultimo numero di pagina stampata libro unico "
FLAGS "R" FLAGS "R"
GROUP 2 GROUP 2
END END
STRING CODICE_LIBRO_IVA 3 STRING CODICE_LIBRO_IVA 3
BEGIN BEGIN
PROMPT 2 15 "Eventuale codice libro IVA " PROMPT 2 15 "Eventuale codice libro IVA "
HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate" HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7] OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UR" FLAGS "UR"
GROUP 2 GROUP 2
END END
BUTTON DLG_OK 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_CANCEL 9 2 BUTTON DLG_CANCEL 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1,107 +1,107 @@
// cg4401.cpp // cg4401.cpp
// //
#include <applicat.h> #include <applicat.h>
#include <isam.h> #include <isam.h>
#include <strings.h> #include <strings.h>
#include <lffiles.h> #include <lffiles.h>
#include <utility.h> #include <utility.h>
#include <nditte.h> #include <nditte.h>
#include <anagr.h> #include <anagr.h>
#include <comuni.h> #include <comuni.h>
#include "cg4400.h" #include "cg4400.h"
static TString256 tmp; static TString256 tmp;
TRectype& TDati_ditta::look_com(const char * cod) TRectype& TDati_ditta::look_com(const char * cod)
{ {
_comuni->zero(); _comuni->zero();
_comuni->put(COM_COM,cod); _comuni->put(COM_COM,cod);
_comuni->read(); _comuni->read();
if (_comuni->bad()) _comuni->zero(); if (_comuni->bad()) _comuni->zero();
return _comuni->curr(); return _comuni->curr();
} }
TDati_ditta::TDati_ditta(long cod_ditta, int stampa_width) TDati_ditta::TDati_ditta(long cod_ditta, int stampa_width)
{ {
_stampa_width = stampa_width; _stampa_width = stampa_width;
_codditta = cod_ditta; _codditta = cod_ditta;
_nditte = new TLocalisamfile(LF_NDITTE); _nditte = new TLocalisamfile(LF_NDITTE);
_anag = new TLocalisamfile(LF_ANAG); _anag = new TLocalisamfile(LF_ANAG);
_comuni = new TLocalisamfile(LF_COMUNI); _comuni = new TLocalisamfile(LF_COMUNI);
} }
TDati_ditta::~TDati_ditta() TDati_ditta::~TDati_ditta()
{ {
delete _anag; delete _nditte; delete _comuni; delete _anag; delete _nditte; delete _comuni;
} }
void TDati_ditta::get_dati_ditta () void TDati_ditta::get_dati_ditta ()
{ {
TString16 codanagr; TString16 codanagr;
char tipoa; char tipoa;
_nditte->zero(); _nditte->zero();
_nditte->put(NDT_CODDITTA, _codditta); _nditte->put(NDT_CODDITTA, _codditta);
_nditte->read(); _nditte->read();
if (_nditte->bad()) _nditte->zero(); if (_nditte->bad()) _nditte->zero();
_ragsoc = _nditte->get(NDT_RAGSOC); _ragsoc = _nditte->get(NDT_RAGSOC);
codanagr = _nditte->get(NDT_CODANAGR); codanagr = _nditte->get(NDT_CODANAGR);
tipoa = _nditte->get_char(NDT_TIPOA); tipoa = _nditte->get_char(NDT_TIPOA);
_anag->setkey(1); _anag->setkey(1);
_anag->zero(); _anag->zero();
_anag->put (ANA_TIPOA, tipoa); _anag->put (ANA_TIPOA, tipoa);
_anag->put (ANA_CODANAGR, codanagr); _anag->put (ANA_CODANAGR, codanagr);
_anag->read(); _anag->read();
if (_anag->bad()) _anag->zero(); if (_anag->bad()) _anag->zero();
_cofi = _anag->get(ANA_COFI); _cofi = _anag->get(ANA_COFI);
_paiva = _anag->get(ANA_PAIV); _paiva = _anag->get(ANA_PAIV);
_comunefis = _anag->get(ANA_COMRF); _comunefis = _anag->get(ANA_COMRF);
if (_comunefis.trim().empty()) if (_comunefis.trim().empty())
_comunefis = _anag->get(ANA_COMRES); _comunefis = _anag->get(ANA_COMRES);
TRectype dep = look_com (_comunefis); TRectype dep = look_com (_comunefis);
_comunefis = dep.get(COM_DENCOM); _comunefis = dep.get(COM_DENCOM);
_provfis = dep.get(COM_PROVCOM); _provfis = dep.get(COM_PROVCOM);
_cap = dep.get(COM_CAPCOM); _cap = dep.get(COM_CAPCOM);
if (_comunefis.trim().empty()) if (_comunefis.trim().empty())
{ {
_viafis = _anag->get(ANA_INDRF); _viafis = _anag->get(ANA_INDRF);
_viafis.rtrim(); _viafis.rtrim();
_viafis << " " << _anag->curr().get (ANA_CIVRF); _viafis << " " << _anag->curr().get (ANA_CIVRF);
} }
else else
{ {
_viafis = _anag->get(ANA_INDRES); _viafis = _anag->get(ANA_INDRES);
_viafis.rtrim(); _viafis.rtrim();
_viafis << " " << _anag->get (ANA_CIVRES); _viafis << " " << _anag->get (ANA_CIVRES);
} }
} }
const char * TDati_ditta::prima_riga() const char * TDati_ditta::prima_riga()
{ {
get_dati_ditta(); get_dati_ditta();
tmp << "Ditta " << _codditta << ' ' << _ragsoc << " Via " << _viafis << ' ' tmp << "Ditta " << _codditta << ' ' << _ragsoc << " Via " << _viafis << ' '
<< _cap << ' ' << _comunefis << ' ' << _provfis; << _cap << ' ' << _comunefis << ' ' << _provfis;
return tmp; return tmp;
} }
const char * TDati_ditta::seconda_riga() const char * TDati_ditta::seconda_riga()
{ {
tmp = ""; tmp = "";
tmp = "Data @<"; tmp = "Data @<";
tmp.right_just(_stampa_width-15); tmp.right_just(_stampa_width-15);
tmp.overwrite (format ("Partita iva %s @26gCodice fiscale %s", tmp.overwrite (format ("Partita iva %s @26gCodice fiscale %s",
(const char*)_paiva, (const char*)_cofi)); (const char*)_paiva, (const char*)_cofi));
return tmp; return tmp;
} }