Patch level :2.2 278

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :trasferimento proforma: stringati con allineamento a sx i campi gr/co/sottoc codcf come erano nella 2.1


git-svn-id: svn://10.65.10.50/trunk@13640 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2005-12-21 17:01:37 +00:00
parent f6eabba4a7
commit 46a28b4028
2 changed files with 68 additions and 20 deletions

View File

@ -287,6 +287,7 @@ protected:
bool test_swap(TCausale& caus, bool ritsoc) const;
real calcola_pagamento(TRectype& curpag_rec);
bool sottrai_iva(TMovimentoPN& pn, const TRectype& rigaiva);
void stringa_grcosot(TRecord_text& recrighe, const TString& zio);
public:
const real get_importo() {return _importo;};
@ -357,6 +358,11 @@ void TInvioP_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TS
{
valore = app().get_importo().string();
}
/* else if (code == "_GRUPPO")
{
const int gruppo = atoi(rec.get(3));
valore = gruppo;
}*/
else NFCHECK("Macro non definita: %s", (const char *)code);
str = valore;
@ -522,6 +528,11 @@ bool TInvioP::i_proforma_righe(TCursor& cur, TInvioP_file* trasfilerighe)
//tglie le righe contabili corrispondenti che sono appena state aggiunte con la autoload (sarebbero..
//..duplicate se non lo facesse!!!)
conti_importi.sottrai(riga);
//procedura orrenda per eliminare gli zeri dai gr/co/sot e passarli come stringhe!
const TString zio = cur_rmovana.curr().get(RMOVANA_CODCONTO);
stringa_grcosot(recrighe, zio);
//scrive sul file di trasferimento (alla faccia della semplicita'!)
trasfilerighe->write(recrighe);
}
@ -543,13 +554,27 @@ bool TInvioP::i_proforma_righe(TCursor& cur, TInvioP_file* trasfilerighe)
recrighe.add(workstring, 1); //rigaiva
TImporto& imp = conti_importi.importo(i);
workstring.cut(0) << imp.sezione();
recrighe.add(workstring, 2); //sezione
recrighe.add(workstring, 2); //sezione
//procedura orrenda per eliminare gli zeri dai gr/co/sot e passarli come stringhe!
const TString& zio = conti_importi.conto(i);
recrighe.add(zio.left(3), 3); //gruppo
recrighe.add(zio.mid(3,3), 4); //conto
recrighe.add(zio.mid(6,6), 5); //sottoconto
recrighe.add(pn.curr().get(MOV_TIPO), 6); //tipocf
recrighe.add(pn.curr().get(MOV_CODCF), 7); //codcf
stringa_grcosot(recrighe, zio);
const TString tipocf = pn.curr().get(MOV_TIPO);
recrighe.add(tipocf, 6); //tipocf
//procedura per stringare il codice clifo
if (tipocf > ' ')
{
const long codcf = pn.curr().get_long(MOV_CODCF);
TString cf;
cf.format("%ld", codcf);
recrighe.add(cf, 7); //codcf
}
else
{
recrighe.add("", 7); //codcf
}
recrighe.add(pn.curr().get(RMV_DESCR), 8); //descrizione
recrighe.add(imp.valore().string(), 9); //importo
@ -657,6 +682,16 @@ bool TInvioP::i_proforma_righe(TCursor& cur, TInvioP_file* trasfilerighe)
//scrittura delle righe di tipo I; notare che il cur passato alla autoload altri non e'..
//..che la rigaiva appena completata
trasfilerighe->autoload(recrigheiva, cur_rmoviva);
//procedura ignorante per stringare il codice clifo
if (zio.tipo() > ' ')
{
const long sottoconto = zio.sottoconto();
TString cf;
cf.format("%ld", sottoconto);
recrigheiva.add(cf, 7);
}
recrigheiva.add(riga.get(RMOVANA_DESCR).left(40), 8); //descrizione riga iva = riga anale corrente
recrigheiva.add(riga.get(RMOVANA_CODCMS), 13); //commessa presa dalla riga analitica corrente
trasfilerighe->write(recrigheiva);
@ -676,6 +711,7 @@ bool TInvioP::i_proforma_righe(TCursor& cur, TInvioP_file* trasfilerighe)
const TBill uncle(riga);
cur_rmoviva.curr() = riga;
trasfilerighe->autoload(recrigheiva, cur_rmoviva);
recrigheiva.add(uncle.tipo(), 6); //tipocf
recrigheiva.add(uncle.descrizione().left(40), 8); //descrizione della riga iva = descrizione conto
trasfilerighe->write(recrigheiva);
}
@ -743,6 +779,24 @@ bool TInvioP::sottrai_iva(TMovimentoPN& pn, const TRectype& rigaiva)
return true;
}
void TInvioP::stringa_grcosot(TRecord_text& recrighe, const TString& zio)
{
TString8 grcosot;
long gcs = 0;
gcs = atoi(zio.left(3));
grcosot.format("%d", gcs);
recrighe.add(grcosot, 3); //gruppo
gcs = atoi(zio.mid(3,3));
grcosot.format("%d", gcs);
recrighe.add(grcosot, 4); //conto
gcs = atoi(zio.mid(6,6));
grcosot.format("%d", gcs);
recrighe.add(grcosot, 5); //sottoconto
}
// Calcola il totale del documento tenendo conto del segno della prima riga e di quella delle
// ritenute sociali sulla causale
real TInvioP::totale_documento(const TRectype& mov) const

