Gestione maschera partite
Aggiunta maschera medesima git-svn-id: svn://10.65.10.50/trunk@1155 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									1939bcdf88
								
							
						
					
					
						commit
						341cf4d165
					
				@ -1023,9 +1023,10 @@ BEGIN
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CODAG 3
 | 
			
		||||
STRING F_CODAG 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 46 15 "Codice agente          "
 | 
			
		||||
  FLAGS "UZ"
 | 
			
		||||
  FIELD LF_CFVEN->CODAG
 | 
			
		||||
  GROUP 7
 | 
			
		||||
  HELP "Codice dell'agente di cui si serve il cliente"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								cg/cg2100.h
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								cg/cg2100.h
									
									
									
									
									
								
							@ -131,13 +131,37 @@
 | 
			
		||||
 | 
			
		||||
#define S_ANNO        101
 | 
			
		||||
#define S_NUM         102
 | 
			
		||||
#define S_SCADENZE    103
 | 
			
		||||
 | 
			
		||||
#define S_RATA        101
 | 
			
		||||
#define S_DATA        102
 | 
			
		||||
#define S_IMPORTOVAL  103
 | 
			
		||||
#define S_IMPORTO     104
 | 
			
		||||
#define S_DESCR       105
 | 
			
		||||
#define S_TIPO        106
 | 
			
		||||
#define S_DATADOC     103
 | 
			
		||||
#define S_NUMPROT     104
 | 
			
		||||
#define S_NUMDOC      105
 | 
			
		||||
#define S_DESCR       106
 | 
			
		||||
#define S_RATA        107
 | 
			
		||||
#define S_DATASCAD    108
 | 
			
		||||
#define S_IMPORTO     109
 | 
			
		||||
#define S_IMPORTOVAL  110
 | 
			
		||||
#define S_SEZIONE     111
 | 
			
		||||
#define S_IMPORTOPAG  112
 | 
			
		||||
#define S_RITENUTE    113
 | 
			
		||||
#define S_SEZRITENUTE 114
 | 
			
		||||
#define S_SALDOACC    115
 | 
			
		||||
#define S_RESIDUO     116
 | 
			
		||||
#define S_DATAPAG     117
 | 
			
		||||
#define S_CODPAG      118
 | 
			
		||||
#define S_TIPOPAG     119
 | 
			
		||||
#define S_TIPO        120 
 | 
			
		||||
#define S_GRUPPO      121
 | 
			
		||||
#define S_CONTO       122 
 | 
			
		||||
#define S_SOTTOCONTO  123
 | 
			
		||||
#define S_DESCRCONTO  124 
 | 
			
		||||
#define S_DESCAGG     125
 | 
			
		||||
#define S_VSABI       126 
 | 
			
		||||
#define S_VSCAB       127
 | 
			
		||||
#define S_DESCVSABI   128 
 | 
			
		||||
#define S_AGENTE      129
 | 
			
		||||
#define S_DESCAGENTE  130
 | 
			
		||||
#define S_NSABI       131 
 | 
			
		||||
#define S_NSCAB       132 
 | 
			
		||||
#define S_DESCNSABI   133
 | 
			
		||||
#define S_DESPAG      134
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										316
									
								
								cg/cg2100s.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										316
									
								
								cg/cg2100s.uml
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,316 @@
 | 
			
		||||
#include "cg2100.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "" 0 20 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_CANCEL 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -22 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PAGE "Pagamento" -1 -1 77 20
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 0 "@BPartita"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_ANNO 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 "Anno partita "  
 | 
			
		||||
  FLAGS "RD"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_NUM 7
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 38 1 "Numero partita "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESCR 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 2 "Descrizione "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_RATA 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 3 "Rata    "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
                                                                                        
 | 
			
		||||
DATE S_DATASCAD
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 20 3 "Data    "  
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
            
 | 
			
		||||
NUMBER S_RESIDUO 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 44 3 "Residuo          "
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END         
 | 
			
		||||
            
 | 
			
		||||
