Corretta cancellazione righe con importo nullo nelle righe contabili
git-svn-id: svn://10.65.10.50/trunk@566 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									251957f9c5
								
							
						
					
					
						commit
						02a6029dbe
					
				| @ -6,8 +6,6 @@ | ||||
| 
 | ||||
| int main(int argc,char** argv) | ||||
| { | ||||
|   check_parameters(argc, argv); | ||||
| 
 | ||||
|   const int n = (argc > 1) ? atoi(&argv[1][1]) : 0; | ||||
| 
 | ||||
|   switch(n) | ||||
|  | ||||
| @ -148,10 +148,8 @@ bool TPrimanota_application::save_and_new() const | ||||
| 
 | ||||
| bool TPrimanota_application::user_destroy() | ||||
| {  | ||||
|   if (_msk[3] != NULL) delete _msk[3]; | ||||
|   if (_msk[2] != NULL) delete _msk[2]; | ||||
|   if (_msk[1] != NULL) delete _msk[1]; | ||||
|   if (_msk[0] != NULL) delete _msk[0]; | ||||
|   for (int m = 3; m >= 0; m--) | ||||
|     if (_msk[m] != NULL) delete _msk[m]; | ||||
| 
 | ||||
|   delete _rel; | ||||
|   delete _nditte; | ||||
| @ -165,6 +163,7 @@ bool TPrimanota_application::user_destroy() | ||||
|   delete _caus; | ||||
|   delete _tab; | ||||
|   delete _tabcom; | ||||
|    | ||||
|   return TRUE; | ||||
| } | ||||
| 
 | ||||
| @ -484,18 +483,18 @@ int TPrimanota_application::read(TMask& m) | ||||
|     const TString16 occode(_rel->lfile().get("OCFPI")); | ||||
|     occas_mask().set(O_CODICE, occode); | ||||
| 
 | ||||
|     real cambio(_rel->lfile().get("CAMBIO")); | ||||
|     if (cambio < 1.0) cambio = 1.0; | ||||
|     m.set_exchange(FALSE, cambio);       | ||||
| 
 | ||||
|     const char clifo = toupper(m.get(F_CLIFO)[0]); | ||||
|     const char clifo = _rel->lfile().get_char("TIPO"); | ||||
|     if (_iva == iva_acquisti && clifo == 'C') | ||||
|       error_box("Registrazione di acquisto attribuita ad un cliente"); else | ||||
|         if (_iva == iva_vendite && clifo == 'F') | ||||
|           error_box("Registrazione di vendita attribuita ad un fornitore"); | ||||
|   } | ||||
| 
 | ||||
|    | ||||
|   // Inizializza cambio
 | ||||
|   real cambio(_rel->lfile().get("CAMBIO")); | ||||
|   if (cambio < 1.0) cambio = 1.0; | ||||
|   m.set_exchange(FALSE, cambio);       | ||||
| 
 | ||||
|   _saldi.reset();                                // Azzera saldi
 | ||||
|   _saldi.set_movprovv(_rel->lfile().get_bool("PROVVIS")); | ||||
|   _saldi.set_movap(_causale.apertura()); | ||||
| @ -573,7 +572,8 @@ int TPrimanota_application::read(TMask& m) | ||||
|     if (to_swap) imposta = -imposta; | ||||
|     if (imponibile.sign() * imposta.sign() < 0) | ||||
|     { | ||||
|       warning_box("Registrazione con imponibile e imposta discordi: correzione effettuata"); | ||||
|       warning_box("Registrazione con imponibile e imposta con segni discordi:\n" | ||||
|                   "assegnato il segno dell'imponibile"); | ||||
|       imposta = -imposta; | ||||
|     }   | ||||
|     riga.add(imposta.string());          // Imposta    104
 | ||||
