Corretta gestione ulteriori classificazioni

git-svn-id: svn://10.65.10.50/trunk@2098 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-11-07 10:03:02 +00:00
parent 6ffb5fc2b5
commit 01f6871d6b
4 changed files with 55 additions and 10 deletions

View File

@ -37,6 +37,7 @@ BEGIN
PROMPT 1 5 "Tipo pagamento " PROMPT 1 5 "Tipo pagamento "
SHEET "Codice|Tipo pagamento@32" SHEET "Codice|Tipo pagamento@32"
INPUT 105 INPUT 105
ITEM " |Altro pagamento"
ITEM "1|Rimessa diretta o contanti" ITEM "1|Rimessa diretta o contanti"
ITEM "2|Tratta" ITEM "2|Tratta"
ITEM "3|Ricevuta Bancaria" ITEM "3|Ricevuta Bancaria"
@ -44,14 +45,15 @@ BEGIN
ITEM "5|Paghero'" ITEM "5|Paghero'"
ITEM "6|Lettera di credito" ITEM "6|Lettera di credito"
ITEM "7|Tratta accettata" ITEM "7|Tratta accettata"
ITEM "8|Altro pagamento" ITEM "8|Rapporti interban. diretti"
ITEM "9|Bonifici"
OUTPUT 105 OUTPUT 105
OUTPUT 107 OUTPUT 107
END END
STRING 106 1 STRING 106 1
BEGIN BEGIN
PROMPT 1 6 "Ulter. class. " PROMPT 21 5 "Ulter. class. "
USE %CLR USE %CLR
INPUT CODTAB[1,1] 105 SELECT INPUT CODTAB[1,1] 105 SELECT
INPUT CODTAB[2,2] 106 INPUT CODTAB[2,2] 106
@ -62,7 +64,7 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING 107 32 STRING 107 50 32
BEGIN BEGIN
PROMPT 1 6 "Descrizione " PROMPT 1 6 "Descrizione "
FLAGS "D" FLAGS "D"

View File