NUMBER S_IMPORTOVAL 15 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 4 "Importo in valuta "
 | 
			
		||||
  PICTURE ".3"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_IMPORTO 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 44 4 "Importo in lire  "
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END         
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 13
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "@BPagamento"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_IMPORTOPAG 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 7 "Importo pagamento "
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  FIELD IMPORTOPAG
 | 
			
		||||
END         
 | 
			
		||||
 | 
			
		||||
NUMBER S_IMPORTOPAG 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 38 7 "Ritenute professionali "
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  FIELD RITENUTE
 | 
			
		||||
END         
 | 
			
		||||
 | 
			
		||||
BOOLEAN S_SALDOACC
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 8 "Saldo "
 | 
			
		||||
  FIELD SALDOACC     
 | 
			
		||||
END         
 | 
			
		||||
 | 
			
		||||
DATE S_DATAPAG
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 38 8 "Data pagamento    "
 | 
			
		||||
  FIELD DATAPAG
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_CODPAG 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 9 "Pagamento "
 | 
			
		||||
  FLAGS "UZ"
 | 
			
		||||
  USE CPG
 | 
			
		||||
  INPUT CODTAB S_CODPAG
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  DISPLAY "Tipo" I0
 | 
			
		||||
  OUTPUT S_CODPAG CODTAB
 | 
			
		||||
  OUTPUT S_DESPAG S0
 | 
			
		||||
  OUTPUT S_TIPOPAG I0
 | 
			
		||||
  FIELD CODPAG
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESPAG 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 24 9 ""
 | 
			
		||||
  USE CPG KEY 2
 | 
			
		||||
  INPUT S0 S_DESPAG
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Tipo" I0
 | 
			
		||||
  COPY OUTPUT S_CODPAG
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST S_TIPOPAG 2 40
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 10 "Tipo pagamento "
 | 
			
		||||
  ITEM "1|Rimessa Diretta"
 | 
			
		||||
  ITEM "2|Tratta"
 | 
			
		||||
  ITEM "3|Ricevuta Bancaria"
 | 
			
		||||
  ITEM "4|Cessione"
 | 
			
		||||
  ITEM "5|Paghero'"
 | 
			
		||||
  ITEM "6|Lettera di credito"
 | 
			
		||||
  ITEM "7|Tratta accettata"
 | 
			
		||||
  ITEM "8|Rapporti interbancari diretti"
 | 
			
		||||
  ITEM "9|Bonifico"
 | 
			
		||||
  ITEM "10|Altro"  
 | 
			
		||||
  FIELD TIPOPAG
 | 
			
		||||
END
 | 
			
		||||
             
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 11 "@bConto di contropartita"
 | 
			
		||||
END             
 | 
			
		||||
             
 | 
			
		||||