View File

@ -157,34 +157,29 @@ LENGTH(2) = 1
FIELD(2) = SEZIONE
NAME(3) = CODICE MASTRO
TYPE(3) = NUMERO
TYPE(3) = STRINGA
POSITION(3) = 12
LENGTH(3) = 5
FIELD(3) = CODCONTO[1,3]
NAME(4) = CODICE CONTO
TYPE(4) = NUMERO
TYPE(4) = STRINGA
POSITION(4) = 17
LENGTH(4) = 5
FIELD(4) = CODCONTO[4,6]
NAME(5) = CODICE SOTTOCONTO
TYPE(5) = NUMERO
TYPE(5) = STRINGA
POSITION(5) = 22
LENGTH(5) = 5
FIELD(5) = CODCONTO[7,12]
NAME(6) = FLAG CLIFOR
TYPE(6) = STRINGA
POSITION(6) = 27
LENGTH(6) = 1
//MESSAGE(6) = _TIPOCF
NAME(7) = CODICE CLIFOR
TYPE(7) = NUMERO
TYPE(7) = STRINGA
POSITION(7) = 28
LENGTH(7) = 10
FIELD(7) = CODCONTO[7,12]
NAME(8) = DESCRIZIONE RIGA
TYPE(8) = STRINGA
@ -238,19 +233,19 @@ LENGTH(1) = 1
MESSAGE(1) = _FISSO,!S
NAME(3) = CODICE MASTRO
TYPE(3) = NUMERO
TYPE(3) = STRINGA
POSITION(3) = 12
LENGTH(3) = 5
FIELD(3) = GRUPPO
NAME(4) = CODICE CONTO
TYPE(4) = NUMERO
TYPE(4) = STRINGA
POSITION(4) = 17
LENGTH(4) = 5
FIELD(4) = CONTO
NAME(5) = CODICE SOTTOCONTO
TYPE(5) = NUMERO
TYPE(5) = STRINGA
POSITION(5) = 22
LENGTH(5) = 5
FIELD(5) = SOTTOCONTO
@ -262,10 +257,9 @@ LENGTH(6) = 1
FIELD(6) = TIPOC
NAME(7) = CODICE CLIFOR
TYPE(7) = NUMERO
TYPE(7) = STRINGA
POSITION(7) = 28
LENGTH(7) = 10
FIELD(7) = SOTTOCONTO
NAME(8) = DESCRIZIONE RIGA
TYPE(8) = STRINGA