This commit was generated by cvs2svn to compensate for changes in r5035,
which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5036 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									4bf81091fd
								
							
						
					
					
						commit
						ce957aef04
					
				
							
								
								
									
										20
									
								
								sv/sv0.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										20
									
								
								sv/sv0.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
#include <xvt.h>
 | 
			
		||||
#include <checks.h>
 | 
			
		||||
 | 
			
		||||
#include "sv0.h"
 | 
			
		||||
 | 
			
		||||
int main(int argc, char** argv)
 | 
			
		||||
{
 | 
			
		||||
  int n = argc > 1 ? atoi(argv[1]+1) : 0;
 | 
			
		||||
  switch(n)
 | 
			
		||||
  {      
 | 
			
		||||
  case 3: 
 | 
			
		||||
    st0400(argc, argv);
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
    error_box("Invalid argument %s", argv[1]);
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  exit(0);
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								sv/sv0.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								sv/sv0.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
#ifndef __ST0_H
 | 
			
		||||
#define __ST0_H
 | 
			
		||||
 | 
			
		||||
int st0100(int argc, char* argv[]);
 | 
			
		||||
int st0200(int argc, char* argv[]);
 | 
			
		||||
int st0300(int argc, char* argv[]);
 | 
			
		||||
int st0400(int argc, char* argv[]);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										23
									
								
								sv/sv0.url
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								sv/sv0.url
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
#include <default.url>
 | 
			
		||||
 | 
			
		||||
MENU TASK_MENUBAR
 | 
			
		||||
  SUBMENU MENU_FILE "~File"
 | 
			
		||||
  SUBMENU M_FONT    "~Opzioni" DISABLED
 | 
			
		||||
 | 
			
		||||
MENU M_FONT
 | 
			
		||||
  ITEM M_FONT_SELECT "~Font"  
 | 
			
		||||
  ITEM MENU_ITEM(2)  "~Colori"
 | 
			
		||||
  ITEM MENU_ITEM(3)  "~Editor"
 | 
			
		||||
 | 
			
		||||
MENUBAR MENU_BAR(1)
 | 
			
		||||
MENU MENU_BAR(1)
 | 
			
		||||
  SUBMENU MENU_FILE "~File"
 | 
			
		||||
 | 
			
		||||
MENUBAR MENU_BAR(2)
 | 
			
		||||
MENU MENU_BAR(2)
 | 
			
		||||
  SUBMENU MENU_FILE "~File"
 | 
			
		||||
 | 
			
		||||
MENUBAR MENU_BAR(3)
 | 
			
		||||
MENU MENU_BAR(3)
 | 
			
		||||
  SUBMENU MENU_FILE "~File"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										17
									
								
								sv/sv0400.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								sv/sv0400.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
#include <confapp.h>
 | 
			
		||||
 | 
			
		||||
#include "sv0400a.h"
 | 
			
		||||
 | 
			
		||||
class TParametri_st : public TConfig_application
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
  TParametri_st() : TConfig_application(CONFIG_DITTA) { } 
 | 
			
		||||
  virtual ~TParametri_st() { }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int st0400(int argc, char* argv[])
 | 
			
		||||
{     
 | 
			
		||||
  TParametri_st app;
 | 
			
		||||
  app.run(argc, argv, "Parametri statistiche");
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								sv/sv0400a.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								sv/sv0400a.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
#ifndef __ST0400A_H
 | 
			
		||||
#define __ST0400A_H
 | 
			
		||||
 | 
			
		||||
#define F_NO_CODICE        101
 | 
			
		||||
#define F_NO_MAGAZZINO     102
 | 
			
		||||
#define F_NO_RAGGRUPPA     103
 | 
			
		||||
#define F_MERCE            111
 | 
			
		||||
#define F_PRESTAZIONI      112
 | 
			
		||||
#define F_OMAGGI           113
 | 
			
		||||
#define F_RAGGRUPPA_OMAGGI 114
 | 
			
		||||
#define F_AGENTE           121 
 | 
			
		||||
#define F_CLIENTE          122
 | 
			
		||||
#define F_GIACENZA         123
 | 
			
		||||
#define F_MAGAZZINO        124
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										130
									
								
								sv/sv0400a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										130
									
								
								sv/sv0400a.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
#include "sv0400a.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "" 0 20 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 10 2 
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -22 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Parametri Ditta Statistiche" -1 -1 76 17
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "@bGestione articoli con codice inesistente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_NO_CODICE
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Includi articoli senza codice"
 | 
			
		||||
  FIELD ArtNoCode
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_NO_MAGAZZINO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 3 "Includi articoli non presenti in anagrafica"
 | 
			
		||||
  FIELD ArtNoAnag
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_NO_RAGGRUPPA
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 4 "Raggruppa articoli senza codice e non presenti in anagrafica"
 | 
			
		||||
  FIELD ArtNoAnagGrp
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "@bGestione tipi riga"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_MERCE
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 7 "Includi righe Merce"
 | 
			
		||||
  FIELD StatMerce
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_PRESTAZIONI
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "Includi righe Prestazioni"
 | 
			
		||||
  FIELD StatPrestazioni
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_OMAGGI
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 9 "Includi righe Omaggi"
 | 
			
		||||
  FIELD StatOmaggi
 | 
			
		||||
  MESSAGE FALSE CLEAR,F_RAGGRUPPA_OMAGGI
 | 
			
		||||
  MESSAGE TRUE ENABLE,F_RAGGRUPPA_OMAGGI
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_RAGGRUPPA_OMAGGI
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 40 9 "Raggruppa Omaggi con Merce"
 | 
			
		||||
  FIELD OmaggioIsMerce
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 7
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 11 "@bRaggruppamento statistiche"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 12 "Tipo documento"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 13 "Anno solare"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 14 "Data documento"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 15 "Articolo"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 16 "Unita' di misura"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_AGENTE
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 40 12 "Agente"
 | 
			
		||||
  FIELD AgentGrp
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_CLIENTE
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 40 13 "Cliente"
 | 
			
		||||
  FIELD ClientGrp
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_GIACENZA
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 40 14 "Giacenza"
 | 
			
		||||
  FIELD GiacGrp
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_MAGAZZINO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 40 15 "Magazzino"
 | 
			
		||||
  FIELD MagazGrp
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										144
									
								
								sv/svlib01.cpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										144
									
								
								sv/svlib01.cpp
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,144 @@
 | 
			
		||||
#include "svlib01.h"
 | 
			
		||||
 | 
			
		||||
#include "doc.h"
 | 
			
		||||
#include "rdoc.h"
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
// TStats_data
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
// TStats_agg
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
int TStats_agg::date2class(const TDate& datadoc) const
 | 
			
		||||
{
 | 
			
		||||
  int classe;
 | 
			
		||||
  if (_frequenza > fs_settimanale)
 | 
			
		||||
  {
 | 
			
		||||
    classe = datadoc.month();
 | 
			
		||||
    if (_frequenza == fs_bimestrale)
 | 
			
		||||
      classe = (classe-1) / 2 + 1;
 | 
			
		||||
    else if (_frequenza == fs_trimestrale)
 | 
			
		||||
      classe = (classe-1) / 3 + 1;
 | 
			
		||||
    else if (_frequenza == fs_quindicinale)
 | 
			
		||||
    {
 | 
			
		||||
      classe = (classe-1) * 2 + 1;
 | 
			
		||||
      if (datadoc.day() > 15) classe++;
 | 
			
		||||
    }  
 | 
			
		||||
  }  
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    const TDate primo(1, 1, datadoc.year());
 | 
			
		||||
    classe = int(datadoc - primo);
 | 
			
		||||
    if (_frequenza == fs_settimanale)
 | 
			
		||||
      classe /= 7;
 | 
			
		||||
    classe++;
 | 
			
		||||
  }  
 | 
			
		||||
  return classe;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TStats_agg::TStats_data& TStats_agg::find(const TRiga_documento& rdoc)
 | 
			
		||||
{
 | 
			
		||||
  const TDocumento& doc = rdoc.doc();
 | 
			
		||||
  const TDate datadoc = doc.get(DOC_DATADOC);
 | 
			
		||||
 | 
			
		||||
  TToken_string key(24);         
 | 
			
		||||
  
 | 
			
		||||
  key = doc.get(DOC_TIPODOC);
 | 
			
		||||
  key.add(datadoc.year()); 
 | 
			
		||||
  key.add(date2class(datadoc));
 | 
			
		||||
  key.add(rdoc.get(RDOC_UMQTA));
 | 
			
		||||
  
 | 
			
		||||
  char tipo = rdoc.tipo().tipo();
 | 
			
		||||
  if (tipo == 'O' && _omaggio_is_merce)
 | 
			
		||||
    tipo = 'M';
 | 
			
		||||
  key.add(tipo);  
 | 
			
		||||
  
 | 
			
		||||
  TString80 codart = rdoc.get(RDOC_CODARTMAG);
 | 
			
		||||
  if (codart.empty()) codart = rdoc.get(RDOC_CODART);
 | 
			
		||||
  key.add(codart);
 | 
			
		||||
  
 | 
			
		||||
  if (_agente)
 | 
			
		||||
    key.add(doc.get(DOC_CODAG));
 | 
			
		||||
 | 
			
		||||
  if (_cliente)
 | 
			
		||||
    key.add(doc.get(DOC_CODCF));
 | 
			
		||||
  
 | 
			
		||||
  if (_giacenza)
 | 
			
		||||
    key.add(doc.get(DOC_CODCF));
 | 
			
		||||
 | 
			
		||||
  if (_magazzino)
 | 
			
		||||
    key.add(doc.get(RDOC_CODMAG));
 | 
			
		||||
    
 | 
			
		||||
  TStats_data* ptr = (TStats_data*)_data.objptr(key);
 | 
			
		||||
  if (ptr == NULL)
 | 
			
		||||
  {
 | 
			
		||||
    ptr = new TStats_data;
 | 
			
		||||
    _data.add(key, ptr);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return *ptr;
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
bool TStats_agg::can_add(const TRiga_documento& rdoc) const
 | 
			
		||||
{
 | 
			
		||||
  bool ok;
 | 
			
		||||
  const char tipo = rdoc.tipo().tipo();
 | 
			
		||||
  switch(tipo)
 | 
			
		||||
  {
 | 
			
		||||
  case 'M': ok = _merce; break;
 | 
			
		||||
  case 'O': ok = _omaggi; break;
 | 
			
		||||
  case 'P': ok = _prestazioni; break;
 | 
			
		||||
  default : ok = FALSE; break;
 | 
			
		||||
  }
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TStats_agg::sub(const TRiga_documento& rdoc)
 | 
			
		||||
{               
 | 
			
		||||
  bool ok = can_add(rdoc);
 | 
			
		||||
  if (ok)
 | 
			
		||||
  {
 | 
			
		||||
    TStats_data& data = find(rdoc);
 | 
			
		||||
    data._quantita -= rdoc.quantita();
 | 
			
		||||
    data._valore -= rdoc.imponibile();
 | 
			
		||||
  }  
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TStats_agg::add(const TRiga_documento& rdoc)
 | 
			
		||||
{ 
 | 
			
		||||
  bool ok = can_add(rdoc);
 | 
			
		||||
  if (ok)   
 | 
			
		||||
  {
 | 
			
		||||
    TStats_data& data = find(rdoc);
 | 
			
		||||
    data._quantita += rdoc.quantita();
 | 
			
		||||
    data._valore += rdoc.imponibile();
 | 
			
		||||
  }
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TStats_agg::update()
 | 
			
		||||
{
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TStats_agg::TStats_agg()
 | 
			
		||||
{
 | 
			
		||||
  TConfig ini(CONFIG_DITTA, "sv");
 | 
			
		||||
  switch(ini.get_char("DataFreq"))
 | 
			
		||||
  {
 | 
			
		||||
  case 'B': _frequenza = fs_bimestrale; break;
 | 
			
		||||
  case 'M': _frequenza = fs_mensile; break;
 | 
			
		||||
  case 'Q': _frequenza = fs_quindicinale; break;
 | 
			
		||||
  case 'S': _frequenza = fs_settimanale; break;
 | 
			
		||||
  case 'T': _frequenza = fs_trimestrale; break;
 | 
			
		||||
  default : _frequenza = fs_giornaliera; break;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  _merce            = ini.get_bool("StatMerce");
 | 
			
		||||
  _prestazioni      = ini.get_bool("StatPrestazioni");
 | 
			
		||||
  _omaggi           = ini.get_bool("StatOmaggi");
 | 
			
		||||
  _omaggio_is_merce = ini.get_bool("OmaggioIsMerce");
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										45
									
								
								sv/svlib01.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								sv/svlib01.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,45 @@
 | 
			
		||||
#ifndef __SVLIB01_H
 | 
			
		||||
#define __SVLIB01_H
 | 
			
		||||
 | 
			
		||||
#ifndef __ASSOC_H
 | 
			
		||||
#include "assoc.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __VELIB_H
 | 
			
		||||
#include "..\ve\velib.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TStats_agg : public TObject
 | 
			
		||||
{
 | 
			
		||||
  enum TFrequenza_statistiche { fs_giornaliera, fs_settimanale, fs_quindicinale,
 | 
			
		||||
                                fs_mensile, fs_bimestrale, fs_trimestrale };
 | 
			
		||||
 | 
			
		||||
  class TStats_data : public TObject
 | 
			
		||||
  {    
 | 
			
		||||
  public:
 | 
			
		||||
    real _quantita, _valore;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  TAssoc_array _data;
 | 
			
		||||
  
 | 
			
		||||
  TFrequenza_statistiche _frequenza;                       
 | 
			
		||||
  bool _merce, _prestazioni, _omaggi, _omaggio_is_merce;
 | 
			
		||||
  bool _agente, _cliente, _articolo, _giacenza, _magazzino;
 | 
			
		||||
  
 | 
			
		||||
protected: 
 | 
			
		||||
  // Converte una data nella classe temporale definita dalla frequenza delle statisitiche
 | 
			
		||||
  int date2class(const TDate& datadoc) const;
 | 
			
		||||
  TStats_agg::TStats_data& find(const TRiga_documento& rdoc);
 | 
			
		||||
  bool can_add(const TRiga_documento& rdoc) const;
 | 
			
		||||
  
 | 
			
		||||
public:   
 | 
			
		||||
  bool sub(const TRiga_documento& rdoc);
 | 
			
		||||
  bool add(const TRiga_documento& rdoc);
 | 
			
		||||
  bool update();
 | 
			
		||||
 | 
			
		||||
  TStats_agg();
 | 
			
		||||
  virtual ~TStats_agg() { }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user