Files correlati : Ricompilazione Demo : [ ] Commento :Gestione Carrelli in Carico git-svn-id: svn://10.65.10.50/trunk@20350 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			621 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			621 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#include <Textset.h>
 | 
						|
#include <Applicat.h>
 | 
						|
#include <Automask.h>
 | 
						|
#include <Reprint.h>
 | 
						|
#include <currency.h>
 | 
						|
#include "pd5317.h"  
 | 
						|
#include "pd5317100.h"   
 | 
						|
 | 
						|
//Stampa Listino Carrelli
 | 
						|
//lvietri
 | 
						|
 | 
						|
class TCarrelli_recordset: public TCSV_recordset
 | 
						|
{
 | 
						|
public:
 | 
						|
  TCarrelli_recordset(): TCSV_recordset("CSV(\"\t\")") {}
 | 
						|
};
 | 
						|
 | 
						|
//DEFINIZIONE DELLA STRUTTURA
 | 
						|
struct TStruttura_carrelli: public TObject
 | 
						|
{ 
 | 
						|
  const TString _articolo; 
 | 
						|
  TString _user1;
 | 
						|
  TString _user2;
 | 
						|
  TString _user3;
 | 
						|
  TString _user4;
 | 
						|
  TString _user5;
 | 
						|
  TString _user6;
 | 
						|
  TString _user7;
 | 
						|
  TString _user8;
 | 
						|
  TString _user9;
 | 
						|
  TString _user10;
 | 
						|
  TString _user11;
 | 
						|
  TString _user12;
 | 
						|
  TString _user13;
 | 
						|
  TString _user14;
 | 
						|
  TDate   _data_doc;
 | 
						|
  TCurrency _importob;
 | 
						|
  TDate _data_gara;
 | 
						|
  TCurrency _prezzoAcq;
 | 
						|
  TString _descr_conto;
 | 
						|
  TString _modello;
 | 
						|
  TCurrency _noleggio;
 | 
						|
  TCurrency _manutenzione;
 | 
						|
  TString _venduto_a;
 | 
						|
  TCurrency _prezzo_vend;
 | 
						|
  TCurrency _prezzo_p1;
 | 
						|
  TCurrency _prezzo_autom;
 | 
						|
  TCurrency _prezzo_recup;
 | 
						|
  
 | 
						|
  TStruttura_carrelli():_articolo(""),_user1 (""),_user2 (""),
 | 
						|
                        _user3 (""),_user4 (""),_user5 (""),
 | 
						|
                        _user6 (""),_user7 (""),_user8 (""),
 | 
						|
                        _user9 (""),_user10(""),_user11(""),
 | 
						|
                        _user12(""),_user13(""),_user14(""),
 | 
						|
                        _data_doc(""),_data_gara(""),_modello(""),
 | 
						|
                        _venduto_a("") {}
 | 
						|
 | 
						|
  TStruttura_carrelli(TString articolo,TString user[],TDate dataDoc,
 | 
						|
        TCurrency importob, TDate data_gara, TCurrency prezzoAcq,TString descrAcq,
 | 
						|
        TString modello,TCurrency noleggio,TCurrency manutenzione, TString venduto_a, 
 | 
						|
        TCurrency prezzoVend,TCurrency prezzo_p1, TCurrency prezzo_autom,
 | 
						|
        TCurrency prezzo_recup):
 | 
						|
            _articolo(articolo),_user1 (user[0 ]),_user2 (user[1 ]),_user3 (user[2 ]),
 | 
						|
            _user4 (user[3 ]),_user5 (user[4 ]),_user6 (user[5 ]),_user7 (user[6 ]),
 | 
						|
            _user8 (user[7 ]),_user9 (user[8 ]),_user10(user[9 ]),_user11(user[10]),
 | 
						|
            _user12(user[11]),_user13(user[12]),_user14(user[13]),_data_doc(dataDoc),
 | 
						|
            _importob(importob),_data_gara(data_gara) ,_prezzoAcq(prezzoAcq),
 | 
						|
            _descr_conto(descrAcq), _modello(modello),_noleggio(noleggio),
 | 
						|
            _manutenzione(manutenzione),_venduto_a(venduto_a), _prezzo_vend(prezzoVend),
 | 
						|
            _prezzo_p1(prezzo_p1), _prezzo_autom(prezzo_autom),_prezzo_recup(prezzo_recup) 
 | 
						|
        {}
 | 
						|
};
 | 
						|
 | 
						|
