Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21711 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			525 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			525 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <applicat.h>
 | 
						||
#include <automask.h>
 | 
						||
#include <execp.h>
 | 
						||
#include <progind.h>
 | 
						||
#include <recarray.h>
 | 
						||
#include <utility.h>
 | 
						||
#include <textset.h>
 | 
						||
 | 
						||
#include "../cg/cglib01.h"
 | 
						||
#include "../cg/cg2103.h"
 | 
						||
 | 
						||
 | 
						||
#include "pi0001.h"
 | 
						||
#include "pi0001100.h"
 | 
						||
#include "pi0001100a.h"
 | 
						||
#include "pi0001200.h"
 | 
						||
 | 
						||
#include <pconti.h>
 | 
						||
#include <mov.h>
 | 
						||
#include <rmov.h>
 | 
						||
#include <rmoviva.h>
 | 
						||
 | 
						||
	#define AT01CM   0 // Record attivo/sospeso/annullato                       DIZSMAS    - ATTI
 | 
						||
	#define DT01CM   1 // Data stampa per G.Gen.le                              DIZSMAS    - DATS
 | 
						||
	#define NR01CM   2 // Numero azione di aggiornamento                        DIZSMAS    - NRAZ
 | 
						||
	#define TPMVCM   3 // Flag IVA I=IVA   =no IVA                              DIZSMAS    - TPMV
 | 
						||
	#define CDDTCM   4 // Codice Ditta                                          DIZSMAS    - CDDT
 | 
						||
	#define AAPRCM   5 // Anno Operazione                                       DIZSMAS    - AAPR
 | 
						||
	#define ANNPCM   6 // Anno Reg.DA GESTIRE                                   DIZSMAS    - ANNP
 | 
						||
	#define TPGICM	 7 // Giornale IVA  TB=GI                                   DIZSMAS    - TPGI
 | 
						||
	#define DTOPCM	 8 // Data operazione                                       DIZSMAS    - DATS
 | 
						||
	#define NONPCM	 9 // Nr. Operaz./Nr. Prot.                                 DIZSMAS    - NONP
 | 
						||
	#define NRRGCM	10 // Numero Riga 2                                         DIZSMAS    - NRR2
 | 
						||
	#define NRGICM	11 // Nr Riga Giornale                                      DIZSMAS    - NRGI
 | 
						||
	#define CONTCM	12 // Gr. Conto Sottoconto                                  DIZSMAS    - CONT
 | 
						||
	#define DIVICM	13 // Divisione  TB=DI                                      DIZSMAS    - DIVI
 | 
						||
	#define NPARCM	14 // Nr Partita                                            DIZSMAS    - NPAR
 | 
						||
	#define AAOPCM	15 // Anno partita                                          DIZSMAS    - ANNO
 | 
						||
	#define DTRGCM	16 // Data registrazione                                    DIZSMAS    - DATS
 | 
						||
	#define CAUSCM	17 // Causale  TB=CA                                        DIZSMAS    - CAUS
 | 
						||
	#define DSUPCM	18 // Descrizione Supplementare                             DIZSMAS    - DSUP
 | 
						||
	#define IMPOCM	19 // Importo  "-"=Avere                                    DIZSMAS    - IMPO
 | 
						||
	#define CDVACM	20 // Codice Valuta  TB=VA                                  DIZSMAS    - CDVA
 | 
						||
	#define CAMBCM	21 // Cambio                                                DIZSMAS    - CAMB
 | 
						||
	#define IMVACM	22 // Importo Valuta                                        DIZSMAS    - IMVA
 | 
						||
	#define CDPGCM	23 // Codice di Pagamento TB=CP                             DIZSMAS    - CDPG
 | 
						||
	#define DT1SCM	24 // Data I^ scadenza                                      DIZSMAS    - DATS
 | 
						||
	#define DTDOCM	25 // Data documento                                        DIZSMAS    - DATS
 | 
						||
	#define NRDOCM	26 // N<> Documento                                          DIZSMAS    - NUDO
 | 
						||
	#define CCTPCM	27 // Centri Costo Tipico TB=CC                             DIZSMAS    - CCTP
 | 
						||
	#define NCOMCM	28 // Numero Commessa                                       DIZSMAS    - NCOM
 | 
						||
	#define CDSCCM	29 // Codice Sottocommessa                                  DIZSMAS    - CDSC
 | 
						||
	#define INDECM	30 // Indetraibilit<69> %                                      DIZSMAS    - INDE
 | 
						||
	#define CDIVCM	31 // Codice IVA                                            DIZSMAS    - CDIV
 | 
						||
	#define IMPSCM	32 // Imposta                                               DIZSMAS    - IMPS
 | 
						||
	#define CDAGCM	33 // Codice Agente                                         DIZSMAS    - CDAG
 | 
						||
	#define DTVBCM	34 // Data Liquidazione Iva Sospesa                         DIZSMAS    - DATS
 | 
						||
	#define FLSBCM	35 // Flag *=Stampato Bollato                               DIZSMAS    - FLSB
 | 
						||
	#define FSBICM	36 // Flag *=Stampato Boll.IVA                              DIZSMAS    - FSBI
 | 
						||
	#define FLVZCM	37 // V=Var.S=Storno P=Liq.prec. E=Esig.Sosp.               DIZSMAS    - FLVZ
 | 
						||
	#define FLIICM	38 // Flag IVA Irrecup. " "=I irr.                          DIZSMAS    - FLII
 | 
						||
	#define FLTSCM	39 // Flag Tipo Sollecito                                   DIZSMAS    - FLTS
 | 
						||
	#define FLEPCM	40 // *=Est.EP Non <20> pi<70> usato                              DIZSMAS    - FLEP
 | 
						||
	#define DPERCM	41 // Dati Personalizzabili                                 DIZSMAS    - DPER
 | 
						||
	#define CONSCM	42 // Gr.Co.Sottoc.Sostitutivo                              DIZSMAS    - CONS
 | 
						||
	#define DTSTCM	43 // Nr.progr. rateo/risconto                                         -
 | 
						||
	#define USERCM	44 // Utente                                                DIZSMAS    - NOMU
 | 
						||
	#define DTUMCM	45 // Data ultima manutenzione                              DIZSMAS    - DATS
 | 
						||
	#define TPUMCM	46 // Tipo ultima manutenzione                              DIZSMAS    - FLAG
 | 
						||
	#define FL01CM	47 // Flag Generico                                         DIZSMAS    - FLAG
 | 
						||
	#define FL02CM	48 // Flag Generico                                         DIZSMAS    - FLAG
 | 
						||
	#define FL03CM	49 // Flag Generico                                         DIZSMAS    - FLAG
 | 
						||
	#define FL04CM	50 // Flag Generico                                         DIZSMAS    - FLAG
 | 
						||
	#define FL05CM	51 // Flag Generico                                         DIZSMAS    - FLAG
 | 
						||
	#define CMBECM	52 // Cambio EURO                                           DIZSMAS    - CAME
 | 
						||
	#define IMVACM2	53 // Importo Val 2                                         DIZSMAS    - IMPO
 | 
						||
	#define IMPSCM2	54 // Imposta 2                                             DIZSMAS    - IMPS
 | 
						||
 | 
						||
