aggiunta file programma "stampe di controllo"
git-svn-id: svn://10.65.10.50/trunk@4061 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									8f8009969c
								
							
						
					
					
						commit
						c2763f2977
					
				
							
								
								
									
										593
									
								
								ef/ef0600.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										593
									
								
								ef/ef0600.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,593 @@
 | 
			
		||||
#include <config.h>
 | 
			
		||||
#include <execp.h>
 | 
			
		||||
#include <mask.h>
 | 
			
		||||
#include <printapp.h>
 | 
			
		||||
#include <tabutil.h>
 | 
			
		||||
#include <utility.h>                      
 | 
			
		||||
#include <relation.h>
 | 
			
		||||
#include <real.h> 
 | 
			
		||||
#include <printer.h>
 | 
			
		||||
 | 
			
		||||
#include <effetti.h>
 | 
			
		||||
#include <reffetti.h>
 | 
			
		||||
#include <clifo.h>        
 | 
			
		||||
#include "ef0600.h"
 | 
			
		||||
    
 | 
			
		||||
enum pt {undefined = 0, scadenza = 1, banca = 2, distinta = 3};
 | 
			
		||||
 | 
			
		||||
class TPrint_effetti_app : public TPrintapp
 | 
			
		||||
{    
 | 
			
		||||
  pt              _pr_type;           
 | 
			
		||||
  TRelation* _rel;                
 | 
			
		||||
   int             _cur_1, _cur_2, _cur_3;
 | 
			
		||||
   int             _interline, i;
 | 
			
		||||
  TString _ban, _cli, _val, _data_stampa, _ban_prec;
 | 
			
		||||
  long  _dist_prec;
 | 
			
		||||
  TDate _scad_prec;
 | 
			
		||||
  real _tot_data, _tot_mese,  _tot_banca, _tot_distinta, _tot_stampa;
 | 
			
		||||
  bool _prima_volta;
 | 
			
		||||
public:
 | 
			
		||||
  virtual bool preprocess_page(int file, int counter);
 | 
			
		||||
  virtual bool preprocess_print(int file, int counter);         
 | 
			
		||||
  virtual print_action postprocess_print(int file, int counter);
 | 
			
		||||
  virtual void preprocess_header();
 | 
			
		||||
  void header_scadenza();
 | 
			
		||||
  void header_banca();
 | 
			
		||||
  void header_distinta();
 | 
			
		||||
  virtual bool user_create();
 | 
			
		||||
  virtual bool user_destroy();
 | 
			
		||||
  virtual bool set_print(int);
 | 
			
		||||
  virtual void set_page (int file, int counter);  
 | 
			
		||||
  void set_scadenza();
 | 
			
		||||
  void set_banca();
 | 
			
		||||
  void set_distinta();
 | 
			
		||||
  const char* get_field(int ln, const char* fn) {return current_cursor()->curr(ln).get(fn);}
 | 
			
		||||
  const char* look_tab(const char* tabname, TString& cod,const char* fld="S0");
 | 
			
		||||
  TPrint_effetti_app() : TPrintapp(), _ban(11), _ban_prec(11), _cli(60), _val(3){_rel = NULL;  _interline = 1;}
 | 
			
		||||
};  
 | 
			
		||||
 | 
			
		||||