class TCarrelli_mask: public TAutomask
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
						|
public:
 | 
						|
  TCarrelli_mask():TAutomask("pd5317100"){}
 | 
						|
};
 | 
						|
 | 
						|
bool TCarrelli_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
						|
{
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
class TCarrelli_report : public TReport
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual bool use_mask() { return false; }
 | 
						|
};
 | 
						|
 | 
						|
class TCarrelli_app: public TSkeleton_application
 | 
						|
{
 | 
						|
protected:
 | 
						|
  virtual void main_loop();
 | 
						|
  void elabora(const TMask& mask) const;
 | 
						|
  TString get_query(int tipo, bool venduto = false, const TString& commessa = EMPTY_STRING) const;
 | 
						|
  TString get_query_saldana(TString codice) const;
 | 
						|
  TString get_query_saldana(TString codice, TString operatore) const;
 | 
						|
  const char * TCarrelli_app::extra_modules() const;
 | 
						|
};
 | 
						|
 | 
						|
const char * TCarrelli_app::extra_modules() const { return "mg"; }
 | 
						|
 | 
						|
TString TCarrelli_app::get_query_saldana(TString codice) const
 | 
						|
{
 | 
						|
  return get_query_saldana(codice,"==");
 | 
						|
}
 | 
						|
 | 
						|
TString TCarrelli_app::get_query_saldana(TString codice, TString operatore) const
 | 
						|
{
 | 
						|
  //Stringhe x composizione query
 | 
						|
  TString query, select, between;
 | 
						|
 | 
						|
  select  << "USE SALDANA KEY 2\n";
 | 
						|
  select  << "SELECT ((CONTO" << operatore<< "'" << codice << "')&&";
 | 
						|
  between << "(BETWEEN(COMMESSA,#COMM,#COMM)))";  
 | 
						|
 | 
						|
  query << select << between;
 | 
						|
  
 | 
						|
  return query;
 | 
						|
}
 | 
						|
 | 
						|
TString TCarrelli_app::get_query(int tipo, bool venduto, const TString& commessa) const
 | 
						|
{
 | 
						|
  //Stringhe x composizione query
 | 
						|
  TString query, select, between, join, order_by;
 | 
						|
 | 
						|
  if(tipo==0)//query su analitica\articoli\commesse
 | 
						|
  {
 | 
						|
    const char* operConto = venduto ? "==" : "!=";
 | 
						|
 | 
						|
    select  << "USE SALDANA KEY 2\n";
 | 
						|
    select  << "SELECT ((CONTO" << operConto << "'004076000003')&&";
 | 
						|
    between << "(ANAMAG.CODART!='')&&";
 | 
						|
    between << "(BETWEEN(COMMESSA,#FROM,#TO)))\n";  
 | 
						|
    order_by<< "BY COMMESSA\n";
 | 
						|
    join    << "JOIN ANAMAG TO SALDANA  INTO CODART==COMMESSA \n";
 | 
						|
    join    << "JOIN COMMESSE TO SALDANA  INTO CODCMS==COMMESSA \n";
 | 
						|
    if(venduto)
 | 
						|
    {
 | 
						|
      join    << "FROM CONTO='004076000003' \n";
 | 
						|
      join    << "TO CONTO='004076000003' \n";
 | 
						|
    }
 | 
						|
  }
 | 
						|
  else if(tipo==1)//query su articolo\doc.
 | 
						|
  {
 | 
						|
    select  << "USE DOC KEY 3\n";
 | 
						|
    select  << "SELECT ((TIPODOC='B01')&&";
 | 
						|
    between << "(BETWEEN(CODCMS,#COMM,#COMM)))\n";  
 | 
						|
    join    << "JOIN CLIFO TO DOC INTO TIPOCF==TIPOCF CODCF==CODCF\n";
 | 
						|
    join    << "JOIN INDSPED TO DOC INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP\n";
 | 
						|
    join    << "JOIN COMUNI TO CLIFO INTO COM==COMCF \n";
 | 
						|
  }
 | 
						|
  else if(tipo==2)//query su saldana ACQUISTO DA
 | 
						|
  {
 | 
						|
    select  << "USE SALDANA KEY 2\n";
 | 
						|
    select  << "SELECT (((CONTO ?='003081*')||(CONTO =='003071000002'))&&";
 | 
						|
    between << "(BETWEEN(COMMESSA,#COMM,#COMM)))";  
 | 
						|
  }
 | 
						|
  else if(tipo==3)//query su piano dei conti.
 | 
						|
  {
 | 
						|
    select  << "USE PCON KEY 1\n";
 | 
						|
    select  << "SELECT ((GRUPPO=#GRUPPO1)&&(CONTO=#CONTO1)&&(SOTTOCONTO=#SOTTOCONTO1))";
 | 
						|
  }
 | 
						|
  else if(tipo==4)//query su multirel per sapere se cespite
 | 
						|
  {
 | 
						|
    select  << "USE MULTIREL KEY 2\n";
 | 
						|
    select  << "SELECT ((COD =='CEMAT')&&";
 | 
						|
    between << "(BETWEEN(SECOND,#COMM,#COMM)))";  
 | 
						|
  }
 | 
						|
  else if(tipo==5)//query su movimenti x recupero fornitore
 | 
						|
  {
 | 
						|
    select << "USE RMOVANA KEY 2\n"
 | 
						|
           << "SELECT ((CODCMS == '" << commessa << "')&&(CODCONTO='003071000002')) \n";
 | 
						|
    join   << "JOIN MOVANA TO RMOVANA INTO NUMREG==NUMREG \n"
 | 
						|
           << "JOIN MOV TO MOVANA INTO NUMREG=NUMREGCG \n"
 | 
						|
           << "JOIN CLIFO TO MOV INTO TIPOCF==TIPO CODCF==CODCF \n"
 | 
						|
           << "FROM CODCONTO='003071000002' \n"
 | 
						|
           << "TO CODCONTO='003071000002' \n";
 | 
						|
  }
 | 
						|
 | 
						|
  query << select << between << order_by << join;
 | 
						|
  
 | 
						|
  cout << query;
 | 
						|
 | 
						|
  return query;
 | 
						|
}
 | 
						|
 | 
						|
