cg2100.cpp Spostato controllo prorata dopo controllo as400
cg2102.cpp Corretto calcolo tipo costo/ricavo cg3200.cpp Corretta chiamata a saldofin_esepre cg6*.* Corretto invio e ricezione movimenti di prima nota cglib04.cpp Corretto calcolo saldo finale in TSaldo_agg cgtrcpc.ini Aggiunto flag di provvisorio sul tracciato dei trasferimenti git-svn-id: svn://10.65.10.50/trunk@4919 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									c50f740fee
								
							
						
					
					
						commit
						a56158e24f
					
				| @ -671,24 +671,6 @@ void TPrimanota_application::init_modify_mode(TMask& m) | ||||
|   calcola_saldo();          // Verifica eventuali sbilanci contabili
 | ||||
| 
 | ||||
|   TSheet_field& cg = cgs(); | ||||
|    | ||||
|   if (iva() == iva_acquisti &&     // Se iva acquisti e ...
 | ||||
|       cg.shown() &&                // ... se non e' sola iva ...
 | ||||
|       !test_prorata())             // ... allora controlla prorata
 | ||||
|   { | ||||
|     m.show(F_ADJUST_PRORATA); | ||||
|     m.set_handler(F_ADJUST_PRORATA, prorata_handler); | ||||
| 
 | ||||
|     warning_box("Questo movimento e' stato registrato con una percentuale\n" | ||||
|                 "prorata non compatibile con quella corrente:\n" | ||||
|                 "Premere il bottone di correzione automatica delle righe."); | ||||
|   } | ||||
|   else | ||||
|    if (iva() == iva_vendite) | ||||
|    { | ||||
|      m.set_handler(F_ADJUST_PRORATA, NULL); | ||||
|      m.hide(F_ADJUST_PRORATA); | ||||
|    }   | ||||
| 
 | ||||
|   // Determina se il movimento e' stato trasferito da AS/400: 
 | ||||
|   // praticamente controlla che non ci sia nessun tipo movimento sulle righe contabili.
 | ||||
| @ -711,6 +693,32 @@ void TPrimanota_application::init_modify_mode(TMask& m) | ||||
|     m.set(SK_TIPORIGA, "A");   // Forza il tipo riga normale
 | ||||
|     m.disable(SK_TIPORIGA);    // Disabilita la sua modifica
 | ||||
|   } | ||||
|    | ||||
|   // Non controllare il prorata durante la cancellazione automatica
 | ||||
|   if (autodeleting() != 0x3) | ||||
|   { | ||||
|     if (iva() == iva_acquisti &&     // Se iva acquisti e ...
 | ||||
|         cg.shown() &&                // ... se non e' sola iva ...
 | ||||
|         !test_prorata())             // ... allora controlla prorata
 | ||||
|     { | ||||
|       m.show(F_ADJUST_PRORATA); | ||||
|       m.set_handler(F_ADJUST_PRORATA, prorata_handler); | ||||
|    | ||||
|       warning_box("Questo movimento e' stato registrato con una percentuale\n" | ||||
|                   "prorata non compatibile con quella corrente:\n" | ||||
|                   "Premere il bottone di correzione automatica delle righe."); | ||||
|     } | ||||
|     else | ||||
|     {  | ||||
|       // Nascondi il bottone del prorata se esiste
 | ||||
|       if (m.id2pos(F_ADJUST_PRORATA) >= 0) | ||||
|       { | ||||
|         m.set_handler(F_ADJUST_PRORATA, NULL); | ||||
|         m.hide(F_ADJUST_PRORATA); | ||||
|       }   | ||||
|     }   | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| // Controlla sulla causale se il segno del totale documento (ritsoc=FALSE) 
 | ||||
| @ -750,13 +758,14 @@ int TPrimanota_application::read(TMask& m) | ||||
|   } | ||||
| 
 | ||||
|   _saldi.reset();                                // Azzera saldi
 | ||||
|   _saldi.set_movprovv(_rel->lfile().get_char("PROVVIS") > ' ');    | ||||
|   _saldi.set_movprovv(_rel->lfile().get_char(MOV_PROVVIS) > ' ');    | ||||
|   tiposal tsal = causale().apertura() ? apertura :  | ||||
|                 (causale().chiusura() ? chiusura : normale); | ||||
|   _saldi.set_tipo_saldo(tsal); | ||||
|   _saldi.set_anno_es(m.get_int(F_ANNOES)); | ||||
|   _saldi.set_num_ulmov(numreg); | ||||
|   _saldi.set_data_ulmov((TDate)m.get(F_DATAREG)); | ||||
|   _saldi.set_movimentato(TRUE); | ||||
| 
 | ||||
|   for (int i = 0; i < _rel->cg_items(); i++) | ||||
|   { | ||||
| @ -776,9 +785,9 @@ int TPrimanota_application::read(TMask& m) | ||||
| 
 | ||||
|     conto.get(r, TRUE); | ||||
|     riga.add(conto.string(0x3));                 // Contropartita 110-114
 | ||||
|     riga.add(r.get("NUMGIO")); | ||||
|     riga.add(r.get("NUMGIO"));                   // Centro di costo 115
 | ||||
|     const char tipo = r.get_char("ROWTYPE");          | ||||
|     riga.add(tipo);                              // Tipo di riga 115
 | ||||
|     riga.add(tipo);                              // Tipo di riga 116
 | ||||
|      | ||||
|     disable_cgs_cells(i, tipo); | ||||
|   }       | ||||
| @ -857,6 +866,7 @@ void TPrimanota_application::mask2rel(const TMask& m) | ||||
|   _saldi.set_anno_es(annoes); | ||||
|   _saldi.set_num_ulmov(numreg); | ||||
|   _saldi.set_data_ulmov((TDate)m.get(F_DATAREG)); | ||||
|   _saldi.set_movimentato(TRUE); | ||||
|    | ||||
|   const int tm = causale().tipomov(); | ||||
|   char s[2]; | ||||
|  | ||||
| @ -1049,12 +1049,15 @@ TSheet_field& TPrimanota_application::ivas() const | ||||
| 
 | ||||