LIST S_TIPO 1 12
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 12 "Tipo "
 | 
			
		||||
  ITEM " |Conto"
 | 
			
		||||
  ITEM "C|Cliente"
 | 
			
		||||
  ITEM "F|Fornitore"
 | 
			
		||||
  FIELD TIPOCF
 | 
			
		||||
  FLAGS "H"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_GRUPPO 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 28 11 "Gruppo "
 | 
			
		||||
  FIELD GRUPPO
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_CONTO 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 44 11 "Conto "
 | 
			
		||||
  FIELD CONTO
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_SOTTOCONTO 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 58 11 "Sottoconto "
 | 
			
		||||
  FIELD SOTTOCONTO
 | 
			
		||||
  USE LF_PCON
 | 
			
		||||
  INPUT GRUPPO S_GRUPPO
 | 
			
		||||
  INPUT CONTO S_CONTO
 | 
			
		||||
  INPUT SOTTOCONTO S_SOTTOCONTO
 | 
			
		||||
  DISPLAY "Gruppo" GRUPPO
 | 
			
		||||
  DISPLAY "Conto" CONTO
 | 
			
		||||
  DISPLAY "Sottoconto" SOTTOCONTO
 | 
			
		||||
  DISPLAY "Descrizione@50" DESCR
 | 
			
		||||
  OUTPUT S_GRUPPO GRUPPO
 | 
			
		||||
  OUTPUT S_CONTO CONTO
 | 
			
		||||
  OUTPUT S_SOTTOCONTO SOTTOCONTO
 | 
			
		||||
  OUTPUT S_DESCRCONTO DESCR
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESCRCONTO 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 12 "Descrizione conto      "
 | 
			
		||||
  USE LF_PCON KEY 2
 | 
			
		||||
  INPUT DESCR S_DESCRCONTO
 | 
			
		||||
  DISPLAY "Descrizione@50" DESCR
 | 
			
		||||
  DISPLAY "Gruppo" GRUPPO
 | 
			
		||||
  DISPLAY "Conto" CONTO
 | 
			
		||||
  DISPLAY "Sottoconto" SOTTOCONTO
 | 
			
		||||
  COPY OUTPUT S_SOTTOCONTO
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESCAGG 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 14 "Descrizione aggiuntiva "
 | 
			
		||||
  FIELD DESCAGG
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_VSABI 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 15 "Vostra Banca - ABI "
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
  USE %BAN
 | 
			
		||||
  INPUT CODTAB[1,5] S_VSABI
 | 
			
		||||
  INPUT CODTAB[6,10] S_VSCAB
 | 
			
		||||
  DISPLAY "ABI@5" CODTAB[1,5]
 | 
			
		||||
  DISPLAY "CAB@5" CODTAB[6,10]
 | 
			
		||||
  DISPLAY "Denominazione@50" S0
 | 
			
		||||
  OUTPUT S_VSABI CODTAB[1,5]
 | 
			
		||||
  OUTPUT S_VSCAB CODTAB[6,10]
 | 
			
		||||
  OUTPUT S_DESCVSABI S0
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD VSABI
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_VSCAB 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 30 15 "CAB "
 | 
			
		||||
  FLAGS "Z"            
 | 
			
		||||
  COPY ALL S_VSABI
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  FIELD VSCAB
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESCVSABI 50 32
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 42 15 ""
 | 
			
		||||
  USE %BAN KEY 2
 | 
			
		||||
  INPUT S0 S_DESCVSABI
 | 
			
		||||
  DISPLAY "Denominazione@50" S0
 | 
			
		||||
  DISPLAY "ABI@5" CODTAB[1,5]
 | 
			
		||||
  DISPLAY "CAB@5" CODTAB[6,10]
 | 
			
		||||
  COPY OUTPUT S_VSABI
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_AGENTE 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 16 "Agente "
 | 
			
		||||
  FLAGS "UZ"
 | 
			
		||||
  USE AGE
 | 
			
		||||
  INPUT CODTAB S_AGENTE
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione @50" S0
 | 
			
		||||
  OUTPUT S_AGENTE CODTAB
 | 
			
		||||
  OUTPUT S_DESCAGENTE S0
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  FIELD AGENTE
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESCAGENTE 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 24 16 ""
 | 
			
		||||
  USE AGE KEY 2
 | 
			
		||||
  INPUT S0 S_DESCAGENTE
 | 
			
		||||
  DISPLAY "Descrizione @50" S0
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  COPY OUTPUT S_AGENTE
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NUMBER S_NSABI 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 17 "Nostra Banca - ABI "
 | 
			
		||||
  FLAGS "Z"      
 | 
			
		||||
  COPY USE S_VSABI
 | 
			
		||||
  INPUT CODTAB[1,5] S_NSABI
 | 
			
		||||
  INPUT CODTAB[6,10] S_NSCAB
 | 
			
		||||
  COPY DISPLAY S_VSABI
 | 
			
		||||
  OUTPUT S_NSABI CODTAB[1,5]
 | 
			
		||||
  OUTPUT S_NSCAB CODTAB[6,10]
 | 
			
		||||
  FIELD NSABI 
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_VSCAB 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 30 17 "CAB "
 | 
			
		||||
  FLAGS "Z"
 | 
			
		||||
  COPY ALL S_NSABI
 | 
			
		||||
  FIELD NSCAB
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING S_DESCNSABI 50 32
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 42 15 ""
 | 
			
		||||
  COPY USE S_DESCVSABI
 | 
			
		||||
  INPUT S0 S_DESCNSABI
 | 
			
		||||
  COPY DISPLAY S_DESCVSABI
 | 
			
		||||
  COPY OUTPUT S_NSABI
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
@ -93,9 +93,8 @@ bool TPrimanota_application::showpartite_handler(TMask_field& f, KEY k)
 | 
			
		||||
  if (k == K_SPACE) 
 | 
			
		||||
  {                                            
 | 
			
		||||
    TSheet_field& s = app().cgs();
 | 
			
		||||
    TToken_string& r = s.row(s.selected());
 | 
			
		||||
    const TBill c(r, 2, 0x1); 
 | 
			
		||||
    app().edit_partite(c);
 | 
			
		||||
    const int riga = s.selected();
 | 
			
		||||
    app().edit_partite(riga);
 | 
			
		||||
  }           
 | 
			
		||||
  
 | 
			
		||||
  return TRUE;
 | 
			
		||||
 | 
			
		||||
