// classpim.h // funzioni ed enum per classificare i pim #ifndef __CLASSPIM_H #define __CLASSPIM_H #ifndef __ISAM_H #include #endif #ifndef __REAL_H #include #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(TRectype& pimr, real& imp, real& iva, tiporec& t, bool ts); #endif