const TVariant& TImporta_galileo_recset::get(unsigned int column) const
 | 
						||
{
 | 
						||
	TString str = TCSV_recordset::get(column).as_string();
 | 
						||
  TVariant& var = get_tmp_var();
 | 
						||
	int len = str.len();
 | 
						||
			
 | 
						||
	if (len == 0)
 | 
						||
		return NULL_VARIANT;
 | 
						||
	if (str[len -1] == '"')
 | 
						||
		str.rtrim(1);
 | 
						||
	if (str[0] == '"')
 | 
						||
		str.ltrim(1);
 | 
						||
	var.set(str);
 | 
						||
	return var;
 | 
						||
}
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
// TAutomask
 | 
						||
///////////////////////////////////////////////////////////
 | 
						||
 | 
						||
class TImporta_mov_mask : public TAutomask
 | 
						||
{
 | 
						||
protected:
 | 
						||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						||
 | 
						||
public:
 | 
						||
  TImporta_mov_mask();
 | 
						||
};
 | 
						||
  
 | 
						||
TImporta_mov_mask::TImporta_mov_mask() :TAutomask ("pi0001100a")
 | 
						||
{
 | 
						||
}  
 | 
						||
 | 
						||
bool TImporta_mov_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
						||
{ 
 | 
						||
	switch (f.dlg())
 | 
						||
	{
 | 
						||
	//giochetto per avere la lista dei files validi nella directory di trasferimento!
 | 
						||
	case F_NAME:
 | 
						||
		if (e == fe_button)
 | 
						||
		{
 | 
						||
			TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"), "File@32");
 | 
						||
			TFilename path = get(F_PATH);	path.add("*.txt");	//files delle testate
 | 
						||
			list_files(path, as.rows_array());
 | 
						||
			TFilename name;
 | 
						||
			FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
 | 
						||
			{
 | 
						||
				name = *row;
 | 
						||
				*row = name.name();
 | 
						||
			}
 | 
						||
			if (as.run() == K_ENTER)
 | 
						||
				f.set(as.row(as.selected()));
 | 
						||
		}
 | 
						||
		break;
 | 
						||
	default:
 | 
						||
		break;
 | 
						||
	}
 | 
						||
  return true;
 | 
						||
}
 | 
						||
 | 
						||
 | 
						||
