campo-sirio/src/cg/cgpim.h
bonazzi 6112cb94d9 Patch level : 12.0 580
Files correlati     : cg4.exe f171.trr f171.dir cg2100c.msk cg2.exe cg7.exe cg7800a.rep

Modifiche alla dichiarazione e alla liquidazione per il volume d'affari (movimenti per cassa)
Corretto il calcolo degli abbuoni in prima nota
Corretta la ricerca per partita IVA in prima nota

git-svn-id: svn://10.65.10.50/branches/R_10_00@24491 c028cbd2-c16b-5b4b-a496-9718f37d4682
2018-05-17 13:19:53 +00:00

85 lines
3.4 KiB
C++
Executable File

// classpim.h
// funzioni ed enum per classificare i pim
#ifndef __CGPIM_H
#define __CGPIM_H
#ifndef __ISAM_H
class TRectype;
#endif
#ifndef __REAL_H
#include <real.h>
#endif
#include <recset.h>
// per ora ci si fotte di agenzie viaggio e di
// regimi agricoli
enum tiporec { acq_norm = 0, vend_norm = 1, // acquisti e vendite normali
acq_simp = 2, vend_simp = 3, // acq. e vend. sosp. imposta
bolle_doganali = 4, // bolle doganali (acquisti)
acq_beni_riv = 5, // acq. beni per rivendita
base_ventilazione = 6, // base calcolo per ventil.
corr_norm = 7, corr_simp = 8, // corrispettivi n. e s. imp.
acq_beni_ammort = 9, // acq. beni ammortizz. detr.
acq_beni_ammort_nd = 10, // beni ammort. non detraibili
acq_beni_leasing = 11, // beni strum. acq in leasing
acq_amm_ultdetr = 12, // beni amm. ult. detr 6%
acq_ind_op_es = 13, // acq. indetr. su op.es.
acq_ind_pass_int = 14, // passaggi interni
acq_ind_art_19 = 15, // indetr. art. 19
cess_amm = 16, // cessioni amministrative
vend_rimborso = 17, // vendite valide per rimborso
acq_rimborso = 18, // acq. validi per rimborso
acq_bd_ind_art_19 = 19, // acq. con tipo documento BD e tipo detr 9
stop_tiporec = 20
// ACHTUNG: se si aggiunge, cambiare sotto!!!
};
// ---------------------------------------------------------------
// "classifica" un record progressivo IVA passato per reference
// mette l'imponibile in imp, l'imposta in iva, e in t mette
// un valore dell'enum di cui sopra, che dice di che tipo e'
// l'importo ritornato
// ---------------------------------------------------------------
// RITORNA TRUE SE VA CHIAMATA ANCORA CON LO STESSO PIM come
// parametro (ovvero: ci sono altri valori da passare che fanno
// parte dello stesso pim)
// ---------------------------------------------------------------
// mese, anno, attivita' vanno gestiti esternamente. Quando un pim
// contiene dati che valgono per piu' di un caso, ritorna TRUE
// finche' i casi possibili non sono esauriti
// ---------------------------------------------------------------
// ------------------------------- ESEMPIO che fa sempre bene
// TTable pim("PIM");
// while (pim.first(); !pim.eof(); pim.next())
// {
// real imponibile, imposta;
// tiporec tipo;
//
// // Escludi i pim che non vuoi (per attivita', anno, mese)
// if (questo_non_lo_volevo) continue;
//
//
// while (classify_pim(pim.curr(), imponibile, imposta, tipo))
// {
// switch(tipo)
// {
// case acq_norm:
// acq_imponibile += imponibile;
// acq_imposta += imposta;
// break;
// // eccetera
// }
// }
// }
//
// CONTENTA? ciao, f. :)
// -----------------------------------------------------------
bool classify_pim(const TRectype& pimr, real& imp, real& iva, tiporec& t, bool ts, int & last_tiporec, const bool all = false);
#endif