1996-10-10 12:05:58 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// Quadro 770/C
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
#include "77stqc.h"
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Quadro C
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
bool TQuadroC::controlla_percentuale(TCursor& cur, const real& perc_p)
|
|
|
|
|
{
|
|
|
|
|
bool stampa = TRUE;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TRectype& rc = cur.curr();
|
|
|
|
|
long ditta_p = rc.get_long(QUC_CODDITTA);
|
|
|
|
|
char tipo_p = rc.get_char(QUC_TIPOA);
|
|
|
|
|
long codana_p = rc.get_long(QUC_CODANAGR);
|
|
|
|
|
char caus_p = rc.get_char(QUC_CAUSALE);
|
|
|
|
|
int tass_p = rc.get_int(QUC_TASSAZIONE);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
TString ragsoc_p = get_ragsoc_anagr(tipo_p,codana_p);
|
|
|
|
|
|
|
|
|
|
if (perc_p == ZERO)
|
|
|
|
|
{
|
|
|
|
|
++(cur);
|
1997-10-22 10:59:30 +00:00
|
|
|
|
long ditta = rc.get_long(QUC_CODDITTA);
|
|
|
|
|
char tipo = rc.get_char(QUC_TIPOA);
|
|
|
|
|
long codana = rc.get_long(QUC_CODANAGR);
|
|
|
|
|
char caus = rc.get_char(QUC_CODCAUS);
|
|
|
|
|
int tass = rc.get_int(QUC_TASSAZIONE);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
TString ragsoc = get_ragsoc_anagr(tipo,codana);
|
1997-10-22 10:59:30 +00:00
|
|
|
|
real perc = rc.get_real(QUC_PERC);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
if (ditta == ditta_p && tipo == tipo_p && ragsoc == ragsoc_p &&
|
|
|
|
|
codana == codana_p && caus == caus_p && tass == tass_p)
|
1996-10-10 12:05:58 +00:00
|
|
|
|
{
|
|
|
|
|
if (perc != ZERO)
|
|
|
|
|
{
|
|
|
|
|
stampa = FALSE;
|
|
|
|
|
_devo_sommare = TRUE;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
stampa = FALSE;
|
|
|
|
|
}
|
|
|
|
|
--(cur);
|
|
|
|
|
}
|
|
|
|
|
else
|
1998-08-04 07:34:49 +00:00
|
|
|
|
{
|
|
|
|
|
++(cur);
|
|
|
|
|
long ditta = rc.get_long(QUC_CODDITTA);
|
|
|
|
|
char tipo = rc.get_char(QUC_TIPOA);
|
|
|
|
|
long codana = rc.get_long(QUC_CODANAGR);
|
|
|
|
|
char caus = rc.get_char(QUC_CODCAUS);
|
|
|
|
|
int tass = rc.get_int(QUC_TASSAZIONE);
|
|
|
|
|
TString ragsoc = get_ragsoc_anagr(tipo,codana);
|
|
|
|
|
real perc = rc.get_real(QUC_PERC);
|
|
|
|
|
|
|
|
|
|
if (ditta == ditta_p && tipo == tipo_p && ragsoc == ragsoc_p &&
|
|
|
|
|
codana == codana_p && caus == caus_p && tass == tass_p && perc_p == perc)
|
|
|
|
|
stampa = FALSE;
|
|
|
|
|
else
|
|
|
|
|
_devo_sommare = TRUE;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
1998-08-04 07:34:49 +00:00
|
|
|
|
--(cur);
|
|
|
|
|
}
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
|
|
|
|
return stampa;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TQuadroC::leggi_importi()
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TRectype& rec = cursor()->curr();
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
_ammlordo += rec.get_real(QUC_AMMLORDO);
|
|
|
|
|
_controbb += rec.get_real(QUC_CONTROBB);
|
|
|
|
|
_somnonsog += rec.get_real(QUC_SOMNONSOGG);
|
|
|
|
|
_imponibile += rec.get_real(QUC_IMPONIBILE);
|
|
|
|
|
_imposta += rec.get_real(QUC_IMPOSTA);
|
|
|
|
|
_detcarfam += rec.get_real(QUC_DETCARFAM);
|
|
|
|
|
_detlavdip += rec.get_real(QUC_DETLAVDIP);
|
|
|
|
|
_totdet += rec.get_real(QUC_TOTDET);
|
|
|
|
|
_ritenute += rec.get_real(QUC_RITENUTE);
|
|
|
|
|
_gglav += rec.get_int(QUC_GGLAVDIP);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TQuadroC::setta_importi(TPrint_section& body)
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TRectype& rec = cursor()->curr();
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
real ammlordo = rec.get_real(QUC_AMMLORDO);
|
|
|
|
|
real controbb = rec.get_real(QUC_CONTROBB);
|
|
|
|
|
real somnonsog = rec.get_real(QUC_SOMNONSOGG);
|
|
|
|
|
real imponibile = rec.get_real(QUC_IMPONIBILE);
|
|
|
|
|
real imposta = rec.get_real(QUC_IMPOSTA);
|
|
|
|
|
real detcarfam = rec.get_real(QUC_DETCARFAM);
|
|
|
|
|
real detlavdip = rec.get_real(QUC_DETLAVDIP);
|
|
|
|
|
real totdet = rec.get_real(QUC_TOTDET);
|
|
|
|
|
real ritenute = rec.get_real(QUC_RITENUTE);
|
|
|
|
|
int gglav = rec.get_int(QUC_GGLAVDIP);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
|
|
|
|
if (_devo_sommare)
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
ammlordo += _ammlordo;
|
|
|
|
|
controbb += _controbb;
|
|
|
|
|
somnonsog += _somnonsog;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
imponibile += _imponibile;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
imposta += _imposta;
|
|
|
|
|
detcarfam += _detcarfam;
|
|
|
|
|
detlavdip += _detlavdip;
|
|
|
|
|
totdet += _totdet;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
ritenute += _ritenute;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
gglav += _gglav;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
_devo_sommare = FALSE;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
_ammlordo = ZERO;
|
|
|
|
|
_controbb = ZERO;
|
|
|
|
|
_somnonsog = ZERO;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
_imponibile = ZERO;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
_imposta = ZERO;
|
|
|
|
|
_detcarfam = ZERO;
|
|
|
|
|
_detlavdip = ZERO;
|
|
|
|
|
_totdet = ZERO;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
_ritenute = ZERO;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
_gglav = 0;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TForm_item& fammlordo = body.find_field(C_AMMLORDO);
|
|
|
|
|
TForm_item& fcontrobb = body.find_field(C_CONTROBB);
|
|
|
|
|
TForm_item& fsomnonsog = body.find_field(C_SOMNONSOG);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
TForm_item& fimponibile = body.find_field(C_IMPONIBILE);
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TForm_item& fimposta = body.find_field(C_IMPOSTA);
|
|
|
|
|
TForm_item& fdetcarfam = body.find_field(C_DETCARFAM);
|
|
|
|
|
TForm_item& fgglav = body.find_field(C_GGLAV);
|
|
|
|
|
TForm_item& fdetlavdip = body.find_field(C_DETLAVDIP);
|
|
|
|
|
TForm_item& ftotdet = body.find_field(C_TOTDET);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
TForm_item& fritenute = body.find_field(C_RITENUTE);
|
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TString sammlordo (ammlordo.string());
|
|
|
|
|
TString scontrobb (controbb.string());
|
|
|
|
|
TString ssomnonsog (somnonsog.string());
|
|
|
|
|
TString simponibile (imponibile.string());
|
|
|
|
|
TString simposta (imposta.string());
|
|
|
|
|
TString sdetcarfam (detcarfam.string());
|
|
|
|
|
TString sgglav;
|
|
|
|
|
TString sdetlavdip (detlavdip.string());
|
|
|
|
|
TString stotdet (totdet.string());
|
|
|
|
|
TString sritenute (ritenute.string());
|
|
|
|
|
sgglav.format("%d",gglav);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
// Setta i campi
|
1997-10-22 10:59:30 +00:00
|
|
|
|
fammlordo.set(sammlordo);
|
|
|
|
|
fcontrobb.set(scontrobb);
|
|
|
|
|
fsomnonsog.set(ssomnonsog);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
fimponibile.set(simponibile);
|
1997-10-22 10:59:30 +00:00
|
|
|
|
fimposta.set(simposta);
|
|
|
|
|
fdetcarfam.set(sdetcarfam);
|
|
|
|
|
fgglav.set(sgglav);
|
|
|
|
|
fdetlavdip.set(sdetlavdip);
|
|
|
|
|
ftotdet.set(stotdet);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
fritenute.set(sritenute);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TQuadroC::stampa_corpo(TPrinter& pr)
|
|
|
|
|
{
|
|
|
|
|
TPrint_section& body = section('B', odd_page);
|
|
|
|
|
const int body_righe = body.height();
|
|
|
|
|
body.reset();
|
1997-10-22 10:59:30 +00:00
|
|
|
|
setta_importi(body);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
body.update();
|
|
|
|
|
for (int i=0; i < body_righe; i++)
|
|
|
|
|
{
|
|
|
|
|
pr.print(body.row(i));
|
|
|
|
|
_RigaCorr++;
|
|
|
|
|
}
|
|
|
|
|
body.reset();
|
|
|
|
|
if (usa_progind())
|
|
|
|
|
progind()->addstatus(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int TQuadroC::elementi_pagina(PaginaQuadro p) const
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
const int n[4] = { 6, 7, 7, 7 };
|
1996-10-10 12:05:58 +00:00
|
|
|
|
return n[p-PRIMA];
|
|
|
|
|
}
|
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
int TQuadroC::dic_form_len() const
|
|
|
|
|
{
|
|
|
|
|
if (curr_page()==PRIMA && _PaginaPosizionamento)
|
|
|
|
|
return QC_FORMLEN-HEADER_PRIMA_NOPOS_QC;
|
|
|
|
|
else
|
|
|
|
|
return QC_FORMLEN;
|
|
|
|
|
}
|
|
|
|
|
|
1996-10-10 12:05:58 +00:00
|
|
|
|
int TQuadroC::prima_riga(PaginaQuadro p) const
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
int line = 0;
|
|
|
|
|
|
|
|
|
|
if (p==PRIMA)
|
|
|
|
|
{
|
|
|
|
|
if (_PaginaPosizionamento)
|
|
|
|
|
line = 1;
|
|
|
|
|
else
|
|
|
|
|
line = 1+HEADER_PRIMA_NOPOS_QC;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if (p==SECONDA) line = 4;
|
|
|
|
|
else if (p==TERZA) line = 4;
|
|
|
|
|
else if (p==QUARTA) line = 4;
|
|
|
|
|
|
|
|
|
|
return line;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool TQuadroC::print(const long codditta, const long NumFis, const long NumNoFis)
|
|
|
|
|
{
|
1996-10-11 14:48:59 +00:00
|
|
|
|
TCursor& cur = *cursor();
|
1997-10-22 10:59:30 +00:00
|
|
|
|
TPrinter& pr = printer();
|
|
|
|
|
_num_foglio=0;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
bool stampa = TRUE;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
|
|
|
|
|
_gglav = 0;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
if (!InitPrint(codditta))
|
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
|
|
int elementi = 0; // Numero di elementi stampati in questa pagina
|
|
|
|
|
int ele_bis = 0;
|
|
|
|
|
bool stampato_ultimo = FALSE;
|
|
|
|
|
bool stampati_totali = FALSE;
|
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
// se il dispositivo scelto non <20> una winprinter
|
|
|
|
|
// non <20> mai eseguito il posizionamento
|
|
|
|
|
if (pr.printtype() != winprinter)
|
|
|
|
|
_PaginaPosizionamento = FALSE;
|
|
|
|
|
|
1996-10-10 12:05:58 +00:00
|
|
|
|
int pos = 0;
|
|
|
|
|
TDipendenti indice;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
cur = 0;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
if (_modulaser)
|
|
|
|
|
{
|
|
|
|
|
TPrintrow r;
|
|
|
|
|
put_modulaser(r, VEGASTARTDOC);
|
|
|
|
|
put_modulaser(r, VEGASTARTDITTA);
|
|
|
|
|
put_modulaser(r, VEGASTARTPAGE, PRIMA);
|
|
|
|
|
pr.print(r);
|
|
|
|
|
_RigaCorr++;
|
|
|
|
|
}
|
|
|
|
|
|
1996-10-10 12:05:58 +00:00
|
|
|
|
while (!stampati_totali)
|
|
|
|
|
{
|
|
|
|
|
bool stampa = TRUE;
|
|
|
|
|
bool stampero_ultimo = stampato_ultimo == FALSE;
|
|
|
|
|
if (stampero_ultimo)
|
|
|
|
|
{
|
|
|
|
|
if (indice.items() > 0) // Usa indice alternativo
|
2002-07-03 14:48:48 +00:00
|
|
|
|
stampero_ultimo &= (pos == indice.items()-1);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
else // Usa indice del cursore
|
2002-07-03 14:48:48 +00:00
|
|
|
|
stampero_ultimo &= (cur.pos() == cur.items()-1);
|
1996-10-10 12:05:58 +00:00
|
|
|
|
}
|
|
|
|
|
|
1997-10-22 10:59:30 +00:00
|
|
|
|
pr.formlen(dic_form_len());
|
1996-10-10 12:05:58 +00:00
|
|
|
|
_EndPrintDitta=stampato_ultimo;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
|
1996-10-10 12:05:58 +00:00
|
|
|
|
switch(_PaginaCorrente)
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
|
|
|
|
|
// stampa prima pagina
|
|
|
|
|
case PRIMA:
|
|
|
|
|
|
1996-10-10 12:05:58 +00:00
|
|
|
|
if (_modulaser)
|
|
|
|
|
ClearFlagModulaser();
|
|
|
|
|
|
|
|
|
|
if (ele_bis == 0)
|
1997-10-22 10:59:30 +00:00
|
|
|
|
{
|
|
|
|
|
jump_to_line(pr, prima_riga(PRIMA));
|
1996-10-10 12:05:58 +00:00
|
|
|
|
stampa_testata(pr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!stampato_ultimo)
|
|
|
|
|
{
|
|
|
|
|
real perc_p = cur.curr().get_real(QUC_PERC);
|
|
|
|
|
stampa = controlla_percentuale(cur,perc_p);
|
|
|
|
|
if (stampa)
|
|
|
|
|
stampa_corpo(pr);
|
|
|
|
|
else
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
leggi_importi();
|
1996-10-10 12:05:58 +00:00
|
|
|
|
elementi--;
|
|
|
|
|
}
|
|
|
|
|
stampato_ultimo = stampero_ultimo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elementi++;
|
|
|
|
|
ele_bis++;
|
|
|
|
|
if (elementi >= elementi_pagina(PRIMA))
|
|
|
|
|
{
|
|
|
|
|
next_page(pr);
|
|
|
|
|
elementi = 0;
|
|
|
|
|
ele_bis = 0;
|
|
|
|
|
}
|
|
|
|
|
break;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
|
|
|
|
|
// stampa seconda o terza pagina
|
1996-10-10 12:05:58 +00:00
|
|
|
|
case SECONDA:
|
1997-10-22 10:59:30 +00:00
|
|
|
|
case TERZA:
|
|
|
|
|
|
1996-10-11 14:48:59 +00:00
|
|
|
|
_PaginaPosizionamento=FALSE;
|
1997-10-22 10:59:30 +00:00
|
|
|
|
|
1996-10-10 12:05:58 +00:00
|
|
|
|
if (!stampato_ultimo)
|
|
|
|
|
{
|
|
|
|
|
if (ele_bis == 0)
|
1997-10-22 10:59:30 +00:00
|
|
|
|
jump_to_line(pr, prima_riga(_PaginaCorrente));
|
1996-10-10 12:05:58 +00:00
|
|
|
|
real perc_p = cur.curr().get_real(QUC_PERC);
|
|
|
|
|
stampa = controlla_percentuale(cur,perc_p);
|
|
|
|
|
if (stampa)
|
|
|
|
|
stampa_corpo(pr);
|
|
|
|
|
else
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
leggi_importi();
|
1996-10-10 12:05:58 +00:00
|
|
|
|
elementi--;
|
|
|
|
|
}
|
|
|
|
|
stampato_ultimo = stampero_ultimo;
|
|
|
|
|
}
|
|
|
|
|
elementi++;
|
|
|
|
|
ele_bis++;
|
|
|
|
|
if (elementi >= elementi_pagina(_PaginaCorrente))
|
|
|
|
|
{
|
|
|
|
|
next_page(pr);
|
|
|
|
|
elementi = 0;
|
|
|
|
|
ele_bis = 0;
|
|
|
|
|
}
|
1997-10-22 10:59:30 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
// stampa quarta pagina
|
1996-10-10 12:05:58 +00:00
|
|
|
|
case QUARTA:
|
|
|
|
|
if (!stampato_ultimo)
|
|
|
|
|
{
|
|
|
|
|
if (ele_bis == 0)
|
1997-10-22 10:59:30 +00:00
|
|
|
|
jump_to_line(pr, prima_riga(QUARTA));
|
1996-10-10 12:05:58 +00:00
|
|
|
|
real perc_p = cur.curr().get_real(QUC_PERC);
|
|
|
|
|
stampa = controlla_percentuale(cur,perc_p);
|
|
|
|
|
if (stampa)
|
|
|
|
|
stampa_corpo(pr);
|
|
|
|
|
else
|
|
|
|
|
{
|
1997-10-22 10:59:30 +00:00
|
|
|
|
leggi_importi();
|
1996-10-10 12:05:58 +00:00
|
|
|
|
elementi--;
|
|
|
|
|
}
|
|
|
|
|
stampato_ultimo = stampero_ultimo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elementi++;
|
|
|
|
|
ele_bis++;
|
|
|
|
|
|
|
|
|
|
if (elementi >= elementi_pagina(QUARTA))
|
1997-10-22 10:59:30 +00:00
|
|
|
|
{
|
|
|
|
|
// salto ad inizio sezione
|
|
|
|
|
jump_to_line(pr, 60);
|
|
|
|
|
stampa_totali(pr);
|
|
|
|
|
if (stampato_ultimo)
|
|
|
|
|
stampati_totali = TRUE;
|
|
|
|
|
_EndPrintDitta=stampato_ultimo;
|
1996-10-10 12:05:58 +00:00
|
|
|
|
next_page(pr);
|
|
|
|
|
elementi = 0;
|
|
|
|
|
ele_bis = 0;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
1997-10-22 10:59:30 +00:00
|
|
|
|
CHECK(0, "Invalid Quadro C page");
|
1996-10-10 12:05:58 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!stampato_ultimo)
|
|
|
|
|
{
|
|
|
|
|
if (indice.items() > 0)
|
|
|
|
|
cur = indice[++pos].pos();
|
|
|
|
|
else
|
|
|
|
|
++cur;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
close_print();
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool TStampaQuadroC::user_create()
|
|
|
|
|
{
|
|
|
|
|
_form = new TQuadroC("77QC", quadro());
|
|
|
|
|
|
|
|
|
|
TString sortkey(80);
|
|
|
|
|
sortkey.format("CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC", LF_QUAC, LF_QUAC);
|
|
|
|
|
_cur = new TSorted_cursor(_form->TForm::relation(), sortkey);
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|