///////////////////////////////////////
 | 
						||
// TSkeleton_application
 | 
						||
///////////////////////////////////////
 | 
						||
class TImporta_mov : public TSkeleton_application
 | 
						||
{
 | 
						||
protected:
 | 
						||
  virtual const char* extra_modules() const { return "cg"; }
 | 
						||
	void build_IVA(TConfig & conf, TArray & rows, TString_array & concg, TArray & impcg, int nrigai);
 | 
						||
 | 
						||
public:           
 | 
						||
  virtual void main_loop();
 | 
						||
	void transfer(const TMask& msk);
 | 
						||
};
 | 
						||
 | 
						||
void TImporta_mov::build_IVA(TConfig& conf, TArray& rows, TString_array& concg, TArray& impcg, int nrigai)
 | 
						||
{
 | 
						||
	const int items = rows.items();
 | 
						||
  if (items > 0)
 | 
						||
	{
 | 
						||
   	TString paragraph;
 | 
						||
  	TToken_string key;
 | 
						||
 | 
						||
    int icg = 0;
 | 
						||
		
 | 
						||
    TString4 gruppo, conto;
 | 
						||
    TString8 sottoconto;
 | 
						||
 | 
						||
    if (icg < concg.items())
 | 
						||
    {
 | 
						||
      const TString& gcs = concg.row(icg);
 | 
						||
		  gruppo     = gcs.left(2);
 | 
						||
		  conto      = gcs.mid(2, 2);
 | 
						||
		  sottoconto = gcs.right(6);
 | 
						||
    }
 | 
						||
    else
 | 
						||
    {
 | 
						||
      // Non so come inventare il conto
 | 
						||
    }
 | 
						||
   
 | 
						||
    real imptot;
 | 
						||
    if (icg < impcg.items())
 | 
						||
      imptot = (const real&)impcg[icg];
 | 
						||
 | 
						||
		int i = 0;
 | 
						||
		while (i < items)
 | 
						||
		{
 | 
						||
			TRectype& rec = (TRectype&)rows[i];
 | 
						||
			real imp = rec.get(RMI_IMPONIBILE);
 | 
						||
			real iva = rec.get(RMI_IMPOSTA);
 | 
						||
			if (imp <= imptot)
 | 
						||
				i++;
 | 
						||
			else
 | 
						||
			{
 | 
						||
				const TCodiceIVA codiva(rec.get(RMI_CODIVA));
 | 
						||
				
 | 
						||
				imp -= imptot;
 | 
						||
				rec.put(RMI_IMPONIBILE, imp);
 | 
						||
				imp = imptot;
 | 
						||
				real iv = codiva.imposta(imptot);
 | 
						||
				iva -= iv;
 | 
						||
				rec.put(RMI_IMPOSTA, iva);
 | 
						||
				iva = iv;
 | 
						||
			}
 | 
						||
			imptot -= imp;
 | 
						||
			paragraph.format("%d,%d",LF_RMOVIVA,nrigai++);
 | 
						||
			key.add(gruppo);
 | 
						||
			key.add(conto);
 | 
						||
			const TString4 tipocf = cache().get(LF_PCON, key, PCN_TMCF);
 | 
						||
			conf.set_paragraph(paragraph);
 | 
						||
			conf.set(RMI_CODIVA, rec.get(RMI_CODIVA));
 | 
						||
			conf.set(RMI_TIPODET, rec.get(RMI_TIPODET));
 | 
						||
			conf.set(RMI_IMPONIBILE, imp.string());
 | 
						||
			conf.set(RMI_IMPOSTA, iva.string());
 | 
						||
			conf.set(RMI_TIPOC, tipocf);
 | 
						||
			conf.set(RMI_GRUPPO, gruppo);
 | 
						||
			conf.set(RMI_CONTO, conto);
 | 
						||
			conf.set(RMI_SOTTOCONTO, sottoconto);
 | 
						||
			if (imptot <= ZERO)
 | 
						||
			{
 | 
						||
        if (++icg >= concg.items())
 | 
						||
          break;
 | 
						||
				const TString& gcs = concg.row(icg);
 | 
						||
				gruppo = gcs.left(2);
 | 
						||
				conto = gcs.mid(2, 2);
 | 
						||
				sottoconto = gcs.right(6);
 | 
						||
        
 | 
						||
        if (icg < impcg.items())
 | 
						||
				  imptot = (const real&)impcg[icg];
 | 
						||
        else
 | 
						||
          imptot = ZERO;
 | 
						||
			}
 | 
						||
    }
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
void TImporta_mov::transfer(const TMask& msk)
 | 
						||
{
 | 
						||
  TFilename filename = msk.get(F_PATH); filename.add(msk.get(F_NAME));
 | 
						||
	TFilename outdir(msk.get(F_PATHOUT));
 | 
						||
 | 
						||
  TImporta_galileo_recset s(filename);
 | 
						||
 | 
						||
  TProgind pi(s.items(), TR("Importazione movimenti in corso..."));
 | 
						||
	TConfig * conf = NULL;
 | 
						||
	long nmov = - 1;
 | 
						||
	int anno = 0;
 | 
						||
	TString8 reg;
 | 
						||
	TDate dataop;
 | 
						||
	int nrigac = 1;
 | 
						||
	int nrigai = 1;
 | 
						||
	long ntran = 1L;
 | 
						||
	bool iva = false;
 | 
						||
	TString4 gruppo;
 | 
						||
	TString4 conto;
 | 
						||
	TString8 sottoconto;
 | 
						||
	TString descr(50);
 | 
						||
	const int codes = msk.get_int(F_ANNOES);
 | 
						||
	const long ditta = msk.get_long(F_CODITTA);
 | 
						||
	const TEsercizi_contabili esc;
 | 
						||
	TArray rows;
 | 
						||
	TArray impcg;
 | 
						||
	TString_array concg;
 | 
						||
	TCausali_cache cache_causali;
 | 
						||
 | 
						||
  for (bool ok=s.move_first();ok;ok=s.move_next())
 | 
						||
  {
 | 
						||
    if (!pi.addstatus(1)) 
 | 
						||
      break;
 | 
						||
		
 | 
						||
		const long dt = s.get(CDDTCM).as_int();
 | 
						||
		if (ditta != dt)
 | 
						||
			continue;
 | 
						||
 | 
						||
    const TDate datareg(s.get(DTRGCM).as_int());
 | 
						||
    const int es = esc.date2esc(datareg);
 | 
						||
 | 
						||
		if (codes != es)
 | 
						||
			continue;
 | 
						||
		const int a = s.get(AAPRCM).as_int();
 | 
						||
	  const TString8 r = s.get(TPGICM).as_string();
 | 
						||
		const TDate d(s.get(DTOPCM).as_int());
 | 
						||
		const long n = s.get(NONPCM).as_int();
 | 
						||
 | 
						||
		descr = s.get(DSUPCM).as_string();
 | 
						||
 | 
						||
		if (anno != a || reg != r || dataop != d || n != nmov )
 | 
						||
		{
 | 
						||
			if (iva && conf != NULL)
 | 
						||
				build_IVA(*conf, rows, concg, impcg, nrigai);
 | 
						||
			anno = a;
 | 
						||
			reg = r;
 | 
						||
			dataop = d;
 | 
						||
			nmov = n;
 | 
						||
 | 
						||
			if (conf != NULL)
 | 
						||
				delete conf;
 | 
						||
			conf = NULL;
 | 
						||
			TFilename temp(outdir);
 | 
						||
 | 
						||
			temp << '/' << format("%05ld", ntran++);
 | 
						||
			temp.ext("ini");
 | 
						||
			if (temp.exist())
 | 
						||
				remove_file(temp);
 | 
						||
			conf = new TConfig(temp);
 | 
						||
			conf->set_paragraph("Transaction"); //setto il paragrafo [Transaction] del file ini
 | 
						||
			conf->set("Action","INSERT");
 | 
						||
			conf->set("Mode", "AUTO");
 | 
						||
 | 
						||
			conf->set_paragraph("23"); //setto il paragrafo [23] del file ini (testata)
 | 
						||
 | 
						||
			TString4 codcaus = s.get(CAUSCM).as_string();
 | 
						||
			iva = s.get(TPMVCM).as_string() == "I";
 | 
						||
			if (atoi(codcaus) != 0)
 | 
						||
			{
 | 
						||
				codcaus << '0';
 | 
						||
				const TCausale& c = cache_causali.causale(codcaus, codes);
 | 
						||
				if (!iva && c.iva() != nessuna_iva)
 | 
						||
					codcaus.cut(0);
 | 
						||
			}
 | 
						||
			conf->set(MOV_CODCAUS, codcaus);
 | 
						||
			conf->set(MOV_DATAREG, datareg.string());
 | 
						||
			const int codpag = s.get(CDPGCM).as_int();
 | 
						||
			if (codpag != 0)
 | 
						||
				conf->set(MOV_CODPAG, format("%03d", codpag));
 | 
						||
			
 | 
						||
			TDate datadoc(s.get(DTDOCM).as_int());
 | 
						||
			
 | 
						||
			conf->set(MOV_DATADOC,	datadoc.string());
 | 
						||
 | 
						||
			TString16 ndoc = s.get(NRDOCM).as_string();
 | 
						||
			
 | 
						||
			if (ndoc == "0")
 | 
						||
				ndoc.cut(0);
 | 
						||
			conf->set(MOV_NUMDOC, ndoc);
 | 
						||
			conf->set(MOV_STAMPATO, "X");
 | 
						||
			conf->set(MOV_REGST, "X");
 | 
						||
 | 
						||
			if (iva)
 | 
						||
			{
 | 
						||
				TToken_string key(25, ',');
 | 
						||
 | 
						||
				key.add(s.get(NPARCM).as_int());
 | 
						||
				key.add(s.get(AAOPCM).as_int());
 | 
						||
				descr << " Part. " << key;
 | 
						||
				conf->set(MOV_REG, s.get(TPGICM).as_string());
 | 
						||
				conf->set(MOV_PROTIVA, n);
 | 
						||
			}
 | 
						||
			descr << '-' <<	anno << '/' <<	reg <<  '/' << dataop << '/' << nmov;
 | 
						||
			conf->set(MOV_DESCR, descr);
 | 
						||
			descr.cut(0);
 | 
						||
			nrigac = 1;
 | 
						||
			nrigai = 1;
 | 
						||
			rows.destroy();
 | 
						||
			impcg.destroy();
 | 
						||
			concg.destroy();
 | 
						||
		}
 | 
						||
 | 
						||
		const TString gcs = s.get(CONTCM).as_string();
 | 
						||
		TString4 sez("D");
 | 
						||
		const TString4 codiva = s.get(CDIVCM).as_string();
 | 
						||
 | 
						||
		gruppo = gcs.left(2);
 | 
						||
		conto = gcs.mid(2, 2);
 | 
						||
		sottoconto = gcs.right(6);
 | 
						||
		if (gcs.full() && codiva.blank())
 | 
						||
		{
 | 
						||
	    TString8 paragraph;
 | 
						||
			real importo = s.get(IMPOCM).as_real();
 | 
						||
 | 
						||
			if (importo < ZERO)
 | 
						||
			{
 | 
						||
				importo = -importo;
 | 
						||
				sez = "A";
 | 
						||
			}
 | 
						||
			TToken_string key;
 | 
						||
 | 
						||
			key.add(gruppo);
 | 
						||
			key.add(conto);
 | 
						||
 | 
						||
			const char tipocf = cache().get(LF_PCON, key, PCN_TMCF)[0];
 | 
						||
			if (iva)
 | 
						||
			{
 | 
						||
				if (tipocf > ' ')
 | 
						||
				{
 | 
						||
					conf->set_paragraph("23"); //setto il paragrafo [23] del file ini (testata)
 | 
						||
					conf->set(MOV_TIPO, tipocf);  
 | 
						||
					conf->set(MOV_CODCF, sottoconto);
 | 
						||
					conf->set(MOV_TOTDOC, importo.string());
 | 
						||
					paragraph.format("%d,%d",LF_RMOV, nrigac++);
 | 
						||
					conf->set_paragraph(paragraph);
 | 
						||
					conf->set(RMV_SEZIONE, sez);
 | 
						||
					conf->set(RMV_TIPOC, tipocf); 
 | 
						||
					conf->set(RMV_IMPORTO, importo.string());
 | 
						||
					conf->set(RMV_GRUPPO, gruppo);
 | 
						||
					conf->set(RMV_CONTO, conto);
 | 
						||
					conf->set(RMV_SOTTOCONTO, sottoconto);
 | 
						||
					conf->set(RMV_ROWTYPE, "T");
 | 
						||
				}
 | 
						||
				else
 | 
						||
				{
 | 
						||
					concg.add(gcs);
 | 
						||
					impcg.add(importo);
 | 
						||
				}
 | 
						||
			}
 | 
						||
			else
 | 
						||
			{
 | 
						||
				paragraph.format("%d,%d",LF_RMOV,nrigac++);
 | 
						||
				conf->set_paragraph(paragraph);
 | 
						||
				conf->set(RMV_SEZIONE, sez);
 | 
						||
				conf->set(RMV_IMPORTO, importo.string());
 | 
						||
				conf->set(RMV_GRUPPO, gruppo);
 | 
						||
				conf->set(RMV_CONTO, conto);
 | 
						||
				conf->set(RMV_SOTTOCONTO, sottoconto);
 | 
						||
				conf->set(RMV_TIPOC, tipocf);
 | 
						||
        descr << "-" << s.get(CAUSCM).as_string();
 | 
						||
				conf->set(RMV_DESCR, descr);
 | 
						||
			}
 | 
						||
		}
 | 
						||
		else
 | 
						||
			if (iva)
 | 
						||
			{
 | 
						||
				TString8 paragraph;
 | 
						||
				real importo = s.get(IMPOCM).as_real();
 | 
						||
				real imposta = s.get(IMPSCM).as_real();
 | 
						||
 | 
						||
				if (importo < ZERO)
 | 
						||
				{
 | 
						||
					importo = -importo;
 | 
						||
					sez = "A";
 | 
						||
				}
 | 
						||
				if (imposta < ZERO)  // giusto ?
 | 
						||
					imposta = -imposta;
 | 
						||
 | 
						||
				const real ind = s.get(INDECM).as_real();
 | 
						||
				const TString4 codiva = s.get(CDIVCM).as_string();
 | 
						||
 | 
						||
				if (ind > ZERO && ind < CENTO)
 | 
						||
				{
 | 
						||
					real impind = importo * ind / CENTO;
 | 
						||
					real ivaind = imposta * ind / CENTO;
 | 
						||
					impind.round(2);
 | 
						||
					ivaind.round(2);
 | 
						||
					importo -= impind;
 | 
						||
					imposta -= ivaind;
 | 
						||
					if (gcs.blank())
 | 
						||
					{
 | 
						||
						TRectype rec(LF_RMOVIVA);
 | 
						||
 | 
						||
						rec.put(RMI_CODIVA, codiva);
 | 
						||
						rec.put(RMI_TIPODET, "9");
 | 
						||
						rec.put(RMI_IMPONIBILE, impind.string());
 | 
						||
						rec.put(RMI_IMPOSTA, ivaind.string());
 | 
						||
						rec.put(RMI_GRUPPO, gruppo);
 | 
						||
						rec.put(RMI_CONTO, conto);
 | 
						||
						rec.put(RMI_SOTTOCONTO, sottoconto);
 | 
						||
						rows.add(rec);
 | 
						||
					}
 | 
						||
					else
 | 
						||
					{
 | 
						||
						paragraph.format("%d,%d",LF_RMOVIVA,nrigai++);
 | 
						||
						conf->set_paragraph(paragraph);
 | 
						||
						conf->set(RMI_CODIVA, codiva);
 | 
						||
						conf->set(RMI_TIPODET, "9");
 | 
						||
						conf->set(RMI_IMPONIBILE, impind.string());
 | 
						||
						conf->set(RMI_IMPOSTA, ivaind.string());
 | 
						||
						conf->set(RMI_GRUPPO, gruppo);
 | 
						||
						conf->set(RMI_CONTO, conto);
 | 
						||
						conf->set(RMI_SOTTOCONTO, sottoconto);
 | 
						||
					}
 | 
						||
				}
 | 
						||
				if (gcs.blank())
 | 
						||
				{
 | 
						||
					TRectype rec(LF_RMOVIVA);
 | 
						||
 | 
						||
					rec.put(RMI_CODIVA, codiva);
 | 
						||
					if (ind >= CENTO)
 | 
						||
						rec.put(RMI_TIPODET, "9");
 | 
						||
					rec.put(RMI_IMPONIBILE, importo.string());
 | 
						||
					rec.put(RMI_IMPOSTA, imposta.string());
 | 
						||
					rec.put(RMI_GRUPPO, gruppo);
 | 
						||
					rec.put(RMI_CONTO, conto);
 | 
						||
					rec.put(RMI_SOTTOCONTO, sottoconto);
 | 
						||
					rows.add(rec);
 | 
						||
				}
 | 
						||
				else
 | 
						||
				{
 | 
						||
					paragraph.format("%d,%d",LF_RMOVIVA,nrigai++);
 | 
						||
					conf->set_paragraph(paragraph);
 | 
						||
					conf->set(RMI_CODIVA, codiva);
 | 
						||
					if (ind >= CENTO)
 | 
						||
						conf->set(RMI_TIPODET, "9");
 | 
						||
					conf->set(RMI_IMPONIBILE, importo.string());
 | 
						||
					conf->set(RMI_IMPOSTA, imposta.string());
 | 
						||
					conf->set(RMI_GRUPPO, gruppo);
 | 
						||
					conf->set(RMI_CONTO, conto);
 | 
						||
					conf->set(RMI_SOTTOCONTO, sottoconto);
 | 
						||
				}
 | 
						||
			}
 | 
						||
	}
 | 
						||
	if (conf != NULL)
 | 
						||
		delete conf;
 | 
						||
 | 
						||
	if (yesno_box(FR("Si desidera confermare l'importazione di %ld movimenti"), ntran -1))
 | 
						||
	{
 | 
						||
		TString app;
 | 
						||
		app << "cg2 -0 -i" << outdir << "/*.ini"; 
 | 
						||
		TExternal_app primanota(app);
 | 
						||
		primanota.run(true);
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
void TImporta_mov::main_loop()
 | 
						||
{
 | 
						||
  TImporta_mov_mask msk;
 | 
						||
  while (msk.run() == K_ENTER)
 | 
						||
  {
 | 
						||
    TWait_cursor hourglass;
 | 
						||
		transfer(msk);
 | 
						||
  }
 | 
						||
}
 | 
						||
 | 
						||
int pi0001100 (int argc, char* argv[])
 | 
						||
{
 | 
						||
  TImporta_mov main_app;
 | 
						||
  main_app.run(argc, argv, TR("Importazione contabilit<69> Galileo"));
 | 
						||
  return true;
 | 
						||
} |