Patch level :2.0 p@rtners 680
Files correlati :cg3 cg3800a.msk/frm Ricompilazione Demo : [ ] Commento :secondo step evolutivo della lista fatture doppie; adesso stampa git-svn-id: svn://10.65.10.50/trunk@11748 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									2200151308
								
							
						
					
					
						commit
						b3f899b13c
					
				@ -4063,11 +4063,11 @@ void TStampa_bilanci::preprocess_header()
 | 
			
		||||
      if (_tipo_stampa1 == 1 && _datada == _dataini)
 | 
			
		||||
        h << TR("MOVIMENTI DI APERTURA");  
 | 
			
		||||
      else
 | 
			
		||||
        h << TR("SALDO INIZIALE");
 | 
			
		||||
        h << TR("   SALDO INIZIALE");
 | 
			
		||||
    } 
 | 
			
		||||
    else
 | 
			
		||||
			if (_tipo_stampa1 == 1)
 | 
			
		||||
				set_header(r,TR("PROGRESSIVI PRECEDENTI"));
 | 
			
		||||
				h << TR("PROGRESSIVI PRECEDENTI");
 | 
			
		||||
    h << "@80g!@88g";
 | 
			
		||||
    h << TR("MOVIMENTI DEL PERIODO");
 | 
			
		||||
		set_header(r, h);
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ int main(int argc,char** argv)
 | 
			
		||||
  case 4 : cg3500(argc,argv) ; break;  // Stampa ripilogo gruppi conti
 | 
			
		||||
  case 5 : cg3600(argc,argv) ; break;  // Visualizzazione mastrini
 | 
			
		||||
  case 6 : cg3700(argc,argv) ; break;  // Lista fatture
 | 
			
		||||
  case 7 : cg3800(argc,argv) ; break;  // Lista fatture doppie
 | 
			
		||||
  default: cg3100(argc,argv) ; break;  // Lista movimenti
 | 
			
		||||
  }
 | 
			
		||||
  exit(0);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								cg/cg3.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								cg/cg3.h
									
									
									
									
									
								
							@ -20,6 +20,7 @@ int cg3400(int argc, char* argv[]);
 | 
			
		||||
int cg3500(int argc, char* argv[]);
 | 
			
		||||
int cg3600(int argc, char* argv[]);
 | 
			
		||||
int cg3700(int argc, char* argv[]);
 | 
			
		||||
int cg3800(int argc, char* argv[]);
 | 
			
		||||
 | 
			
		||||
#endif // __CG3_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@
 | 
			
		||||
#include <printer.h>
 | 
			
		||||
#include <progind.h>
 | 
			
		||||
 | 
			
		||||
#include <clifo.h>
 | 
			
		||||
#include <mov.h>
 | 
			
		||||
#include <partite.h>
 | 
			
		||||
#include <rmov.h>
 | 
			
		||||