void  TPrint_effetti_app::preprocess_header()
 | 
			
		||||
{  
 | 
			
		||||
  reset_header();
 | 
			
		||||
  const long firm = get_firm();  
 | 
			
		||||
  int  j = 1;     
 | 
			
		||||
  TLocalisamfile ditte(LF_NDITTE);
 | 
			
		||||
  ditte.zero();
 | 
			
		||||
  ditte.put("CODDITTA", firm);
 | 
			
		||||
  ditte.read();
 | 
			
		||||
  if (ditte.bad()) ditte.zero();
 | 
			
		||||
  TString s(ditte.get("RAGSOC"));
 | 
			
		||||
  set_header(j, "Ditta:  %ld %s@125gPag @#", firm, (const char*) s);
 | 
			
		||||
  set_header(j++, "@102gData %s", (const char*) _data_stampa);
 | 
			
		||||
  
 | 
			
		||||
  switch(_pr_type)
 | 
			
		||||
  {
 | 
			
		||||
    case scadenza:
 | 
			
		||||
      header_scadenza();
 | 
			
		||||
      break;
 | 
			
		||||
    case banca:
 | 
			
		||||
      header_banca();
 | 
			
		||||
      break;
 | 
			
		||||
    case distinta:
 | 
			
		||||
      header_distinta();
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
}  
 | 
			
		||||
 | 
			
		||||
void TPrint_effetti_app::header_scadenza()
 | 
			
		||||
{
 | 
			
		||||
  int j =1;
 | 
			
		||||
  set_header(j, "@52gSTAMPA RI.BA. PER SCADENZA");  j++;
 | 
			
		||||
  set_header(j++, (const char *)(TString(132).fill('-')));
 | 
			
		||||
  set_header(j++, "  Scadenza     Banca      Cliente                 N.Riba     N.Dist          Importo    Val   N.Rata   St.Def. Fattura del.   N.");
 | 
			
		||||
  set_header(j, (const char *)(TString(132).fill('-')));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPrint_effetti_app::header_banca()
 | 
			
		||||
{
 | 
			
		||||
  int  j = 1;     
 | 
			
		||||
  set_header(j, "@45gSTAMPA RI.BA. PER BANCHE DI PRESENTAZIONE");  j++;
 | 
			
		||||
  set_header(j++, (const char *)(TString(132).fill('-')));
 | 
			
		||||
  set_header(j++, "   Banca       Scadenza       Cliente                 N.Riba     N.Dist       Importo      Val.  N.Rata  St.Def.  Fattura del.   N.");
 | 
			
		||||
  set_header(j, (const char *)(TString(132).fill('-')));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPrint_effetti_app::header_distinta()
 | 
			
		||||
{
 | 
			
		||||
  int  j = 1;     
 | 
			
		||||
  set_header(j, "@55gSTAMPA RI.BA. PER DISTINTE");  j++;
 | 
			
		||||
  set_header(j++, (const char *)(TString(132).fill('-')));
 | 
			
		||||
  set_header(j++, "   Distinta ");
 | 
			
		||||
  set_header(j++, "@1gTipo    Num.   N.Riba      Scadenza       Banca        Cliente               Importo      Val.  N.Rata  St.Def.  Fattura del.  N.");
 | 
			
		||||
  set_header(j, (const char *)(TString(132).fill('-')));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
print_action TPrint_effetti_app::postprocess_print(int file, int counter)
 | 
			
		||||
{
 | 
			
		||||
    TString s;
 | 
			
		||||
    TPrintrow pr;
 | 
			
		||||
    TPrinter& p = printer(); 
 | 
			
		||||
 | 
			
		||||
     if (_tot_data != 0.0) 
 | 
			
		||||
      {          
 | 
			
		||||
         pr.put("-------------------------------------------",50);
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
         pr.reset();      
 | 
			
		||||
         pr.put("Totale",52);   
 | 
			
		||||
         pr.put(_scad_prec.string(),60);  
 | 
			
		||||
         pr.put(_tot_data.string("###.###.##@,@@"),72);
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
         _tot_data = 0.0;  
 | 
			
		||||
         pr.reset();                         
 | 
			
		||||
        }    
 | 
			
		||||
 | 
			
		||||
       if(_tot_mese != 0.0)
 | 
			
		||||
       {               
 | 
			
		||||
              pr.put("Totale ",50);   
 | 
			
		||||
              pr.put(itom(_scad_prec.month()),57);  
 | 
			
		||||
              pr.put(_tot_mese.string("###.###.##@,@@"),72);
 | 
			
		||||
              p.print(pr);
 | 
			
		||||
              _tot_mese = 0.0;  
 | 
			
		||||
              pr.reset();                         
 | 
			
		||||
       } 
 | 
			
		||||
 | 
			
		||||
      if (_tot_banca != 0.0)
 | 
			
		||||
      {                            
 | 
			
		||||
         pr.put("Totale",50);   
 | 
			
		||||
         s = (look_tab("%BAN",_ban_prec));
 | 
			
		||||
         if (s.empty())
 | 
			
		||||
            s = "Nessuna Banca ";
 | 
			
		||||
         s = s.left(20);   
 | 
			
		||||
         pr.put(s,57);   
 | 
			
		||||
         pr.put(_tot_banca.string("###.###.##@,@@"),72);
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
         _tot_banca = 0.0;  
 | 
			
		||||
         pr.reset();                         
 | 
			
		||||
      }                                
 | 
			
		||||
 | 
			
		||||
     if (_tot_distinta != 0.0)
 | 
			
		||||
     {
 | 
			
		||||
       pr.put("Totale",50);   
 | 
			
		||||
       s << "Distinta " << _dist_prec;
 | 
			
		||||
       if (_dist_prec == 0)
 | 
			
		||||
            s = "Nessuna Distinta ";
 | 
			
		||||
       pr.put(s,57);   
 | 
			
		||||
       pr.put(_tot_distinta.string("###.###.##@,@@"),72);
 | 
			
		||||
       p.print(pr);
 | 
			
		||||
       _tot_distinta = 0.0;  
 | 
			
		||||
       pr.reset();                         
 | 
			
		||||
      }
 | 
			
		||||
      
 | 
			
		||||
      if (_tot_stampa != 0.0) 
 | 
			
		||||
      {
 | 
			
		||||
         pr.put("-----------------------------------------------------------------------------------------------------------------------------------",1);
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
         pr.reset();      
 | 
			
		||||
         pr.put("Totale Ri.Ba. stampate",50);   
 | 
			
		||||
         pr.put(_tot_stampa.string("###.###.##@,@@"),72);
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
         _tot_stampa = 0.0;  
 | 
			
		||||
         pr.put("-----------------------------------------------------------------------------------------------------------------------------------",1);
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
         pr.reset();   
 | 
			
		||||
         p.print(pr);
 | 
			
		||||
        }    
 | 
			
		||||
              
 | 
			
		||||
  return NEXT_PAGE;                   
 | 
			
		||||
 }  
 | 
			
		||||
 | 
			
		||||
void  TPrint_effetti_app::set_page(int file, int counter)
 | 
			
		||||
{  
 | 
			
		||||
  switch(_pr_type)
 | 
			
		||||
  {
 | 
			
		||||
    case scadenza:
 | 
			
		||||
      if (file == LF_EFFETTI)
 | 
			
		||||
        set_scadenza();
 | 
			
		||||
      break;
 | 
			
		||||
    case banca:
 | 
			
		||||
      if (file == LF_EFFETTI)
 | 
			
		||||
        set_banca();
 | 
			
		||||
      break;
 | 
			
		||||
    case distinta:
 | 
			
		||||
      if (file == LF_EFFETTI)
 | 
			
		||||
        set_distinta();
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void TPrint_effetti_app::set_scadenza()
 | 
			
		||||
{                        
 | 
			
		||||
  
 | 
			
		||||
  set_row(1,"@1g@s@13g#t@26g#t@50g@pn@59g@pn@72g@pn@88g#t@95g@pn@103g@s@111g@s@121g@pn",
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_DATASCAD),
 | 
			
		||||
                  &_ban,
 | 
			
		||||
                  &_cli,
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_IMPORTO, "###.###.##@,@@"),
 | 
			
		||||
                  &_val,
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_NRATA,"##@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_EFFSTAMP),
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_DATAFATT),
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_NFATT,"######@"));
 | 
			
		||||
                  
 | 
			
		||||
   for( i = 0; i < _interline; i++)    set_row(i+1," ");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPrint_effetti_app::set_banca()
 | 
			
		||||
{
 | 
			
		||||
    set_row(1,"@1g#t@14g@s@26g#t@54g@pn@63g@pn@72g@pn@91g#t@98g@pn@106g@s@114g@s@124g@pn",
 | 
			
		||||
                  &_ban,
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_DATASCAD),
 | 
			
		||||
                  &_cli,
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_IMPORTO, "###.###.##@,@@"),
 | 
			
		||||
                  &_val,
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_NRATA,"##@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_EFFSTAMP),
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_DATAFATT),
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_NFATT, "######@"));
 | 
			
		||||
                  
 | 
			
		||||
   for( i = 0; i < _interline; i++)    set_row(i+1,"");   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPrint_effetti_app::set_distinta()
 | 
			
		||||
{
 | 
			
		||||
    set_row(1,"@3g@s@5g@pn@16g@pn@27g@s@41g#t@55g#t@72g@pn@91g#t@98g@pn@106g@s@114g@s@124g@pn",
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_TIPODIST),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_NDIST, "#######@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_NPROGTR, "#####@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_DATASCAD),
 | 
			
		||||
                  &_ban,
 | 
			
		||||
                  &_cli,
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_IMPORTO, "###.###.##@,@@"),
 | 
			
		||||
                  &_val,
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_NRATA,"##@"),
 | 
			
		||||
                  FLD(LF_EFFETTI, EFF_EFFSTAMP),
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_DATAFATT),
 | 
			
		||||
                  FLD(LF_REFFETTI, REFF_NFATT, "######@"));
 | 
			
		||||
                  
 | 
			
		||||
    for( i = 0; i < _interline; i++)    set_row(i+1,"");
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
bool  TPrint_effetti_app::preprocess_page(int file, int counter)
 | 
			
		||||
   // no switch/case su file poichè c'è solo quello degli effetti
 | 
			
		||||
{                                                   
 | 
			
		||||
    TString s;
 | 
			
		||||
    TRectype & rec = current_cursor()->curr(); 
 | 
			
		||||
    TDate  scad = rec.get_date (EFF_DATASCAD);
 | 
			
		||||
     TString  ban = rec.get (EFF_CODABIP);
 | 
			
		||||
     if (ban=="00000") 
 | 
			
		||||
                   ban = ""; 
 | 
			
		||||
    long  dist = rec.get_long (EFF_NDIST);
 | 
			
		||||
    char tipodist = rec.get_char(EFF_TIPODIST);
 | 
			
		||||
    real importo =  rec.get_real(EFF_IMPORTO);
 | 
			
		||||
    TString year;
 | 
			
		||||
    TPrintrow pr;
 | 
			
		||||
    TPrinter& p = printer(); 
 | 
			
		||||
           
 | 
			
		||||
     if (_prima_volta)
 | 
			
		||||
     {                            
 | 
			
		||||
         _prima_volta = FALSE;    
 | 
			
		||||
         switch(_pr_type)
 | 
			
		||||
         {
 | 
			
		||||
            case scadenza:
 | 
			
		||||
              _scad_prec = scad;      
 | 
			
		||||
              year =  _scad_prec.string();
 | 
			
		||||
              year = year.right(4);
 | 
			
		||||
              pr.put(itom(_scad_prec.month()),1);   
 | 
			
		||||
              pr.put(year,10); 
 | 
			
		||||
              p.print(pr);          
 | 
			
		||||
              pr.reset();
 | 
			
		||||
              p.print(pr);   
 | 
			
		||||
              break;
 | 
			
		||||
            case banca:              
 | 
			
		||||
             _scad_prec = scad; 
 | 
			
		||||
             _ban_prec = ban;              
 | 
			
		||||
             s = (look_tab("%BAN",_ban_prec));
 | 
			
		||||
             if (s.empty())
 | 
			
		||||
                s = "Nessuna Banca di Presentazione";
 | 
			
		||||
             pr.put(s,1);   
 | 
			
		||||
             p.print(pr);          
 | 
			
		||||
             pr.reset();
 | 
			
		||||
             p.print(pr);   
 | 
			
		||||
             break;
 | 
			
		||||
            case distinta:
 | 
			
		||||
              _scad_prec = scad; 
 | 
			
		||||
              _dist_prec = dist; 
 | 
			
		||||
              s << "Distinta " << dist << " ";
 | 
			
		||||
              switch(tipodist)
 | 
			
		||||
              {
 | 
			
		||||
                  case 'B':
 | 
			
		||||
                    s << " Salvo Buon Fine";
 | 
			
		||||
                    break;
 | 
			
		||||
                  case 'I':     
 | 
			
		||||
                    s << " All'Incasso";
 | 
			
		||||
                    break;
 | 
			
		||||
                  case 'S': 
 | 
			
		||||
                    s << " Allo Sconto";
 | 
			
		||||
                    break;                  
 | 
			
		||||
                   case 0:
 | 
			
		||||
                    s = "Nessuna Distinta";
 | 
			
		||||
                    break; 
 | 
			
		||||
               }                                       
 | 
			
		||||
             pr.put(s,1);          
 | 
			
		||||
             p.print(pr);          
 | 
			
		||||
             pr.reset();
 | 
			
		||||
             p.print(pr);   
 | 
			
		||||
             s = "";
 | 
			
		||||
             break;
 | 
			
		||||
         } 
 | 
			
		||||
     } 
 | 
			
		||||
      
 | 
			
		||||
       if (scad !=_scad_prec) 
 | 
			
		||||
       {                                
 | 
			
		||||
               pr.put("-------------------------------------------",50);
 | 
			
		||||
               p.print(pr);
 | 
			
		||||
               pr.reset();      
 | 
			
		||||
               pr.put("Totale",52);   
 | 
			
		||||
               pr.put(_scad_prec.string(),60);  
 | 
			
		||||
               pr.put(_tot_data.string("###.###.##@,@@"),72);
 | 
			
		||||
               p.print(pr);
 | 
			
		||||
               _tot_data = 0.0;  
 | 
			
		||||
               pr.reset();                         
 | 
			
		||||
               
 | 
			
		||||
               if((scad.month() != _scad_prec.month())&&_pr_type == scadenza)
 | 
			
		||||
              {           
 | 
			
		||||
                     pr.put("Totale ",50);   
 | 
			
		||||
                     pr.put(itom(_scad_prec.month()),57);  
 | 
			
		||||
                     pr.put(_tot_mese.string("###.###.##@,@@"),72);
 | 
			
		||||
                     p.print(pr);
 | 
			
		||||
                     _tot_mese = 0.0;  
 | 
			
		||||
                     pr.reset();                         
 | 
			
		||||
                     p.print(pr);
 | 
			
		||||
                    
 | 
			
		||||
                     year =  scad.string();
 | 
			
		||||
                     year = year.right(4);
 | 
			
		||||
                     pr.put(itom(scad.month()),1);
 | 
			
		||||
                     pr.put(year,10); 
 | 
			
		||||
                     p.print(pr);          
 | 
			
		||||
                     pr.reset();
 | 
			
		||||
                     p.print(pr); 
 | 
			
		||||
              }     
 | 
			
		||||
       }    
 | 
			
		||||
      
 | 
			
		||||
      switch(_pr_type)
 | 
			
		||||
      {       
 | 
			
		||||
          case scadenza:
 | 
			
		||||
              _tot_mese += importo; 
 | 
			
		||||
              break;
 | 
			
		||||
          case banca: 
 | 
			
		||||
               if (ban !=_ban_prec) 
 | 
			
		||||
              {                                
 | 
			
		||||
                   pr.put("Totale",50);   
 | 
			
		||||
                   s = (look_tab("%BAN",_ban_prec));
 | 
			
		||||
                   if (s.empty())
 | 
			
		||||
                      s = "Nessuna Banca ";
 | 
			
		||||
                   s = s.left(20);   
 | 
			
		||||
                   pr.put(s,57);   
 | 
			
		||||
                   pr.put(_tot_banca.string("###.###.##@,@@"),72);
 | 
			
		||||
                   p.print(pr);
 | 
			
		||||
                   _tot_banca = 0.0;  
 | 
			
		||||
                   pr.reset();                         
 | 
			
		||||
                   p.print(pr);  
 | 
			
		||||
                   _ban_prec = ban;                   
 | 
			
		||||
                   s = (look_tab("%BAN",ban));
 | 
			
		||||
                   if (s.empty())
 | 
			
		||||
                   s = "Nessuna Banca di Presentazione";
 | 
			
		||||
                   pr.put(s,1);   
 | 
			
		||||
                   p.print(pr);          
 | 
			
		||||
                   pr.reset();
 | 
			
		||||
                   p.print(pr); 
 | 
			
		||||
              } 
 | 
			
		||||
              _tot_banca += importo;
 | 
			
		||||
              break;    
 | 
			
		||||
              
 | 
			
		||||
            case distinta:  
 | 
			
		||||
               if (dist !=_dist_prec) 
 | 
			
		||||
              {                                
 | 
			
		||||
                   pr.put("Totale",50);   
 | 
			
		||||
                   s << "Distinta "  << _dist_prec;
 | 
			
		||||
                   if (_dist_prec == 0)
 | 
			
		||||
                      s = "Nessuna Distinta";
 | 
			
		||||
                   pr.put(s,57);   
 | 
			
		||||
                   pr.put(_tot_distinta.string("###.###.##@,@@"),72);
 | 
			
		||||
                   p.print(pr);
 | 
			
		||||
                   _tot_distinta = 0.0;  
 | 
			
		||||
                   pr.reset();                         
 | 
			
		||||
                   p.print(pr);  
 | 
			
		||||
                   _dist_prec = dist;                    
 | 
			
		||||
                  
 | 
			
		||||
                  s = ""; 
 | 
			
		||||
                  s << "Distinta " << dist << " ";
 | 
			
		||||
                  switch(tipodist)
 | 
			
		||||
                  {
 | 
			
		||||
                      case 'B':
 | 
			
		||||
                        s <<" Salvo Buon Fine";
 | 
			
		||||
                        break;
 | 
			
		||||
                      case 'I':     
 | 
			
		||||
                        s << " All'Incasso";
 | 
			
		||||
                        break;
 | 
			
		||||
                      case 'S': 
 | 
			
		||||
                        s << " Allo Sconto";
 | 
			
		||||
                        break;                  
 | 
			
		||||
                       case 0:
 | 
			
		||||
                        s = "Nessuna Distinta ";
 | 
			
		||||
                        break; 
 | 
			
		||||
                   }                                       
 | 
			
		||||
                   pr.put(s,1);          
 | 
			
		||||
                   p.print(pr);          
 | 
			
		||||
                   pr.reset();
 | 
			
		||||
                   p.print(pr); 
 | 
			
		||||
                   s = "";
 | 
			
		||||
              } 
 | 
			
		||||
               _tot_distinta += importo;
 | 
			
		||||
               break;  
 | 
			
		||||
       } 
 | 
			
		||||
       
 | 
			
		||||
        _scad_prec = scad;
 | 
			
		||||
        _tot_data += importo;
 | 
			
		||||
        _tot_stampa += importo ;
 | 
			
		||||
 | 
			
		||||
       _ban = get_field(LF_EFFETTI, EFF_CODABIP);
 | 
			
		||||
       if (_ban=="00000") 
 | 
			
		||||
          _ban = "";             
 | 
			
		||||
       s =   get_field(LF_EFFETTI, EFF_CODCABP);
 | 
			
		||||
       if (s=="00000") 
 | 
			
		||||
          s = "";                  
 | 
			
		||||
       _ban << " " << s;                                
 | 
			
		||||
 | 
			
		||||
      s =   get_field(LF_EFFETTI, EFF_CODCF);
 | 
			
		||||
      _cli =  get_field(LF_CLIFO, CLI_RAGSOC);
 | 
			
		||||
      s = _cli.mid(30,50); s.trim();
 | 
			
		||||
      _cli = _cli.mid(0,30); _cli.trim();
 | 
			
		||||
      _cli << " " << s;
 | 
			
		||||
             
 | 
			
		||||
      s = get_field(LF_EFFETTI, EFF_CODVAL);  
 | 
			
		||||
      (s.empty())?_val = s:_val = "Lit.";
 | 
			
		||||
      
 | 
			
		||||
      return TRUE;  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
bool TPrint_effetti_app::preprocess_print(int file, int counter)
 | 
			
		||||
{    
 | 
			
		||||
  reset_print();     
 | 
			
		||||
 return TRUE;
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
const char* TPrint_effetti_app::look_tab(const char* tabname, TString& cod,const char* fld)
 | 
			
		||||
{
 | 
			
		||||
  TTable tab(tabname);
 | 
			
		||||
  tab.curr().zero();
 | 
			
		||||
  tab.curr().put("CODTAB",cod);
 | 
			
		||||
  tab.read();
 | 
			
		||||
  if (tab.bad()) tab.curr().zero();
 | 
			
		||||
  return tab.curr().get(fld);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
bool  TPrint_effetti_app::set_print(int)
 | 
			
		||||
{                                                
 | 
			
		||||
  disable_links();
 | 
			
		||||
  set_multiple_link(FALSE);
 | 
			
		||||
 | 
			
		||||
  TMask mask("ef0600a.msk");
 | 
			
		||||
 | 
			
		||||
  mask.run();
 | 
			
		||||
  
 | 
			
		||||
  force_setpage(FALSE);
 | 
			
		||||
  
 | 
			
		||||
  switch (mask.last_key())
 | 
			
		||||
  {
 | 
			
		||||
    case K_ESC: 
 | 
			
		||||
    case K_QUIT:
 | 
			
		||||
      return FALSE;
 | 
			
		||||
      break;
 | 
			
		||||
   }                      
 | 
			
		||||
   
 | 
			
		||||
  _pr_type     = (pt) mask.get_int(RDB_TIPOST);
 | 
			
		||||
  TDate data_stampa (mask.get(F_DATA_STAMPA));     
 | 
			
		||||
  _data_stampa = data_stampa.string();
 | 
			
		||||
 
 | 
			
		||||
  TRectype from(current_cursor()->curr());
 | 
			
		||||
  from.zero();
 | 
			
		||||
  TRectype to(from);  
 | 
			
		||||
 | 
			
		||||
 TString cod_from, cod_to, filter;  
 | 
			
		||||
 filter = "";
 | 
			
		||||
  
 | 
			
		||||
  switch(_pr_type)
 | 
			
		||||
  {
 | 
			
		||||
    case scadenza: 
 | 
			
		||||
      cod_from = mask.get(F_DA_DATA);
 | 
			
		||||
      cod_to = mask.get(F_A_DATA);  
 | 
			
		||||
      from.put(EFF_DATASCAD,cod_from);
 | 
			
		||||
      to.put(EFF_DATASCAD,cod_to); 
 | 
			
		||||
      select_cursor(_cur_1);    
 | 
			
		||||
    break;
 | 
			
		||||
    
 | 
			
		||||
    case banca:
 | 
			
		||||
      cod_from = mask.get(F_DA_DATA2);
 | 
			
		||||
      cod_to = mask.get(F_A_DATA2);  
 | 
			
		||||
      from.put(EFF_DATASCAD,cod_from);
 | 
			
		||||
      to.put(EFF_DATASCAD,cod_to); 
 | 
			
		||||
      cod_from = mask.get(F_DABAN);
 | 
			
		||||
      cod_to = mask.get(F_ABAN);
 | 
			
		||||
      if (cod_from.empty()) cod_from = "00000"; // per selezionare tutte 
 | 
			
		||||
      if (cod_to.empty())     cod_to = "99999";     //  le banche di presentazione
 | 
			
		||||
      filter = "";
 | 
			
		||||
      filter << "(CODABIP>=" << cod_from << ")&&(CODABIP<=" << cod_to << ")" ;
 | 
			
		||||
      select_cursor(_cur_2);
 | 
			
		||||
    break;
 | 
			
		||||
     
 | 
			
		||||
    case distinta:
 | 
			
		||||
     cod_from = mask.get(F_DA_DATA3);
 | 
			
		||||
     cod_to = mask.get(F_A_DATA3);    
 | 
			
		||||
     from.put(EFF_DATASCAD,cod_from);
 | 
			
		||||
     to.put(EFF_DATASCAD,cod_to); 
 | 
			
		||||
     cod_from = mask.get(F_DADIST);
 | 
			
		||||
     cod_to = mask.get(F_ADIST);        
 | 
			
		||||
     if (cod_from.empty()) cod_from = "00000000"; // per selezionare tutte
 | 
			
		||||
     if (cod_to.empty())     cod_to = "99999999";     // le distinte
 | 
			
		||||
     filter = "";
 | 
			
		||||
     filter << "(NDIST>=" << cod_from << ") && (NDIST<=" << cod_to << ")" ;
 | 
			
		||||
     cod_from = mask.get(F_DATIPODIST);
 | 
			
		||||
     cod_to = mask.get(F_ATIPODIST);     
 | 
			
		||||
     if ((!cod_from.empty())&&(!cod_to.empty())&&(cod_from==cod_to))     // per selezionare un tipo 
 | 
			
		||||
        filter << "&&(TIPODIST==\"" << cod_from << "\")";                          //   di distinta
 | 
			
		||||
     select_cursor(_cur_3);    
 | 
			
		||||
    break;
 | 
			
		||||
    
 | 
			
		||||
    default:
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
    
 | 
			
		||||
  current_cursor()->setfilter(filter,TRUE); 
 | 
			
		||||
  current_cursor()->setregion(from, to);
 | 
			
		||||
                                                   
 | 
			
		||||
  set_real_picture("###.###.##@,@@");  
 | 
			
		||||
  _prima_volta=TRUE;
 | 
			
		||||
  return TRUE; 
 | 
			
		||||
}  
 | 
			
		||||
 | 
			
		||||
bool TPrint_effetti_app::user_create()
 | 
			
		||||
{
 | 
			
		||||
  _rel    = new TRelation(LF_EFFETTI);   
 | 
			
		||||
  _rel->add(LF_REFFETTI, "NPROGTR==NPROGTR");
 | 
			
		||||
  _rel->add(LF_CLIFO, "TIPOCF=='C'|CODCF==CODCF");
 | 
			
		||||
  
 | 
			
		||||
  _cur_1 = add_cursor(new TCursor(_rel,"",3));//STAMPA PER SCADENZA
 | 
			
		||||
  
 | 
			
		||||
  TString ordine  = "CODABIP|DATASCAD|NPROGTR";//STAMPA PER BANCA
 | 
			
		||||
  _cur_2 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));  
 | 
			
		||||
 | 
			
		||||
  ordine  = "TIPODIST|NDIST|NRIGADIST|DATASCAD|NPROGTR";//STAMPA PER DISTINTA 
 | 
			
		||||
  _cur_3 = add_cursor(new TSorted_cursor(_rel,ordine,"",3));
 | 
			
		||||
  
 | 
			
		||||
  add_file(LF_EFFETTI);
 | 
			
		||||
  enable_print_menu();
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TPrint_effetti_app::user_destroy()
 | 
			
		||||
{
 | 
			
		||||
  if (_rel) 
 | 
			
		||||
    delete _rel;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ef0600(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TPrint_effetti_app app;
 | 
			
		||||
  app.run(argc, argv, "Stampe Controllo Effetti");    
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								ef/ef0600.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								ef/ef0600.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
#ifndef __EF0600_H
 | 
			
		||||
#define __EF0600_H  
 | 
			
		||||
 | 
			
		||||
//      campi maschera ef0600a.uml
 | 
			
		||||
 | 
			
		||||
#define F_DATA_STAMPA                          101
 | 
			
		||||
#define RDB_TIPOST                                   102
 | 
			
		||||
#define F_DA_DATA                                    103
 | 
			
		||||
#define F_A_DATA                                       104 
 | 
			
		||||
#define F_DABAN                                        105
 | 
			
		||||
#define F_ABAN                                           106
 | 
			
		||||
#define F_DA_DATA2                                 107
 | 
			
		||||
#define F_A_DATA2                                    108 
 | 
			
		||||
#define F_NUMBERRIGA                           109
 | 
			
		||||
#define F_DATIPODIST                               110 
 | 
			
		||||
#define F_DADIST                                        111
 | 
			
		||||
#define F_ATIPODIST                                  112 
 | 
			
		||||
#define F_ADIST                                           113
 | 
			
		||||
#define F_DA_DATA3                                 114
 | 
			
		||||
#define F_A_DATA3                                    115
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										208
									
								
								ef/ef0600a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										208
									
								
								ef/ef0600a.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,208 @@
 | 
			
		||||
#include "ef0600.h"
 | 
			
		||||
 | 
			
		||||
PAGE "Stampe di Controllo Effetti" -1 -1 60 13
 | 
			
		||||
 | 
			
		||||
DATE F_DATA_STAMPA
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 30 1 "Data di stampa "  
 | 
			
		||||
  FLAGS "A"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON RDB_TIPOST 24
 | 
			
		||||
BEGIN        
 | 
			
		||||
  PROMPT 2 1 "Stampa per "
 | 
			
		||||
  ITEM "1|Scadenza"
 | 
			
		||||
  MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
 | 
			
		||||
  ITEM "2|Banca"
 | 
			
		||||
  MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
 | 
			
		||||
  ITEM "3|Distinta"
 | 
			
		||||
  MESSAGE SHOW,3@|HIDE,1@|HIDE,2@
 | 
			
		||||
END                         
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 55 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "Stampa effetti per Data di scadenza"
 | 
			
		||||
  GROUP 1
 | 
			
		||||
END 
 | 
			
		||||
 | 
			
		||||
DATA F_DA_DATA
 | 
			
		||||
BEGIN      
 | 
			
		||||
  PROMPT 2 7 "Dalla Data  "   
 | 
			
		||||
  GROUP 1 
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_A_DATA
 | 
			
		||||
BEGIN         
 | 
			
		||||
  PROMPT 30 7 "Alla Data  "
 | 
			
		||||
  GROUP 1                                          
 | 
			
		||||
  VALIDATE DATE_CMP_FUNC >= F_DA_DATA
 | 
			
		||||
  WARNING "Data limite superiore  non valida"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 55 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "Stampa effetti per Banca di presentazione"
 | 
			
		||||
  GROUP 2
 | 
			
		||||
END
 | 
			
		||||
   
 | 
			
		||||
NUMBER F_DABAN 5
 | 
			
		||||
BEGIN        
 | 
			
		||||
  PROMPT 2  7 "Dalla Banca "
 | 
			
		||||
  FLAGS "RZ" 
 | 
			
		||||
  GROUP 2
 | 
			
		||||
  USE %BAN KEY 1 SELECT CODTAB ?= "?????" 
 | 
			
		||||
  INPUT CODTAB F_DABAN
 | 
			
		||||
  DISPLAY "Codice ABI" CODTAB[1,5]
 | 
			
		||||
  DISPLAY "Denominazione@50" S0
 | 
			
		||||
  OUTPUT F_DABAN CODTAB[1,5]
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END     
 | 
			
		||||
 | 
			
		||||
NUMBER F_ABAN 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 30 7 "Alla Banca "
 | 
			
		||||
  FLAGS "RZ"
 | 
			
		||||
  GROUP 2
 | 
			
		||||
  USE %BAN KEY 1 SELECT CODTAB ?= "?????" 
 | 
			
		||||
  INPUT CODTAB F_ABAN
 | 
			
		||||
  DISPLAY "Codice ABI" CODTAB[1,5]
 | 
			
		||||
  DISPLAY "Denominazione@50" S0
 | 
			
		||||
  OUTPUT F_ABAN CODTAB[1,5]  
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_DA_DATA2
 | 
			
		||||
BEGIN      
 | 
			
		||||
  PROMPT 2 8 "Dalla Data  "
 | 
			
		||||
  GROUP 2
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_A_DATA2
 | 
			
		||||
BEGIN         
 | 
			
		||||
  PROMPT 30 8 "Alla Data  "
 | 
			
		||||
  GROUP 2                
 | 
			
		||||
  VALIDATE DATE_CMP_FUNC >= F_DA_DATA2
 | 
			
		||||
  WARNING "Data limite superiore  non valida"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 55 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "Stampa effetti per Distinta"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END 
 | 
			
		||||
 | 
			
		||||
LIST F_NUMBERRIGA 10 
 | 
			
		||||
BEGIN         
 | 
			
		||||
  PROMPT 1 60 "Numero Riga Distinta "
 | 
			
		||||
  KEY 4     
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  ITEM "1|PRIMA RIGA"  
 | 
			
		||||
  FLAGS "D"            
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
PROMPT 2 7 "Dalla Distinta "
 | 
			
		||||
GROUP 3
 | 
			
		||||
END                   
 | 
			
		||||
 | 
			
		||||
LIST F_DATIPODIST 19
 | 
			
		||||
BEGIN       
 | 
			
		||||
  PROMPT 4 8 " "
 | 
			
		||||
  KEY 4
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  ITEM " |** Nessuno **"
 | 
			
		||||
  ITEM "I|All'incasso"
 | 
			
		||||
  ITEM "B|Salvo buon fine"
 | 
			
		||||
  ITEM "S|Allo sconto"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_DADIST 7 
 | 
			
		||||
BEGIN            
 | 
			
		||||
  PROMPT 4 9 " "          
 | 
			
		||||
  FLAGS "R"   
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  KEY 4
 | 
			
		||||
  USE LF_EFFETTI KEY 4 SELECT NRIGADIST = 1
 | 
			
		||||
  INPUT NDIST F_DADIST   
 | 
			
		||||
  INPUT TIPODIST F_DATIPODIST
 | 
			
		||||
  INPUT NRIGADIST F_NUMBERRIGA
 | 
			
		||||
  DISPLAY "Nr. distinta" NDIST
 | 
			
		||||
  DISPLAY "Tipo distinta" TIPODIST
 | 
			
		||||
  OUTPUT F_DADIST NDIST
 | 
			
		||||
  OUTPUT F_DATIPODIST TIPODIST 
 | 
			
		||||
  OUTPUT F_NUMBERRIGA NRIGADIST
 | 
			
		||||
  CHECKTYPE NORMAL    
 | 
			
		||||
END     
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
 PROMPT 30 7 "Alla Distinta "
 | 
			
		||||
 GROUP 3
 | 
			
		||||
END                   
 | 
			
		||||
 | 
			
		||||
LIST F_ATIPODIST 19
 | 
			
		||||
BEGIN       
 | 
			
		||||
  PROMPT 31 8 " "
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  KEY 4                                         
 | 
			
		||||
  ITEM " |** Nessuno **"
 | 
			
		||||
  ITEM "I|All'incasso"
 | 
			
		||||
  ITEM "B|Salvo buon fine"
 | 
			
		||||
  ITEM "S|Allo sconto"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_ADIST 7 
 | 
			
		||||
BEGIN            
 | 
			
		||||
  PROMPT 31 9 " "
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  KEY 4
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  USE LF_EFFETTI KEY 4 SELECT NRIGADIST = 1
 | 
			
		||||
  INPUT NDIST F_ADIST   
 | 
			
		||||
  INPUT TIPODIST F_ATIPODIST
 | 
			
		||||
  INPUT NRIGADIST F_NUMBERRIGA
 | 
			
		||||
  DISPLAY "Nr. distinta" NDIST
 | 
			
		||||
  DISPLAY "Tipo distinta" TIPODIST
 | 
			
		||||
  OUTPUT F_ADIST NDIST
 | 
			
		||||
  OUTPUT F_ATIPODIST TIPODIST 
 | 
			
		||||
  OUTPUT F_NUMBERRIGA NRIGADIST    
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  //NUM_EXPR  {#THIS_FIELD>=#F_DADIST}
 | 
			
		||||
  //WARNING "Limite superiore  non valido"
 | 
			
		||||
END 
 | 
			
		||||
 | 
			
		||||
DATA F_DA_DATA3
 | 
			
		||||
BEGIN      
 | 
			
		||||
  PROMPT 2 10 "Dalla Data  "
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_A_DATA3
 | 
			
		||||
BEGIN         
 | 
			
		||||
  PROMPT 30 10 "Alla Data  "
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  VALIDATE DATE_CMP_FUNC >= F_DA_DATA3
 | 
			
		||||
  WARNING "Data limite superiore  non valida"    
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -13 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_CANCEL 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -23 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -33 -1 ""
 | 
			
		||||
END 
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user