From f680273e2bf616aa2f1bdda8576dbd64468a3655 Mon Sep 17 00:00:00 2001 From: guy Date: Tue, 10 Jul 2012 13:51:26 +0000 Subject: [PATCH] versione definitiva gestione listini con ricarico per Gianni Ferrari git-svn-id: svn://10.65.10.50/branches/R_10_00@22699 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve0300a.src | 2 +- ve/ve2.h | 4 +- ve/ve2800.cpp | 300 +++++++++++-- ve/ve2800.h | 4 +- ve/ve2800a.uml | 76 +++- ve/vefat.rep | 1122 ++++++++++++++++++++++++------------------------ 6 files changed, 891 insertions(+), 617 deletions(-) diff --git a/ve/ve0300a.src b/ve/ve0300a.src index 0f61560ee..5e07baaed 100755 --- a/ve/ve0300a.src +++ b/ve/ve0300a.src @@ -775,7 +775,7 @@ FIELDNAME=PROGBNP MSKID=F_PROGBNP PROMPT="Progressivo " SIZE=2 -FLAG=Z +FLAG=Z USE=BNP~JOIN %BAN ALIAS 100 INTO CODTAB=CODTAB[1,10] INPUT=CODTAB[1,5] F_CODABIP~CODTAB[6,10] F_CODCABP~CODTAB[11,12] F_PROGBNP DISPLAY="Cod. Istit." CODTAB[1,5]~"Cod. Fil." CODTAB[6,10]~"Progr." CODTAB[11,12]~"IBAN@27" S3~"Denominazione@50" 100@->S0 diff --git a/ve/ve2.h b/ve/ve2.h index 391256bd5..a3b7a6d83 100755 --- a/ve/ve2.h +++ b/ve/ve2.h @@ -7,8 +7,8 @@ int ve2300(int argc, char* argv[]); // righe listini/contratti/offerte int ve2400(int argc, char* argv[]); // anagrafica di magazzino int ve2500(int argc, char* argv[]); // gestione semplificata (ovvero comprensibile) listini int ve2600(int argc, char* argv[]); // relazioni articoli livelli di giacenza -int ve2700(int argc, char* argv[]); // aggirnamento multiplo listini figli (Baisena) -int ve2800(int argc, char* argv[]); // aggirnamento ricarico listini (Gianni Ferrari) +int ve2700(int argc, char* argv[]); // aggiornamento multiplo listini figli (Baisena) +int ve2800(int argc, char* argv[]); // aggiornamento ricarico listini (Gianni Ferrari) #endif diff --git a/ve/ve2800.cpp b/ve/ve2800.cpp index 2e2701040..67bb1e6ef 100644 --- a/ve/ve2800.cpp +++ b/ve/ve2800.cpp @@ -4,8 +4,10 @@ #include #include #include -#include +#include +#include #include +#include #include "ve2800.h" #include "../mg/anamag.h" @@ -18,30 +20,35 @@ class TRicarico_listini_mask : public TAutomask { TBit_array _dirty; + bool _loading; + TString4 _curlis; protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); void load(); void save(); - void save_if_dirty(); - void set_dirty(TOperable_field& o); + bool save_if_dirty(); + void recalc(); + bool import(); + void set_dirty(); public: - TRicarico_listini_mask() : TAutomask("ve2800a") {} + TRicarico_listini_mask() : TAutomask("ve2800a"), _loading(false) {} }; -void TRicarico_listini_mask::set_dirty(TOperable_field& o) +void TRicarico_listini_mask::set_dirty() { - if (is_running()) + if (is_running() && !_loading) { TSheet_field& s = sfield(F_LISTINO); const int row = s.selected(); if (!_dirty[row]) { - const int col = (o.dlg() % 100) - 1; - s.set_back_and_fore_color(EASY_RIDER_COLOR, NORMAL_COLOR, row, col); + s.set_back_and_fore_color(EASY_RIDER_COLOR, NORMAL_COLOR, row, -1); _dirty.set(row); + s.force_update(row); enable(DLG_SAVEREC); + disable(DLG_RECALC); } } } @@ -59,46 +66,106 @@ void TRicarico_listini_mask::save() if (!pi.setstatus(r)) break; - const TString& codlis = get(F_CODLIS); const TString80 codart = row->get(s.cid2index(F_CODART)); - - anamag.put(ANAMAG_CODART, codart); - if (anamag.read() == NOERR) - { - anamag.put(ANAMAG_ULTCOS1, row->get(s.cid2index(F_COSTO))); - anamag.put(ANAMAG_USER3, row->get(s.cid2index(F_RICARICO))); - anamag.rewrite(); - } + const real sconto = row->get(s.cid2index(F_SCONTO)); + const real costo = row->get(s.cid2index(F_COSTO)); + const TString8 ricarico = row->get(s.cid2index(F_RICARICO)); + const real prezzo = row->get(s.cid2index(F_OLDPRICE)); - rcondv.zero(); - rcondv.put(RCONDV_TIPO, "L"); - rcondv.put(RCONDV_COD, codlis); - rcondv.put(RCONDV_TIPORIGA, "A"); - rcondv.put(RCONDV_CODRIGA, codart); - if (rcondv.read() == NOERR) - { - rcondv.put(RCONDV_PREZZO, row->get(s.cid2index(F_OLDPRICE))); - rcondv.rewrite(); + if (costo.is_zero() && prezzo.is_zero()) + { + rcondv.zero(); + rcondv.put(RCONDV_TIPO, "L"); + rcondv.put(RCONDV_COD, _curlis); + rcondv.put(RCONDV_TIPORIGA, "A"); + rcondv.put(RCONDV_CODRIGA, codart); + rcondv.remove(); + } + else + { + anamag.put(ANAMAG_CODART, codart); + if (anamag.read() == NOERR) + { + anamag.put(ANAMAG_ULTCOS1, costo); + anamag.put(ANAMAG_USER3, ricarico); + anamag.rewrite(); + } + + rcondv.zero(); + rcondv.put(RCONDV_TIPO, "L"); + rcondv.put(RCONDV_COD, _curlis); + rcondv.put(RCONDV_TIPORIGA, "A"); + rcondv.put(RCONDV_CODRIGA, codart); + if (rcondv.read() == NOERR) + { + rcondv.put(RCONDV_PREZZO, prezzo); + rcondv.rewrite(); + } } } _dirty.reset(); disable(DLG_SAVEREC); + enable(DLG_RECALC); } -void TRicarico_listini_mask::save_if_dirty() +void TRicarico_listini_mask::recalc() { + TSheet_field& s = sfield(F_LISTINO); + TFast_isamfile rcondv(LF_RCONDV); + TProgind pi(s.items(), TR("Aggiornamento prezzi"), true, true); + FOR_EACH_SHEET_ROW(s, r, row) + { + if (!pi.setstatus(r)) + break; + + const real oldprice = row->get(s.cid2index(F_OLDPRICE)); + const real newprice = row->get(s.cid2index(F_NEWPRICE)); + if (oldprice != newprice) + { + const TString80 codart = row->get(s.cid2index(F_CODART)); + rcondv.zero(); + rcondv.put(RCONDV_TIPO, "L"); + rcondv.put(RCONDV_COD, _curlis); + rcondv.put(RCONDV_TIPORIGA, "A"); + rcondv.put(RCONDV_CODRIGA, codart); + if (rcondv.read() == NOERR) + { + rcondv.put(RCONDV_PREZZO, newprice); + rcondv.rewrite(); + } + } + } +} + +bool TRicarico_listini_mask::save_if_dirty() +{ + bool done = true; const long n = _dirty.ones(); - if (n > 0 && yesno_box(FR("Si desiderano registrare le %ld righe modificate?"), n)) - save(); + if (n > 0) + { + const KEY k = yesnocancel_box(FR("Si desiderano registrare le %ld righe modificate?"), n); + switch (k) + { + case K_YES: save(); break; + case K_NO : break; + default : done = false; break; + } + } + return done; } void TRicarico_listini_mask::load() { + _loading = true; + _curlis = get(F_CODLIS); + TSheet_field& s = sfield(F_LISTINO); TMask& sm = s.sheet_mask(); - s.destroy(); + TLocalisamfile deslin(LF_DESLIN); + deslin.setkey(2); + s.destroy(); TString query; query << "USE RCONDV"; @@ -106,16 +173,15 @@ void TRicarico_listini_mask::load() query << " SELECT ANAMAG.USER3==\"" << get(F_FILTRIC) << '"'; query << "\nJOIN ANAMAG INTO CODART==CODRIGA"; - query << "\nFROM TIPO=L COD=#COD TIPORIGA=A"; + query << "\nFROM TIPO=L TIPORIGA=A COD=" << _curlis; if (!field(F_FROMCOD).empty()) query << " CODRIGA=" << get(F_FROMCOD); - query << "\nTO TIPO=L COD=#COD TIPORIGA=A"; + query << "\nTO TIPO=L TIPORIGA=A COD=" << _curlis; if (!field(F_TOCOD).empty()) query << " CODRIGA=" << get(F_TOCOD); TISAM_recordset rcondv(query); - rcondv.set_var("#COD", get(F_CODLIS)); TProgind pi(rcondv.items(), TR("Caricamento..."), false, true); const TRelation& rel = *rcondv.cursor()->relation(); @@ -128,6 +194,17 @@ void TRicarico_listini_mask::load() const char* val = f->field()->read(rel); f->set(val); } + + const TString& codart = sm.get(F_CODART); + const char cod[4] = "FGD"; + for (int lingua = 0; lingua < 3; lingua++) + { + deslin.put("CODART", codart); + deslin.put("CODLIN", cod[lingua]); + if (deslin.read() == NOERR) + sm.set(F_DESCFRA+lingua, deslin.get("DESCR")); + } + TToken_string& r = s.row(-1); if (r.empty()) // Dummy test { @@ -145,6 +222,75 @@ void TRicarico_listini_mask::load() s.force_update(); _dirty.reset(); disable(DLG_SAVEREC); + enable(DLG_RECALC); + + _loading = false; +} + +bool TRicarico_listini_mask::import() +{ + TRecnotype n = 0; + TFilename name; + name.tempdir(); + name.add("*.csv"); + if (!input_filename(name) || !name.exist()) + return false; + + TString msg; + msg << TR("Importazione ") << name; + TLog_report log(msg); + + TCSV_recordset txt(name); + + if (txt.items() > 0) + { + TFast_isamfile rcondv(LF_RCONDV); + TFast_isamfile anamag(LF_ANAMAG); + + TAssoc_array codarts; + + TProgind pi(txt.items(), msg); + for (bool ok = txt.move_first(); ok; ok = txt.move_next()) + { + if (!pi.addstatus(1)) + break; + TString80 codart = txt.get(0L).as_string(); + codart.trim(); + if (codart.not_empty() && !codarts.is_key(codart)) + { + codarts.add(codart); + anamag.put(ANAMAG_CODART, codart); + if (anamag.read() == NOERR) + { + rcondv.zero(); + rcondv.put(RCONDV_TIPO, "L"); + rcondv.put(RCONDV_COD, _curlis); + rcondv.put(RCONDV_TIPORIGA, "A"); + rcondv.put(RCONDV_CODRIGA, codart); + if (rcondv.write() != NOERR) + { + msg = codart; + msg << TR(" articolo già a listino"); + log.log(1, msg); + } + else + n++; + } + else + { + msg = codart; + msg << TR(" articolo non presente in anagrafica"); + log.log(2, msg); + } + } + } + } + msg.format(FR("Sono stati importati %ld nuovi articoli su %ld righe"), n, txt.items()); + log.log(0, ""); + log.log(0, msg); + log.preview(); + + return n > 0; } bool TRicarico_listini_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -152,13 +298,19 @@ bool TRicarico_listini_mask::on_field_event(TOperable_field& o, TField_event e, switch (o.dlg()) { case F_CODLIS: + if (e == fe_init || e == fe_modify) + { + const bool good = !o.empty(); + enable(DLG_NEWREC, good); + enable(DLG_PRINT, good); + } case F_FILTRIC: case F_FROMCOD: case F_TOCOD: if (e == fe_modify) { - save_if_dirty(); - load(); + if (save_if_dirty()) + load(); } break; case F_COSTO: @@ -172,10 +324,17 @@ bool TRicarico_listini_mask::on_field_event(TOperable_field& o, TField_event e, if (costo > 0.03) { const real ricarico = cache().get("&RIC", sm.get(F_RICARICO), "R0"); - price = costo * (CENTO + ricarico) / CENTO; + const TPrice p = costo * (CENTO + ricarico) / CENTO; + price = p.get_num(); } sm.set(F_NEWPRICE, price, 0x3); - set_dirty(o); + } + break; + case F_SCONTO: + if (e == fe_modify && jolly) + { + on_field_event(o.mask().efield(F_OLDPRICE), e, jolly); + on_field_event(o.mask().efield(F_NEWPRICE), e, jolly); } break; case F_OLDPRICE: @@ -190,7 +349,6 @@ bool TRicarico_listini_mask::on_field_event(TOperable_field& o, TField_event e, scontato.round(2); real margine = (scontato > ZERO) ? CENTO * (scontato - costo) / scontato : ZERO; sm.set(o.dlg() + (F_NEWMARGIN-F_NEWPRICE), margine, 0x3); - set_dirty(o); const real oldprice = sm.get(F_OLDPRICE); if (oldprice> ZERO) @@ -203,6 +361,37 @@ bool TRicarico_listini_mask::on_field_event(TOperable_field& o, TField_event e, sm.set(F_DELTAMARGIN, deltam); } break; + case F_LISTINO: + switch (e) + { + case se_notify_modify: + set_dirty(); + break; + case se_query_add: + send_key(K_SPACE, DLG_NEWREC, &o); + case se_query_del: + return false; + default: + break; + } + break; + case DLG_EDIT: + if (e == fe_button && jolly == 1) + { + TMask& msk = o.mask(); + msk.reset(F_SCONTO); + msk.reset(F_COSTO); + msk.reset(F_RICARICO); + msk.reset(F_OLDPRICE); + } + break; + case DLG_EXPORT: + if (e == fe_button && jolly == 0) + { + TSheet_field& s = sfield(F_LISTINO); + s.esporta(); + } + break; case DLG_SAVEREC: if (e == fe_button && jolly == 0 && _dirty.first_one() >= 0) { @@ -210,6 +399,41 @@ bool TRicarico_listini_mask::on_field_event(TOperable_field& o, TField_event e, load(); } break; + case DLG_RECALC: + if (e == fe_button && jolly == 0 && _dirty.first_one() < 0) + { + const TSheet_field& s = sfield(F_LISTINO); + if (yesno_box(FR("Si desidera aggiornare il prezzo di %ld articoli"), s.items())) + { + recalc(); + load(); + } + } + break; + case DLG_NEWREC: + if (e == fe_button && jolly == 0) + { + if (save_if_dirty() && import()) + load(); + } + break; + case DLG_PRINT: + case DLG_PREVIEW: + if (e == fe_button && jolly == 0) + { + TReport rep; + if (rep.load("ve2800")) + { + rep.recordset()->set_var("#COD", _curlis); + if (o.dlg() == DLG_PRINT) + rep.print(); + else + rep.preview(); + } + else + cantread_box("ve2800.rep"); + } + break; case DLG_CANCEL: case DLG_QUIT: if (e == fe_button && jolly == 0) diff --git a/ve/ve2800.h b/ve/ve2800.h index a84074068..fe3b8aa8c 100644 --- a/ve/ve2800.h +++ b/ve/ve2800.h @@ -20,4 +20,6 @@ #define F_OLDMARGIN 109 #define F_NEWMARGIN 110 #define F_DELTAMARGIN 111 - +#define F_DESCFRA 112 +#define F_DESCENG 113 +#define F_DESCDEU 114 \ No newline at end of file diff --git a/ve/ve2800a.uml b/ve/ve2800a.uml index 328379081..540140a95 100644 --- a/ve/ve2800a.uml +++ b/ve/ve2800a.uml @@ -4,23 +4,46 @@ TOOLBAR "Toolbar" 0 0 0 2 BUTTON DLG_SAVEREC 2 2 BEGIN - PROMPT 1 1 "~Salva" + PROMPT 1 1 "Salva" PICTURE TOOL_SAVEREC FLAGS "D" END -BUTTON DLG_NULL 4 2 +BUTTON DLG_RECALC 2 2 BEGIN - PROMPT 2 1 "" - PICTURE 0 + PROMPT 2 1 "Aggiorna Prezzi" + PICTURE TOOL_RECALC END BUTTON DLG_NEWREC 2 2 BEGIN - PROMPT 5 1 "+Articoli" + PROMPT 3 1 "+Articoli" PICTURE TOOL_IMPORT END +BUTTON DLG_NULL 2 2 +BEGIN + PROMPT 4 1 "" +END + +BUTTON DLG_EXPORT 2 2 +BEGIN + PROMPT 5 1 "Excel" + PICTURE TOOL_EXCEL +END + +BUTTON DLG_PREVIEW 2 2 +BEGIN + PROMPT 5 1 "Anteprima" + PICTURE TOOL_PREVIEW +END + +BUTTON DLG_PRINT 2 2 +BEGIN + PROMPT 6 1 "Stampa" + PICTURE TOOL_PRINT +END + #include ENDPAGE @@ -39,6 +62,8 @@ BEGIN OUTPUT F_CODLIS COD OUTPUT F_DESLIS COD CHECKTYPE REQUIRED + FLAGS "U" + ADD RUN ve2 -1 END STRING F_DESLIS 50 @@ -58,6 +83,7 @@ BEGIN OUTPUT F_FILTRIC CODTAB OUTPUT F_DESRIC S0 CHEKTYPE NORMAL + FLAGS "U" END STRING F_DESRIC 50 @@ -78,6 +104,7 @@ BEGIN OUTPUT F_FROMCOD CODART OUTPUT F_FROMDES DESCR CHECKTYPE SEARCH + FLAGS "U" END STRING F_FROMDES 50 @@ -102,6 +129,7 @@ BEGIN OUTPUT F_TOCOD CODART OUTPUT F_TODES DESCR CHECKTYPE SEARCH + FLAGS "U" END STRING F_TODES 50 @@ -129,6 +157,9 @@ BEGIN ITEM "Margine\nAttuale@7" ITEM "Margine\nNuovo@7" ITEM "Margine\nDelta@7" + ITEM "Descrizione\nFrancese@30" + ITEM "Descrizione\nInglese@30" + ITEM "Descrizione\nTedesco@30" END ENDPAGE @@ -136,7 +167,7 @@ ENDPAGE ENDMASK // maschera di riga sheet -PAGE "Riga aggiornamento listini" -1 -1 66 9 +PAGE "Riga aggiornamento listini" -1 -1 66 12 STRING F_CODART 20 BEGIN @@ -167,7 +198,6 @@ END NUMBER F_SCONTO 3 BEGIN PROMPT 35 4 "Sconto " - FLAGS "D" FIELD SCONTO END @@ -212,30 +242,48 @@ BEGIN FLAGS "DUG" END -NUMBER F_DELTAPRICE 3 +NUMBER F_DELTAPRICE 6 2 BEGIN PROMPT 50 6 "" FLAGS "D" END -NUMBER F_OLDMARGIN 4 +NUMBER F_OLDMARGIN 6 2 BEGIN PROMPT 2 7 "@bMargine " FLAGS "D" END -NUMBER F_NEWMARGIN 4 +NUMBER F_NEWMARGIN 6 2 BEGIN PROMPT 32 7 "" FLAGS "D" END -NUMBER F_DELTAMARGIN 4 +NUMBER F_DELTAMARGIN 6 2 BEGIN PROMPT 50 7 "" FLAGS "D" END +STRING F_DESCFRA 50 +BEGIN + PROMPT 1 9 "Descr. FRA " + FLAGS "D" +END + +STRING F_DESCENG 50 +BEGIN + PROMPT 1 10 "Descr. ENG " + FLAGS "D" +END + +STRING F_DESCDEU 50 +BEGIN + PROMPT 1 11 "Descr. DEU " + FLAGS "D" +EN + ENDPAGE TOOLBAR "topbar" 0 0 0 2 @@ -245,10 +293,10 @@ BEGIN PROMPT 1 1 "" END -BUTTON DLG_USER 2 2 +BUTTON DLG_EDIT 2 2 BEGIN - PROMPT 2 1 "A~zzera" - PICTURE TOOL_CELLULAR + PROMPT 2 1 "Azzera" + PICTURE TOOL_RESET END BUTTON DLG_CANCEL 2 2 diff --git a/ve/vefat.rep b/ve/vefat.rep index 394ca119d..acba5c1db 100755 --- a/ve/vefat.rep +++ b/ve/vefat.rep @@ -1,562 +1,562 @@ - - - fattura standard - -
- - - MESSAGE _PAGENO - - - - 33.DATADOC - - - - 33.NDOC - - - MESSAGE _CLIENTE,COFI - - - IF(33.CODVAL='','EURO',33.CODVAL) - - - 33.CODCF - - - MESSAGE _CLIENTE,PAIV - - - 201@.S0 - - - 208@.S0 - - - 208@.S0 - - - 71 - 204@.S0 - - - - MESSAGE _CLIENTE,!RAGSOC - - - MESSAGE _CLIENTE,!INDNUM - - - MESSAGE _CLIENTE,LOCALITACF - - - MESSAGE _CLIENTE,!CAP - - - - - - - MESSAGE _TABLEREAD,%STA,#27,S0 - - - - 210@.S0 - - - MESSAGE _CLIENTE,STATOPAIV - - - 212@.S0 - - - 210@.S0 - - - 211@.S0 - - - 70 - 213@.S3 - - - - 70 - - - 71 - 33.CODCABA - - - 71 - 33.CODABIA - - - 33.CODCMS - - - 71 - 33.IBAN[16,]+' CIN:'+33.IBAN[5,5] - - - - 71 - - - - 71 - - - - 71 - - - - - 70 - MESSAGE TABLEREAD,%BAN,#119,S0 - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- !((34.TIPORIGA='08')) - - - - 34.CODART - - - MESSAGE _DESCRIGA - - - 34.UMQTA - MESSAGE _ALIGN,#52,BOTTOM - - - 30 - 34.QTA - MESSAGE _ALIGN,#52,BOTTOM - - - 29 - 34.PREZZO - MESSAGE _ALIGN,#52,BOTTOM - - - 34.SCONTO - MESSAGE _ALIGN,#52,BOTTOM - - - 29 - 34.IMPNS - MESSAGE _ALIGN,#52,BOTTOM - - - 34.CODIVA - MESSAGE _ALIGN,#52,BOTTOM - - - - -
-
-
- - - - #DOC.LIQDIFF @ -EMPTY= -NEGATE -#CLI.ALLEG @ -7 -C; -AND -IF -"Iva a esigibilt&#E0; differita ai sensi dell' art. 6 comma 5, del dpr n.633F;2973 e dell' art.7 legge 2F;2009" -#THIS ! -THEN - - - - #DOC.LIQDIFF @ -EMPTY= -NEGATE -#CLI.ALLEG @ -7 -C; -AND -IF -"Iva a esigibilt&#E0; differita ai sensi dell' art. 6 comma 5, del dpr n.633F;2973 e dell' art.7 legge 2F;2009" -#THIS ! -THEN - - - 31 - TOTMER - - - 33.SCONTOPERC - - - - 31 - SPESTRA - - - 31 - SPESIMB - - - 31 - 33.IMPPAGATO - - - MESSAGE _RIEPILOGOIVA,1,COD,0 - - - 31 - MESSAGE _RIEPILOGOIVA,1,IMP,0 - - - MESSAGE _RIEPILOGOIVA,1,ALI,0 - - - 31 - MESSAGE _RIEPILOGOIVA,1,IVA,1 - - - MESSAGE _RIEPILOGOIVA,1,COD,0 - - - 31 - MESSAGE _RIEPILOGOIVA,1,IMP,0 - - - MESSAGE _RIEPILOGOIVA,1,ALI,0 - - - 31 - MESSAGE _RIEPILOGOIVA,1,IVA,1 - - - MESSAGE _RIEPILOGOIVA,1,COD,0 - - - 31 - MESSAGE _RIEPILOGOIVA,1,IMP,0 - - - MESSAGE _RIEPILOGOIVA,1,ALI,0 - - - 31 - MESSAGE _RIEPILOGOIVA,1,IVA,1 - - - 31 - MESSAGE _RIEPILOGOIVA,30,IMP,0 - - - MESSAGE _RIEPILOGOIVA,30,COD,0 - - - MESSAGE _RIEPILOGOIVA,30,DES,1 - - - 31 - MESSAGE _RIEPILOGOIVA,30,IMP,0 - - - MESSAGE _RIEPILOGOIVA,30,COD,0 - - - MESSAGE _RIEPILOGOIVA,30,DES,1 - - - 31 - IMPONIBILI - - - 31 - IMPOSTE - - - - - - - 31 - TOTDOC - - - 31 - 33.IMPPAGATO - MESSAGE SUB,138 - - - 31 - - - MESSAGE _SCADENZE,DATA,0 - - - 31 - MESSAGE _SCADENZE,IMPORTO,1 - - - MESSAGE _SCADENZE,DATA,0 - - - 31 - MESSAGE _SCADENZE,IMPORTO,1 - - - MESSAGE _SCADENZE,DATA,0 - - - 31 - MESSAGE _SCADENZE,IMPORTO,1 - - - MESSAGE _SCADENZE,DATA,0 - - - 31 - MESSAGE _SCADENZE,IMPORTO,1 - - - MESSAGE _SCADENZE,DATA,0 - - - 31 - MESSAGE _SCADENZE,IMPORTO,1 - -
- USE 33 -JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC -JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF -JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF -JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP -JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP -JOIN 47 TO 34 INTO CODART==CODART -JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG -JOIN 122 TO 33 INTO CODAGE==CODAG -JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO -JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA -JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 -JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 -JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP -JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA -JOIN %VAL TO 33 ALIAS 209 INTO CODTAB==CODVAL -JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC -JOIN %MSP TO 33 ALIAS 211 INTO CODTAB==CODSPMEZZO -JOIN CMS TO 33 ALIAS 212 INTO CODTAB==CODCMS -JOIN BNP TO 33 ALIAS 213 INTO CODTAB==CODABIP+CODCABP+PROGBNP + + + fattura standard + +
+ + + MESSAGE _PAGENO + + + + 33.DATADOC + + + + 33.NDOC + + + MESSAGE _CLIENTE,COFI + + + IF(33.CODVAL='','EURO',33.CODVAL) + + + 33.CODCF + + + MESSAGE _CLIENTE,PAIV + + + 201@.S0 + + + 208@.S0 + + + 208@.S0 + + + 71 + 204@.S0 + + + + MESSAGE _CLIENTE,!RAGSOC + + + MESSAGE _CLIENTE,!INDNUM + + + MESSAGE _CLIENTE,LOCALITACF + + + MESSAGE _CLIENTE,!CAP + + + + + + + MESSAGE _TABLEREAD,%STA,#27,S0 + + + + 210@.S0 + + + MESSAGE _CLIENTE,STATOPAIV + + + 212@.S0 + + + 210@.S0 + + + 211@.S0 + + + 70 + 213@.S3 + + + + 70 + + + 71 + 33.CODCABA + + + 71 + 33.CODABIA + + + 33.CODCMS + + + 71 + 33.IBAN[16,]+' CIN:'+33.IBAN[5,5] + + + + 71 + + + + 71 + + + + 71 + + + + + 70 + MESSAGE TABLEREAD,%BAN,#119,S0 + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ !((34.TIPORIGA='08')) + + + + 34.CODART + + + MESSAGE _DESCRIGA + + + 34.UMQTA + MESSAGE _ALIGN,#52,BOTTOM + + + 30 + 34.QTA + MESSAGE _ALIGN,#52,BOTTOM + + + 29 + 34.PREZZO + MESSAGE _ALIGN,#52,BOTTOM + + + 34.SCONTO + MESSAGE _ALIGN,#52,BOTTOM + + + 29 + 34.IMPNS + MESSAGE _ALIGN,#52,BOTTOM + + + 34.CODIVA + MESSAGE _ALIGN,#52,BOTTOM + + + + +
+
+
+ + + + #DOC.LIQDIFF @ +EMPTY= +NEGATE +#CLI.ALLEG @ +7 +C; +AND +IF +"Iva a esigibilt&#E0; differita ai sensi dell' art. 6 comma 5, del dpr n.633F;2973 e dell' art.7 legge 2F;2009" +#THIS ! +THEN + + + + #DOC.LIQDIFF @ +EMPTY= +NEGATE +#CLI.ALLEG @ +7 +C; +AND +IF +"Iva a esigibilt&#E0; differita ai sensi dell' art. 6 comma 5, del dpr n.633F;2973 e dell' art.7 legge 2F;2009" +#THIS ! +THEN + + + 31 + TOTMER + + + 33.SCONTOPERC + + + + 31 + SPESTRA + + + 31 + SPESIMB + + + 31 + 33.IMPPAGATO + + + MESSAGE _RIEPILOGOIVA,1,COD,0 + + + 31 + MESSAGE _RIEPILOGOIVA,1,IMP,0 + + + MESSAGE _RIEPILOGOIVA,1,ALI,0 + + + 31 + MESSAGE _RIEPILOGOIVA,1,IVA,1 + + + MESSAGE _RIEPILOGOIVA,1,COD,0 + + + 31 + MESSAGE _RIEPILOGOIVA,1,IMP,0 + + + MESSAGE _RIEPILOGOIVA,1,ALI,0 + + + 31 + MESSAGE _RIEPILOGOIVA,1,IVA,1 + + + MESSAGE _RIEPILOGOIVA,1,COD,0 + + + 31 + MESSAGE _RIEPILOGOIVA,1,IMP,0 + + + MESSAGE _RIEPILOGOIVA,1,ALI,0 + + + 31 + MESSAGE _RIEPILOGOIVA,1,IVA,1 + + + 31 + MESSAGE _RIEPILOGOIVA,30,IMP,0 + + + MESSAGE _RIEPILOGOIVA,30,COD,0 + + + MESSAGE _RIEPILOGOIVA,30,DES,1 + + + 31 + MESSAGE _RIEPILOGOIVA,30,IMP,0 + + + MESSAGE _RIEPILOGOIVA,30,COD,0 + + + MESSAGE _RIEPILOGOIVA,30,DES,1 + + + 31 + IMPONIBILI + + + 31 + IMPOSTE + + + + + + + 31 + TOTDOC + + + 31 + 33.IMPPAGATO + MESSAGE SUB,138 + + + 31 + + + MESSAGE _SCADENZE,DATA,0 + + + 31 + MESSAGE _SCADENZE,IMPORTO,1 + + + MESSAGE _SCADENZE,DATA,0 + + + 31 + MESSAGE _SCADENZE,IMPORTO,1 + + + MESSAGE _SCADENZE,DATA,0 + + + 31 + MESSAGE _SCADENZE,IMPORTO,1 + + + MESSAGE _SCADENZE,DATA,0 + + + 31 + MESSAGE _SCADENZE,IMPORTO,1 + + + MESSAGE _SCADENZE,DATA,0 + + + 31 + MESSAGE _SCADENZE,IMPORTO,1 + +
+ USE 33 +JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC +JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP +JOIN 47 TO 34 INTO CODART==CODART +JOIN %CPG TO 33 ALIAS 201 INTO CODTAB==CODPAG +JOIN 122 TO 33 INTO CODAGE==CODAG +JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO +JOIN %BAN TO 33 ALIAS 204 INTO CODTAB==CODABIA+CODCABA +JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1 +JOIN %ASP TO 33 ALIAS 206 INTO CODTAB==ASPBENI1 +JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP +JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA +JOIN %VAL TO 33 ALIAS 209 INTO CODTAB==CODVAL +JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC +JOIN %MSP TO 33 ALIAS 211 INTO CODTAB==CODSPMEZZO +JOIN CMS TO 33 ALIAS 212 INTO CODTAB==CODCMS +JOIN BNP TO 33 ALIAS 213 INTO CODTAB==CODABIP+CODCABP+PROGBNP \ No newline at end of file