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; bool test_swap(TCausale& caus, bool ritsoc) const;
real calcola_pagamento(TRectype& curpag_rec); real calcola_pagamento(TRectype& curpag_rec);
bool sottrai_iva(TMovimentoPN& pn, const TRectype& rigaiva); bool sottrai_iva(TMovimentoPN& pn, const TRectype& rigaiva);
void stringa_grcosot(TRecord_text& recrighe, const TString& zio);
public: public:
const real get_importo() {return _importo;}; 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(); 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); else NFCHECK("Macro non definita: %s", (const char *)code);
str = valore; 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.. //tglie le righe contabili corrispondenti che sono appena state aggiunte con la autoload (sarebbero..
//..duplicate se non lo facesse!!!) //..duplicate se non lo facesse!!!)
conti_importi.sottrai(riga); 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'!) //scrive sul file di trasferimento (alla faccia della semplicita'!)
trasfilerighe->write(recrighe); trasfilerighe->write(recrighe);
} }
@ -543,13 +554,27 @@ bool TInvioP::i_proforma_righe(TCursor& cur, TInvioP_file* trasfilerighe)
recrighe.add(workstring, 1); //rigaiva recrighe.add(workstring, 1); //rigaiva
TImporto& imp = conti_importi.importo(i); TImporto& imp = conti_importi.importo(i);
workstring.cut(0) << imp.sezione(); 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); const TString& zio = conti_importi.conto(i);
recrighe.add(zio.left(3), 3); //gruppo stringa_grcosot(recrighe, zio);
recrighe.add(zio.mid(3,3), 4); //conto
recrighe.add(zio.mid(6,6), 5); //sottoconto const TString tipocf = pn.curr().get(MOV_TIPO);
recrighe.add(pn.curr().get(MOV_TIPO), 6); //tipocf recrighe.add(tipocf, 6); //tipocf
recrighe.add(pn.curr().get(MOV_CODCF), 7); //codcf
//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(pn.curr().get(RMV_DESCR), 8); //descrizione
recrighe.add(imp.valore().string(), 9); //importo 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'.. //scrittura delle righe di tipo I; notare che il cur passato alla autoload altri non e'..
//..che la rigaiva appena completata //..che la rigaiva appena completata
trasfilerighe->autoload(recrigheiva, cur_rmoviva); 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_DESCR).left(40), 8); //descrizione riga iva = riga anale corrente
recrigheiva.add(riga.get(RMOVANA_CODCMS), 13); //commessa presa dalla riga analitica corrente recrigheiva.add(riga.get(RMOVANA_CODCMS), 13); //commessa presa dalla riga analitica corrente
trasfilerighe->write(recrigheiva); trasfilerighe->write(recrigheiva);
@ -676,6 +711,7 @@ bool TInvioP::i_proforma_righe(TCursor& cur, TInvioP_file* trasfilerighe)
const TBill uncle(riga); const TBill uncle(riga);
cur_rmoviva.curr() = riga; cur_rmoviva.curr() = riga;
trasfilerighe->autoload(recrigheiva, cur_rmoviva); trasfilerighe->autoload(recrigheiva, cur_rmoviva);
recrigheiva.add(uncle.tipo(), 6); //tipocf
recrigheiva.add(uncle.descrizione().left(40), 8); //descrizione della riga iva = descrizione conto recrigheiva.add(uncle.descrizione().left(40), 8); //descrizione della riga iva = descrizione conto
trasfilerighe->write(recrigheiva); trasfilerighe->write(recrigheiva);
} }
@ -743,6 +779,24 @@ bool TInvioP::sottrai_iva(TMovimentoPN& pn, const TRectype& rigaiva)
return true; 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 // Calcola il totale del documento tenendo conto del segno della prima riga e di quella delle
// ritenute sociali sulla causale // ritenute sociali sulla causale
real TInvioP::totale_documento(const TRectype& mov) const real TInvioP::totale_documento(const TRectype& mov) const

View File

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