@ -208,7 +208,10 @@ protected:
 | 
			
		||||
  void  set_scadenze(TMask& m);
 | 
			
		||||
  bool  read_scadenze(const TMask& m);
 | 
			
		||||
  void  write_scadenze(const TMask& m);
 | 
			
		||||
  bool  edit_partite(const TBill& b);
 | 
			
		||||
  
 | 
			
		||||
  bool edit_partite(int riga);
 | 
			
		||||
  bool edit_scadenze(int riga, const TBill& b, int anno, const char* num);
 | 
			
		||||
  bool edit_pagamento(const TRectype& parbas, const TRectype& scaden, TRectype& part);
 | 
			
		||||
 | 
			
		||||
  static TPrimanota_application& app() { return (TPrimanota_application&)main_app(); }        
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										221
									
								
								cg/cg2104.cpp
									
									
									
									
									
								
							
							
						
						
									
										221
									
								
								cg/cg2104.cpp
									
									
									
									
									
								
							@ -10,6 +10,7 @@
 | 
			
		||||
#include "cg21sld.h"
 | 
			
		||||
#include "pagament.h"
 | 
			
		||||
 | 
			
		||||
#include <clifo.h>
 | 
			
		||||
#include <partite.h>
 | 
			
		||||
#include <scadenze.h>
 | 
			
		||||
 | 
			
		||||
@ -492,14 +493,17 @@ void TPrimanota_application::write_scadenze(const TMask& m)
 | 
			
		||||
// Sheet partite
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::edit_partite(const TBill& b)
 | 
			
		||||
bool TPrimanota_application::edit_partite(int riga)
 | 
			
		||||
{                                   
 | 
			
		||||
  begin_wait();
 | 
			
		||||
  
 | 
			
		||||
  TToken_string& cgr = cgs().row(riga);
 | 
			
		||||
  const TBill b(cgr, 2, 0x3);           // Legge il conto della riga selezionata
 | 
			
		||||
  
 | 
			
		||||
  TString80 caption("Partite aperte del conto "); 
 | 
			
		||||
  caption << b.gruppo() << ' '  << b.conto() << ' ' << b.sottoconto();
 | 
			
		||||
  
 | 
			
		||||
  TArray_sheet a(-1, -1, 0, 0, caption, "Anno|Numero@7|Descrizione@50|Importo@15R|Sezione");
 | 
			
		||||
  TArray_sheet a(-1, -1, 0, 0, caption, "Anno|Numero@7|Descrizione@50|Importo@15R|Sezione", 0x8);
 | 
			
		||||
 | 
			
		||||
  TLocalisamfile partita(LF_PARTITE);
 | 
			
		||||
  partita.setkey(2);                    // Chiave per conto
 | 
			
		||||
@ -512,7 +516,7 @@ bool TPrimanota_application::edit_partite(const TBill& b)
 | 
			
		||||
  }
 | 
			
		||||
  else b.put(partita.curr());           // Scrive completamente i conti normali
 | 
			
		||||
 | 
			
		||||
  TRectype recpar(partita.curr());   // Record campione
 | 
			
		||||
  const TRectype recpar(partita.curr());// Record campione
 | 
			
		||||
 | 
			
		||||
  int ult, anno;                        // Anno ultima partita
 | 
			
		||||
  TString16 last, num;                  // Ultimo numero partita e numero corrente         
 | 
			
		||||
