campo-sirio/cg/cgpim.h
alex b3cd9c64a9 Patch level : xx.888
Files correlati     : no patch
Ricompilazione Demo : [ ]
Commento            : Riportata la versione 01.05 patch 888 sul main trunk


git-svn-id: svn://10.65.10.50/trunk@9217 c028cbd2-c16b-5b4b-a496-9718f37d4682
2000-10-03 13:45:12 +00:00

88 lines
3.5 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
// 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
// ACHTUNG: se si aggiunge, cambiare sotto!!!
};
// questo serve nel cpp ma lo metto qua se no
// non lo cambiero' mai quando serve
const int MAX_TIPOREC = 19;
// ---------------------------------------------------------------
// "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);
#endif