@ -43,36 +44,98 @@ bool TDouble_fatt_mask::on_field_event(TOperable_field& o, TField_event e, long
 | 
			
		||||
class TDouble_fatt_form : public TForm
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  TPointer_array& _duplicati;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  bool validate(TForm_item &cf, TToken_string &s);
 | 
			
		||||
  virtual bool validate(TForm_item &cf, TToken_string &s);
 | 
			
		||||
  virtual long records() const {return _duplicati.items();}
 | 
			
		||||
  const TRectype& get_mov (int i, int j) const;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  void fill_header_last(int i);
 | 
			
		||||
  void fill_body_odd(int i , int j);
 | 
			
		||||
  void print(const TMask& m);
 | 
			
		||||
  TDouble_fatt_form();
 | 
			
		||||
  TDouble_fatt_form(TPointer_array&);
 | 
			
		||||
  virtual ~TDouble_fatt_form();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool TDouble_fatt_form::validate(TForm_item &cf, TToken_string &s)
 | 
			
		||||
{
 | 
			
		||||
/*  if (s == "_NEXTPAG")
 | 
			
		||||
  {
 | 
			
		||||
    _curr_pag ++; //aggiorna il contatore pagamenti quando ne trova uno sull'arrayone
 | 
			
		||||
    return true;
 | 
			
		||||
  }*/
 | 
			
		||||
  return TForm::validate(cf,s);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const TRectype& TDouble_fatt_form::get_mov (int i, int j) const
 | 
			
		||||
{
 | 
			
		||||
  const TPointer_array& dup = (const TPointer_array&)_duplicati[i];
 | 
			
		||||
  const long numreg = dup.get_long(j);
 | 
			
		||||
 | 
			
		||||
  return cache().get(LF_MOV, numreg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TDouble_fatt_form::fill_header_last(int i)
 | 
			
		||||
{
 | 
			
		||||
  const TRectype& mov = get_mov(i,0);
 | 
			
		||||
  TPrint_section& header = section('H', last_page);
 | 
			
		||||
 | 
			
		||||
  header.reset();
 | 
			
		||||
 | 
			
		||||
  header.find_field(FR_ANNODOC).set(mov.get(MOV_DATADOC).right(4));
 | 
			
		||||
  header.find_field(FR_NDOC).set(mov.get(MOV_NUMDOC));
 | 
			
		||||
  const TString& codcf = mov.get(MOV_CODCF);
 | 
			
		||||
  TString16 key;
 | 
			
		||||
  key.format("F|%s",(const char *)codcf);
 | 
			
		||||
  const TRectype& clifo = cache().get(LF_CLIFO, key);
 | 
			
		||||
  header.find_field(FR_CODCF).set(codcf);
 | 
			
		||||
  header.find_field(FR_RAGSOC).set(clifo.get(CLI_RAGSOC));
 | 
			
		||||
 | 
			
		||||
  header.update();
 | 
			
		||||
 | 
			
		||||
  for (word k = 0; k < header.height(); k++)       
 | 
			
		||||
    printer().print(header.row(k));
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TDouble_fatt_form::fill_body_odd(int i, int j)
 | 
			
		||||
{
 | 
			
		||||
  const TRectype& mov = get_mov(i,j);
 | 
			
		||||
  TPrint_section& body = section('B', odd_page);
 | 
			
		||||
 | 
			
		||||
  body.reset();
 | 
			
		||||
 | 
			
		||||
  body.find_field(FR_NUMREG).set(mov.get(MOV_NUMREG));
 | 
			
		||||
  body.find_field(FR_DATAREG).set(mov.get(MOV_DATAREG));
 | 
			
		||||
  body.find_field(FR_DESCREG).set(mov.get(MOV_DESCR));
 | 
			
		||||
 | 
			
		||||
  body.update(); 
 | 
			
		||||
  for (word k = 0; k < body.height(); k++)
 | 
			
		||||
    printer().print(body.row(k));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TDouble_fatt_form::print(const TMask& m)
 | 
			
		||||
{
 | 
			
		||||
  
 | 
			
		||||
  TPrint_section& header = section('H', odd_page);
 | 
			
		||||
  header.find_field(FR_DADATA).set(m.get(F_DADATA));
 | 
			
		||||
  header.find_field(FR_ADATA).set(m.get(F_ADATA));
 | 
			
		||||
  header.update();
 | 
			
		||||
  set_background(1, TRUE);
 | 
			
		||||
  set_header(1, TRUE);
 | 
			
		||||
  set_footer(1, FALSE);
 | 
			
		||||
 | 
			
		||||
  TForm::print(); //chiama la vera print dopo aver azzerato il contatore
 | 
			
		||||
  printer().open();
 | 
			
		||||
  for (int i = 0; i < _duplicati.items(); i++)
 | 
			
		||||
  {
 | 
			
		||||
    fill_header_last(i);
 | 
			
		||||
    const TPointer_array& dup = (const TPointer_array&)_duplicati[i];
 | 
			
		||||
    for (int j = 0; j < dup.items(); j++)
 | 
			
		||||
      fill_body_odd(i,j);
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
  printer().close();
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
TDouble_fatt_form::TDouble_fatt_form() :TForm ("cg3800a")
 | 
			
		||||
TDouble_fatt_form::TDouble_fatt_form(TPointer_array& dupl) :TForm ("cg3800a"), _duplicati(dupl)
 | 
			
		||||
{
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
@ -108,7 +171,7 @@ public:
 | 
			
		||||
bool TDouble_fatt::create()
 | 
			
		||||
{
 | 
			
		||||
  _mask = new TDouble_fatt_mask;
 | 
			
		||||
  _form = new TDouble_fatt_form();
 | 
			
		||||
  _form = new TDouble_fatt_form(_duplicati);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  return TSkeleton_application::create();
 | 
			
		||||
@ -208,9 +271,15 @@ void TDouble_fatt::main_loop()
 | 
			
		||||
    TCursor cur(&rel, "TIPO=='F'", 2, &darec, &arec);
 | 
			
		||||
    _movimenti.destroy();
 | 
			
		||||
    scan_cursor(cur, "Ricerca fatture doppie...", mov_callback, this);
 | 
			
		||||
 | 
			
		||||
    if (_duplicati.items() > 0)
 | 
			
		||||
      _form->print(*_mask);
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int cg3800(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  TDouble_fatt a;
 | 
			
		||||
 | 
			
		||||
@ -3,5 +3,14 @@
 | 
			
		||||
#define FR_DADATA     11
 | 
			
		||||
#define FR_ADATA      12
 | 
			
		||||
 | 
			
		||||
#define FR_ANNODOC    15
 | 
			
		||||
#define FR_NDOC       16
 | 
			
		||||
#define FR_CODCF      17
 | 
			
		||||
#define FR_RAGSOC     18
 | 
			
		||||
 | 
			
		||||
#define FR_NUMREG     20
 | 
			
		||||
#define FR_DATAREG    21
 | 
			
		||||
#define FR_DESCREG    22
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,13 +9,13 @@ END
 | 
			
		||||
 | 
			
		||||
LINEA -1 132 1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "@b"
 | 
			
		||||
  PROMPT 1 8 "@b"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
// intestazione generale stampa pagato per commessa
 | 
			
		||||
SECTION HEADER ODD 7
 | 
			
		||||
SECTION HEADER ODD 8
 | 
			
		||||
 | 
			
		||||
NUMERO -1
 | 
			
		||||
BEGIN
 | 
			
		||||
@ -49,110 +49,102 @@ BEGIN
 | 
			
		||||
  PROMPT 40 3 "al "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LINEA -1 132 1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 "B"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRINGA -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "anno documento"
 | 
			
		||||
  PROMPT 1 5 "@bANNO"
 | 
			
		||||
  PROMPT 1 6 "@bANNO"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRINGA -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "numero documento"
 | 
			
		||||
  PROMPT 6 5 "@bNUM. DOC. "
 | 
			
		||||
  PROMPT 6 6 "@bNUM. DOC. "
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "codice fornitore"
 | 
			
		||||
  PROMPT 18 5 "@bFORNITORE"
 | 
			
		||||
  PROMPT 18 6 "@bFORNITORE"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "ragione sociale"
 | 
			
		||||
  PROMPT 28 5 "@bRAGIONE SOCIALE"
 | 
			
		||||
  PROMPT 28 6 "@bRAGIONE SOCIALE"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "numero registrazione"
 | 
			
		||||
  PROMPT 6 6 "@bNum.Reg."
 | 
			
		||||
  PROMPT 6 7 "@bNum.Reg."
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "data registrazione"
 | 
			
		||||
  PROMPT 15 6 "@bData Reg."
 | 
			
		||||
  PROMPT 15 7 "@bData Reg."
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "descrizione registrazione"
 | 
			
		||||
  PROMPT 26 6 "@bDescrizione"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LINEA -1 132 1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "B"
 | 
			
		||||
  PROMPT 26 7 "@bDescrizione"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
END // section header odd
 | 
			
		||||
 | 
			
		||||
// riga di stampa (utilizzata per ogni movimento)
 | 
			
		||||
SECTION BODY ODD 1
 | 
			
		||||
// documento duplicato
 | 
			
		||||
SECTION HEADER LAST 2
 | 
			
		||||
 | 
			
		||||
NUMERO FR_ANNODOC 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "anno doc"
 | 
			
		||||
  PROMPT 
 | 
			
		||||
  PROMPT 1 2 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRINGA FR_NDOC 7
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "num doc"
 | 
			
		||||
  PROMPT 6 2 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERO FR_CODCF 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "codice clifo"
 | 
			
		||||
  PROMPT 18 2 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRINGA FR_RAGSOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "ragsoc"
 | 
			
		||||
  PROMPT 28 2 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
	SECTION REGISTRAZIONI 2 1 1 FILE LF_MOV GROUP LF_MOV->
 | 
			
		||||
END //end della header last: section del documento che viene duplicato	
 | 
			
		||||
 | 
			
		||||
	NUMERO FR_NUMREG
 | 
			
		||||
	BEGIN
 | 
			
		||||
SECTION BODY ODD 1	// section dei duplicati
 | 
			
		||||
 | 
			
		||||
NUMERO FR_NUMREG
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "numero registrazione"
 | 
			
		||||
	  PROMPT ""
 | 
			
		||||
	END
 | 
			
		||||
  PROMPT 6 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
	DATA FR_DATAREG
 | 
			
		||||
	BEGIN
 | 
			
		||||
DATA FR_DATAREG
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "data registrazione"
 | 
			
		||||
	  PROMPT ""
 | 
			
		||||
	END
 | 
			
		||||
  PROMPT 15 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
	STRINGA FR_DESCREG 50
 | 
			
		||||
	BEGIN
 | 
			
		||||
STRINGA FR_DESCREG 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  KEY "descrizione registrazione"
 | 
			
		||||
	  PROMPT ""
 | 
			
		||||
	END
 | 
			
		||||
  PROMPT 26 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
	END //end section registrazioni
 | 
			
		||||
END //end section duplicati
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
END // section body odd
 | 
			
		||||
 | 
			
		||||
SECTION FOOTER ODD 1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -258,6 +258,7 @@ Flags   = ""
 | 
			
		||||
Item_01 = "Lista fatture con iva indetraibile", "cg3 -6 I", "F"
 | 
			
		||||
Item_02 = "Lista fatture per tipo costo/ricavo", "cg3 -6 C", "F"
 | 
			
		||||
Item_03 = "Lista fatture intracomunitarie", "cg3 -6 N", "F"
 | 
			
		||||
Item_04 = "Lista fatture doppie", "cg3 -7", "F"
 | 
			
		||||
 | 
			
		||||
[CGMENU_027]
 | 
			
		||||
Caption = "Gestione acconti IVA"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user