cg0100.cpp Invertito ordine di distruzione nella user_destroy
cg0500.cpp Invertito ordine di distruzione nella user_destroy cg2102.cpp Corretta generazione contropartite: Errore MI6332 cgsaldac.* Aggiunto metodo TPartite_array::items() git-svn-id: svn://10.65.10.50/trunk@6332 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									73807de917
								
							
						
					
					
						commit
						109e0c26bb
					
				| @ -5,7 +5,6 @@ | ||||
| #include "cg0100.h" | ||||
| 
 | ||||
| #include <pconti.h> | ||||
| 
 | ||||
| #include <saldi.h> | ||||
| 
 | ||||
| #define ATTIVITA 1 | ||||
| @ -385,16 +384,17 @@ HIDDEN bool sottoc_handler(TMask_field& f, KEY key) | ||||
| 
 | ||||
| bool CG0100_application::user_create() | ||||
| { | ||||
|   _rel = new TRelation(LF_PCON); | ||||
|   _saldi = new TLocalisamfile(LF_SALDI); | ||||
|   _saldi->setkey(2); | ||||
| 
 | ||||
|   _msk = new TMask("cg0100a") ; | ||||
|   _msk->set_handler(FLD_CM1_GRUPPO, gruppo_handler); | ||||
|   _msk->set_handler(FLD_CM1_CONTO, conto_handler); | ||||
|   _msk->set_handler(FLD_CM1_SOTTOCONTO, sottoc_handler); | ||||
|   _msk->set_handler(FLD_CM1_TMCF, tmcf_handler); | ||||
| 
 | ||||
|   _rel = new TRelation(LF_PCON); | ||||
|   _saldi = new TLocalisamfile(LF_SALDI); | ||||
|   _saldi->setkey(2); | ||||
|   set_search_field(FH_SOTTOCONTO); | ||||
| 
 | ||||
|   return TRUE; | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -854,9 +854,9 @@ bool TCaus_app::user_create() | ||||
| bool TCaus_app::user_destroy() | ||||
| { | ||||
|   delete _msk; | ||||
|   delete _rel; | ||||
|   delete _rcaus;     | ||||
|   delete _rcaus_rec; | ||||
|   delete _rcaus;     | ||||
|   delete _rel; | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -718,11 +718,12 @@ void TPrimanota_application::generazione_righe_cg(int r) | ||||
|   if (can_remove(row))                      // Ignora righe senza importo
 | ||||
|     return; | ||||
| 
 | ||||
|   begin_wait(); | ||||
|   TWait_cursor hourglass; | ||||
| 
 | ||||
|   TImporto importo; importo = row;  | ||||
|   const bool causale_ok = causale().codice()[0] > ' ';   | ||||
| 
 | ||||
|   // Se la seconda riga e' vuota la genero completamente dalla prima
 | ||||
|   if (r == 0 && cg.row(1).empty_items()) | ||||
|   { | ||||
|     TBill contro(row, 9, 0x3);              // Contropartita della prima riga
 | ||||
| @ -732,12 +733,12 @@ void TPrimanota_application::generazione_righe_cg(int r) | ||||
|       if (contro.ok()) | ||||
|       { | ||||
|         contro.add_to(row, 9, 0x3); | ||||
|         cg.force_update(r); | ||||
|         cg.force_update(0); | ||||
|       }   | ||||
|     } | ||||
|     if (contro.ok()) | ||||
|     { | ||||
|       importo.swap_section(); | ||||
|       importo.swap_section();                // Inverto la sezione  D/A
 | ||||
|       set_cgs_row(1, importo, contro, "", ' '); | ||||
|       TBill conto(row, 2, 0x3); | ||||
|       conto.add_to(cg.row(1), 9, 0x3); | ||||
| @ -768,8 +769,8 @@ void TPrimanota_application::generazione_righe_cg(int r) | ||||
|         int gruppo =  rowi.get_int(3); | ||||
|         if (gruppo != 0)                   // Considera righe con conto ...
 | ||||
|         {      | ||||
|           gruppo = rowi.get_int(10); | ||||
|           if (gruppo == 0)                 // ... e senza contropartita
 | ||||
|           long sotto = rowi.get_long(12); | ||||
|           if (sotto == 0)                  // ... e senza contropartita
 | ||||
|           {  | ||||
|             char sez = ' ';                // Calcola sezione D/A della riga i
 | ||||
|             if (cg.cell_disabled(i,0)) sez = 'A'; else | ||||
| @ -790,8 +791,8 @@ void TPrimanota_application::generazione_righe_cg(int r) | ||||
|         importo.swap_section(); | ||||
|         set_cgs_imp(last, importo); | ||||
|          | ||||
|         const int gruppo = row.get_int(10);              | ||||
|         if (gruppo == 0)                      // Se non ho contropartita ...
 | ||||
|         const long sotto = row.get_long(12);              | ||||
|         if (sotto == 0)                       // Se non ho contropartita ...
 | ||||
|         { | ||||
|           TBill contro(cg.row(last), 2, 0x3); // ... copiala dalla riga corrispondente
 | ||||
|           contro.add_to(row, 9, 0x3);  | ||||
| @ -802,14 +803,14 @@ void TPrimanota_application::generazione_righe_cg(int r) | ||||
|     else | ||||
|     {                   | ||||
|       TToken_string& first = cg.row(first_not_empty); | ||||
|       int gruppo = first.get_int(10); | ||||
|       if (gruppo == 0)                      // Se la prima riga non ha contropartita ...
 | ||||
|       long sotto = first.get_long(12); | ||||
|       if (sotto == 0)                       // Se la prima riga non ha contropartita ...
 | ||||
|       { | ||||
|         conto.add_to(first, 9, 0x3);        // ... copiaci la mia partita
 | ||||
|         cg.force_update(first_not_empty); | ||||
|       }               | ||||
|       gruppo = row.get_int(10);              | ||||
|       if (gruppo == 0)                      // Se non ho contropartita ...
 | ||||
|       sotto = row.get_long(12);              | ||||
|       if (sotto == 0)                       // Se non ho contropartita ...
 | ||||
|       { | ||||
|         TBill contro(first, 2, 0x3);        // ... copiala dalla prima riga
 | ||||
|         contro.add_to(row, 9, 0x3);  | ||||
| @ -817,15 +818,13 @@ void TPrimanota_application::generazione_righe_cg(int r) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   end_wait(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int TPrimanota_application::crea_somma_spese(TImporto& imp) | ||||
| { | ||||
|   TConto cassa; causale().bill(2, cassa); | ||||
|   const TString80 desc(causale().desc_agg(2)); | ||||
|   const TString desc(causale().desc_agg(2)); | ||||
|   imp.swap_section(); imp.normalize(); | ||||
|   const int r = set_cgs_row(-1, imp, cassa, desc, 'L'); | ||||
|   cgs().force_update(); | ||||
| @ -912,7 +911,7 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k) | ||||
|       {                              | ||||
|         const int k = tipo == 'K' ? 1 : RIGA_SPESE;       | ||||
|         TBill conto; a.causale().bill(k, conto); | ||||
|         const TString80 desc(a.causale().desc_agg(k)); | ||||
|         const TString desc(a.causale().desc_agg(k)); | ||||
|         const char sez = a.causale().sezione(k); | ||||
|         const real imp(cg.mask().get(K_RESIDUO)); | ||||
|         TImporto importo(sez, imp); | ||||
| @ -1048,23 +1047,6 @@ TSheet_field& TPrimanota_application::ivas() const | ||||
|   return s; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
| TBill& TPrimanota_application::ivas_bill(TBill& c) | ||||
| { | ||||
|   if (iva() == iva_vendite) | ||||
|   { | ||||
|     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; | ||||
| }  | ||||
| */ | ||||
| 
 | ||||
| // Gestione del campo imponibile sullo sheet iva
 | ||||
| // Certified 90%
 | ||||
| bool TPrimanota_application::imponibile_handler(TMask_field& f, KEY key) | ||||
|  | ||||
| @ -1936,6 +1936,7 @@ int TPartite_array::add_numreg(long nreg) | ||||
|      | ||||
|     // Uso un cursore per evitare conflitti di lettura con l'oggetta partita
 | ||||
|     TCursor cur(&rel, "", 2, &part, &part);   | ||||
|     cur.freeze(); | ||||
|     for (cur = 0; cur.ok(); ++cur) | ||||
|       partita(part);                // Aggiungi partita se non esiste gia'
 | ||||
| 
 | ||||
|  | ||||
| @ -339,6 +339,7 @@ public: | ||||
|   // Cerca la riga della partita relativa alla registrazione numreg
 | ||||
|   TRiga_partite* mov2rig(long numreg, int numrig); | ||||
|    | ||||
|   int items() const { return TAssoc_array::items(); } | ||||
|   TPartita* first() { restart(); return next(); } | ||||
|   TPartita* next() { return (TPartita*)get(); } | ||||
|    | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user