| @ -668,6 +668,8 @@ void TPrimanota_application::mask2rel(const TMask& m) | ||||
|   } | ||||
|   else | ||||
|   { | ||||
|     _rel->lfile().put("TIPO", clifo());  | ||||
| 
 | ||||
|     int err = ~NOERR;     | ||||
|     if (m.get_bool(F_OCCASIONALE))  | ||||
|     { | ||||
|  | ||||
| @ -784,12 +784,12 @@ bool TPrimanota_application::iva_notify(int r, KEY k) | ||||
|     if (oldpos >= 0)                           // Se il conto esisteva anche prima ...
 | ||||
|     {                                          // sottrai il vecchio imponibile
 | ||||
|       const TImporto imp = app().sub_cgs_imp(oldpos, oldimp); | ||||
|       if (imp.is_zero) delimp = oldpos; | ||||
|       if (imp.is_zero()) delimp = oldpos; | ||||
|     }  | ||||
|     if (oldposiva >= 0)                        // Se conto IVA esisteva anche prima ...
 | ||||
|     {                                          // sottrai la vecchia imposta
 | ||||
|       const TImporto imp = app().sub_cgs_imp(oldposiva, oldiva); | ||||
|       if (imp.is_zero) deliva = oldposiva; | ||||
|       if (imp.is_zero()) deliva = oldposiva; | ||||
|     } | ||||
| 
 | ||||
|     real imponibile(row.get(0));               // Nuovo imponibile
 | ||||
| @ -1243,22 +1243,21 @@ void TPrimanota_application::add_cgs_tot(TMask& m) | ||||
|   int conto = m.get_int(F_CONTOCLIFO); | ||||
|   long codice = m.get_long(tipo == 'C' ? F_CLIENTE : F_FORNITORE); | ||||
|    | ||||
|   // Se l'utente non ha ancora specificato un conto lo prendo dalla prima riga della causale
 | ||||
|   TBill bill; _causale.bill(1, bill); | ||||
|   if (conto == 0) | ||||
|   { | ||||
|     gruppo = bill.gruppo(); m.set(F_GRUPPOCLIFO, gruppo); | ||||
|     conto = bill.conto(); m.set(F_CONTOCLIFO, conto); | ||||
|     codice = bill.sottoconto(); | ||||
|   if (conto == 0 || causale().corrispettivi()) | ||||
|   {     | ||||
|     // Se l'utente non ha ancora specificato un conto lo prendo dalla prima riga della causale
 | ||||
|     TBill bill; _causale.bill(1, bill); | ||||
|     gruppo = bill.gruppo(); | ||||
|     conto = bill.conto(); | ||||
|     if (causale().corrispettivi()) | ||||
|     { | ||||
|       tipo = ' ';                        | ||||
|       codice = bill.sottoconto(); | ||||
|     }   | ||||
|   } | ||||
|    | ||||
|   if (tipo == 'C' && causale().corrispettivi()) | ||||
|   { | ||||
|     codice = bill.sottoconto(); | ||||
|     tipo = ' ';                        | ||||
|   }   | ||||
| 
 | ||||
|   TBill nuovo(gruppo, conto, codice, tipo); | ||||
| 
 | ||||
|   real tot(m.get(F_TOTALE)); | ||||
|    | ||||
|   const int pos = type2pos('T'); | ||||
| @ -1267,7 +1266,7 @@ void TPrimanota_application::add_cgs_tot(TMask& m) | ||||
|     TSheet_field& ss = cgs(); | ||||
|     TToken_string& row = ss.row(pos); | ||||
|     const TBill vecchio(row, 2, 0x1); | ||||
|     if (vecchio.ok() && nuovo != vecchio)                  // Se cambio cliente/fornitore
 | ||||
|     if (!vecchio.empty() && nuovo != vecchio)                  // Se cambio cliente/fornitore
 | ||||
|     { | ||||
|       for (int i = 0; i < ss.items(); i++) if (i != pos) | ||||
|       { | ||||
|  | ||||
| @ -17,6 +17,7 @@ BEGIN | ||||
|   DISPLAY "Tipo" S1 | ||||
|   OUTPUT 102 CODTAB | ||||
|   OUTPUT 211 S0           | ||||
|   CHECKTYPE NORMAL | ||||
|   WARNING "Codice IVA assente" | ||||
| 	VALIDATE REQIF_FUNC 1 101 | ||||
| END | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user