@ -555,45 +559,55 @@ bool TPrimanota_application::edit_partite(const TBill& b)
 | 
			
		||||
  
 | 
			
		||||
  end_wait();
 | 
			
		||||
 | 
			
		||||
  const KEY k = a.items() > 0 ? a.run() : K_ESC;
 | 
			
		||||
  if (k != K_ENTER) 
 | 
			
		||||
    return FALSE;
 | 
			
		||||
  KEY k = a.items() > 0 ? K_ENTER : K_ESC;               // Esce se non ci sono righe
 | 
			
		||||
  while (k == K_ENTER)
 | 
			
		||||
  {
 | 
			
		||||
    k = a.run();
 | 
			
		||||
    if (k == K_ENTER) 
 | 
			
		||||
    {
 | 
			
		||||
      const int anno = a.row().get_int(0);
 | 
			
		||||
      const TString16 num = a.row().get(1);
 | 
			
		||||
      edit_scadenze(riga, b, anno, num);                    //  Edita pagamenti
 | 
			
		||||
    }  
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  anno = a.row().get_int(0);
 | 
			
		||||
  num  = a.row().get(1);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  TMask m("cg2100s");
 | 
			
		||||
  m.set(S_ANNO, anno);
 | 
			
		||||
  m.set(S_NUM, num);
 | 
			
		||||
  
 | 
			
		||||
  TSheet_field& s = (TSheet_field&)m.field(S_SCADENZE);
 | 
			
		||||
  TString_array& sr = s.rows_array();
 | 
			
		||||
// Edit scadenze relative all'anno/numero partita specificati 
 | 
			
		||||
bool TPrimanota_application::edit_scadenze(int currig, const TBill& b, int anno, const char* num)
 | 
			
		||||
{ 
 | 
			
		||||
  TString caption; caption.format("Pagamenti della partita %s dell'anno %d", num, anno); 
 | 
			
		||||
  TArray_sheet a(-1, -1, 0, 0, caption, "Rata|Data@10|Importo@15|Descrizione@50|Tipo", 0x8);
 | 
			
		||||
  
 | 
			
		||||
  TLocalisamfile scadenza(LF_SCADENZE);
 | 
			
		||||
  scadenza.zero(); scadenza.put(SCAD_ANNO, anno); scadenza.put(SCAD_NUMPART, num);
 | 
			
		||||
  
 | 
			
		||||
  const TRectype recsca(scadenza.curr());
 | 
			
		||||
  
 | 
			
		||||
  for (err = scadenza.read(_isgteq); 
 | 
			
		||||
  TToken_string r(80);
 | 
			
		||||
  for (int err = scadenza.read(_isgteq); 
 | 
			
		||||
       err == NOERR && scadenza.curr() == recsca; 
 | 
			
		||||
       err = scadenza.next())
 | 
			
		||||
  {
 | 
			
		||||
    r.cut(0);
 | 
			
		||||
    r.add(scadenza.get(SCAD_NRATA));
 | 
			
		||||
    r.add(scadenza.get(SCAD_DATASCAD));
 | 
			
		||||
    r.add(scadenza.get(SCAD_IMPORTOVAL));
 | 
			
		||||
    r.add(scadenza.get(SCAD_IMPORTO));
 | 
			
		||||
    r.add("");
 | 
			
		||||
    r.add("S");
 | 
			
		||||
    sr.add(r);
 | 
			
		||||
    r.add("");
 | 
			
		||||
    a.add(r);
 | 
			
		||||
  }     
 | 
			
		||||
  
 | 
			
		||||
  TLocalisamfile partita(LF_PARTITE);
 | 
			
		||||
  partita.setkey(1);
 | 
			
		||||
  partita.zero(); partita.put(PART_ANNO, anno); partita.put(PART_NUMPART, num);
 | 
			
		||||
  recpar = partita.curr();
 | 
			
		||||
  const TRectype recpar(partita.curr());
 | 
			
		||||
  
 | 
			
		||||
  const TString16 curreg(curr_mask().get(F_NUMREG));	// Numero registrazione corrente
 | 
			
		||||
  desc.cut(0);
 | 
			
		||||
  TString desc;                                       // Descrizione di default
 | 
			
		||||
  
 | 
			
		||||
  TRectype parbas(recpar);
 | 
			
		||||
  
 | 
			
		||||
  for (err = partita.read(_isgteq); err == NOERR && partita.curr() == recpar; err = partita.next())
 | 
			
		||||
  {
 | 
			
		||||
@ -601,20 +615,22 @@ bool TPrimanota_application::edit_partite(const TBill& b)
 | 
			
		||||
    
 | 
			
		||||
    if (desc.empty()) 
 | 
			
		||||
    {
 | 
			
		||||
      parbas = partita.curr();                        // Memorizza parita base
 | 
			
		||||
 | 
			
		||||
      desc = partita.get(PART_DESCR);                 // Aggiorna descrizione scadenze
 | 
			
		||||
      for (int i = 0; i < sr.items(); i++) 
 | 
			
		||||
      for (int i = 0; i < a.items(); i++) 
 | 
			
		||||
      {
 | 
			
		||||
        TToken_string& t = sr.row(i);
 | 
			
		||||
        if (t.get(S_DESCR-101)[0] <= ' ')
 | 
			
		||||
          t.add(desc, S_DESCR-101);
 | 
			
		||||
        TToken_string& t = a.row(i);
 | 
			
		||||
        if (t.get(3)[0] <= ' ')
 | 
			
		||||
          t.add(desc, 3);
 | 
			
		||||
      }    
 | 
			
		||||
    }  
 | 
			
		||||
    
 | 
			
		||||
    if (rata < 1 || partita.get(PART_REG).not_empty()) 
 | 
			
		||||
      continue;
 | 
			
		||||
    
 | 
			
		||||
    for (int i = sr.items()-1; i >= 0; i--)           // Cerca scadenza corrispondente
 | 
			
		||||
      if (sr.row(i).get_int(0) == rata) break;
 | 
			
		||||
    for (long i = a.items()-1; i >= 0; i--)           // Cerca scadenza corrispondente
 | 
			
		||||
      if (a.row(i).get_int(0) == rata) break;
 | 
			
		||||
 | 
			
		||||
    if (i < 0)
 | 
			
		||||
      error_box("Non esiste una scadenza per la rata %d", rata);
 | 
			
		||||
@ -622,18 +638,157 @@ bool TPrimanota_application::edit_partite(const TBill& b)
 | 
			
		||||
    r.cut(0);
 | 
			
		||||
    r.add(rata);
 | 
			
		||||
    r.add(partita.get(PART_DATADOC));
 | 
			
		||||
    r.add(partita.get(PART_IMPORTOVAL));
 | 
			
		||||
    r.add(partita.get(PART_IMPORTO));
 | 
			
		||||
    r.add(desc);
 | 
			
		||||
    r.add("P");
 | 
			
		||||
    i = sr.insert(r, i >= 0 ? i+1 : -1);
 | 
			
		||||
    r.add(partita.get(PART_NRIGA));
 | 
			
		||||
    i = a.insert(r, i >= 0 ? i+1 : -1);
 | 
			
		||||
      
 | 
			
		||||
    if (partita.get(PART_NREG) != curreg)
 | 
			
		||||
      s.disable_cell(i, -1);
 | 
			
		||||
    if (partita.get(PART_NREG) != curreg || partita.get_int(PART_NRIGA) != currig) 
 | 
			
		||||
      a.disable(i);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  s.force_update();
 | 
			
		||||
  m.run();
 | 
			
		||||
  KEY k = a.items() > 0 ? K_ENTER : K_ESC;               // Esce se non ci sono righe
 | 
			
		||||
  while (k == K_ENTER)
 | 
			
		||||
  {
 | 
			
		||||
    k = a.run();     
 | 
			
		||||
    if (k == K_ENTER)
 | 
			
		||||
    {
 | 
			
		||||
      const int rata = a.row().get_int(0);
 | 
			
		||||
      scadenza.zero(); 
 | 
			
		||||
      scadenza.put(SCAD_ANNO, anno); 
 | 
			
		||||
      scadenza.put(SCAD_NUMPART, num); 
 | 
			
		||||
      scadenza.put(SCAD_NRATA, rata);
 | 
			
		||||
      err = scadenza.read();
 | 
			
		||||
      CHECKD(err == NOERR, "Non ritrovo piu' la rata ", rata);
 | 
			
		||||
      
 | 
			
		||||
      int nrig = a.row().get_int(4);
 | 
			
		||||
      if (nrig == 0)                                       // Ho cliccato su una scadenza
 | 
			
		||||
      {
 | 
			
		||||
        for (long i = a.selected()+1; i < a.items(); i++)  // Cerca pagamento
 | 
			
		||||
        {
 | 
			
		||||
          const int r = a.row(i).get_int(4);
 | 
			
		||||
          if (r == 0 || a.enabled(i)) 
 | 
			
		||||
          {
 | 
			
		||||
            nrig = r;
 | 
			
		||||
            break;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      } 
 | 
			
		||||
      
 | 
			
		||||
      TRectype part(parbas);
 | 
			
		||||
      if (nrig == 0)                         // Inserimento di un nuovo pagamento
 | 
			
		||||
        part.zero();
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
      }  
 | 
			
		||||
       
 | 
			
		||||
      if (edit_pagamento(parbas, scadenza.curr(), part))
 | 
			
		||||
      {
 | 
			
		||||
        err = (nrig == 0) ? partita.write(part) : partita.rewrite(part);
 | 
			
		||||
      }
 | 
			
		||||
    }  
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::edit_pagamento(const TRectype& parbas, 
 | 
			
		||||
                                            const TRectype& scaden, 
 | 
			
		||||
                                            TRectype& part)
 | 
			
		||||
{
 | 
			
		||||
  TMask m("cg2100s");    
 | 
			
		||||
  
 | 
			
		||||
  TRelation rel(LF_PARTITE);               // Working relation
 | 
			
		||||
  
 | 
			
		||||
  rel.lfile().curr() = part;
 | 
			
		||||
  
 | 
			
		||||
  const real importo(scaden.get(SCAD_IMPORTO));
 | 
			
		||||
  const real importopag(part.get(SCAD_IMPORTO));
 | 
			
		||||
  const real ritenute(part.get(PART_RITENUTE));
 | 
			
		||||
  const real residuo = importo - importopag;
 | 
			
		||||
  
 | 
			
		||||
  m.set(S_RESIDUO, residuo.string());
 | 
			
		||||
  m.set(S_DATADOC, parbas.get(PART_DATADOC));
 | 
			
		||||
  m.set(S_NUMPROT, parbas.get(PART_PROTIVA));
 | 
			
		||||
  m.set(S_NUMDOC,  parbas.get(PART_NUMDOC));
 | 
			
		||||
  m.set(S_DESCR,   parbas.get(PART_DESCR));
 | 
			
		||||
  
 | 
			
		||||
  m.set(S_RATA,       scaden.get(SCAD_NRATA));
 | 
			
		||||
  m.set(S_DATASCAD,   scaden.get(SCAD_DATASCAD));
 | 
			
		||||
  m.set(S_IMPORTO,    scaden.get(SCAD_IMPORTO));
 | 
			
		||||
  m.set(S_IMPORTOVAL, scaden.get(SCAD_IMPORTOVAL));
 | 
			
		||||
  m.set(S_SEZIONE,    parbas.get(PART_SEZ));
 | 
			
		||||
  m.set(S_IMPORTOPAG, importopag.string());
 | 
			
		||||
                        
 | 
			
		||||
  if (part.empty())	                       // Insert mode
 | 
			
		||||
  {
 | 
			
		||||
    TString80 tmp;                      
 | 
			
		||||
    
 | 
			
		||||
    tmp = curr_mask().get(F_DATAREG);
 | 
			
		||||
    m.set(S_DATAPAG, tmp);
 | 
			
		||||
  
 | 
			
		||||
    tmp = scaden.get(SCAD_CODPAG);
 | 
			
		||||
    m.set(S_CODPAG, tmp);
 | 
			
		||||
 | 
			
		||||
    tmp = scaden.get(SCAD_TIPOPAG);
 | 
			
		||||
    m.set(S_TIPOPAG, tmp);
 | 
			
		||||
  
 | 
			
		||||
    int caus = 2;        // Calcola riga causale
 | 
			
		||||
    switch (atoi(tmp))
 | 
			
		||||
    {       
 | 
			
		||||
    case 2:
 | 
			
		||||
      caus = 3; break;   // Tratta
 | 
			
		||||
    case 3:
 | 
			
		||||
      caus = 4; break;   // Ricevuta bancaria
 | 
			
		||||
    case 4:
 | 
			
		||||
      caus = 5; break;   // Cessione
 | 
			
		||||
    case 5:
 | 
			
		||||
      caus = 6; break;   // Paghero'
 | 
			
		||||
    case 6:
 | 
			
		||||
      caus = 7; break;   // Fattura di credito
 | 
			
		||||
    case 7:
 | 
			
		||||
      caus = 3; break;   // Tratta  accettata
 | 
			
		||||
    case 1:              // Rimessa
 | 
			
		||||
    case 8:              // Rapporti interbancari diretti
 | 
			
		||||
    case 9:              // Bonifico
 | 
			
		||||
    default:
 | 
			
		||||
      caus = 2; break;  
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    TBill bill; causale().bill(caus, bill);
 | 
			
		||||
    m.set(S_TIPO,       bill.tipo());
 | 
			
		||||
    m.set(S_GRUPPO,     bill.gruppo());
 | 
			
		||||
    m.set(S_CONTO,      bill.conto());
 | 
			
		||||
    m.set(S_SOTTOCONTO, bill.sottoconto());
 | 
			
		||||
  
 | 
			
		||||
    tmp = curr_mask().get(F_DESCR);
 | 
			
		||||
    m.set(S_DESCR, tmp);
 | 
			
		||||
  
 | 
			
		||||
    bill.get(parbas);
 | 
			
		||||
    if (bill.tipo() > ' ')
 | 
			
		||||
    {
 | 
			
		||||
      TLocalisamfile clifo(LF_CLIFO);
 | 
			
		||||
      clifo.put(CLI_TIPOCF, bill.tipo());
 | 
			
		||||
      clifo.put(CLI_CODCF, bill.codclifo());
 | 
			
		||||
      tmp = clifo.get(CLI_CODABI);
 | 
			
		||||
      m.set(S_VSABI, tmp);
 | 
			
		||||
      tmp = clifo.get(CLI_CODBAN);
 | 
			
		||||
      m.set(S_VSCAB, tmp);
 | 
			
		||||
      tmp = clifo.get(CLI_CODAG);
 | 
			
		||||
      m.set(S_AGENTE, tmp);
 | 
			
		||||
    }
 | 
			
		||||
    tmp = scaden.get(SCAD_CODABIPR);
 | 
			
		||||
    m.set(S_NSABI, tmp);
 | 
			
		||||
    tmp = scaden.get(SCAD_CODCABPR);
 | 
			
		||||
    m.set(S_NSCAB, tmp);
 | 
			
		||||
  }
 | 
			
		||||
          
 | 
			
		||||
  const KEY key = m.run();
 | 
			
		||||
  if (key == K_ENTER)
 | 
			
		||||
  {
 | 
			
		||||
    m.autosave(&rel);
 | 
			
		||||
    part = rel.lfile().curr();
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  return key == K_ENTER;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -88,6 +88,7 @@ const char* TBill::file2type(int num) const
 | 
			
		||||
  switch (num)
 | 
			
		||||
  {
 | 
			
		||||
  case LF_PARTITE:
 | 
			
		||||
  case LF_SCADENZE:
 | 
			
		||||
    t = "TIPOCF"; break;
 | 
			
		||||
  default:
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
@ -44,6 +44,7 @@ public:
 | 
			
		||||
  int gruppo() const { return _gruppo; }
 | 
			
		||||
  int conto() const { return _conto; }
 | 
			
		||||
  long sottoconto() const { return _sottoconto; }
 | 
			
		||||
  long codclifo() const { return _sottoconto; }
 | 
			
		||||
  
 | 
			
		||||
  bool find();
 | 
			
		||||
  const TString& descrizione();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user