From a11e0f3452a436d113f5d29d57da9bef8b9c8d53 Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 26 Nov 2008 16:45:42 +0000 Subject: [PATCH] Patch level :10.0 Files correlati : Ricompilazione Demo : [ ] Commento :riporterrori git-svn-id: svn://10.65.10.50/trunk@17730 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- co/co1300.cpp | 118 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 114 insertions(+), 4 deletions(-) diff --git a/co/co1300.cpp b/co/co1300.cpp index 5495195dc..1a7964663 100755 --- a/co/co1300.cpp +++ b/co/co1300.cpp @@ -112,9 +112,8 @@ bool TEstrattoConto_rep::set_usr_val(const TString& name, const TVariant& var) { TReport_section& f1 = section('F',1); TReport_field* rf = NULL; - int id = 1100; - - for (int id = 1100; ; id += 1000) + int id; + for (id = 1100; ; id += 1000) { rf = f1.find_field(id); if (rf == NULL) @@ -227,7 +226,118 @@ bool TEstrattoConto_rep::set_usr_val(const TString& name, const TVariant& var) chiudi_mese(); return true; } - return TDocument_report::set_usr_val(name,var); + return TDocument_report::set_usr_val(name,var); +} + +void TEstrattoConto_rep::chiudi_mese() +{ + const TRecordset * recset = recordset(); + + if (_chiusura) + { + TRecordset* r = recordset(); + const TDate datachi = r->get_var("#DATAFIN").as_date(); + + if (_ritenuta != ZERO) // create ritenute + { + TDocumento doc('D', datachi.year(), _numchi, 0L); + + doc.set_tipo(_tiporit); + doc.stato(doc.tipo().stato_finale_inserimento()); + doc.put(DOC_DATADOC, datachi); + doc.put(DOC_TIPOCF, "F"); + doc.put(DOC_CODCF, _socio); + + TSpesa_prest sp(_sprit); + TRiga_documento & row = doc.new_row(sp.tipo_riga()); + + row.put(RDOC_CODART, sp.codice()); + row.put(RDOC_CHECKED, "X"); + row.put(RDOC_DESCR,sp.descrizione()); + row.put(RDOC_UMQTA, sp.um()); + row.put(RDOC_QTA, UNO); + row.put(RDOC_PREZZO, _ritenuta); + row.put(RDOC_CODIVA, sp.cod_iva()); + doc.write(); + } + + real saldo = _saldocred - _ritenuta - _saldodeb; + + if (saldo > ZERO) // assegno + { + TDocumento doc('D', datachi.year(), _numchi, 0L); + + doc.set_tipo(_tipoass); + doc.stato(doc.tipo().stato_finale_inserimento()); + doc.put(DOC_DATADOC, datachi); + doc.put(DOC_TIPOCF, "F"); + doc.put(DOC_CODCF, _socio); + + TSpesa_prest sp(_spass); + TRiga_documento & row = doc.new_row(sp.tipo_riga()); + + row.put(RDOC_CODART, sp.codice()); + row.put(RDOC_CHECKED, "X"); + row.put(RDOC_DESCR,sp.descrizione()); + row.put(RDOC_UMQTA, sp.um()); + row.put(RDOC_QTA, UNO); + row.put(RDOC_PREZZO, saldo); + row.put(RDOC_CODIVA, sp.cod_iva()); + doc.write(); + } + else + if (saldo < ZERO) // chiusura + { + TDocumento doc('D', datachi.year(), _numchi, 0L); + + doc.set_tipo(_tipochi); + doc.stato(doc.tipo().stato_finale_inserimento()); + doc.put(DOC_DATADOC, datachi); + doc.put(DOC_TIPOCF, "F"); + doc.put(DOC_CODCF, _socio); + + TSpesa_prest sp(_spchi); + TRiga_documento & row = doc.new_row(sp.tipo_riga()); + + row.put(RDOC_CODART, sp.codice()); + row.put(RDOC_CHECKED, "X"); + row.put(RDOC_DESCR,sp.descrizione()); + row.put(RDOC_UMQTA, sp.um()); + row.put(RDOC_QTA, UNO); + row.put(RDOC_PREZZO, saldo); + row.put(RDOC_CODIVA, sp.cod_iva()); + doc.write(); + + TDate dataap(datachi); + + dataap += 1L; + saldo = - saldo; + TDocumento docap('D', dataap.year(), _numchi, 0L); + + docap.set_tipo(_tipochi); + docap.stato(docap.tipo().stato_finale_inserimento()); + docap.put(DOC_DATADOC, dataap); + docap.put(DOC_TIPOCF, "F"); + docap.put(DOC_CODCF, _socio); + + + sp.read(_spchi); + TRiga_documento & rowap = docap.new_row(sp.tipo_riga()); + + rowap.put(RDOC_CODART, sp.codice()); + rowap.put(RDOC_CHECKED, "X"); + rowap.put(RDOC_DESCR,sp.descrizione()); + rowap.put(RDOC_UMQTA, sp.um()); + rowap.put(RDOC_QTA, UNO); + rowap.put(RDOC_PREZZO, saldo); + rowap.put(RDOC_CODIVA, sp.cod_iva()); + docap.write(); + } + } + _socio = 0L, + _saldocred = ZERO; + _saldodeb = ZERO; + _ritenuta = ZERO; } TEstrattoConto_rep::TEstrattoConto_rep(bool chiusura) : _chiusura(chiusura), _saldocred(), _saldodeb(ZERO), _ritenuta(ZERO)