// Invio contabilita' #include #include #include #include "cglib04.h" class TInv_cont : public TSkeleton_application { enum { BUFSIZE = 4096 }; TTransfer_file _tras_file; TProgind* _prog; TLocalisamfile* _caus; TLocalisamfile* _rcaus; TLocalisamfile* _clifo; TLocalisamfile* _pcon; TLocalisamfile* _mov; TLocalisamfile* _rmov; TLocalisamfile* _rmoviva; TLocalisamfile* _occas; TLocalisamfile* _part; TLocalisamfile* _scad; TLocalisamfile* _pagsca; TLocalisamfile* _comuni; TIsamtempfile* _tcaus; TIsamtempfile* _trcaus; TIsamtempfile* _tclifo; TIsamtempfile* _tpcon; TIsamtempfile* _tmov; TIsamtempfile* _trmov; TIsamtempfile* _triva; TIsamtempfile* _toccas; TIsamtempfile* _tpart; TIsamtempfile* _tscad; TIsamtempfile* _tpagsca; TArchive _arc; TAssoc_array _riga_interna, _ultima_rata; TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema char _scelta; TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico; TString _files, _codcaus, _numdoc, _reg, _codpag, _tipodoc, _codcausm, _sigle,_cpg_nc; TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali, _codval; bool _esiste_ditta, _esiste_record, _inviato, _flag_provvis, _flag_bollato; long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec; long _dim_tot, _dim_disk,_dittaAS; long _numrec_cau,_numrec_clifo,_numrec_pcon,_numrec_pn,_numrec_iva,_numrec_sc; int _num,_annoes; TDate _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg; real _corrlire, _cambioi, _corrval,_cambio; char _provvis; long _ultima_nreg; public: TString _titolo; virtual bool create(); virtual bool destroy(); virtual void main_loop(); virtual bool check_autorization() const {return FALSE;} bool esiste_tabella_studio(); bool record_controllo(); bool esegui_controlli(); bool leggi_header(); bool controlli(); bool sub_controlli(); bool tabella_ditta(); bool controlla_stato_invio(); bool numero_data(); void leggi_record_controllo(); void codifica_ditta (TMask& m); void testata_mov_PN (); void testata_trasfer(long nreg, int nrig, TString& record); void sola_iva(TString& record,long nreg); bool testata_mov_IVA(long numreg); void cerca_occasionale(); void cerca_comune_occas(const TString& com); void apri_file_temp(); void chiudi_file_temp(); void crea_marker(TMask& m); void setta_parametri_record(TMask& m,const TString& flag); void setta_tabella_studio(TMask& m, bool flag_ditta = TRUE); void setta_tabella_ditta(TMask& m, const char* flag, bool comp = TRUE); void crea_record_controllo(TMask& m); bool invio_tempfile(TMask& m); void causali2tempfile(TString& key,TMask& m); void cancella_righe_causali(TString& codcaus); void scrivi_righe_causali(TString& codcaus, char uselab); void clifo2tempfile(TString& key,TMask& m); void pcon2tempfile(TString& key,TMask& m); void movPN2tempfile(TString& key,TMask& m); void scrivi_righePN(long numreg); void primanota_inviata(long numreg); void movIVA2tempfile(TString& key,TMask& m); bool occasionali(const TString& ocfpi); void iva_inviata(long numreg); void movSC2tempfile(TString& key,TMask& m); void scrivi_righeSCAD(char,int,int,long,int,TString&,int); void scrivi_righePAGSCA(char,int,int,long,int,TString&,int); void SC_inviato(char,int,int,long,int,TString&,int); int nprogre_interno(long nreg, int nrig); void aggiorna_array_rate(char tipo,int g,int c,long s,int anno,TString& npart, int nrata); int ultima_rata_partita(char tipo,int g,int c,long s,int anno,TString& npart); void partita2trasfer(TString& record, bool crea_record_riferimento = TRUE); void pagsca2trasfer (TString& record, real& importo, real& importoval); long crea_record_riferimento_PN(); bool invio_contabilita(); bool invio_tab_cau(); bool invio_clifo (); bool invio_pcon (); bool invio_mov_PN (); bool invio_mov_IVA(); bool invio_mov_SC (); void aggiorna_header(TString& files); void aggiorna_trasfer(TString& files); void negPC2negAS(TString& numero); void dec2integer(real& val, long dec); void write_AS_imp(const real& importo, TString& record, int pos, int len = 11); void aggiorna_marker(TString& token, int pos); void calcola_totale_record(); void scrivi_telefono(TString& app); const char* cerca_provincia(const TString& comcf); void cerca_dencom(TString& comcf,TString& dencom); static bool setta_maschera_hnd(TMask_field& f, KEY k); static bool messaggio_hnd (TMask_field& f, KEY k); int calcola_numero_dischi(TMask& m,TString& floppy); FILE* chiedi_disco(const char* name, int disk, TString& floppy, bool lettura); bool scrivi_disco(TString& floppy, int disk, const char* work, FILE* i, TProgind& w); bool invio_contabilita_PC(); void invio_testata_causali(); void invio_righe_causali(); void invio_clienti_fornitori(); void invio_piano_conti(); void invio_testata_movimenti(); void invio_righe_contabili(); void invio_righe_IVA(); void invio_occasionali(TString& record, TString& ocfpi); void invio_partite(); void invio_scadenze(); void invio_pagsca(); void tipodocumento(long nreg,TString& tipodoc); TInv_cont(char mov); }; HIDDEN TInv_cont& app() { return (TInv_cont &) main_app(); }