diff --git a/ba/ba7100.cpp b/ba/ba7100.cpp index c0987adb0..c4dfdc9fb 100755 --- a/ba/ba7100.cpp +++ b/ba/ba7100.cpp @@ -647,25 +647,34 @@ bool TMailer_mask::file2app(const TString& file, TString& app) const { bool ok = FALSE; if (file != _last_file) - { - if (isdigit(file[0])) + { + TConfig d(CONFIG_DITTA, "ba7"); + TString16 appname; appname << "Edit_" << file; + app = d.get(appname); + if (app.empty()) { - const int filenum = atoi(file); - if (filenum >= LF_USER && filenum < prefix().items()) + + if (isdigit(file[0])) { - TLocalisamfile isf(filenum); - ok = isf.get_relapp(app); + const int filenum = atoi(file); + if (filenum >= LF_USER && filenum < prefix().items()) + { + TLocalisamfile isf(filenum); + ok = isf.get_relapp(app); + } } - } + else + { + const int len = file.len(); + if (len == 3 || (len == 4 && file[0] == '%')) + { + TTable table(file); + ok = table.get_relapp(app); + } + } + } else - { - const int len = file.len(); - if (len == 3 || (len == 4 && file[0] == '%')) - { - TTable table(file); - ok = table.get_relapp(app); - } - } + ok = TRUE; // Fool const directive (TString&)_last_file = file; (TString&)_last_app = app; diff --git a/ba/bastcms.uml b/ba/bastcms.uml new file mode 100755 index 000000000..7f22eb697 --- /dev/null +++ b/ba/bastcms.uml @@ -0,0 +1,42 @@ +#include "ba3200.h" + +PAGE "Stampa Tabella Commesse" -1 -1 50 8 +STRING F_INIZIO1 20 +BEGIN +PROMPT 2 1 "Da codice " +FLAGS "U" +HELP "Inserire il codice da cui iniziare la stampa. Se in bianco vuol dire dall'inizio" +FIELD CODTAB +USE CMS +INPUT CODTAB F_INIZIO1 +DISPLAY "Codice" CODTAB +DISPLAY "Descrizione@50" S0 +OUTPUT F_INIZIO1 CODTAB +GROUP 1 +END + +STRING F_FINE1 20 +BEGIN +PROMPT 2 3 "A codice " +FLAGS "U" +HELP "Inserire il codice di fine. Se in bianco vuol dire l'ultimo" +FIELD CODTAB +COPY USE F_INIZIO1 +INPUT CODTAB F_FINE1 +COPY DISPLAY F_INIZIO1 +OUTPUT F_FINE1 CODTAB +GROUP 2 +END + +BUTTON DLG_OK 10 2 +BEGIN +PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -22 -1 "" +END + +ENDPAGE +ENDMASK diff --git a/ba/bastfsc.uml b/ba/bastfsc.uml new file mode 100755 index 000000000..f5c0b113f --- /dev/null +++ b/ba/bastfsc.uml @@ -0,0 +1,42 @@ +#include "ba3200.h" + +PAGE "Stampa Tabella Fasi" -1 -1 50 8 +STRING F_INIZIO1 10 +BEGIN +PROMPT 2 1 "Da codice " +FLAGS "U" +HELP "Inserire il codice da cui iniziare la stampa. Se in bianco vuol dire dall'inizio" +FIELD CODTAB +USE FSC +INPUT CODTAB F_INIZIO1 +DISPLAY "Codice" CODTAB +DISPLAY "Descrizione@50" S0 +OUTPUT F_INIZIO1 CODTAB +GROUP 1 +END + +STRING F_FINE1 10 +BEGIN +PROMPT 2 3 "A codice " +FLAGS "U" +HELP "Inserire il codice di fine. Se in bianco vuol dire l'ultimo" +FIELD CODTAB +COPY USE F_INIZIO1 +INPUT CODTAB F_FINE1 +COPY DISPLAY F_INIZIO1 +OUTPUT F_FINE1 CODTAB +GROUP 2 +END + +BUTTON DLG_OK 10 2 +BEGIN +PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -22 -1 "" +END + +ENDPAGE +ENDMASK diff --git a/ba/batbcms.rpt b/ba/batbcms.rpt new file mode 100755 index 000000000..6037710c3 --- /dev/null +++ b/ba/batbcms.rpt @@ -0,0 +1,39 @@ +[Relations] +LF_CLIFO;TIPOCF="C"|CODCF=I0 + +[Headers] +80 +Tabella Commesse +1|@3g%s|Codice +1|@24g%s|Descrizione +1|@72g%s|Da rend. +2|@3g%s|Cliente +2|@62g%s|Regime iva +3|@3g%s|Data ini. +3|@14g%s|Data fine +3|@26g%s|Pubblico +3|@35g%s|Prorogata +3|@45g%s|Chiusa +3|@52g%s|Responsabile + +[Rows] +1|CODTAB|@3g@20,ls +1|S0|@24g@50,ls +1|B1|@78g@f +2|I0|@3g@6n +2|20->RAGSOC|@10g@50,ls +2|S7|@62g@17t +3|D0|@3g@ld +3|D1|@14g@ld +3|B0|@26g@8f +3|B2|@35g@9f +3|B3|@45g@6f +3|S4|@10g@8,ls + +[Translations] +5|S7| |IVA normale +5|S7|NR|Non rilevante +5|S7|ES|Operazioni esenti +5|S7|NI|Non imponibili +5|S7|NS|Non soggetti +5|S7|FC|Fuori campo diff --git a/ba/batbfsc.rpt b/ba/batbfsc.rpt new file mode 100755 index 000000000..3afa0e60c --- /dev/null +++ b/ba/batbfsc.rpt @@ -0,0 +1,9 @@ +[Headers] +80 +Tabella Fasi commesse +1|@3g%s|Codice +1|@14g%s|Descrizione + +[Rows] +1|CODTAB|@3g@10,ls +1|S0|@14g@50,ls diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index 2f81a0b34..79651f2fa 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -1507,9 +1507,9 @@ bool TPrimanota_application::iva_notify(TSheet_field& iva, int r, KEY k) } if (conto.ok() && !newimp.is_zero()) // Se c'e' imponibile ... { // crea una nuova riga contabile - if (descr.blank()) - descr = cau.desc_agg(2); - newpos = a.set_cgs_row(-1, newimp, conto, descr, 'I', conto.commessa(), conto.fase()); + if (saved_descr.blank()) + saved_descr = cau.desc_agg(2); + newpos = a.set_cgs_row(-1, newimp, conto, saved_descr, 'I', conto.commessa(), conto.fase()); } } diff --git a/cg/cg3200.cpp b/cg/cg3200.cpp index e0ddf5d8e..e0468eb2c 100755 --- a/cg/cg3200.cpp +++ b/cg/cg3200.cpp @@ -134,7 +134,7 @@ class TMastrini_application : public TPrintapp bool _noseparator, _print_cdc; TString _real_picture; - TString _cdc; + TString _cdc, _fsc, _riga_commessa; real _totale_commessa_dare, _totale_commessa_avere, _saldo_commessa; @@ -686,11 +686,11 @@ bool TMastrini_application::almeno_un_record() TString filter; if (_cdc.not_empty()) - { - filter << '(' << RMV_CODCMS << "=='" << _cdc << "')"; - if (_fsc.not_empty()) - filter << "&&(" << RMV_FASCMS << "=='" << _fsc << "')"; - } + { + filter << '(' << RMV_CODCMS << "=='" << _cdc << "')"; + if (_fsc.not_empty()) + filter << "&&(" << RMV_FASCMS << "=='" << _fsc << "')"; + } rmov.zero(); rmov.put(RMV_GRUPPO, _gruppo); rmov.put(RMV_CONTO, _conto); @@ -1618,7 +1618,7 @@ bool TMastrini_application::preprocess_page(int file, int counter) if (_cdc.not_empty() && rmov.get(RMV_CODCMS) != _cdc) return FALSE; if (_fsc.not_empty() && rmov.get(RMV_FASCMS) != _fsc) - return FALSE; + return FALSE; //Il flag _gia_stampata_intestazione serve nella stampa in continuo, xche' //sono costretto a richiamare l'intestazione sia nella preprocess_page (per @@ -2642,24 +2642,24 @@ bool TMastrini_application::set_print(int m) for (fsccur = 0L; fsccur.pos() < fsc_items; ++fsccur) { _fsc = fsccur.curr().get("CODTAB"); - do - { - _totale_commessa_dare = _totale_commessa_avere = ZERO; - print(); - } - while (need_to_repeat_print()); - } - } - else - { + do + { + _totale_commessa_dare = _totale_commessa_avere = ZERO; + print(); + } + while (need_to_repeat_print()); + } + } + else + { _fsc.cut(0); - do - { - _totale_commessa_dare = _totale_commessa_avere = ZERO; - print(); - } - while (need_to_repeat_print()); - } + do + { + _totale_commessa_dare = _totale_commessa_avere = ZERO; + print(); + } + while (need_to_repeat_print()); + } } } @@ -3309,9 +3309,9 @@ void TMastrini_application::calcola_progressivi_al(const TDate& data_fin) if (_cdc.not_empty()) { filter << RMV_CODCMS << "==\"" << _cdc << "\""; - if (_fsc.not_empty()) - filter << "&&(" << RMV_FASCMS << "==\"" << _fsc << "\")"; - } + if (_fsc.not_empty()) + filter << "&&(" << RMV_FASCMS << "==\"" << _fsc << "\")"; + } rmov.zero(); rmov.put(RMV_GRUPPO, _gruppo); rmov.put(RMV_CONTO, _conto); @@ -3986,19 +3986,19 @@ int TMastrini_application::ricerca_gruppo(int start) set_row (r, "@r%s@23g@b%s", trans("Periodo di competenza"), (const char*) dataini); set_row (r, "@35g%s@r", (const char*) datafine); - if (_cdc.not_empty()) - { - const TString& desc_cdc = cache().get("CMS", _cdc, "S0"); - if (_fsc.not_empty()) - { - const TString& desc_fsc = cache().get("FSC", _fsc, "S0"); - set_row(++r, "@bCommessa %s %s - Fase %s %s", - (const char*)_cdc, (const char*)desc_cdc, - (const char*)_fsc, (const char*)desc_fsc); - } - else - set_row(++r, "@bCommessa %s %s", (const char*)_cdc, (const char*)desc_cdc); - } + if (_cdc.not_empty()) + { + const TString& desc_cdc = cache().get("CMS", _cdc, "S0"); + if (_fsc.not_empty()) + { + const TString& desc_fsc = cache().get("FSC", _fsc, "S0"); + set_row(++r, "@bCommessa %s %s - Fase %s %s", + (const char*)_cdc, (const char*)desc_cdc, + (const char*)_fsc, (const char*)desc_fsc); + } + else + set_row(++r, "@bCommessa %s %s", (const char*)_cdc, (const char*)desc_cdc); + } } else { diff --git a/m770/771230la.uml b/m770/771230la.uml new file mode 100755 index 000000000..6b2b8e490 --- /dev/null +++ b/m770/771230la.uml @@ -0,0 +1,281 @@ +#include "771230.h" +TOOLBAR "" 0 -3 0 3 +#include + +BUTTON F_GENERA 24 1 +BEGIN + PROMPT -11 0 "~Generazione da schede" +END + +ENDPAGE + +PAGE "Riepilogo LA" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 1 "Percipiente" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 4 2 "Ditta " + USE LF_NDITTE + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE REQUIRED + FLAGS "DG" + FIELD CODDITTA + KEY 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 24 2 "" + FLAGS "D" +END + +LIST F_NUMPROG 1 6 +BEGIN + PROMPT 0 80 "Numero " + FIELD NPROG + ITEM "1|Riga 1" + FLAGS "D" + KEY 1 +END + +LIST F_TIPOA 1 17 +BEGIN + PROMPT 4 3 "Tipo percipiente " + FIELD TIPOA + ITEM "F|Persona Fisica" + ITEM "G|Persona Giuridica" + KEY 1 +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 4 4 "Codice " + FIELD CODANAGR + KEY 1 + USE LF_QUAD SELECT NPROG=1 + JOIN LF_ANAG INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR + INPUT NPROG F_NUMPROG + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" LF_ANAG->RAGSOC + OUTPUT F_CODANAGR CODANAGR + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 24 4 "" + FLAGS "D" +END + +NUMBER H_CODANAGR 5 +BEGIN + PROMPT 4 4 "Codice " + FIELD CODANAGR + KEY 1 + USE LF_ANAG + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR H_CODANAGR + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT H_CODANAGR CODANAGR + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE FORCED + ADD RUN ba4 -1 F + MESSAGE COPY,F_CODANAGR + WARNING "Anagrafica assente" +END + +SPREADSHEET F_RIGHE +BEGIN + PROMPT 0 6 "" + ITEM "Cod.\ncau.@4" + ITEM "Aliq." + ITEM "Cau." + ITEM "Anno" + ITEM "Ammontare lordo\ncorrisposto@15" + ITEM "Somme non sogg.\nritenute@15" + ITEM "Somme non sogg.\nrit. reg. conv.@15" + ITEM "Imponibile@15" + ITEM "Ritenute\nOperate@15" + ITEM "Ritenute\nSospese@15" + ITEM "Addizionale\nregionale@15" + ITEM "Addizionale\nregionale sosp.@15" + ITEM "Imponibile anni\nprecedenti@15" + ITEM "Ritenute operate\nanni precedenti@15" + ITEM "Generata\nda schede@9" +// FLAGS "A" +// USE LF_QUAD KEY NPROG +// INPUT CODDITTA F_CODDITTA +// INPUT TIPOA F_TIPOA +// INPUT CODANAGR F_CODANAGR +END + +ENDPAGE + +ENDMASK + +PAGE "RIGA 1" -1 -1 58 15 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Codice causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="LA")) + INPUT CODTAB 101 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@35" S0 + OUTPUT 101 CODTAB + OUTPUT 102 R0 + OUTPUT 103 S2 + CHECKTYPE NORMAL + FLAGS "Z" + WARNING "Manca la causale" + FIELD CODCAUS + ADD RUN 773mod -3 %CA7 + FIELD CODCAUS +END + +NUMBER 102 6 2 +BEGIN + PROMPT 25 1 "Aliquota applicata " + NUM_EXPR {(#THIS_FIELD>=0)&&(#THIS_FIELD<=100)} + WARNING "L'aliquota deve essere compresa tra 0 e 100" + FIELD PERC +END + +STRING 103 1 +BEGIN + PROMPT 1 2 "Causale " + FLAGS "U" + SHEET "Cod.|Descrizione@256" + INPUT 103 + ITEM "A|Prestazioni di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" + ITEM "B|Utilizzazione economica, da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienzeacquisite in campo industriale, commerciale o scientifico" + ITEM "C|Utili derivanti da contratti di associazione in partecipazione e da contratti di cointeressenza quando l' apporto e' costituito esclusivamente dalla prestazione di lavoro" + ITEM "D|utili spettanti ai soci promotori ed ai soci fondatori delle societa' di capitali" + ITEM "E|Levata di protesti cambiari da parte dei segretari comunali" + ITEM "F|Prestazioni rese dagli sportivi con contratto di lavoro autonomo" + ITEM "G|Idennita' corrisposte per la cessazione di attivita' sportiva professionale" + ITEM "H|Idennita' corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche" + ITEM "I|Idennita' corrisposte per la cessazione da funzionari notarili" + ITEM "L|Utilizzaz. economica, da parte di sogg. diverso dall'autore o dall'inventore, di opere dell'ingegno, di brevetti industiali e di processi, formule e informaz. relativi ad esperienze acquisite in campo industriale, commerciale, scientifico" + ITEM "M|Prestazioni di lavoro autonomo non esercitate abitualmente" + ITEM "N|Idennita' di trasferta, rinborso forfetario di spese, premi e compensi erogati nell' esercizio diretto di attivita' sportiva dilettantistiche" + ITEM "P|Prestazioni in forma di capitale e riscatti erogati dalle forme di previdenza complementare di cui al D.Lgs 21 aprile 1993,n. 124 e sucessive modificazioni a lavoratori autonomi e imprenditori individuali" + ITEM "Q|Provvigioni corrisposte ad agente o rappresentante di commercio monomandatario" + ITEM "R|Provvigioni corrisposte ad agente o rappresentante plurimandatario" + ITEM "S|Provvigioni corrisposte a commissionario" + ITEM "T|Provvigioni corrisposte a mediatore" + ITEM "U|Provvigioni corrisposte a procacciatore di affari" + ITEM "V|Provvigioni corrisposte a incaricato per le vendite a domicilio" + ITEM "W|Provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67)" + ITEM "Z|Titolo diverso dai precedenti" + OUTPUT 103 + WANING "La causale deve essere compresa tra A ed Z" + FIELD CAUSALE +END + +NUMBER 104 4 +BEGIN + PROMPT 40 2 "Anno " + FIELD ANNO +END + +CURRENCY 105 15 +BEGIN + PROMPT 1 3 "Ammontare lordo " + FIELD TOTALE +END + +CURRENCY 106 15 +BEGIN + PROMPT 1 4 "Somme non soggette a ritenuta " + FIELD SOMME + NUM_EXPR {(#106+#107)<=#105} + WARNING "Le somme non soggette a ritenuta superano il lordo" +END + +CURRENCY 107 15 +BEGIN + PROMPT 1 5 "Somme non sogg. a rit. per reg. conv. " + FIELD SOMREGCONV + NUM_EXPR {(#106+#107)<=#105} + WARNING "Le somme non soggette a ritenuta superano il lordo" +END + +CURRENCY 108 15 +BEGIN + PROMPT 1 6 "Imponibile " + FIELD IMPONIBILE +END + +CURRENCY 109 15 +BEGIN + PROMPT 1 7 "Ritenute operate " + FIELD IMPORTO +END + +CURRENCY 110 15 +BEGIN + PROMPT 1 8 "Ritenute sospese " + FIELD RITSOSPESE +END + +CURRENCY 111 15 +BEGIN + PROMPT 1 9 "Addizionale regionale " + FIELD ADDREG +END + +CURRENCY 112 15 +BEGIN + PROMPT 1 10 "Addizionale regionale sospesa " + FIELD ADDREGSOSP +END + +CURRENCY 113 15 +BEGIN + PROMPT 1 11 "Imponibile anni precedenti " + FIELD IMPANNIPREC +END + +CURRENCY 114 15 +BEGIN + PROMPT 1 12 "Ritenute anni precedenti " + FIELD RITANNIPREC +END + +BOOLEAN 115 +BEGIN + PROMPT 1 13 "Riga generata dalle schede" + FLAGS "D" + FIELD GENERATA +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "~Conferma" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "~Elimina" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "Annulla" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/77srla.frm b/m770/77srla.frm new file mode 100755 index 000000000..1353c1213 --- /dev/null +++ b/m770/77srla.frm @@ -0,0 +1,123 @@ +USE 144 +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 206 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 6 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 218@ ALIAS 313 INTO STATO=="" COM==COMNASC +JOIN 13 TO 216@ ALIAS 413 INTO STATO==STATORES COM==COMRES +JOIN 13 TO 216@ ALIAS 513 INTO STATO=="" COM==COMRF +JOIN %STA TO 216@ ALIAS 104 INTO CODTAB=STATORES +END +DESCRIPTION +BEGIN +144->* "Quadro LA 770" +9->* "Ditte" +6->* "Anagrafica persone fisiche e giuridiche" +8->* "Anagrafica persone fisiche" +206@->* "Anagrafica persone fisiche e giuridiche" +216@->* "Anagrafica persone fisiche e giuridiche" +218@->* "Anagrafica persone fisiche" +313@->* "Comune nascita" +413@->* "Comune residenza" +513@->* "Comune residenza fiscale" +END +GENERAL +BEGIN +OFFSET 0 0 +END +SECTION HEADER ODD 6 +STRINGA 1 40 1 +BEGIN +KEY "nome ditta" +PROMPT 1 1 "Ditta: " +FIELD 9->RAGSOC +END +STRINGA 2 10 +BEGIN +KEY "Data" +PROMPT 106 1 "Data " +MESSAGE _TODAY +END +NUMERO 3 7 +BEGIN +KEY "Nr. pagina" +PROMPT 122 1 "Pagina " +MESSAGE _PAGENO +END +NUMERO 4 40 +BEGIN +KEY "Intestazione stampa" +PROMPT 55 2 "Stampa riepilogo LA" +END +END +SECTION BODY ODD 2 COLUMWISE +STRINGA 1 50 +BEGIN + SPECIAL STRINGA INTESTAZIONE "Ragione Sociale" "Ragione Sociale" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "RAGSOC GIURIDICHE" + PROMPT 1 1 "" + FIELD 216@->RAGSOC +END + +STRINGA 2 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@cCausale" "Causale" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "CAUSALE" + PROMPT 2 1 "" + FIELD CAUSALE +END +VALUTA 3 14 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@cTotale" "Tot." + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "TOTALE" + PROMPT 3 1 "" + FIELD TOTALE + PICTURE "###.###.###^^^" +END +VALUTA 4 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "Somme non sogg." "Somme non sogg." + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "SOMME NON SOGGETTE A RITENUTA" + PROMPT 4 1 "" + FIELD SOMME + PICTURE "###.###.###^^^" +END +VALUTA 5 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "Som. Reg. Conv." "Som. Reg. Conv" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "SOMREGCONV" + PROMPT 5 1 "" + FIELD SOMREGCONV + PICTURE "###.###.###^^^" +END +VALUTA 6 14 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@cImponibile" "Imponibile" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPONIBILE" + PROMPT 6 1 "" + FIELD IMPONIBILE + PICTURE "###.###.###^^^" +END +VALUTA 7 14 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@cImporto" "Importo" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 7 1 "" + FIELD IMPORTO + PICTURE "###.###.###^^^" +END +END diff --git a/m770/f144.dir b/m770/f144.dir new file mode 100755 index 000000000..707a362ef --- /dev/null +++ b/m770/f144.dir @@ -0,0 +1,3 @@ +144 +1 +m770/quadrola|0|0|211|0|Quadro LA 770||| diff --git a/m770/f144.trr b/m770/f144.trr new file mode 100755 index 000000000..04f44ddd1 --- /dev/null +++ b/m770/f144.trr @@ -0,0 +1,24 @@ +144 +20 +CODDITTA|3|5|0|Codice ditta +TIPOA|1|1|0|Tipo anagrafica (Sempre 'F') +CODANAGR|3|5|0|Codice anagrafica +NPROG|2|4|0|Numero progressivo di riga +CODCAUS|9|2|0|Codice causale +CAUSALE|1|1|0|Causale +ANNO|3|4|0|Anno +ANTICIPAZ|8|1|0|Anticipazione +TOTALE|4|18|3|Ammontare lordo corrisposto +SOMME|4|18|3|Somme non soggette a ritenuta +IMPONIBILE|4|18|3|Imponibile +PERC|4|6|2|Aliquota +IMPORTO|4|18|3|Ritenute operate +RITSOSPESE|4|18|3|Ritenute sospese +ADDREG|4|18|3|Addizionale regionale +ADDREGSOSP|4|18|3|Addizionale regionale sospesa +IMPANNIPRE|4|18|3|Imponibile anni precedenti +RITANNIPRE|4|18|3|Ritenute anni precedenti +SOMREGCONV|4|18|3|Somme non soggette a ritenuta per reg. conv. +GENERATA|8|1|0|Riga generata dalle schede +1 +CODDITTA+TIPOA+CODANAGR+NPROG| diff --git a/mg/mglib02.cpp b/mg/mglib02.cpp index e51d6f447..904877c84 100755 --- a/mg/mglib02.cpp +++ b/mg/mglib02.cpp @@ -279,18 +279,14 @@ bool TArticolo::lock_and_prompt(const char * cod) } real TArticolo::convert_to_um(const real& v, const char * to_um, const char * from_um) -{ +{ // Se from_um non specificato significa che la qta che si desidera convertire e' in UM base - int i1, i2 = 0; - i1 = find_um(to_um); - - if (from_um != NULL) - i2 = find_um(from_um); - + const int i1 = find_um(to_um); + const int i2 = (from_um != NULL) ? find_um(from_um) : 0; TRecord_array& u = um(); - real fc1 = i1 ? ((TRectype&)u[i1]).get_real("FC") : 1.00; // Fattore di conversione - real fc2 = i2 ? ((TRectype&)u[i2]).get_real("FC") : 1.00; - real r = (v * fc2) / fc1; + const real fc1 = i1 > 0 ? ((TRectype&)u[i1]).get_real("FC") : 1.00; // Fattore di conversione + const real fc2 = i2 > 0 ? ((TRectype&)u[i2]).get_real("FC") : 1.00; + const real r = (v * fc2) / fc1; // TBI: ricerca sulla tabella UMS nel caso di um non presenti in LF_UMART return r;