#ifndef __TCLIFOR_H #include "tclifor.h" #endif #ifndef __VEUML1_H #include "veuml1.h" #endif #ifndef __VE1000O_H #include "ve1000o.h" #endif TCliFor::TCliFor( ) : TRelation( LF_CLIFO ), _occas_mask( "ve1000o" ) { _occas_mask.set_handler( O_CODICE, occas_code_handler ); add( LF_CFVEN, "TIPOCF=TIPOCF|CODCF=CODCF" ); } void TCliFor::load( const char tipocf, const long codcf ) { _tipocf = tipocf; _codcf = codcf; zero( ); curr( ).put( "TIPOCF", tipocf ); curr( ).put( "CODCF", codcf ); read( ); } void TCliFor::set( TMask& m, const int mskfield, const TString& value ) { if( present( m, mskfield ) ) { m.set( mskfield, value, TRUE ); m.field( mskfield ).check( ); } }; const TString& TCliFor::get( const int file, const TString& fieldname ) { return lfile( file ).get( fieldname ); } int TCliFor::get_int( const int file, const TString& fieldname ) { return lfile( file ).get_int( fieldname ); } long TCliFor::get_long( const int file, const TString& fieldname ) { return lfile( file ).get_long( fieldname ); } bool TCliFor::get_bool( const int file, const TString& fieldname ) { return lfile( file ).get_bool( fieldname ); } int TCliFor::write_occas( ) { if( !occasionale( ) ) return NOERR; TLocalisamfile occas( LF_OCCAS ); occas.zero( ); occas.put( "CFPI", occas_mask( ).get( O_CODICE ) ); occas.put( "RAGSOC", occas_mask( ).get( O_RAGSOC ) ); occas.put( "INDIR", occas_mask( ).get( O_INDIRIZZO ) ); occas.put( "CIV", occas_mask( ).get( O_NUMERO ) ); occas.put( "STATO", occas_mask( ).get( O_STATO ) ); occas.put( "COM", occas_mask( ).get( O_COMUNE ) ); occas.put( "CAP", occas_mask( ).get( O_CAP ) ); occas.put( "DNASC", occas_mask( ).get( O_DATANAS ) ); occas.put( "STATONASC", occas_mask( ).get( O_STATONAS ) ); occas.put( "COMNASC", occas_mask( ).get( O_COMUNENAS ) ); return occas.write( ); } const TString& TCliFor::get( const TString& table, const TString& codtab, const TString& field ) { if( table != _tablename ) { delete _table; _table = new TTable( table ); _tablename = table; } if( codtab != _table->curr( ).get( "CODTAB" ) ) { _table->zero( ); _table->put( "CODTAB", codtab ); _table->read( ); } return _table->get( field ); }; void TCliForVendite::update_mask( TMask& m ) { // Setta i campi che appartengono al file LF_CLIFO bool occas = occasionale( ); show( m, F_OCFPI, occas ); show( m, F_OCCASEDIT, occas ); // In forse per l'Occasionale, sicuri per il Normale // m.show( F_COFI, !occas ); // m.show( F_STATOPAIV, !occas ); // m.show( F_PAIVA, !occas ); set( m, F_RAGSOC, LF_CLIFO, "RAGSOC" ); set( m, F_CODVAL, LF_CLIFO, "CODVAL" ); set( m, F_CODLIN, LF_CLIFO, "CODLIN" ); set( m, F_CODPAG, LF_CLIFO, "CODPAG" ); set( m, F_DATAINSC, m.get( F_DATADOC ) ); set( m, F_CODABIA, LF_CLIFO, "CODABI" ); set( m, F_CODCABA, LF_CLIFO, "CODCAB" ); // Setta i campi che appartengono al file LF_CFVEN set( m, F_CODABIP, LF_CFVEN, "CODABIPR" ); set( m, F_CODCABP, LF_CFVEN, "CODCABPR" ); set( m, F_RAGGR, LF_CFVEN, "RAGGDOC" ); set( m, F_CODINDSP, LF_CFVEN, "CODINDSP" ); set( m, F_CODAG, LF_CFVEN, "CODAG" ); set( m, F_CODSPMEZZO, LF_CFVEN, "CODSPMEZZO" ); set( m, F_CODPORTO, LF_CFVEN, "CODPORTO" ); set( m, F_CODNOTESP1, LF_CFVEN, "CODNOTESP1" ); set( m, F_CODNOTESP2, LF_CFVEN, "CODNOTESP2" ); set( m, F_CODVETT1, LF_CFVEN, "CODVETT1" ); set( m, F_CODVETT2, LF_CFVEN, "CODVETT2" ); set( m, F_CODVETT3, LF_CFVEN, "CODVETT3" ); set( m, F_SPESEINC, LF_CFVEN, "ADDSPINC" ); set( m, F_ADDBRB, LF_CFVEN, "ADDBOLLIRB" ); set( m, F_ADDBTR, LF_CFVEN, "ADDBOLLITR" ); if ( occasionale ( ) ) { set( m, F_COFI, "" ); set( m, F_PAIVA, "" ); set( m, F_OCFPI, occas_mask( ).get( O_CODICE ) ); set( m, F_RAGSOC, occas_mask( ).get( O_RAGSOC ) ); set( m, F_INDCF, occas_mask( ).get( O_INDIRIZZO ) ); set( m, F_CIVCF, occas_mask( ).get( O_NUMERO ) ); set( m, F_CAPCF, occas_mask( ).get( O_CAP ) ); set( m, F_COMCF, occas_mask( ).get( O_COMUNE ) ); set( m, F_STATOCF, occas_mask( ).get( O_STATO ) ); } else { set( m, F_COFI, LF_CLIFO, "COMCF" ); set( m, F_INDCF, LF_CLIFO, "INDCF" ); set( m, F_CIVCF, LF_CLIFO, "CIVCF" ); set( m, F_STATOPAIVA, LF_CLIFO, "STATOPAIV" ); set( m, F_PAIVA, LF_CLIFO, "PAIV" ); set( m, F_LOCALITACF, LF_CLIFO, "LOCALITACF" ); set( m, F_CAPCF, LF_CLIFO, "CAPCF" ); set( m, F_COMCF, LF_CLIFO, "COMCF" ); set( m, F_STATOCF, LF_CLIFO, "STATOCF" ); } } void TCliFor::edita_occasionale( ) { CHECK( occasionale( ), "Impossibile editare come occasionale un cliente non occasionale!" ); _occas_mask.run( ); }; bool TCliFor::occas_code_handler(TMask_field& f, KEY key) { if (key == K_TAB) { const char* code = f.get(); if (*code) { TRelation occas(LF_OCCAS); occas.lfile().put("CFPI", code); if (occas.read(_isequal) == NOERR) { f.mask().autoload(&occas); f.mask().send_key(K_TAB, O_COMUNE); // Forza decodifica comuni f.mask().send_key(K_TAB, O_COMUNENAS); } } } return TRUE; }