@ -1,3 +1,4 @@
#include <applicat.h>
#include <utility.h> #include <utility.h>
#include "pagament.h" #include "pagament.h"
@ -599,7 +600,7 @@ const char* TPagamento::desc_tipo(int tipo, char ulc) const
{ {
case 1: o = "Rimessa diretta o contanti"; break; case 1: o = "Rimessa diretta o contanti"; break;
case 2: o = "Tratta"; break; case 2: o = "Tratta"; break;
case 3: o = "Ricevuta bancaria"; break; case 3: o = "Ricevuta Bancaria"; break;
case 4: o = "Cessione"; break; case 4: o = "Cessione"; break;
case 5: o = "Paghero'"; break; case 5: o = "Paghero'"; break;
case 6: o = "Lettera di credito"; break; case 6: o = "Lettera di credito"; break;
@ -1232,6 +1233,8 @@ int TPagamento::remove(TTable& r)
void TPagamento::set_rate_auto() void TPagamento::set_rate_auto()
{ {
main_app().begin_wait();
// vedi rate esistenti e tipo prima rata // vedi rate esistenti e tipo prima rata
// deve fare riferimento ad un tipo pagamento esistente // deve fare riferimento ad un tipo pagamento esistente
// e sensato // e sensato
@ -1278,6 +1281,8 @@ void TPagamento::set_rate_auto()
// prima rata // prima rata
if (_tpr > 0 && _tpr < 4) if (_tpr > 0 && _tpr < 4)
set_imprata(0, tpay_rata(0) + _secndr); set_imprata(0, tpay_rata(0) + _secndr);
main_app().end_wait();
} }
@ -1337,6 +1342,8 @@ void TPagamento::set_total(const real& imponibile, const real& imposta, const re
void TPagamento::set_sheet(TSheet_field& sf, int sscad) void TPagamento::set_sheet(TSheet_field& sf, int sscad)
{ {
main_app().begin_wait();
if (_inited && _rate.items() > 0) if (_inited && _rate.items() > 0)
{ {
const bool in_valuta = _cambio != 1.0; const bool in_valuta = _cambio != 1.0;
@ -1369,16 +1376,19 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad)
ts.add(paid ? "X" : "", 11); // 11 - Pagaya ts.add(paid ? "X" : "", 11); // 11 - Pagaya
} }
// destroy remaining // destroy remaining but avoid screen update by now
while (sf.items() > i) TString_array& arr = sf.rows_array();
sf.destroy(sf.items()-1); for (int d = arr.items()-1; d >= i; d--)
arr.destroy(d);
sf.enable_column(2, in_valuta); sf.enable_column(2, in_valuta);
} }
else else
if (_rate.items() > 0) // not inited: set edit sheet if (_rate.items() > 0) // not inited: set edit sheet
{ {
if (sf.items() > 0) sf.destroy(); TString_array& arr = sf.rows_array();
arr.destroy(); // Avoid screen update by now
for (int i = 0, scr = 0; i < n_rate(); i++) for (int i = 0, scr = 0; i < n_rate(); i++)
{ {
TToken_string& s = sf.row(-1); TToken_string& s = sf.row(-1);
@ -1430,6 +1440,7 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad)
} }
sf.force_update(); sf.force_update();
main_app().end_wait();
} }
TPagamento::TPagamento(const char* codtab, const char* data) : TPagamento::TPagamento(const char* codtab, const char* data) :

View File

@ -600,6 +600,9 @@ int TRiga_partite::rata_con_abbuoni_diffcam() const
// TPartita // TPartita
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
char TPartita::_cli_align = 'L';
char TPartita::_for_align = 'L';
TPartita::TPartita(const TBill& clifo, int anno, const char* num) TPartita::TPartita(const TBill& clifo, int anno, const char* num)
: _part(LF_PARTITE, PART_NRIGA), _unassigned(LF_PAGSCA, "NRIGP") : _part(LF_PARTITE, PART_NRIGA), _unassigned(LF_PAGSCA, "NRIGP")
{ {
@ -641,6 +644,24 @@ int TPartita::compare(const TSortable& s) const
return strcmp(key, par); return strcmp(key, par);
} }
void TPartita::modifica_allineamento(char ac, char af)
{
CHECK(ac == 'L' || ac == 'R', "Allineamento clienti errato");
_cli_align = ac;
CHECK(af == 'L' || af == 'R', "Allineamento fornitori errato");
_for_align = af;
}
// Ritorna l'allineamento corrente del numero partita
// L = Sinistra, R = Destra, ' ' = indeterminato
char TPartita::allineamento_corrente() const
{
char all = numero()[0] == ' ' ? 'R' : 'L';
if (all == 'L' && numero()[6] != ' ')
all = ' ';
return all;
}
// Costruisce le righe della partita // Costruisce le righe della partita
bool TPartita::read(const TBill& clifo, int year, const char* num) bool TPartita::read(const TBill& clifo, int year, const char* num)
{ {

View File

@ -183,10 +183,13 @@ class TPartita : public TSortable
TBill _conto; TBill _conto;
int _anno; int _anno;
TString16 _num; TString16 _num;
char _align; // current _num alignment
TRecord_array _part; TRecord_array _part;
TRecord_array _unassigned; TRecord_array _unassigned;
static char _cli_align, _for_align; // default _num alignment
protected: protected:
const char* build_key(TString& key) const; const char* build_key(TString& key) const;
@ -247,6 +250,14 @@ public:
bool update); bool update);
bool modifica_pagamento(const TRectype& new_pag); bool modifica_pagamento(const TRectype& new_pag);
static void modifica_allineamento(char a_cli, char a_for);
static char allineamento_clienti() { return _cli_align; }
static char allineamento_fornitori() { return _for_align; }
bool allinea();
char allineamento_iniziale() const { return _align; }
char allineamento_corrente() const;
TPartita(const TBill& clifo, int anno, const char* num); TPartita(const TBill& clifo, int anno, const char* num);
TPartita(const TRectype& part); TPartita(const TRectype& part);
}; };