class TRiepCarrelli: public TArray
 | 
						|
{
 | 
						|
public:
 | 
						|
  void add(TString articolo, TString user[], TDate dataDoc,
 | 
						|
    TCurrency importob, TDate data_gara, TCurrency prezzoAcq,TString descrAcq,
 | 
						|
    TString modello,TCurrency noleggio,TCurrency manutenzione,
 | 
						|
                      TString venduto_a, TCurrency prezzoVend,
 | 
						|
                      TCurrency prezzo_p1, TCurrency prezzo_autom,
 | 
						|
                      TCurrency prezzo_recup);
 | 
						|
 | 
						|
  TRiepCarrelli():TArray(){}
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
void TRiepCarrelli::add(TString articolo,TString user[],TDate dataDoc,
 | 
						|
                        TCurrency importob, TDate data_gara,
 | 
						|
                        TCurrency prezzoAcq,TString descrAcq,
 | 
						|
                        TString modello,TCurrency noleggio,TCurrency manutenzione,
 | 
						|
                        TString venduto_a, TCurrency prezzoVend,
 | 
						|
                        TCurrency prezzo_p1, TCurrency prezzo_autom,
 | 
						|
                        TCurrency prezzo_recup) 
 | 
						|
{
 | 
						|
  TStruttura_carrelli* struttura = new TStruttura_carrelli(
 | 
						|
            articolo,user,dataDoc,importob,data_gara,
 | 
						|
            prezzoAcq,descrAcq,modello, noleggio, manutenzione,
 | 
						|
            venduto_a,prezzoVend,prezzo_p1,prezzo_autom, prezzo_recup);
 | 
						|
 | 
						|
  TArray::add(struttura);  
 | 
						|
}
 | 
						|
 | 
						|
//metodo principale di elaborazione
 | 
						|
void TCarrelli_app::elabora(const TMask& mask)const
 | 
						|
{
 | 
						|
  bool search = true;
 | 
						|
  bool venduto = mask.get_bool(F_VENDUTO);
 | 
						|
 | 
						|
  if(!venduto && TVariant(mask.get(F_COD_CMS))==TVariant(mask.get(F_COD_CMS_TO)))
 | 
						|
  {
 | 
						|
    TISAM_recordset carico(get_query(0,true));
 | 
						|
 | 
						|
    //inserire parametri filtri 
 | 
						|
    carico.set_var("#FROM",TVariant(mask.get(F_COD_CMS)));//
 | 
						|
    carico.set_var("#TO",TVariant(mask.get(F_COD_CMS_TO)));//
 | 
						|
    carico.set_var("#F_VEN",TVariant(mask.get(F_VENDUTO)));//
 | 
						|
    carico.set_var("#F_CAR",TVariant(mask.get(F_CARICO)));//
 | 
						|
    for(bool ok = carico.move_first();ok;ok=carico.move_next()){
 | 
						|
      search = false;
 | 
						|
      warning_box (TR("Attenzione:Il carrello risulta venduto!"));
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  if(search){
 | 
						|
    TISAM_recordset riep(get_query(0,venduto));
 | 
						|
  
 | 
						|
    //inserire parametri filtri 
 | 
						|
    riep.set_var("#FROM",TVariant(mask.get(F_COD_CMS)));//
 | 
						|
    riep.set_var("#TO",TVariant(mask.get(F_COD_CMS_TO)));//
 | 
						|
    riep.set_var("#F_VEN",TVariant(mask.get(F_VENDUTO)));//
 | 
						|
    riep.set_var("#F_CAR",TVariant(mask.get(F_CARICO)));//
 | 
						|
 | 
						|
    TRiepCarrelli riepilogo;
 | 
						|
    
 | 
						|
    //inizializzazione variabili da utilizzare nella
 | 
						|
    //struttura
 | 
						|
    TString articolo;
 | 
						|
    TString user[14];  
 | 
						|
    TString campo;
 | 
						|
    TString ragsoc;
 | 
						|
    TString indir;
 | 
						|
    TDate   dataDoc;
 | 
						|
    TDate   data_gara;
 | 
						|
    TString descr_conto;
 | 
						|
    TString conto;
 | 
						|
    TString prov;
 | 
						|
    TString modello;
 | 
						|
    TString descr_null;
 | 
						|
    int gruppo1;
 | 
						|
    int conto1;
 | 
						|
    int sottoGruppo1;
 | 
						|
    
 | 
						|
    TCurrency importob;
 | 
						|
    TCurrency prezzoAcq;
 | 
						|
    TString venduto_a;
 | 
						|
    TCurrency prezzoVend;
 | 
						|
    TCurrency prezzo_p1;
 | 
						|
    TCurrency noleggio;
 | 
						|
    TCurrency manutenzione;
 | 
						|
    TCurrency prezzo_autom;
 | 
						|
    TCurrency prezzo_recup;
 | 
						|
    TCurrency prezzo_null;
 | 
						|
    
 | 
						|
    TString commessa;
 | 
						|
    TString commessaOld;
 | 
						|
 | 
						|
    for(bool ok = riep.move_first();ok;ok=riep.move_next())
 | 
						|
    {
 | 
						|
      commessa = riep.get("SALDANA.COMMESSA").as_string();
 | 
						|
      articolo = riep.get("ANAMAG.CODART").as_string();//A
 | 
						|
      search = true;
 | 
						|
 | 
						|
      if(!venduto)
 | 
						|
      {
 | 
						|
        TISAM_recordset carico(get_query(0,true));  
 | 
						|
 | 
						|
        //inserire parametri filtri 
 | 
						|
        carico.set_var("#FROM",TVariant(mask.get(F_COD_CMS)));//
 | 
						|
        carico.set_var("#TO",TVariant(mask.get(F_COD_CMS_TO)));//
 | 
						|
        carico.set_var("#F_VEN",TVariant(mask.get(F_VENDUTO)));//
 | 
						|
        carico.set_var("#F_CAR",TVariant(mask.get(F_CARICO)));//
 | 
						|
        for(bool ok = carico.move_first();ok;ok=carico.move_next()){
 | 
						|
          search = false;
 | 
						|
          break;
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      if(!search){
 | 
						|
        continue;
 | 
						|
      }
 | 
						|
 | 
						|
      if(commessa==commessaOld || 
 | 
						|
        commessa.empty() || 
 | 
						|
        articolo.empty())
 | 
						|
      {
 | 
						|
        continue;
 | 
						|
      }
 | 
						|
      commessaOld=commessa;
 | 
						|
 | 
						|
      int numUser = 1;
 | 
						|
      //if(articolo.not_empty())
 | 
						|
      {
 | 
						|
        for(int a = 0; a<14; a++) //da B a N
 | 
						|
        {
 | 
						|
          campo = "ANAMAG.USER"; 
 | 
						|
          campo << numUser;
 | 
						|
          user[a] = riep.get(campo).as_string();
 | 
						|
          numUser++;
 | 
						|
        }
 | 
						|
 | 
						|
        ragsoc = "";//M
 | 
						|
        indir  = "";//N
 | 
						|
        dataDoc= "";//O
 | 
						|
 | 
						|
        TISAM_recordset bolle(get_query(1));
 | 
						|
        bolle.set_var("#COMM",TVariant(articolo));
 | 
						|
        for(bool ok2 = bolle.move_last();ok2;ok2=bolle.move_next())
 | 
						|
        {
 | 
						|
          ragsoc = bolle.get("CLIFO.RAGSOC").as_string();
 | 
						|
          indir  = bolle.get("INDSPED.LOCALITA").as_string();
 | 
						|
          dataDoc= bolle.get("DATADOC").as_date();
 | 
						|
 | 
						|
          if(indir.empty())
 | 
						|
          {
 | 
						|
            indir = bolle.get("COMUNI.DENCOM").as_string();
 | 
						|
            prov  = bolle.get("COMUNI.PROVCOM").as_string();
 | 
						|
            indir.trim() << "(" << prov.trim() << ")";
 | 
						|
          }
 | 
						|
 | 
						|
          break;
 | 
						|
        }
 | 
						|
 | 
						|
        if(ragsoc.not_empty())
 | 
						|
        {
 | 
						|
          user[11] = ragsoc;
 | 
						|
          user[12] = indir ;
 | 
						|
        }
 | 
						|
 | 
						|
        importob = riep.get("COMMESSE.IMPORTOB").as_real();//P
 | 
						|
        data_gara = riep.get("COMMESSE.DATAGARA").as_string();//Q
 | 
						|
        modello = riep.get("COMMESSE.DESCRIZ").as_string();//T
 | 
						|
 | 
						|
        prezzoAcq.set_price(0);//R
 | 
						|
 | 
						|
        conto="";
 | 
						|
        TISAM_recordset saldana(get_query(2));
 | 
						|
        saldana.set_var("#COMM",TVariant(articolo));
 | 
						|
        for(bool ok3 = saldana.move_first();ok3;ok3=saldana.move_next())
 | 
						|
        {     
 | 
						|
          prezzoAcq = prezzoAcq + saldana.get("SALDANA.SALDO").as_real();
 | 
						|
          conto = saldana.get("SALDANA.CONTO").as_string();
 | 
						|
        }
 | 
						|
        
 | 
						|
        /*if(conto.not_empty())
 | 
						|
        {
 | 
						|
          gruppo1 = atoi(conto.sub(0,3));
 | 
						|
          conto1 = atoi(conto.sub(3,6));
 | 
						|
          sottoGruppo1 = atoi(conto.sub(6));
 | 
						|
 | 
						|
          TISAM_recordset pconto(get_query(3));
 | 
						|
          pconto.set_var("#GRUPPO1",TVariant(long (gruppo1)));//
 | 
						|
          pconto.set_var("#CONTO1",TVariant(long (conto1)));//
 | 
						|
          pconto.set_var("#SOTTOCONTO1",TVariant(long (sottoGruppo1)));//
 | 
						|
          for(bool ok3 = pconto.move_first();ok3;ok3=pconto.move_next())
 | 
						|
          {     
 | 
						|
            descr_conto = pconto.get("PCON.DESCR").as_string();
 | 
						|
            break;
 | 
						|
          }
 | 
						|
        }*/ 
 | 
						|
 | 
						|
    
 | 
						|
        //RECUPERO FORNITORE
 | 
						|
        descr_conto=descr_null;//S
 | 
						|
        TISAM_recordset fornitore(get_query(5,false,commessa));
 | 
						|
        for(bool ok3 = fornitore.move_last();ok3;ok3=fornitore.move_next())
 | 
						|
        {
 | 
						|
          if(fornitore.get("MOVANA.NUMREGCG").as_int() == 0 ||
 | 
						|
            fornitore.get("MOVANA.NUMREGCG").as_string().empty() ){
 | 
						|
          }else{
 | 
						|
            descr_conto = fornitore.get("CLIFO.RAGSOC").as_string();
 | 
						|
          }    
 | 
						|
          break;
 | 
						|
        }
 | 
						|
        /*if(fornitore.move_next()){
 | 
						|
          descr_conto = fornitore.get("CLIFO.RAGSOC").as_string();
 | 
						|
        }*/
 | 
						|
 | 
						|
        
 | 
						|
        //NOLEGGIO
 | 
						|
        noleggio.set_price(0);//U
 | 
						|
        TISAM_recordset noleg(get_query_saldana("004076000004"));
 | 
						|
        noleg.set_var("#COMM",TVariant(articolo));
 | 
						|
        for(bool ok2 = noleg.move_first();ok2;ok2=noleg.move_next())
 | 
						|
        {     
 | 
						|
          noleggio = noleggio + noleg.get("SALDANA.SALDO").as_real();
 | 
						|
        }
 | 
						|
 | 
						|
        //MANUTENZIONE
 | 
						|
        manutenzione.set_price(0);//U
 | 
						|
        TISAM_recordset manut(get_query_saldana("003071000003"));
 | 
						|
        manut.set_var("#COMM",TVariant(articolo));
 | 
						|
        for(bool ok2 = manut.move_first();ok2;ok2=manut.move_next())
 | 
						|
        {     
 | 
						|
          manutenzione = manutenzione + manut.get("SALDANA.SALDO").as_real();
 | 
						|
        }
 | 
						|
 | 
						|
        /*
 | 
						|
        Scaletta per il recupero del venduto:
 | 
						|
        1) user1 prelevato da anamag
 | 
						|
        2) se esiste su SALDANA con il conto 004 076 000003(Venduto)
 | 
						|
        3) controllo su multirel se si tratta di un cespite
 | 
						|
        4) se esiste su SALDANA con il conto 003 071 000002 (acquistato)
 | 
						|
        5) se esiste su SALDANA con il conto 003 081 000043 
 | 
						|
           sino al 003 081 999999 (leasing)
 | 
						|
        */
 | 
						|
        venduto_a = user[0];//W
 | 
						|
        prezzoVend.set_price(0);//X
 | 
						|
        if(venduto_a.empty())
 | 
						|
        {
 | 
						|
          //VENDUTO
 | 
						|
          TISAM_recordset saldana(get_query_saldana("004076000003"));
 | 
						|
          saldana.set_var("#COMM",TVariant(articolo));
 | 
						|
          for(bool ok2 = saldana.move_last();ok2;ok2=saldana.move_next())
 | 
						|
          {     
 | 
						|
            venduto_a = "VENDUTO";
 | 
						|
            prezzoVend = prezzoVend + saldana.get("SALDANA.SALDO").as_real();
 | 
						|
          }
 | 
						|
 | 
						|
          if(venduto_a.empty())
 | 
						|
          {
 | 
						|
            //CESPITE 
 | 
						|
            TISAM_recordset cespite(get_query(4));
 | 
						|
            cespite.set_var("#COMM",TVariant(articolo));
 | 
						|
            for(bool ok2 = cespite.move_last();ok2;ok2=cespite.move_next())
 | 
						|
            {     
 | 
						|
              venduto_a = "CESPITE";
 | 
						|
              break;
 | 
						|
            }
 | 
						|
          }
 | 
						|
 | 
						|
          if(venduto_a.empty())
 | 
						|
          {
 | 
						|
            //ACQUISTATO
 | 
						|
            TISAM_recordset acquistato(get_query_saldana("003071000002"));
 | 
						|
            acquistato.set_var("#COMM",TVariant(articolo));
 | 
						|
            for(bool ok2 = acquistato.move_last();ok2;ok2=acquistato.move_next())
 | 
						|
            {     
 | 
						|
              venduto_a = "ACQUISTATO";
 | 
						|
              break;
 | 
						|
            }
 | 
						|
          }
 | 
						|
 | 
						|
          if(venduto_a.empty())
 | 
						|
          {
 | 
						|
            //LEASING
 | 
						|
            TISAM_recordset leasing(get_query_saldana("?=","003081*"));
 | 
						|
            leasing.set_var("#COMM",TVariant(articolo));
 | 
						|
            for(bool ok2 = leasing.move_last();ok2;ok2=leasing.move_next())
 | 
						|
            {     
 | 
						|
              venduto_a = "LEASING";
 | 
						|
              break;
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        prezzo_p1 = (prezzoAcq + manutenzione)*1.10;//Y  
 | 
						|
        prezzo_autom = (prezzo_p1.get_num() * 1.1 * 1.2) - (noleggio.get_num()/2.0);//Z
 | 
						|
 | 
						|
        prezzo_recup = noleggio - prezzoVend - prezzo_p1;//AB
 | 
						|
 | 
						|
        riepilogo.add(articolo,user,dataDoc,importob,data_gara,
 | 
						|
                      prezzoAcq,descr_conto,modello,
 | 
						|
                      noleggio,manutenzione,venduto_a,prezzoVend,
 | 
						|
                      prezzo_p1, prezzo_autom,prezzo_recup);
 | 
						|
 | 
						|
        //TString pippo1 = prezzo_p1.string();
 | 
						|
 | 
						|
        prezzo_p1 = prezzo_null;
 | 
						|
        prezzoAcq = prezzo_null;
 | 
						|
        manutenzione = prezzo_null;
 | 
						|
        prezzo_autom = prezzo_null;
 | 
						|
        prezzo_recup = prezzo_null;
 | 
						|
        noleggio = prezzo_null;
 | 
						|
        prezzoVend = prezzo_null;
 | 
						|
      }
 | 
						|
    } 
 | 
						|
 | 
						|
    //gestione report
 | 
						|
    TCarrelli_report rep;
 | 
						|
    bool stampa = rep.load("pd5317100");
 | 
						|
    TCarrelli_recordset* riep_set = new TCarrelli_recordset();
 | 
						|
    rep.set_recordset(riep_set);
 | 
						|
 | 
						|
    //scandisce clienti e tiene buoni solo quelli valorizzati
 | 
						|
    FOR_EACH_ARRAY_ITEM(riepilogo,c,obj)
 | 
						|
    {
 | 
						|
      TStruttura_carrelli& s = *(TStruttura_carrelli*) obj;
 | 
						|
        
 | 
						|
      riep_set->new_rec();
 | 
						|
      int colonna = 0;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._articolo)));//A
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user1)));//B
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user2)));//C
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user3)));//D
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user4)));//E
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user5)));//F
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user6)));//G
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user7)));//H
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user8)));//I
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user9)));//J
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user10)));//K
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user11)));//L
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user12)));//M
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user13)));//N
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._data_doc)));//O
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant((s._importob).string()));//P
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._data_gara)));//Q
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._prezzoAcq).string())));//R
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._descr_conto)));//S
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._modello)));//T
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._noleggio).string())));//U
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._manutenzione).string())));//V
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._venduto_a)));//W
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._prezzo_vend).string())));//X
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._prezzo_p1).string())));//Y
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._prezzo_autom).string())));//Z
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant(s._user14)));//AA
 | 
						|
      colonna++;
 | 
						|
      riep_set->set(colonna,TVariant(TVariant((s._prezzo_recup).string())));//AB
 | 
						|
      colonna++;
 | 
						|
    }
 | 
						|
 | 
						|
    //Crea file che contiene il recordset
 | 
						|
    //riep_set->save_as("c:\\riepilogoBolla.txt");
 | 
						|
 | 
						|
    //Se il report esiste..
 | 
						|
    if(stampa)
 | 
						|
    {
 | 
						|
      //carica tutte le variabili del report.
 | 
						|
      rep.mask2report(mask);
 | 
						|
 | 
						|
      TReport_book b;
 | 
						|
      bool ok = b.add(rep);// Richiede parametri di stampa in base alla maschera omonima
 | 
						|
      if (ok)
 | 
						|
      {
 | 
						|
        //Se esiste almeno 1 pagina
 | 
						|
        if (b.pages() > 0)
 | 
						|
          b.print_or_preview(); // Stampa effettivamente
 | 
						|
        else
 | 
						|
          warning_box (TR("Nessun record estratto per i parametri inseriti"));
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
  
 | 
						|
  
 | 
						|
}
 | 
						|
 | 
						|
void TCarrelli_app::main_loop()
 | 
						|
{
 | 
						|
  TCarrelli_mask mask;
 | 
						|
 | 
						|
  //Setto come check iniziale il venduto a Si
 | 
						|
  mask.set("#F_VEN","X");
 | 
						|
 | 
						|
  while(mask.run()==K_ENTER)
 | 
						|
  {
 | 
						|
    elabora(mask);    
 | 
						|
  }  
 | 
						|
}
 | 
						|
 | 
						|
int pd5317100(int argc, char* argv[])
 | 
						|
{
 | 
						|
  TCarrelli_app app;
 | 
						|
  app.run(argc, argv, TR("Stampa Listino Carrelli"));
 | 
						|
  return 0;
 | 
						|
} |