| TBill& TPrimanota_application::ivas_bill(TBill& c) | ||||
| { | ||||
|   const int spric = c.tipo_cr(); | ||||
|   if (spric == 2 || spric == 3) | ||||
|   if (iva() == iva_vendite) | ||||
|   { | ||||
|     const TString& td = causale().tipo_doc(); | ||||
|     if (td == "FV" || td == "NC")  | ||||
|       c.tipo_cr(4); | ||||
|     const int spric = c.tipo_cr(); | ||||
|     if (spric == 2 || spric == 3) | ||||
|     { | ||||
|       const TString& td = causale().tipo_doc(); | ||||
|       if (td == "FV" || td == "NC" || td == "ND")  | ||||
|         c.tipo_cr(4); | ||||
|     } | ||||
|   }  | ||||
|   return c; | ||||
| } | ||||
|  | ||||
| @ -3241,7 +3241,7 @@ void TMastrini_application::calcola_progressivi() | ||||
|        const TRecnotype pos = saldi.recno();                                       | ||||
|        // W96SALDI del 18-07-96 saldofin_esprec usa il flag TRUE xche' deve
 | ||||
|        // considerare anche il saldo finale
 | ||||
|        saldo = _sld->saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc,TRUE,FALSE); | ||||
|        saldo = _sld->saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc,TRUE); | ||||
|        saldi.readat(pos); | ||||
|             | ||||
|        if (saldo> ZERO) | ||||
|  | ||||
| @ -1026,7 +1026,8 @@ void TRic_tab::ricevi_movPN(TString& key, char uselab) | ||||
|     _prog->addstatus(1); | ||||
|                                 | ||||
|     long nreg      = _tmov->get_long(MOV_NUMREG); | ||||
|     long nuova_reg = _tmov->get_long("TNUMREG" ); | ||||
|     long nuova_reg = _tmov->get_long("TNUMREG"); | ||||
|     bool provvis   = _tmov->get_char(MOV_PROVVIS) > ' '; | ||||
|      | ||||
|     if (nuova_reg == 0) | ||||
|     { | ||||
| @ -1070,7 +1071,7 @@ void TRic_tab::ricevi_movPN(TString& key, char uselab) | ||||
|       aggiorna_reg(anno,codreg,ulnum); // Aggiorna il registro
 | ||||
| 
 | ||||
|       _sld.set_anno_es(annoes); | ||||
|       _sld.set_movprovv(FALSE); | ||||
|       _sld.set_movprovv(provvis); | ||||
|       _sld.set_num_ulmov(_nreg); | ||||
|       _sld.set_data_ulmov(datareg); | ||||
|    | ||||
|  | ||||
							
								
								
									
										235
									
								
								cg/cg6800.cpp
									
									
									
									
									
								
							
							
						
						
									
										235
									
								
								cg/cg6800.cpp
									
									
									
									
									
								
							| @ -33,7 +33,7 @@ | ||||
| class TVar_mov : public TApplication | ||||
| { | ||||
|   TIsamtempfile*      _tmov, *_trmov, *_tiva, *_toccas; | ||||
|   TLocalisamfile*     _pcon, *_clifo, *_mov, *_rmov, *_rmoviva, *_occas; | ||||
|   TLocalisamfile*     _pcon, *_clifo, *_mov, *_rmov, *_rmoviva, *_occas, *_causali, *_comuni; | ||||
|   TTable*             _tab_reg; | ||||
|   TRectype*           _rec_mov,* _rec_rmov,* _rec_riva; | ||||
|   TTransfer_file      _tras_file;   | ||||
| @ -73,7 +73,7 @@ public: | ||||
|   void    setta_campi_maschera(TMask& m);                                   | ||||
|   bool    setta_campi_maschera_iva(TMask& m);                                     | ||||
| 
 | ||||
|   void    registra_file_temp_mov(int,long,const TDate&,const TDate&,const TDate&,const TString&,TString&,long,long,const TString&,TString&); | ||||
|   void    registra_file_temp_mov(int,long,const TDate&,const TDate&,const TDate&,const TString&,TString&,long,long,const TString&,TString&,char); | ||||
|   void    registra_file_temp_rmov(long,int,int,int,long,char,const TString&,int,int,long,const real&); | ||||
|   void    registra_file_temp_riva(long,int,const real&,const TString&,const real&,int,int,int,int,long); | ||||
| 
 | ||||
| @ -160,6 +160,8 @@ bool TVar_mov::create() | ||||
|   _rmov     = new TLocalisamfile (LF_RMOV); | ||||
|   _rmoviva  = new TLocalisamfile (LF_RMOVIVA);  | ||||
|   _occas    = new TLocalisamfile (LF_OCCAS); | ||||
|   _causali  = new TLocalisamfile (LF_CAUSALI); | ||||
|   _comuni   = new TLocalisamfile (LF_COMUNI); | ||||
|   _tab_reg  = new TTable ("REG"); | ||||
|    | ||||
|   _rec_rmov = new TRectype (LF_RMOV); | ||||
| @ -181,6 +183,8 @@ bool TVar_mov::destroy() | ||||
|   delete _rmov; | ||||
|   delete _rmoviva;                           | ||||
|   delete _occas; | ||||
|   delete _causali; | ||||
|   delete _comuni; | ||||
|   delete _tab_reg; | ||||
|   delete _rec_rmov;                          | ||||
|   delete _rec_riva; | ||||
| @ -348,7 +352,7 @@ bool TVar_mov::video_PN() | ||||
| 
 | ||||
| void TVar_mov::ricerca_codcaus(const TString& codcaus) | ||||
| { | ||||
|   TLocalisamfile cau (LF_CAUSALI); | ||||
|   TLocalisamfile& cau = *_causali; | ||||
|   TString tipodoc; | ||||
|    | ||||
|   cau.setkey(1); | ||||
| @ -550,6 +554,7 @@ void TVar_mov::setta_campi_maschera(TMask& m) | ||||
|   regiva.trim(); | ||||
|   long    protiva   = _rec_mov->get_long(MOV_PROTIVA); | ||||
|   long    nuprotiva = _rec_mov->get_long(MOV_UPROTIVA); | ||||
|   char    provvis   = _rec_mov->get_char(MOV_PROVVIS); | ||||
|   TString codcaus   = _rec_mov->get     (MOV_CODCAUS); | ||||
|   TString codpag    = _rec_mov->get     (MOV_CODPAG); | ||||
|   codpag.trim(); | ||||
| @ -566,6 +571,7 @@ void TVar_mov::setta_campi_maschera(TMask& m) | ||||
|   m.set(F_NUPROTIVA, nuprotiva); | ||||
|   m.set(F_CODCAUS,   codcaus); | ||||
|   m.set(F_CODPAG,    codpag); | ||||
|   m.set(F_PROVV,     provvis); | ||||
| 
 | ||||
|   m.disable(F_NUMREG); | ||||
|   m.disable(F_NUMRIG);        | ||||
| @ -581,6 +587,7 @@ void TVar_mov::setta_campi_maschera(TMask& m) | ||||
|     m.enable(F_NUPROTIVA); | ||||
|     m.enable(F_CODCAUS); | ||||
|     m.enable(F_CODPAG); | ||||
|     m.enable(F_PROVV); | ||||
|     m.disable(F_GRUPPO); | ||||
|     m.disable(F_CONTO); | ||||
|     m.disable(F_SOTTOCONTO); | ||||
| @ -592,48 +599,48 @@ void TVar_mov::setta_campi_maschera(TMask& m) | ||||
|     m.disable(F_SOTTOC); | ||||
|   } | ||||
|   else     | ||||
|     if (_righe) | ||||
|     { | ||||
|       int     gruppo   = _trmov->get_int (RMV_GRUPPO); | ||||
|       int     conto    = _trmov->get_int (RMV_CONTO); | ||||
|       long    sottocon = _trmov->get_long(RMV_SOTTOCONTO); | ||||
|       TString sezione  = _trmov->get     (RMV_SEZIONE); | ||||
|       TString descr    = _trmov->get     (RMV_DESCR); | ||||
|       int     gruppoc  = _trmov->get_int (RMV_GRUPPOC); | ||||
|       int     contoc   = _trmov->get_int (RMV_CONTOC); | ||||
|       long    sottoc   = _trmov->get_long(RMV_SOTTOCONTOC); | ||||
|       real    importo  = _trmov->get_real(RMV_IMPORTO);   | ||||
|   { | ||||
|     int     gruppo   = _trmov->get_int (RMV_GRUPPO); | ||||
|     int     conto    = _trmov->get_int (RMV_CONTO); | ||||
|     long    sottocon = _trmov->get_long(RMV_SOTTOCONTO); | ||||
|     TString sezione  = _trmov->get     (RMV_SEZIONE); | ||||
|     TString descr    = _trmov->get     (RMV_DESCR); | ||||
|     int     gruppoc  = _trmov->get_int (RMV_GRUPPOC); | ||||
|     int     contoc   = _trmov->get_int (RMV_CONTOC); | ||||
|     long    sottoc   = _trmov->get_long(RMV_SOTTOCONTOC); | ||||
|     real    importo  = _trmov->get_real(RMV_IMPORTO);   | ||||
|        | ||||
|       m.set(F_GRUPPO,     gruppo); | ||||
|       m.set(F_CONTO,      conto); | ||||
|       m.set(F_SOTTOCONTO, sottocon); | ||||
|       m.set(F_SEZIONE,    sezione); | ||||
|       m.set(F_DESCR,      descr); | ||||
|       m.set(F_GRUPPOC,    gruppoc); | ||||
|       m.set(F_CONTOC,     contoc); | ||||
|       m.set(F_SOTTOC,     sottoc); | ||||
|       m.set(F_IMPORTO,    importo.string()); | ||||
|     m.set(F_GRUPPO,     gruppo); | ||||
|     m.set(F_CONTO,      conto); | ||||
|     m.set(F_SOTTOCONTO, sottocon); | ||||
|     m.set(F_SEZIONE,    sezione); | ||||
|     m.set(F_DESCR,      descr); | ||||
|     m.set(F_GRUPPOC,    gruppoc); | ||||
|     m.set(F_CONTOC,     contoc); | ||||
|     m.set(F_SOTTOC,     sottoc); | ||||
|     m.set(F_IMPORTO,    importo.string()); | ||||
|        | ||||
|       m.disable(F_DATAREG);            | ||||
|       m.disable(F_DATACOMP); | ||||
|       m.disable(F_DATADOC); | ||||
|       m.disable(F_NUMDOC); | ||||
|       m.disable(F_REGIVA); | ||||
|       m.disable(F_PROTIVA); | ||||
|       m.disable(F_NUPROTIVA); | ||||
|       m.disable(F_CODCAUS); | ||||
|       m.disable(F_CODPAG); | ||||
|     m.disable(F_DATAREG);            | ||||
|     m.disable(F_DATACOMP); | ||||
|     m.disable(F_DATADOC); | ||||
|     m.disable(F_NUMDOC); | ||||
|     m.disable(F_REGIVA); | ||||
|     m.disable(F_PROTIVA); | ||||
|     m.disable(F_NUPROTIVA); | ||||
|     m.disable(F_CODCAUS); | ||||
|     m.disable(F_CODPAG); | ||||
|     m.disable(F_PROVV); | ||||
|        | ||||
|       m.enable(F_GRUPPO); | ||||
|       m.enable(F_CONTO); | ||||
|       m.enable(F_SOTTOCONTO); | ||||
|       m.enable(F_SEZIONE); | ||||
|       m.enable(F_IMPORTO); | ||||
|       m.enable(F_DESCR); | ||||
|       m.enable(F_GRUPPOC); | ||||
|       m.enable(F_CONTOC); | ||||
|       m.enable(F_SOTTOC); | ||||
|     } | ||||
|     m.enable(F_GRUPPO); | ||||
|     m.enable(F_CONTO); | ||||
|     m.enable(F_SOTTOCONTO); | ||||
|     m.enable(F_SEZIONE); | ||||
|     m.enable(F_IMPORTO); | ||||
|     m.enable(F_DESCR); | ||||
|     m.enable(F_GRUPPOC); | ||||
|     m.enable(F_CONTOC); | ||||
|     m.enable(F_SOTTOC); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| bool TVar_mov::setta_campi_maschera_iva(TMask& m) | ||||
| @ -645,6 +652,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) | ||||
|   TString codcaus   = _rec_mov->get     (MOV_CODCAUS); | ||||
|   long    codcf     = _rec_mov->get_long(MOV_CODCF);  | ||||
|   TString ocfpi     = _rec_mov->get     (MOV_OCFPI); | ||||
|   char    provvis   = _rec_mov->get_char(MOV_PROVVIS);   | ||||
|    | ||||
| /*****************************************************
 | ||||
|  *****           CLIENTI OCCASIONALI             ***** | ||||
| @ -665,7 +673,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) | ||||
|       com       = _toccas->get(OCC_COM); | ||||
|       cap       = _toccas->get(OCC_CAP); | ||||
|      | ||||
|       TLocalisamfile comuni (LF_COMUNI); | ||||
|       TLocalisamfile& comuni = *_comuni; | ||||
|      | ||||
|       comuni.setkey(1); | ||||
|       comuni.zero(); | ||||
| @ -708,6 +716,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) | ||||
|   m.set(F_PROVOCC,   prov);           | ||||
|   m.set(F_COMOCC,    com); | ||||
|   m.set(F_CFPI,      ocfpi); | ||||
|   m.set(F_PROVV,     provvis); | ||||
| 
 | ||||
|   m.disable(F_NUMREG); | ||||
|   m.disable(F_NUMRIG);        | ||||
| @ -722,6 +731,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) | ||||
|     m.enable(F_LOCALITA); | ||||
|     m.enable(F_CAPOCC); | ||||
|     m.enable(F_PROVOCC); | ||||
|     m.enable(F_PROVV); | ||||
|     m.disable(F_IMPONIBILE); | ||||
|     m.disable(F_CODIVA); | ||||
|     m.disable(F_IMPOSTA); | ||||
| @ -732,51 +742,50 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m) | ||||
|     m.disable(F_SOTTOCONTO); | ||||
|   } | ||||
|   else | ||||
|     if (_righe) | ||||
|   { | ||||
|     TString tipodoc(_rec_mov->get(MOV_TIPODOC)); | ||||
|     real    imponibile (_tiva->get_real(RMI_IMPONIBILE)); | ||||
|     TString codiva     (_tiva->get     (RMI_CODIVA)); | ||||
|     real    imposta    (_tiva->get_real(RMI_IMPOSTA)); | ||||
|     int     tipodet   = _tiva->get_int (RMI_TIPODET); | ||||
|     int     tipocr    = _tiva->get_int (RMI_TIPOCR); | ||||
|     int     gruppo    = _tiva->get_int (RMI_GRUPPO); | ||||
|     int     conto     = _tiva->get_int (RMI_CONTO); | ||||
|     long    sottoc    = _tiva->get_long(RMI_SOTTOCONTO); | ||||
|     const bool first_time = _rec_mov->get("TOCFP") != "X"; | ||||
|        | ||||
|     if ((tipodoc == "NC" || tipodoc == "ST") && !first_time) | ||||
|     { | ||||
|       TString tipodoc(_rec_mov->get(MOV_TIPODOC)); | ||||
|       real    imponibile (_tiva->get_real(RMI_IMPONIBILE)); | ||||
|       TString codiva     (_tiva->get     (RMI_CODIVA)); | ||||
|       real    imposta    (_tiva->get_real(RMI_IMPOSTA)); | ||||
|       int     tipodet   = _tiva->get_int (RMI_TIPODET); | ||||
|       int     tipocr    = _tiva->get_int (RMI_TIPOCR); | ||||
|       int     gruppo    = _tiva->get_int (RMI_GRUPPO); | ||||
|       int     conto     = _tiva->get_int (RMI_CONTO); | ||||
|       long    sottoc    = _tiva->get_long(RMI_SOTTOCONTO); | ||||
|       const bool first_time = _rec_mov->get("TOCFP") != "X"; | ||||
|        | ||||
|       if ((tipodoc == "NC" || tipodoc == "ST") && !first_time) | ||||
|       { | ||||
|         imponibile *= -1; | ||||
|         imposta    *= -1; | ||||
|       } | ||||
|       m.set(F_IMPONIBILE, imponibile.string()); | ||||
|       m.set(F_CODIVA,     codiva); | ||||
|       m.set(F_IMPOSTA,    imposta.string()); | ||||
|       m.set(F_TIPODET,    tipodet); | ||||
|       m.set(F_TIPOCR,     tipocr); | ||||
|       m.set(F_GRUPPO,     gruppo); | ||||
|       m.set(F_CONTO,      conto); | ||||
|       m.set(F_SOTTOCONTO, sottoc); | ||||
|        | ||||
|       m.disable(F_DATA74TER); | ||||
|       m.disable(F_CODCF); | ||||
|       m.disable(F_RAGSOCOCC); | ||||
|       m.disable(F_INDOCC); | ||||
|       m.disable(F_CIVOCC); | ||||
|       m.disable(F_LOCALITA); | ||||
|       m.disable(F_CAPOCC); | ||||
|       m.disable(F_PROVOCC); | ||||
|        | ||||
|       m.enable(F_IMPONIBILE); | ||||
|       m.enable(F_CODIVA); | ||||
|       m.enable(F_IMPOSTA); | ||||
|       m.enable(F_TIPODET); | ||||
|       m.enable(F_TIPOCR); | ||||
|       m.enable(F_GRUPPO); | ||||
|       m.enable(F_CONTO); | ||||
|       m.enable(F_SOTTOCONTO); | ||||
|       imponibile *= -1; | ||||
|       imposta    *= -1; | ||||
|     } | ||||
|     m.set(F_IMPONIBILE, imponibile.string()); | ||||
|     m.set(F_CODIVA,     codiva); | ||||
|     m.set(F_IMPOSTA,    imposta.string()); | ||||
|     m.set(F_TIPODET,    tipodet); | ||||
|     m.set(F_TIPOCR,     tipocr); | ||||
|     m.set(F_GRUPPO,     gruppo); | ||||
|     m.set(F_CONTO,      conto); | ||||
|     m.set(F_SOTTOCONTO, sottoc); | ||||
|        | ||||
|     m.disable(F_DATA74TER); | ||||
|     m.disable(F_CODCF); | ||||
|     m.disable(F_RAGSOCOCC); | ||||
|     m.disable(F_INDOCC); | ||||
|     m.disable(F_CIVOCC); | ||||
|     m.disable(F_LOCALITA); | ||||
|     m.disable(F_CAPOCC); | ||||
|     m.disable(F_PROVOCC); | ||||
|     m.disable(F_PROVV);   | ||||
|     m.enable(F_IMPONIBILE); | ||||
|     m.enable(F_CODIVA); | ||||
|     m.enable(F_IMPOSTA); | ||||
|     m.enable(F_TIPODET); | ||||
|     m.enable(F_TIPOCR); | ||||
|     m.enable(F_GRUPPO); | ||||
|     m.enable(F_CONTO); | ||||
|     m.enable(F_SOTTOCONTO); | ||||
|   } | ||||
|    | ||||
|   return TRUE; | ||||
| } | ||||
| @ -828,7 +837,7 @@ bool TVar_mov::codice_causale_hnd(TMask_field& f, KEY k) | ||||
|           return warning_box("Il codice registro IVA e' significativo: deve essere significativo anche il codice causale"); | ||||
|     } | ||||
|      | ||||
|     TLocalisamfile cau (LF_CAUSALI); | ||||
|     TLocalisamfile& cau = *app()._causali; | ||||
|     cau.setkey(1); | ||||
|     cau.zero(); | ||||
|     cau.put("CODCAUS", codcau); | ||||
| @ -1254,7 +1263,7 @@ void TVar_mov::datacompetenza(int anno, TString& datacomp) | ||||
| 
 | ||||
| void TVar_mov::ricerca_localita(TString& codcom, TString& den, TString& cap, TString& prov) | ||||
| { | ||||
|   TLocalisamfile com (LF_COMUNI); | ||||
|   TLocalisamfile& com = *_comuni; | ||||
|    | ||||
|   com.setkey(1); | ||||
|   com.zero(); | ||||
| @ -1286,32 +1295,35 @@ void TVar_mov::registra_PN(TMask& m) | ||||
|     TString regiva    = m.get     (F_REGIVA); | ||||
|     long    protiva   = m.get_long(F_PROTIVA); | ||||
|     long    nuprotiva = m.get_long(F_NUPROTIVA); | ||||
|     TString codcaus   = m.get     (F_CODCAUS); | ||||
|     TString codpag    = m.get     (F_CODPAG); | ||||
|      | ||||
|     registra_file_temp_mov(anno,numreg,datareg,datacomp,datadoc,numdoc,regiva,protiva,nuprotiva,codcaus,codpag); | ||||
|     TString codcaus   = m.get(F_CODCAUS); | ||||
|     TString codpag    = m.get(F_CODPAG); | ||||
|     char    provvis   = m.get(F_PROVV)[0]; | ||||
|     registra_file_temp_mov(anno,numreg,datareg,datacomp,datadoc,numdoc,regiva,protiva,nuprotiva,codcaus,codpag,provvis); | ||||
|   } | ||||
|   else | ||||
|     if (_righe) | ||||
|     {                                     | ||||
|       long    numreg   = m.get_long(F_NUMREG); | ||||
|       int     numrig   = m.get_int (F_NUMRIG); | ||||
|       int     gruppo   = m.get_int (F_GRUPPO); | ||||
|       int     conto    = m.get_int (F_CONTO);       | ||||
|       long    sottoc   = m.get_long(F_SOTTOCONTO); | ||||
|       char    sezione  = m.get     (F_SEZIONE)[0]; | ||||
|       TString descr    = m.get     (F_DESCR); | ||||
|       int     gruppoc  = m.get_int (F_GRUPPOC); | ||||
|       int     contoc   = m.get_int (F_CONTOC); | ||||
|       long    sottocc  = m.get_long(F_SOTTOC); | ||||
|       real    importo  (m.get(F_IMPORTO));   | ||||
|   {                                     | ||||
|     long    numreg   = m.get_long(F_NUMREG); | ||||
|     int     numrig   = m.get_int (F_NUMRIG); | ||||
|     int     gruppo   = m.get_int (F_GRUPPO); | ||||
|     int     conto    = m.get_int (F_CONTO);       | ||||
|     long    sottoc   = m.get_long(F_SOTTOCONTO); | ||||
|     char    sezione  = m.get     (F_SEZIONE)[0]; | ||||
|     TString descr    = m.get     (F_DESCR); | ||||
|     int     gruppoc  = m.get_int (F_GRUPPOC); | ||||
|     int     contoc   = m.get_int (F_CONTOC); | ||||
|     long    sottocc  = m.get_long(F_SOTTOC); | ||||
|     real    importo  (m.get(F_IMPORTO));   | ||||
|        | ||||
|       registra_file_temp_rmov(numreg,numrig,gruppo,conto,sottoc,sezione,descr,gruppoc,contoc,sottocc,importo); | ||||
|     } | ||||
|     registra_file_temp_rmov(numreg,numrig,gruppo,conto,sottoc,sezione,descr,gruppoc,contoc,sottocc,importo); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void TVar_mov::registra_file_temp_mov(int ae,long nr,const TDate& dr,const TDate& dc,const TDate& dd, | ||||
|                                       const TString& nd,TString& ri,long pi,long upi,const TString& cc,TString& cp) | ||||
| void TVar_mov::registra_file_temp_mov(int ae,long nr, | ||||
|                                       const TDate& dr,const TDate& dc,const TDate& dd, | ||||
|                                       const TString& nd,TString& ri, | ||||
|                                       long pi,long upi, | ||||
|                                       const TString& cc, TString& cp, | ||||
|                                       char pr) | ||||
| { | ||||
|   _tmov->setkey(1); | ||||
|   _tmov->zero(); | ||||
| @ -1329,9 +1341,8 @@ void TVar_mov::registra_file_temp_mov(int ae,long nr,const TDate& dr,const TDate | ||||
|     _tmov->put(MOV_UPROTIVA, upi); | ||||
|     _tmov->put(MOV_CODCAUS,  cc); | ||||
|     _tmov->put(MOV_CODPAG,   cp); | ||||
|     int ai = dr.year(); | ||||
|     _tmov->put(MOV_ANNOIVA,  ai); | ||||
|      | ||||
|     _tmov->put(MOV_ANNOIVA,  dr.year()); | ||||
|     _tmov->put(MOV_PROVVIS,  pr); | ||||
|     _tmov->rewrite(); | ||||
|   } | ||||
|    | ||||
|  | ||||
| @ -28,7 +28,8 @@ | ||||
| #define F_DESCRPAG      123 | ||||
| #define F_DESCRPARTITA  124 | ||||
| #define F_DESCRCPARTITA 125   | ||||
| #define F_DATACOMP      126 | ||||
| #define F_DATACOMP      126  | ||||
| #define F_PROVV         127 | ||||
| 
 | ||||
| // Campi maschera cg2800c.uml
 | ||||
| 
 | ||||
|  | ||||
| @ -23,7 +23,7 @@ END | ||||
| 
 | ||||
| ENDPAGE | ||||
| 
 | ||||
| PAGE "" -1 -1 78 18 | ||||
| PAGE "Movimento" -1 -1 78 18 | ||||
| 
 | ||||
| NUMBER F_NUMREG 6 | ||||
| BEGIN | ||||
| @ -114,6 +114,14 @@ BEGIN | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| LIST F_PROVV 1 16 | ||||
| BEGIN | ||||
|   PROMPT 1 10 "Movimento provvisorio  " | ||||
|   ITEM " |No (Definitivo)" | ||||
|   ITEM "C|Cespiti" | ||||
|   ITEM "P|Contabile" | ||||
| END | ||||
| 
 | ||||
| NUMBER F_GRUPPO 3 | ||||
| BEGIN | ||||
|   PROMPT 1 11 "Sottoconto partita     " | ||||
|  | ||||
| @ -57,6 +57,14 @@ BEGIN | ||||
|   PROMPT 1 4 "Data reg. 74TER " | ||||
| END | ||||
| 
 | ||||
| LIST F_PROVV 1 16 | ||||
| BEGIN | ||||
|   PROMPT 36 4 "Movimento provvisorio " | ||||
|   ITEM " |No (Definitivo)" | ||||
|   ITEM "C|Cespiti" | ||||
|   ITEM "P|Contabile" | ||||
| END | ||||
| 
 | ||||
| GROUPBOX DLG_NULL 78 5 | ||||
| BEGIN | ||||
|   PROMPT 0 6 "Cliente occasionale" | ||||
|  | ||||
| @ -398,6 +398,7 @@ bool TInv_cont::create() | ||||
|   _part     = new TLocalisamfile (LF_PARTITE); | ||||
|   _scad     = new TLocalisamfile (LF_SCADENZE); | ||||
|   _pagsca   = new TLocalisamfile (LF_PAGSCA);        | ||||
|   _comuni   = new TLocalisamfile (LF_COMUNI);        | ||||
| 
 | ||||
|   dispatch_e_menu (BAR_ITEM(1)); | ||||
| 
 | ||||
| @ -417,6 +418,7 @@ bool TInv_cont::destroy() | ||||
|   delete _part; | ||||
|   delete _scad; | ||||
|   delete _pagsca; | ||||
|   delete _comuni; | ||||
| 
 | ||||
|   return TApplication::destroy(); | ||||
| }                                 | ||||
| @ -794,8 +796,8 @@ bool TInv_cont::controlla_stato_invio() | ||||
| 
 | ||||
| bool TInv_cont::numero_data() | ||||
| {                                         | ||||
|   int     num  = _tras_file.nultras(); | ||||
|   TString str  = _tras_file.dataultras(); | ||||
|   int num = _tras_file.nultras(); | ||||
|   TString str = _tras_file.dataultras(); | ||||
|   TDate data (str); | ||||
|    | ||||
|   if (_num != num || data != _data) | ||||
| @ -871,7 +873,7 @@ void TInv_cont::crea_marker(TMask& m) | ||||
|   {  | ||||
|     if (_scelta == 'S') | ||||
|     { | ||||
|       str = format("%-10s", (const char*) _nome_simbolico); | ||||
|       str.format("%-10s", (const char*)_nome_simbolico); | ||||
|       buffer.overwrite(str,0); | ||||
|       long ditta = m.get_long(F_DITTAINV);  | ||||
|       if (ditta > 9999) | ||||
| @ -1406,7 +1408,7 @@ void TInv_cont::pcon2tempfile(TString& key, TMask& m) | ||||
|     } | ||||
| 
 | ||||
|     leggi_record_controllo(); | ||||
|     TString chiave; | ||||
|     TString16 chiave; | ||||
|     chiave.format("%3d%3d%6ld", g, c, s);       | ||||
|     TString sigla (format("%c", 'P')); | ||||
|     _control_rec.overwrite(sigla,240); | ||||
|  | ||||
| @ -58,6 +58,7 @@ class TInv_cont : public TApplication | ||||
|   TLocalisamfile* _part; | ||||
|   TLocalisamfile* _scad; | ||||
|   TLocalisamfile* _pagsca;       | ||||
|   TLocalisamfile* _comuni;       | ||||
|   TIsamtempfile*  _tcaus; | ||||
|   TIsamtempfile*  _trcaus; | ||||
|   TIsamtempfile*  _tclifo; | ||||
| @ -73,7 +74,6 @@ class TInv_cont : public TApplication | ||||
|   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; | ||||
| @ -86,6 +86,7 @@ class TInv_cont : public TApplication | ||||
|   int         _num,_annoes;                              | ||||
|   TDate       _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg; | ||||
|   real        _corrlire, _cambioi, _corrval,_cambio; | ||||
|   char        _provvis; | ||||
|   long        _ultima_nreg; | ||||
| 
 | ||||
| public:         | ||||
|  | ||||
| @ -971,6 +971,7 @@ void TInv_cont::testata_mov_PN() | ||||
|   _protiva  = _tmov->get_long(MOV_PROTIVA); | ||||
|   _uprotiva = _tmov->get_long(MOV_UPROTIVA); | ||||
|   _inviato  = _tmov->get_bool(MOV_INVIATO); | ||||
|   _provvis  = _tmov->get_char(MOV_PROVVIS); | ||||
| } | ||||
|                                                 | ||||
| void TInv_cont::testata_trasfer(long nreg, int nrig, TString& record) | ||||
| @ -1225,6 +1226,7 @@ bool TInv_cont::testata_mov_IVA(long numreg) | ||||
|     _dataregiva = _tmov->get_date(MOV_DATAREG);                             | ||||
|     _inviato    = _tmov->get_bool(MOV_INVIVA); | ||||
|     _tipodoc    = _tmov->get     (MOV_TIPODOC); | ||||
|     _provvis    = _tmov->get_char(MOV_PROVVIS); | ||||
|     if (_ocfpi.not_empty()) | ||||
|       cerca_occasionale(); | ||||
|   }            | ||||
|  | ||||
| @ -670,7 +670,7 @@ void TInv_cont::invio_testata_movimenti() | ||||
| 
 | ||||
|   for (_tmov->first(); !_tmov->eof(); _tmov->next()) | ||||
|   {  | ||||
|     TString str; | ||||
|     TString str(80); | ||||
|      | ||||
|     _prog->addstatus(1); | ||||
|          | ||||
| @ -700,7 +700,7 @@ void TInv_cont::invio_testata_movimenti() | ||||
|     TString data74ter = _tmov->get(MOV_DATA74TER); | ||||
|     datastr = riconverti(data74ter,TRUE);  | ||||
|     str.format("%08s", (const char*) datastr); | ||||
|     record.overwrite(str,84);                    //Data di registrazione
 | ||||
|     record.overwrite(str,84);                    //Data di 74 ter
 | ||||
| 
 | ||||
|     TString numdoc = _tmov->get(MOV_NUMDOC);     | ||||
|     str.format("%-7s", (const char*) numdoc); | ||||
| @ -827,6 +827,9 @@ void TInv_cont::invio_testata_movimenti() | ||||
|     TString ocfpi = _tmov->get(MOV_OCFPI); | ||||
|     str.format("%-16s", (const char*) ocfpi); | ||||
|     record.overwrite(str,274); | ||||
|      | ||||
|     TString16 provvis = _tmov->get(MOV_PROVVIS); | ||||
|     record.overwrite(provvis, 523); | ||||
| 
 | ||||
|     if (ocfpi.not_empty())   | ||||
|       invio_occasionali(record,ocfpi);                  | ||||
|  | ||||
| @ -16,6 +16,7 @@ | ||||
|                    | ||||
| #include <causali.h>                   | ||||
| #include <mov.h> | ||||
| #include <pconti.h> | ||||
| #include <rmov.h> | ||||
| #include <saldi.h> | ||||
| 
 | ||||
| @ -92,7 +93,7 @@ TSaldo::TSaldo() : _saldi(LF_SALDI), _saldoiniziale(ZERO), _saldo_iniziale(ZERO) | ||||
| 
 | ||||
| {} | ||||
| 
 | ||||
| real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusura, bool mov_prec)  | ||||
| real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusura)  | ||||
| { | ||||
|   const int annoesprec = EsePre(annoes); | ||||
|   _significativo = FALSE; | ||||
| @ -532,7 +533,7 @@ class TContoExt :  public TConto | ||||
| {       | ||||
|   bool _scaricato;      | ||||
|    | ||||
|   public:  | ||||
| public:  | ||||
|    | ||||
|   bool scaricato() const { return _scaricato; }              | ||||
|                 | ||||
| @ -713,9 +714,10 @@ void TSaldo_agg::registra() | ||||
|     THash_object* hobj = _tab_conti.get_hashobj();  | ||||
|     TContoExt& tcon = (TContoExt&)hobj->obj(); | ||||
|     CHECK(tcon.ok(), "Tentativo di saldare un conto incompleto"); | ||||
|     const int annoes = atoi(hobj->key().left(4)); | ||||
| 
 | ||||
|     saldi.zero(); | ||||
|     saldi.put(SLD_ANNOES, atoi(hobj->key().left(4)) ); | ||||
|     saldi.zero();         | ||||
|     saldi.put(SLD_ANNOES, annoes); | ||||
|     saldi.put(SLD_GRUPPO, tcon.gruppo()); | ||||
|     saldi.put(SLD_CONTO,  tcon.conto()); | ||||
|     saldi.put(SLD_SOTTOCONTO, tcon.sottoconto());     | ||||
| @ -816,6 +818,29 @@ void TSaldo_agg::registra() | ||||
|                        err, tcon.gruppo(), tcon.conto(), tcon.sottoconto()); | ||||
|     } | ||||
|      | ||||
|     // Calcolo saldo finale per controllo segno in prima nota
 | ||||
|     if (si.is_zero()) | ||||
|     { | ||||
|       TLocalisamfile pcon(LF_PCON); | ||||
|       TRectype& curr = pcon.curr(); | ||||
|       curr.put(PCN_GRUPPO, tcon.gruppo()); | ||||
|       curr.put(PCN_CONTO, tcon.conto()); | ||||
|       const int err = pcon.read(); | ||||
|       CHECK(err == NOERR, "Impossibile stabilire indicatore di bilancio"); | ||||
|       const int indbil = curr.get_int(PCN_INDBIL); | ||||
|       if (indbil == 1 || indbil == 2 || indbil == 5) | ||||
|       { | ||||
|         TSaldo saldo; | ||||
|         si = saldo.saldofin_esprec(annoes, tcon.gruppo(), tcon.conto(), tcon.sottoconto()); | ||||
|         if (si < ZERO) | ||||
|         { | ||||
|           flag_salini = 'A'; si = -si; | ||||
|         } | ||||
|         else | ||||
|           flag_salini = 'D'; | ||||
|       }   | ||||
|     } | ||||
| 
 | ||||
|     TImporto sf(flag_salini, si); | ||||
|     const TImporto dare('D', saldi.get_real(SLD_PDARE)); | ||||
|     const TImporto avere('A', saldi.get_real(SLD_PAVERE)); | ||||
|  | ||||
| @ -106,7 +106,7 @@ public: | ||||
| 
 | ||||
|   bool ricerca_progr_prec(int, int, int, long); | ||||
| 
 | ||||
|   real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE,bool mov_prec = FALSE);  | ||||
|   real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE);  | ||||
|   bool prg_attuali(int i,TConto& c, real& p1, real& p2) | ||||
|     { return prg_saldo(i, c, p1, p2, FALSE); } | ||||
|   bool prg_mov_eliminati(int i, TConto& c, real& p1, real& p2) | ||||
|  | ||||
| @ -31,7 +31,7 @@ int fremove(const char* path) | ||||
| #endif | ||||
| 
 | ||||
| //ritorna falso se la causale non e' significativa
 | ||||
| bool look_causale (const char* codcaus) | ||||
| HIDDEN bool look_causale (const char* codcaus) | ||||
| { | ||||
|   TString16 caus = codcaus; | ||||
|   if (caus == "000") | ||||
| @ -4215,6 +4215,7 @@ void TTransfer_file::write_testata_movimenti(TString& record) | ||||
|       } | ||||
|        | ||||
|       if (fname == MOV_OCFPI) | ||||
|       { | ||||
|         if (field.trim().empty())   | ||||
|         { | ||||
|           TString rags = record.sub(290,340); | ||||
| @ -4227,6 +4228,7 @@ void TTransfer_file::write_testata_movimenti(TString& record) | ||||
|           else | ||||
|             occas = FALSE;          | ||||
|         } | ||||
|       } | ||||
|            | ||||
|       if (flag == 2) | ||||
|       { | ||||
|  | ||||
| @ -166,6 +166,7 @@ Z1|29|454|458|18|CAP|4|| | ||||
| Z1|30|459|466|18|DNASC|4|| | ||||
| Z1|31|467|469|18|STATONASC|4|| | ||||
| Z1|32|470|473|18|COMNASC|4|| | ||||
| Z1|33|524|524|23|PROVVIS||| | ||||
| Z2|1|3|9|24|NUMREG||| | ||||
| Z2|2|10|12|24|NUMRIG||| | ||||
| Z2|3|61|61|24|SEZIONE||| | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user