Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :personalizzazione suore spostata nel programma pd6142 git-svn-id: svn://10.65.10.50/trunk@18216 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									06d5213684
								
							
						
					
					
						commit
						4e3135d3e5
					
				
							
								
								
									
										18
									
								
								cg/cgp0.cpp
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								cg/cgp0.cpp
									
									
									
									
									
								
							@ -1,18 +0,0 @@
 | 
			
		||||
#include <xvt.h>
 | 
			
		||||
#include <checks.h>
 | 
			
		||||
 | 
			
		||||
#include "cgp0.h"
 | 
			
		||||
 | 
			
		||||
int main(int argc,char** argv)
 | 
			
		||||
{
 | 
			
		||||
  const int n = (argc > 1) ? atoi(&argv[1][1]) : 0;
 | 
			
		||||
  
 | 
			
		||||
  switch(n)
 | 
			
		||||
  {
 | 
			
		||||
  case 0:
 | 
			
		||||
    cgp0100(argc, argv); break;
 | 
			
		||||
  default: 
 | 
			
		||||
    error_box("Usage: cgp0 -0");break;
 | 
			
		||||
  }
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +0,0 @@
 | 
			
		||||
#ifndef __CGP0_H
 | 
			
		||||
#define __CGP0_H
 | 
			
		||||
 | 
			
		||||
int cgp0100(int argc, char** argv);
 | 
			
		||||
 | 
			
		||||
#endif // __CGP0_H
 | 
			
		||||
@ -1,7 +0,0 @@
 | 
			
		||||
[PRASSICGP_001]
 | 
			
		||||
Caption = "Personalizzazioni"
 | 
			
		||||
Picture = <ba02.bmp>
 | 
			
		||||
Module  = 0
 | 
			
		||||
Flags   = ""
 | 
			
		||||
Item_01 = "Liquidazione riepilogativa IVA", "cgp0 -0", ""
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										429
									
								
								cg/cgp0100.cpp
									
									
									
									
									
								
							
							
						
						
									
										429
									
								
								cg/cgp0100.cpp
									
									
									
									
									
								
							@ -1,429 +0,0 @@
 | 
			
		||||
// cgp0100.cpp Programma personalizzato per Istituto Suore: Liquidazione riepilogativa IVA
 | 
			
		||||
// Che cosa fa:
 | 
			
		||||
// prende un serie di codici ditta in input, piu' un anno ed un mese (da 1 a 13)
 | 
			
		||||
// e copia tutti i movimenti (mov, rmoviva) in una unica ditta ricevente.
 | 
			
		||||
// (il mese 13 copia tutti i movimenti dell'anno).
 | 
			
		||||
 | 
			
		||||
#include <applicat.h>
 | 
			
		||||
#include <tabutil.h>
 | 
			
		||||
#include <mask.h>
 | 
			
		||||
#include <sheet.h>
 | 
			
		||||
#include <prefix.h>
 | 
			
		||||
#include <relation.h>
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
#include <urldefid.h>
 | 
			
		||||
#include <nditte.h>
 | 
			
		||||
#include <mov.h>
 | 
			
		||||
#include <rmoviva.h>
 | 
			
		||||
#include "cgp0100a.h"
 | 
			
		||||
 | 
			
		||||
// La parte di selezione delle ditte e' tratta dal programma di liquidazione IVA (cg4300.cpp)
 | 
			
		||||
class TCopia_movimenti : public TApplication
 | 
			
		||||
{
 | 
			
		||||
  TArray_sheet   *_ditte;          // Array sheet delle ditte selezionabili
 | 
			
		||||
  TLocalisamfile *_nditte;         // File delle ditte
 | 
			
		||||
  TTable         *_lia;            // Tabella LIA per controllare i parametri liquidazione
 | 
			
		||||
  long           _rcv_firm,        // Ditta ricevente
 | 
			
		||||
                 _firm;            // Ditta iniziale, da ripristinare alla fine di tutto
 | 
			
		||||
  int            _anno;            // Anno da copiare
 | 
			
		||||
  int            _mese;            // Mese da copiare (13 == tutti)
 | 
			
		||||
protected:  
 | 
			
		||||
  virtual bool menu(MENU_TAG) ;
 | 
			
		||||
  static bool fr_ditt_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool to_ditt_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool select_button  (TMask_field& f, KEY key);
 | 
			
		||||
  static bool reset_button   (TMask_field& f, KEY key);
 | 
			
		||||
  static bool firm_handler   (TMask_field& f, KEY key);
 | 
			
		||||
  static TCopia_movimenti& app() { return (TCopia_movimenti&)main_app(); }
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
  virtual bool create();
 | 
			
		||||
  virtual bool destroy();
 | 
			
		||||
  TArray_sheet* get_ditte_sheet() { return _ditte; }
 | 
			
		||||
  bool          look_lia(long codditta, int anno);
 | 
			
		||||
  long          select_firm_range(long from, long to);
 | 
			
		||||
  void          build_ditte_sheet();
 | 
			
		||||
  void          reset_choices(TMask&);
 | 
			
		||||
  void          set_choice_limits(TMask&);
 | 
			
		||||
  void          copia_mov();
 | 
			
		||||
 | 
			
		||||
  TCopia_movimenti() {};
 | 
			
		||||
  virtual ~TCopia_movimenti() {};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::look_lia(long ditta, int year)
 | 
			
		||||
{
 | 
			
		||||
  if (year == 0) year = _anno;
 | 
			
		||||
  if (ditta == 0l) ditta = get_firm();
 | 
			
		||||
  TString16 y; y.format("%05ld%04d", ditta, year);
 | 
			
		||||
  
 | 
			
		||||
  _lia->zero();
 | 
			
		||||
  _lia->put("CODTAB", y);
 | 
			
		||||
  _lia->read();
 | 
			
		||||
  return _lia->good();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::firm_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_ENTER && f.to_check(k))
 | 
			
		||||
  {
 | 
			
		||||
    const long codditta = atol(f.get());
 | 
			
		||||
    const int  anno     = f.mask().get_int(F_ANNO);
 | 
			
		||||
    if (!prefix().exist(codditta))
 | 
			
		||||
      return f.error_box("La ditta specificata non e' abilitata in contabilita'.");
 | 
			
		||||
    if (!app().look_lia(codditta,anno))
 | 
			
		||||
      return f.error_box("Non esistono i parametri di liquidazione per la ditta specificata.");
 | 
			
		||||
  }
 | 
			
		||||
  if (k == K_TAB && f.to_check(k))
 | 
			
		||||
  {
 | 
			
		||||
    const long codditta = atol(f.get());
 | 
			
		||||
    TArray_sheet* s = app()._ditte;
 | 
			
		||||
    const long items = s->items();
 | 
			
		||||
    for (long j=0;j<items;j++)
 | 
			
		||||
    {
 | 
			
		||||
      const long ditta = s->row(j).get_long(1);
 | 
			
		||||
      if (ditta == codditta)
 | 
			
		||||
      {
 | 
			
		||||
        s->uncheck(j);
 | 
			
		||||
        s->disable_row(j);
 | 
			
		||||
      }
 | 
			
		||||
      else 
 | 
			
		||||
        if (ditta == app()._rcv_firm)
 | 
			
		||||
          s->enable_row(j);
 | 
			
		||||
    }
 | 
			
		||||
    app()._rcv_firm = codditta;
 | 
			
		||||
    app().set_choice_limits(f.mask());
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::to_ditt_handler(TMask_field& f, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  TMask& m = f.mask();
 | 
			
		||||
  if (key == K_F9)
 | 
			
		||||
  {
 | 
			
		||||
    TArray_sheet* sh = app().get_ditte_sheet();
 | 
			
		||||
    
 | 
			
		||||
    sh->disable_check();
 | 
			
		||||
    sh->disable(DLG_USER);
 | 
			
		||||
    if (sh->run() == K_ENTER)
 | 
			
		||||
    {
 | 
			
		||||
      app().select_firm_range(m.get_long(F_DFR),sh->row(sh->selected()).get_long(1));
 | 
			
		||||
      app().set_choice_limits(m);
 | 
			
		||||
    }
 | 
			
		||||
    sh->enable(DLG_USER);
 | 
			
		||||
  }
 | 
			
		||||
  if (key == K_TAB && f.focusdirty())
 | 
			
		||||
  {
 | 
			
		||||
    const long l = app().select_firm_range(m.get_long(F_DFR), m.get_long(F_DTO)); 
 | 
			
		||||
    app().set_choice_limits(m);
 | 
			
		||||
    m.set(F_SELECTED, l);
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::fr_ditt_handler(TMask_field& f, KEY key)
 | 
			
		||||
{                          
 | 
			
		||||
  TMask& m = f.mask();
 | 
			
		||||
  if (key == K_F9)
 | 
			
		||||
  {
 | 
			
		||||
    TMask& m = f.mask();
 | 
			
		||||
    TArray_sheet* sh = app().get_ditte_sheet();
 | 
			
		||||
 | 
			
		||||
    sh->disable_check();    
 | 
			
		||||
    sh->disable(DLG_USER);
 | 
			
		||||
    if (sh->run() == K_ENTER)
 | 
			
		||||
    {
 | 
			
		||||
      app().select_firm_range(sh->row(sh->selected()).get_long(1), m.get_long(F_DTO));
 | 
			
		||||
      app().set_choice_limits(m);
 | 
			
		||||
    }
 | 
			
		||||
    sh->enable(DLG_USER);
 | 
			
		||||
 }
 | 
			
		||||
  else if (key == K_TAB && f.focusdirty())
 | 
			
		||||
  {
 | 
			
		||||
    const long l = app().select_firm_range(m.get_long(F_DFR), m.get_long(F_DTO));
 | 
			
		||||
    app().set_choice_limits(m);
 | 
			
		||||
    m.set(F_SELECTED, l);
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TCopia_movimenti::set_choice_limits(TMask& m)
 | 
			
		||||
{     
 | 
			
		||||
  long first = -1l, last = -1l;
 | 
			
		||||
  const long items = _ditte->items();
 | 
			
		||||
  for (long i = 0; i < items; i++)
 | 
			
		||||
  {
 | 
			
		||||
    if (_ditte->checked(i))
 | 
			
		||||
    {
 | 
			
		||||
      const long dit = _ditte->row(i).get_long(1);
 | 
			
		||||
      if (first == -1l) first = dit;
 | 
			
		||||
      if (last < dit)   last  = dit;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (first != -1) m.set(F_DFR, first);                        
 | 
			
		||||
  if (last  != -1) m.set(F_DTO, last);                        
 | 
			
		||||
  m.set(F_SELECTED, _ditte->checked());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TCopia_movimenti::reset_choices(TMask& m)
 | 
			
		||||
{
 | 
			
		||||
  m.reset(F_SELECTED);
 | 
			
		||||
  m.reset(F_DFR);
 | 
			
		||||
  m.reset(F_DTO);
 | 
			
		||||
  _ditte->check(-1, FALSE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
long TCopia_movimenti::select_firm_range(long from, long to)
 | 
			
		||||
{
 | 
			
		||||
  if (to == 0l) to = 99999L;                              
 | 
			
		||||
  const long items = _ditte->items();
 | 
			
		||||
  for (long i = 0; i < items; i++)
 | 
			
		||||
  {
 | 
			
		||||
    if (_ditte->row_disabled(i))
 | 
			
		||||
      continue;
 | 
			
		||||
 | 
			
		||||
    const long cod = _ditte->row(i).get_long(1);
 | 
			
		||||
    if (cod >= from && cod <= to)
 | 
			
		||||
      _ditte->check(i);
 | 
			
		||||
    else 
 | 
			
		||||
      _ditte->uncheck(i);
 | 
			
		||||
  } 
 | 
			
		||||
  return _ditte->checked();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TCopia_movimenti::build_ditte_sheet()
 | 
			
		||||
{                 
 | 
			
		||||
  // ricostruisce l'array_sheet delle ditte slezionabili
 | 
			
		||||
  _ditte->destroy();
 | 
			
		||||
  TLocalisamfile& dt = *_nditte;
 | 
			
		||||
  
 | 
			
		||||
  for (dt.first(); !dt.eof(); dt.next())
 | 
			
		||||
  {     
 | 
			
		||||
    TToken_string* d = new TToken_string(64);
 | 
			
		||||
    d->add(" ");
 | 
			
		||||
    d->add(dt.get(NDT_CODDITTA));
 | 
			
		||||
    d->add(dt.get(NDT_RAGSOC));    
 | 
			
		||||
    const long pos = _ditte->add(d);  
 | 
			
		||||
    if (prefix().exist(dt.get_long(NDT_CODDITTA))) 
 | 
			
		||||
      _ditte->enable_row(pos);
 | 
			
		||||
    else
 | 
			
		||||
      _ditte->disable_row(pos);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::select_button(TMask_field& f, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  if (key == K_SPACE)
 | 
			
		||||
  {
 | 
			
		||||
    app()._ditte->enable_check();
 | 
			
		||||
    // seleziona e aggiungi alle gia' selezionate 
 | 
			
		||||
    if (app()._ditte->run() == K_ENTER)
 | 
			
		||||
      app().set_choice_limits(f.mask());
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::reset_button(TMask_field& f, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  if (key == K_SPACE)
 | 
			
		||||
    app().reset_choices(f.mask());
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::menu(MENU_TAG m)
 | 
			
		||||
{
 | 
			
		||||
  TMask msk("cgp0100a");
 | 
			
		||||
  msk.set_handler(F_DFR,  fr_ditt_handler);
 | 
			
		||||
  msk.set_handler(F_DTO,  to_ditt_handler);
 | 
			
		||||
  msk.set_handler(F_RCVFIRM, firm_handler);
 | 
			
		||||
  msk.set_handler(FBUT_SELECT,select_button);
 | 
			
		||||
  msk.set_handler(FBUT_RESET,reset_button);
 | 
			
		||||
  KEY k;
 | 
			
		||||
  do
 | 
			
		||||
  {
 | 
			
		||||
    k = msk.run();
 | 
			
		||||
    if (k == K_ENTER)
 | 
			
		||||
    {
 | 
			
		||||
      if (msk.get_int(F_SELECTED) == 0)
 | 
			
		||||
      {
 | 
			
		||||
        error_box("Selezionare le ditte invianti.");
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
      _anno = msk.get_int(F_ANNO);
 | 
			
		||||
      _mese = msk.get_int(F_MESE);
 | 
			
		||||
      _rcv_firm = msk.get_long(F_RCVFIRM);
 | 
			
		||||
      if (yesno_box("E' stata selezionata la ditta %ld come ditta ricevente. Continuo?",_rcv_firm))
 | 
			
		||||
      {
 | 
			
		||||
        copia_mov();
 | 
			
		||||
        message_box("Copia movimenti completata.");
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  } while(k == K_ENTER);
 | 
			
		||||
  
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TCopia_movimenti::copia_mov()
 | 
			
		||||
{
 | 
			
		||||
  TFilename t1,t2;
 | 
			
		||||
  t1.tempdir();
 | 
			
		||||
  t1.insert("%");
 | 
			
		||||
  t2 = t1;
 | 
			
		||||
  t1 << "/tmov";
 | 
			
		||||
  t2 << "/trmoviva";
 | 
			
		||||
  
 | 
			
		||||
  long numreg = 0L;  // numero di registrazione progressivo
 | 
			
		||||
  long count  = 0L;  // numero di items (mov+rmoviva) totali
 | 
			
		||||
  TIsamtempfile  tmov(LF_MOV,t1,TRUE);
 | 
			
		||||
  TIsamtempfile  trmoviva(LF_RMOVIVA,t2,TRUE);
 | 
			
		||||
  tmov.set_autodel();
 | 
			
		||||
  trmoviva.set_autodel();
 | 
			
		||||
  int err=NOERR;
 | 
			
		||||
  {
 | 
			
		||||
    set_firm(_ditte->row(0).get_long(1)); // Per evitare fastidiosi fatal in caso non sia settata nemmeno una ditta
 | 
			
		||||
    
 | 
			
		||||
    TLocalisamfile m(LF_MOV); // necessario per allocare i records
 | 
			
		||||
    TRectype from(LF_MOV),to(LF_MOV);
 | 
			
		||||
    TDate inizio(1,_mese == 13 ? 1 : _mese,_anno);
 | 
			
		||||
    TDate fine(inizio);
 | 
			
		||||
  
 | 
			
		||||
    if (_mese == 13) fine.set_month(12);
 | 
			
		||||
    fine.set_end_month();
 | 
			
		||||
    from.put(MOV_DATAREG,inizio);
 | 
			
		||||
    to.put(MOV_DATAREG,fine);
 | 
			
		||||
    TRelation rel(LF_MOV);
 | 
			
		||||
    rel.add(LF_RMOVIVA,"NUMREG=NUMREG");
 | 
			
		||||
    TCursor cur(&rel,"",2,&from,&to);
 | 
			
		||||
  
 | 
			
		||||
    const long items = _ditte->items();
 | 
			
		||||
  
 | 
			
		||||
    TProgind p(items,"Copia movimenti ditte...", FALSE,TRUE);
 | 
			
		||||
    TString msg;
 | 
			
		||||
    
 | 
			
		||||
    for (long i=0; i<items && err == NOERR; i++) // ciclo sulle ditte selezionate
 | 
			
		||||
      if (_ditte->checked(i))
 | 
			
		||||
      {
 | 
			
		||||
        const long codditta = _ditte->row(i).get_long(1);
 | 
			
		||||
        set_firm(codditta);
 | 
			
		||||
        msg.format("Copia movimenti ditta %ld in corso...",codditta);
 | 
			
		||||
        p.setstatus(i);  
 | 
			
		||||
        p.set_text(msg);        
 | 
			
		||||
        const TRecnotype recs = cur.items();
 | 
			
		||||
        for (TRecnotype j=0; j<recs && err==NOERR;j++)
 | 
			
		||||
        {
 | 
			
		||||
          cur = j;
 | 
			
		||||
          if (cur.is_first_match(LF_RMOVIVA))
 | 
			
		||||
          {
 | 
			
		||||
            tmov.curr() = cur.curr();
 | 
			
		||||
            const long orig_nreg = tmov.get_long(MOV_NUMREG);
 | 
			
		||||
            tmov.put(MOV_NUMREG,numreg+1);
 | 
			
		||||
            count++;
 | 
			
		||||
            if (tmov.write() != NOERR)
 | 
			
		||||
            {
 | 
			
		||||
              err=tmov.status();
 | 
			
		||||
              error_box("Errore %d in scrittura file temporaneo movimenti. Ditta %ld, movimento %ld.",
 | 
			
		||||
                        err,codditta,orig_nreg);
 | 
			
		||||
              break;
 | 
			
		||||
            }
 | 
			
		||||
            do
 | 
			
		||||
            {
 | 
			
		||||
              trmoviva.curr() = cur.curr(LF_RMOVIVA);
 | 
			
		||||
              const int numrig = trmoviva.get_int(RMI_NUMRIG);
 | 
			
		||||
              trmoviva.put(RMI_NUMREG,numreg+1);
 | 
			
		||||
              if (trmoviva.write() != NOERR)
 | 
			
		||||
              {
 | 
			
		||||
                err=trmoviva.status();
 | 
			
		||||
                error_box("Errore %d in scrittura file temporaneo righe iva. Ditta %ld, movimento %ld, riga %d.",
 | 
			
		||||
                           err,codditta,orig_nreg, numrig);
 | 
			
		||||
                break;
 | 
			
		||||
              }
 | 
			
		||||
              count++;
 | 
			
		||||
            } while (cur.next_match(LF_RMOVIVA));
 | 
			
		||||
            numreg++;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
  //  una volta finita la copia, se non ci sono errori e ci sono record da trasferire
 | 
			
		||||
  // copia i records nella ditta ricevente
 | 
			
		||||
  if (err == NOERR && numreg > 0)
 | 
			
		||||
  {
 | 
			
		||||
    set_firm(_rcv_firm); // setta la ditta ricevente
 | 
			
		||||
    // Zappa i files
 | 
			
		||||
    {
 | 
			
		||||
      TDir d;
 | 
			
		||||
      d.get(LF_MOV);
 | 
			
		||||
      d.eod() = 0L;
 | 
			
		||||
      d.put(LF_MOV);
 | 
			
		||||
      d.get(LF_RMOVIVA);
 | 
			
		||||
      d.eod() = 0L;
 | 
			
		||||
      d.put(LF_RMOVIVA);
 | 
			
		||||
      TSystemisamfile m(LF_MOV),r(LF_RMOVIVA); 
 | 
			
		||||
      err = m.pack();
 | 
			
		||||
      if (err == NOERR)
 | 
			
		||||
        err = r.pack();
 | 
			
		||||
    }
 | 
			
		||||
    if (err == NOERR)
 | 
			
		||||
    { 
 | 
			
		||||
      TIsamfile mov(LF_MOV);
 | 
			
		||||
      TIsamfile rmoviva(LF_RMOVIVA);
 | 
			
		||||
      
 | 
			
		||||
      err = mov.open(_excllock);
 | 
			
		||||
      if (err == NOERR)
 | 
			
		||||
        err = rmoviva.open(_excllock);
 | 
			
		||||
      if (err == NOERR) // Scrive sui files della ditta ricevente
 | 
			
		||||
      {
 | 
			
		||||
        long j=0L;
 | 
			
		||||
        TProgind p(count,"Trasferimento movimenti...",FALSE,TRUE);
 | 
			
		||||
        for (tmov.first(); tmov.good(); tmov.next())
 | 
			
		||||
        {
 | 
			
		||||
          p.setstatus(j++);
 | 
			
		||||
          mov.write(tmov.curr());
 | 
			
		||||
        }
 | 
			
		||||
        for (trmoviva.first(); trmoviva.good(); trmoviva.next())
 | 
			
		||||
        {
 | 
			
		||||
          p.setstatus(j++);
 | 
			
		||||
          rmoviva.write(trmoviva.curr());
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
        error_box("Errore %d tentando di aprire in modo esclusivo i files della ditta ricevente",err);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
      error_box("Errore %d azzerando i files della ditta ricevente",err);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  // Il distruttore di TIsamtempfile rimuove i files temporanei automaticamente
 | 
			
		||||
  // dato che e' stato settato l'apposito flag
 | 
			
		||||
  set_firm(_firm); // ripristina la ditta
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::create()
 | 
			
		||||
{
 | 
			
		||||
  _ditte  = new TArray_sheet(-1, -1, -4, -4, "Selezione Ditte",
 | 
			
		||||
                             "@1|Cod.@5R|Ragione Sociale@50");
 | 
			
		||||
  _nditte = new TLocalisamfile(LF_NDITTE);
 | 
			
		||||
  _lia = new TTable("%LIA");
 | 
			
		||||
  _firm = TApplication::get_firm();
 | 
			
		||||
  build_ditte_sheet();
 | 
			
		||||
  dispatch_e_menu (BAR_ITEM(1));
 | 
			
		||||
 
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TCopia_movimenti::destroy()
 | 
			
		||||
{
 | 
			
		||||
  delete _ditte;
 | 
			
		||||
  delete _nditte;
 | 
			
		||||
  delete _lia;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int cgp0100 (int argc, char** argv)
 | 
			
		||||
{
 | 
			
		||||
  TCopia_movimenti a;
 | 
			
		||||
  a.run(argc,argv,"Liquidazione riepilogativa IVA");
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,10 +0,0 @@
 | 
			
		||||
#define F_DFR          101
 | 
			
		||||
#define F_DTO          102
 | 
			
		||||
#define F_SELECTED     103
 | 
			
		||||
#define FBUT_SELECT    104
 | 
			
		||||
#define FBUT_RESET     105
 | 
			
		||||
#define F_MESE         106
 | 
			
		||||
#define F_ANNO         107
 | 
			
		||||
#define F_RCVFIRM      108
 | 
			
		||||
#define F_DESRCVFIRM   109
 | 
			
		||||
 | 
			
		||||
@ -1,92 +0,0 @@
 | 
			
		||||
#include "cgp0100a.h"
 | 
			
		||||
 | 
			
		||||
PAGE "Liquidazione riepilogativa IVA" -1 -1 78 14
 | 
			
		||||
 | 
			
		||||
LIST F_MESE 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 "Periodo    "
 | 
			
		||||
  ITEM "13|Annuale"
 | 
			
		||||
  FLAGS "AM"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_ANNO 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 35 1 "Anno "
 | 
			
		||||
  FLAGS "A"
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 3 "Ditta ricevente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_RCVFIRM 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 4 "Codice    "
 | 
			
		||||
  USE LF_NDITTE
 | 
			
		||||
  INPUT CODDITTA F_RCVFIRM
 | 
			
		||||
  DISPLAY "Codice" CODDITTA
 | 
			
		||||
  DISPLAY "Ragione sociale@50" RAGSOC
 | 
			
		||||
  OUTPUT F_RCVFIRM CODDITTA
 | 
			
		||||
  OUTPUT F_DESRCVFIRM RAGSOC
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESRCVFIRM 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 22 4 ""
 | 
			
		||||
  USE LF_NDITTE KEY 2
 | 
			
		||||
  INPUT RAGSOC F_DESRCVFIRM
 | 
			
		||||
  DISPLAY "Ragione sociale@50" RAGSOC
 | 
			
		||||
  DISPLAY "Codice" CODDITTA
 | 
			
		||||
  COPY OUTPUT F_RCVFIRM
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 40 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 6 "Ditte invianti"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_DFR 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 7 "Da codice "
 | 
			
		||||
  FLAGS "B"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_DTO 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 8 "A codice  "
 | 
			
		||||
  FLAGS "B"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_SELECTED 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 9 "Scelte n. "
 | 
			
		||||
  FLAGS "DR"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON FBUT_SELECT 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 25 7 "~Selezione"
 | 
			
		||||
  PICTURE BMP_SELECT
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON FBUT_RESET 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 25 9 "A~zzera"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -22 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user