diff --git a/cg/cg0500b.uml b/cg/cg0500b.uml index ee1f2f525..277cb930c 100755 --- a/cg/cg0500b.uml +++ b/cg/cg0500b.uml @@ -14,9 +14,8 @@ BEGIN ITEM " |Conto" MESSAGE SHOW,105|HIDE,205|HIDE,305|SHOW,107|HIDE,207|HIDE,307 ITEM "C|Cliente" MESSAGE SHOW,205|HIDE,105|HIDE,305|SHOW,207|HIDE,107|HIDE,307 ITEM "F|Fornitore" MESSAGE SHOW,305|HIDE,105|HIDE,205|SHOW,307|HIDE,107|HIDE,207 - FLAGS "DG" + FLAGS "DGU" GROUP 1 -// FLAGS "U" END NUMBER 103 3 @@ -43,7 +42,7 @@ NUMBER 104 3 BEGIN PROMPT 15 3 "Conto " FIELD LF_RCAUSALI->CONTO - USE LF_PCON KEY 1 SELECT (CONTO!="") && (SOTTOCONTO="") + USE LF_PCON KEY 1 SELECT SOTTOCONTO="" INPUT GRUPPO 103 INPUT CONTO 104 DISPLAY "Gruppo" GRUPPO @@ -55,8 +54,6 @@ BEGIN OUTPUT 104 CONTO OUTPUT 103 GRUPPO OUTPUT 107 DESCR - OUTPUT 207 DESCR - OUTPUT 307 DESCR MESSAGE DIRTY,105|DIRTY,205|DIRTY,305 WARNING "Conto inesistente o mancante" ADD RUN CG0 -0 @@ -68,7 +65,7 @@ NUMBER 105 6 BEGIN PROMPT 29 3 "Sottoconto " FIELD LF_RCAUSALI->SOTTOCONTO - USE LF_PCON SELECT SOTTOCONTO!="" + USE LF_PCON INPUT GRUPPO 103 INPUT CONTO 104 INPUT SOTTOCONTO 105 @@ -102,19 +99,8 @@ BEGIN DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Tipo C/F" TIPOCF OUTPUT 205 CODCF -<<<<<<< cg0500b.uml - OUTPUT 105 CODCF OUTPUT 207 RAGSOC - OUTPUT 107 RAGSOC - OUTPUT 307 RAGSOC -======= - OUTPUT 207 RAGSOC ->>>>>>> 1.11 CHECKTYPE NORMAL -<<<<<<< cg0500b.uml - FLAGS "H" -======= ->>>>>>> 1.11 ADD RUN CG0 -1 GROUP 1 END @@ -133,20 +119,8 @@ BEGIN DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Tipo C/F" TIPOCF OUTPUT 305 CODCF -<<<<<<< cg0500b.uml - OUTPUT 205 CODCF - OUTPUT 105 CODCF - OUTPUT 107 RAGSOC - OUTPUT 207 RAGSOC OUTPUT 307 RAGSOC -======= - OUTPUT 307 RAGSOC ->>>>>>> 1.11 CHECKTYPE NORMAL -<<<<<<< cg0500b.uml - FLAGS "H" -======= ->>>>>>> 1.11 ADD RUN CG0 -1 GROUP 1 END @@ -176,11 +150,6 @@ BEGIN OUTPUT 104 CONTO OUTPUT 103 GRUPPO OUTPUT 107 DESCR -<<<<<<< cg0500b.uml - OUTPUT 207 DESCR - OUTPUT 307 DESCR -======= ->>>>>>> 1.11 ADD RUN CG0 -0 GROUP 1 END @@ -198,15 +167,8 @@ BEGIN DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO DISPLAY "Sottoconto" CODCF - OUTPUT 105 CODCF OUTPUT 205 CODCF - OUTPUT 305 CODCF - OUTPUT 107 RAGSOC OUTPUT 207 RAGSOC -<<<<<<< cg0500b.uml - OUTPUT 307 RAGSOC -======= ->>>>>>> 1.11 GROUP 1 FLAGS "H" END @@ -225,14 +187,7 @@ BEGIN DISPLAY "Conto" CONTO DISPLAY "Sottoconto" CODCF OUTPUT 305 CODCF - OUTPUT 205 CODCF - OUTPUT 105 CODCF OUTPUT 307 RAGSOC -<<<<<<< cg0500b.uml - OUTPUT 207 RAGSOC - OUTPUT 107 RAGSOC -======= ->>>>>>> 1.11 GROUP 1 FLAGS "H" END diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index 60a40e3ab..4d179ab5e 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -162,21 +162,39 @@ bool TPrimanota_application::user_destroy() // Certified 99% bool TPrimanota_application::read_caus(const char* cod, int year) { - const bool ok = causale().read(cod, year); + const bool ok = _causale.read(cod, year); + + bool nob = FALSE, dob = FALSE, sal = FALSE; + TipoIVA iva = nessuna_iva; - bool nob = FALSE, dob = FALSE; if (ok) { nob = _causale.num_doc(); dob = _causale.data_doc(); + sal = gestione_saldaconto() && _causale.saldaconto(); + iva = _causale.iva(); } - TMask& m = *load_mask(causale().iva() == nessuna_iva ? 1 : 2); - TEdit_field& nd = (TEdit_field&)m.field(F_NUMDOC); // Numero documento obbligatorio? - nd.check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); - TEdit_field& dd = (TEdit_field&)m.field(F_DATADOC); // Data documento obbligatoria? - dd.check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); - + TMask& m = *load_mask(iva == nessuna_iva ? 1 : 2); + m.efield(F_NUMDOC).check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); // Num. doc. obbligatorio + m.efield(F_DATADOC).check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); // Data doc. obbligatoria + + if (iva != nessuna_iva) + { + const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL; + m.efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio + m.show(F_ANNORIF, sal); + m.show(F_NUMRIF, sal); + if (sal) + { + TString80 val; + if (riferimento_partita()) + val = m.get(F_NUMDOC); + else + val.format("%ld", _causale.reg().protocol()); + m.set(F_NUMRIF, val); + } + } return ok; } @@ -238,6 +256,7 @@ void TPrimanota_application::read_firm_params() TConfig c(CONFIG_DITTA, "cg"); _ges_val = c.get_bool("GesVal"); _ges_sal = c.get_bool("GesSal"); + _rif_par = c.get_bool("RifPar"); } void TPrimanota_application::init_mask(TMask& m) @@ -248,8 +267,6 @@ void TPrimanota_application::init_mask(TMask& m) if (_iva != nessuna_iva) { - read_firm_params(); - char clig, forg; if (_iva == iva_acquisti) { @@ -275,8 +292,6 @@ void TPrimanota_application::init_mask(TMask& m) m.send_key(K_SHIFT+K_CTRL+(valuta ? 's' : 'h'), -3); if (valuta) m.set(F_VISVAL, "X"); - - m.efield(F_CODPAG).check_type(gestione_saldaconto() ? CHECK_REQUIRED : CHECK_NORMAL); } m.disable(DLG_NEWREC); @@ -285,6 +300,11 @@ void TPrimanota_application::init_mask(TMask& m) void TPrimanota_application::init_query_mode(TMask& m) { +<<<<<<< cg2100.cpp + read_firm_params(); + enable_menu_item(M_FILE_PRINT); +======= +>>>>>>> 1.22 m.enable(DLG_NEWREC); } @@ -371,11 +391,11 @@ void TPrimanota_application::init_insert_mode(TMask& m) } else { - if (nriga == 3 || nriga == 4 || nriga == 8 || nriga == 9) + if (nriga >= 3 && nriga <= 9) continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA); - if (nriga == 2 || (nriga >= 5 && nriga <= 7) || rigaiva) + if (nriga == 2 || rigaiva) { const TString16 codiva(rcaus->get(RCA_CODIVA)); set_ivas_row(-1,codiva,tc,desc); diff --git a/cg/cg2100c.uml b/cg/cg2100c.uml index cd701b760..c24c65e97 100755 --- a/cg/cg2100c.uml +++ b/cg/cg2100c.uml @@ -1,593 +1,595 @@ -#include "cg2100.h" - -TOOLBAR "" 0 20 0 2 -#include -ENDPAGE - -PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20 - -NUMBER F_GRUPPOCLIFO 3 -BEGIN - FLAGS "H" -END - -NUMBER F_CONTOCLIFO 3 -BEGIN - FLAGS "H" -END - -NUMBER F_GRUPPORIC 3 -BEGIN - FLAGS "H" -END - -NUMBER F_CONTORIC 3 -BEGIN - FLAGS "H" -END - -NUMBER F_SOTTOCONTORIC 6 -BEGIN - FLAGS "H" -END - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "@BMovimento IVA" -END - -NUMBER F_CODDITTA 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "FGRD" - USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - DISPLAY "Codice" CODDITTA - OUTPUT F_RAGSOC RAGSOC - CHECKTYPE REQUIRED -END - -STRING F_RAGSOC 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "DG" -END - -NUMBER F_NUMREG 6 -BEGIN - PROMPT 57 3 "Operazione n. " - FIELD NUMREG - FLAGS "RDG" - KEY 1 - MESSAGE COPY,H_NUMREG -END - -DATE F_DATAREG -BEGIN - PROMPT 1 3 "Data operazione " - FIELD LF_MOV->DATAREG - MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER -END - -DATE F_DATACOMP -BEGIN - PROMPT 1 4 "Data competenza " - FIELD LF_MOV->DATACOMP -END - -DATE F_DATADOC -BEGIN - PROMPT 1 5 "Data documento " - FIELD LF_MOV->DATADOC - HELP "Specificare la data del documento (non superiore alla data dell'operazione)" - WARNING "Inserire una data documento non superiore alla data dell'operazione" - VALIDATE DATE_CMP_FUNC <= F_DATAREG -END - -NUMBER F_ANNOIVA 4 -BEGIN - PROMPT 32 3 "Anno IVA " - FIELD LF_MOV->ANNOIVA - FLAGS "D" -END - -NUMBER F_ANNOES 4 -BEGIN - PROMPT 32 4 "Anno esercizio " - FIELD LF_MOV->ANNOES - FLAGS "DGRZ" - MESSAGE COPY,H_ANNOES -END - -STRING F_TIPODOC 2 -BEGIN - PROMPT 32 5 "Tipo documento " - FIELD LF_MOV->TIPODOC - FLAGS "D" -END - -STRING F_NUMDOC 7 -BEGIN - PROMPT 57 5 "Documento n. " - FIELD LF_MOV->NUMDOC - WARNING "La causale impone di specificare il numero documento" -END - -STRING F_DESCAGG 5 -BEGIN - PROMPT 1 6 "Descrizione " - FLAGS "U" - USE %DPN - INPUT CODTAB F_DESCAGG - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_DESCAGG CODTAB - OUTPUT F_DESCR S0 - CHECKTYPE NORMAL -END - -STRING F_DESCR 50 -BEGIN - PROMPT 25 6 "" - FIELD LF_MOV->DESCR - USE %DPN KEY 2 - INPUT S0 F_DESCR - DISPLAY "Descrizione@50" S0 - DISPLAY "Codice" CODTAB - COPY OUTPUT F_DESCAGG -END - -LIST F_PROVVISORIO 1 25 -BEGIN - PROMPT 1 7 "Movimento provvisorio " - FIELD PROVVIS - ITEM " |No (movimento normale)" - ITEM "P|Si (cancellabile)" - ITEM "N|Si (non cancellabile)" -END - -BOOLEAN F_SOLAIVA -BEGIN - PROMPT 54 7 "Movimento di sola IVA" -END - -STRING F_CODCAUS 3 -BEGIN - PROMPT 1 8 "Causale " - FLAGS "U" - FIELD LF_MOV->CODCAUS - USE LF_CAUSALI KEY 1 - INPUT CODCAUS F_CODCAUS - DISPLAY "Codice" CODCAUS - DISPLAY "Descrizione@50" DESCR - DISPLAY "Registro" REG - DISPLAY "Tipo" TIPODOC - OUTPUT F_CODCAUS CODCAUS - OUTPUT F_DESCRCAUS DESCR - OUTPUT F_CODREG REG - OUTPUT F_TIPODOC TIPODOC - MESSAGE COPY,H_CODCAUS - CHECKTYPE REQUIRED - ADD RUN cg0 -4 -END - -STRING F_DESCRCAUS 50 -BEGIN - PROMPT 25 8 "" - USE LF_CAUSALI KEY 2 - INPUT DESCR F_DESCRCAUS - DISPLAY "Descrizione@50" DESCR - DISPLAY "Codice" CODCAUS - COPY OUTPUT F_CODCAUS - MESSAGE COPY,H_DESCRCAUS - CHECKTYPE REQUIRED - ADD RUN cg0 -4 -END - -STRING F_CODREG 3 -BEGIN - PROMPT 1 9 "Registro IVA " - FLAGS "DG" - FIELD LF_MOV->REG -END - -NUMBER F_PROTIVA 5 -BEGIN - PROMPT 27 9 "Protocollo IVA " - FIELD LF_MOV->PROTIVA -END - -NUMBER F_RIEPILOGO 5 -BEGIN - PROMPT 51 9 "Riepilogo fino al n. " - FIELD LF_MOV->UPROTIVA - NUM_EXPR ((#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)) - WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliete/fornitore ha codice inserimento in allegati uguale a 3)" -END - -STRING F_CLIFO 1 -BEGIN - PROMPT 0 10 "" - FIELD TIPO - FLAGS "H" -END - -NUMBER F_CLIENTE 6 -BEGIN - PROMPT 1 10 "Cliente " - FIELD LF_MOV->CODCF - GROUP 1 - USE LF_CLIFO KEY 1 - INPUT TIPOCF "C" - INPUT CODCF F_CLIENTE - DISPLAY "Codice" CODCF - DISPLAY "Ragione Sociale@50" RAGSOC - DISPLAY "Partita IVA@12" PAIV - OUTPUT F_CLIFO TIPOCF - OUTPUT F_CLIENTE CODCF - OUTPUT F_RAGSOCCLIENTE RAGSOC - OUTPUT F_GRUPPOCLIFO GRUPPO - OUTPUT F_CONTOCLIFO CONTO - OUTPUT F_GRUPPORIC GRUPPORIC - OUTPUT F_CONTORIC CONTORIC - OUTPUT F_SOTTOCONTORIC SOTTOCRIC - OUTPUT F_CODPAG CODPAG - OUTPUT F_VALUTA CODVAL - OUTPUT F_STATOPAIV STATOPAIV - OUTPUT F_PIVACLIENTE PAIV - OUTPUT F_OCCASIONALE OCCAS - MESSAGE COPY,F_FORNITORE - CHECKTYPE REQUIRED - WARNING "Cliente assente" - ADD RUN cg0 -1 -END - -NUMBER F_FORNITORE 6 -BEGIN - PROMPT 1 10 "Fornitore " - FIELD LF_MOV->CODCF - GROUP 2 - USE LF_CLIFO KEY 1 - INPUT TIPOCF "F" - INPUT CODCF F_FORNITORE - DISPLAY "Codice" CODCF - DISPLAY "Ragione Sociale@50" RAGSOC - DISPLAY "Partita IVA@12" PAIV - OUTPUT F_CLIFO TIPOCF - OUTPUT F_FORNITORE CODCF - OUTPUT F_RAGSOCFORNITORE RAGSOC - OUTPUT F_GRUPPOCLIFO GRUPPO - OUTPUT F_CONTOCLIFO CONTO - OUTPUT F_GRUPPORIC GRUPPORIC - OUTPUT F_CONTORIC CONTORIC - OUTPUT F_SOTTOCONTORIC SOTTOCRIC - OUTPUT F_OCCASIONALE OCCAS - OUTPUT F_CODPAG CODPAG - OUTPUT F_VALUTA CODVAL - OUTPUT F_STATOPAIV STATOPAIV - OUTPUT F_PIVAFORNITORE PAIV - MESSAGE COPY,F_CLIENTE - CHECKTYPE REQUIRED - WARNING "Fornitore assente" - ADD RUN cg0 -1 -END - -STRING F_RAGSOCFORNITORE 50 -BEGIN - PROMPT 25 10 "" - GROUP 2 - USE LF_CLIFO KEY 2 - INPUT TIPOCF "F" - INPUT RAGSOC F_RAGSOCFORNITORE - DISPLAY "Ragione Sociale@50" RAGSOC - DISPLAY "Partita IVA@12" PAIV - DISPLAY "Codice" CODCF - COPY OUTPUT F_FORNITORE - CHECKTYPE REQUIRED - ADD RUN cg0 -1 -END - -STRING F_RAGSOCCLIENTE 50 -BEGIN - PROMPT 25 10 "" - GROUP 1 - USE LF_CLIFO KEY 2 - INPUT TIPOCF "C" - INPUT RAGSOC F_RAGSOCCLIENTE - DISPLAY "Ragione Sociale@50" RAGSOC - DISPLAY "Partita IVA@12" PAIV - DISPLAY "Codice" CODCF - COPY OUTPUT F_CLIENTE - CHECKTYPE REQUIRED - ADD RUN cg0 -1 -END - -STRING F_PIVACLIENTE 14 -BEGIN - PROMPT 1 11 "Partita IVA " - GROUP 1 - USE LF_CLIFO KEY 5 - INPUT TIPOCF "C" - INPUT STATOPAIV F_STATOPAIV - INPUT PAIV F_PIVACLIENTE - DISPLAY "Partita IVA@12" PAIV - DISPLAY "Ragione Sociale@50" RAGSOC - DISPLAY "Codice" CODCF - COPY OUTPUT F_CLIENTE - CHECKTYPE NORMAL - ADD RUN cg0 -1 -END - -STRING F_PIVAFORNITORE 14 -BEGIN - PROMPT 1 11 "Partita IVA " - GROUP 2 - USE LF_CLIFO KEY 5 - INPUT TIPOCF "F" - INPUT STATOPAIV F_STATOPAIV - INPUT PAIV F_PIVAFORNITORE - COPY DISPLAY F_PIVACLIENTE - COPY OUTPUT F_FORNITORE - CHECKTYPE NORMAL - ADD RUN cg0 -1 -END - -LIST F_STATOPAIV 18 -BEGIN - PROMPT 32 11 "Stato " - HELP "Codice ISO dello stato per la partita IVA" - ITEM " |Italia o extra CEE" - ITEM "BE|Belgio" - ITEM "DE|Germania" - ITEM "DK|Danimarca" - ITEM "EL|Grecia" - ITEM "ES|Spagna" - ITEM "FR|Francia" - ITEM "GB|Gran Bretagna" - ITEM "IE|Irlanda" - ITEM "IT|Italia" - ITEM "LU|Lussemburgo" - ITEM "NL|Olanda" - ITEM "PT|Portogallo" -END - -BUTTON F_OCCASEDIT 18 -BEGIN - PROMPT 32 11 "Dati anagrafici" - FLAGS "H" -END - -BOOLEAN F_OCCASIONALE -BEGIN - MESSAGE FALSE HIDE,F_OCCASEDIT|ENABLE,F_PIVACLIENTE|ENABLE,F_PIVAFORNITORE|SHOW,F_STATOPAIV - MESSAGE TRUE SHOW,F_OCCASEDIT|DISABLE,F_PIVACLIENTE|DISABLE,F_PIVAFORNITORE|HIDE,F_STATOPAIV - FLAGS "GH" -END - -STRING F_CODPAG 4 -BEGIN - PROMPT 60 11 "Pagamento " - FIELD CODPAG - USE %CPG - INPUT CODTAB F_CODPAG - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@50" S0 - OUTPUT F_CODPAG CODTAB - CHECKTYPE NORMAL -END - -NUMBER F_TOTALE 15 -BEGIN - PROMPT 1 12 "Totale documento " - FIELD TOTDOC - FLAGS "RV" - PICTURE "." -END - -NUMBER F_RITFIS 15 -BEGIN - PROMPT 1 13 "Ritenute fiscali " - FIELD RITFIS - FLAGS "RV" - PICTURE "." -END - -NUMBER F_RITSOC 15 -BEGIN - PROMPT 1 14 "Ritenute sociali " - FIELD LF_MOV->RITSOC - FLAGS "RV" - PICTURE "." -END - -STRING F_CODIVA 4 -BEGIN - PROMPT 60 12 "Codice IVA " - FLAGS "U" - USE %IVA - INPUT CODTAB F_CODIVA - DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@50" S0 - DISPLAY "%@6" R0 - DISPLAY "Tipo" S1 - OUTPUT F_CODIVA CODTAB - CHECKTYPE NORMAL -END - -DATE F_DATA74TER -BEGIN - PROMPT 54 13 "Data 74/ter " - CHECKTYPE REQUIRED - FIELD DATA74TER -END - -NUMBER F_ANNORIF 4 -BEGIN - PROMPT 45 14 "Rif.partita " - FLAGS "A" - HELP "Anno di riferimento partita" -END - -NUMBER F_NUMRIF 7 -BEGIN - PROMPT 69 14 "/" - HELP "Numero documento (o protocollo IVA) di riferimento" -END - -NUMBER F_CORRLIRE 15 -BEGIN - PROMPT 1 15 "Corrispettivo Lire " - FIELD LF_MOV->CORRLIRE - FLAGS "R" - PICTURE "." -END - -NUMBER F_CORRVALUTA 15 -BEGIN - PROMPT 45 15 "Corrisp. valuta " - FIELD LF_MOV->CORRVALUTA - FLAGS "R" - PICTURE "." -END - - -STRING F_VALUTA 3 -BEGIN - PROMPT 1 16 "Valuta " - FIELD LF_MOV->CODVAL - FLAGS "U" - GROUP 3 - USE %VAL - INPUT CODTAB F_VALUTA - DISPLAY "Codice" CODTAB - DISPLAY "Nome@50" S0 - DISPLAY "Cambio@15" R10 - DISPLAY "Ultimo aggiornamento" D0 - OUTPUT F_VALUTA CODTAB - OUTPUT F_CAMBIO R10 - CHECKTYPE NORMAL -END - -NUMBER F_CAMBIO 15 5 -BEGIN - PROMPT 20 16 "Cambio " - FIELD LF_MOV->CAMBIO - FLAGS "RU" - GROUP 3 - PICTURE ".5" -END - -BOOLEAN F_VISVAL -BEGIN - PROMPT 47 16 "Visualizza importi in valuta" - GROUP 3 -END - -ENDPAGE - -PAGE "IVA" -1 -1 77 20 - -GROUPBOX DLG_NULL 78 4 -BEGIN - PROMPT 1 0 "@BRighe movimento IVA" -END - -NUMBER H_NUMREG 6 -BEGIN - PROMPT 2 1 "Operazione n. " - FLAGS "D" -END - -DATE H_DATAREG -BEGIN - PROMPT 32 1 "Data " - FLAGS "D" -END - -NUMBER H_ANNOES 4 -BEGIN - PROMPT 61 1 "Esercizio " - FLAGS "DRZ" -END - -STRING H_CODCAUS 3 -BEGIN - PROMPT 2 2 "Causale " - FLAGS "D" -END - -STRING H_DESCRCAUS 50 -BEGIN - PROMPT 25 2 "" - FLAGS "D" -END - -SPREADSHEET F_SHEETIVA 0 7 -BEGIN - PROMPT 0 4 "" - ITEM "Imponibile@15" - ITEM "Iva@4" - ITEM "Det@1" - ITEM "Imposta@15" - ITEM "C/R@1" - ITEM " " - ITEM "Gr." - ITEM "Co." - ITEM "Sottoc.@6" - ITEM "Descrizione Conto@50" -END - -NUMBER F_IMPONIBILI 15 -BEGIN - PROMPT 1 11 "Totale imponibili " - FLAGS "DRV" - PICTURE "." -END - -NUMBER F_IMPOSTE 15 -BEGIN - PROMPT 41 11 "Totale imposte " - FLAGS "DRV" - PICTURE "." -END - -SPREADSHEET F_SHEETCG -BEGIN - PROMPT 0 12 "" - ITEM "Dare@15" - ITEM "Avere@15" - ITEM " " - ITEM "Gr." - ITEM "Co." - ITEM "Sottoc.@6" - ITEM "Descrizione conto@50" - ITEM "Codice" - ITEM "Descrizione riga@50" - ITEM " " - ITEM "Gr./c@3" - ITEM "Co./c@3" - ITEM "Sottoc./c@6" - ITEM "Descrizione contropartita@50" - ITEM " " -END - -NUMBER F_DARE 15 -BEGIN - PROMPT 1 -1 "Sbilancio Dare " - FLAGS "DRV" - PICTURE "." -END - -NUMBER F_AVERE 15 -BEGIN - PROMPT 41 -1 "Sbilancio Avere " - FLAGS "DRV" - PICTURE "." -END - -ENDPAGE - -ENDMASK - -#include "cg21iva.uml" -#include "cg21cg.uml" +#include "cg2100.h" + +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20 + +NUMBER F_GRUPPOCLIFO 3 +BEGIN + FLAGS "H" +END + +NUMBER F_CONTOCLIFO 3 +BEGIN + FLAGS "H" +END + +NUMBER F_GRUPPORIC 3 +BEGIN + FLAGS "H" +END + +NUMBER F_CONTORIC 3 +BEGIN + FLAGS "H" +END + +NUMBER F_SOTTOCONTORIC 6 +BEGIN + FLAGS "H" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "@BMovimento IVA" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "FGRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "DG" +END + +NUMBER F_NUMREG 6 +BEGIN + PROMPT 57 3 "Operazione n. " + FIELD NUMREG + FLAGS "RDG" + KEY 1 + MESSAGE COPY,H_NUMREG +END + +DATE F_DATAREG +BEGIN + PROMPT 1 3 "Data operazione " + FIELD LF_MOV->DATAREG + MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER +END + +DATE F_DATACOMP +BEGIN + PROMPT 1 4 "Data competenza " + FIELD LF_MOV->DATACOMP +END + +DATE F_DATADOC +BEGIN + PROMPT 1 5 "Data documento " + FIELD LF_MOV->DATADOC + HELP "Specificare la data del documento (non superiore alla data dell'operazione)" + WARNING "Inserire una data documento non superiore alla data dell'operazione" + VALIDATE DATE_CMP_FUNC <= F_DATAREG +END + +NUMBER F_ANNOIVA 4 +BEGIN + PROMPT 32 3 "Anno IVA " + FIELD LF_MOV->ANNOIVA + FLAGS "D" +END + +NUMBER F_ANNOES 4 +BEGIN + PROMPT 32 4 "Anno esercizio " + FIELD LF_MOV->ANNOES + FLAGS "DGRZ" + MESSAGE COPY,H_ANNOES +END + +STRING F_TIPODOC 2 +BEGIN + PROMPT 32 5 "Tipo documento " + FIELD LF_MOV->TIPODOC + FLAGS "D" +END + +STRING F_NUMDOC 7 +BEGIN + PROMPT 57 5 "Documento n. " + FIELD LF_MOV->NUMDOC + WARNING "La causale impone di specificare il numero documento" +END + +STRING F_DESCAGG 5 +BEGIN + PROMPT 1 6 "Descrizione " + FLAGS "U" + USE %DPN + INPUT CODTAB F_DESCAGG + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_DESCAGG CODTAB + OUTPUT F_DESCR S0 + CHECKTYPE NORMAL +END + +STRING F_DESCR 50 +BEGIN + PROMPT 25 6 "" + FIELD LF_MOV->DESCR + USE %DPN KEY 2 + INPUT S0 F_DESCR + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_DESCAGG +END + +LIST F_PROVVISORIO 1 25 +BEGIN + PROMPT 1 7 "Movimento provvisorio " + FIELD PROVVIS + ITEM " |No (movimento normale)" + ITEM "P|Si (cancellabile)" + ITEM "N|Si (non cancellabile)" +END + +BOOLEAN F_SOLAIVA +BEGIN + PROMPT 54 7 "Movimento di sola IVA" +END + +STRING F_CODCAUS 3 +BEGIN + PROMPT 1 8 "Causale " + FLAGS "U" + FIELD LF_MOV->CODCAUS + USE LF_CAUSALI KEY 1 + INPUT CODCAUS F_CODCAUS + DISPLAY "Codice" CODCAUS + DISPLAY "Descrizione@50" DESCR + DISPLAY "Registro" REG + DISPLAY "Tipo" TIPODOC + OUTPUT F_CODCAUS CODCAUS + OUTPUT F_DESCRCAUS DESCR + OUTPUT F_CODREG REG + OUTPUT F_TIPODOC TIPODOC + MESSAGE COPY,H_CODCAUS + CHECKTYPE REQUIRED + ADD RUN cg0 -4 +END + +STRING F_DESCRCAUS 50 +BEGIN + PROMPT 25 8 "" + USE LF_CAUSALI KEY 2 + INPUT DESCR F_DESCRCAUS + DISPLAY "Descrizione@50" DESCR + DISPLAY "Codice" CODCAUS + COPY OUTPUT F_CODCAUS + MESSAGE COPY,H_DESCRCAUS + CHECKTYPE REQUIRED + ADD RUN cg0 -4 +END + +STRING F_CODREG 3 +BEGIN + PROMPT 1 9 "Registro IVA " + FLAGS "DG" + FIELD LF_MOV->REG +END + +NUMBER F_PROTIVA 5 +BEGIN + PROMPT 27 9 "Protocollo IVA " + FIELD LF_MOV->PROTIVA +END + +NUMBER F_RIEPILOGO 5 +BEGIN + PROMPT 51 9 "Riepilogo fino al n. " + FIELD LF_MOV->UPROTIVA + NUM_EXPR ((#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)) + WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliete/fornitore ha codice inserimento in allegati uguale a 3)" +END + +STRING F_CLIFO 1 +BEGIN + PROMPT 0 10 "" + FIELD TIPO + FLAGS "H" +END + +NUMBER F_CLIENTE 6 +BEGIN + PROMPT 1 10 "Cliente " + FIELD LF_MOV->CODCF + GROUP 1 + USE LF_CLIFO KEY 1 + INPUT TIPOCF "C" + INPUT CODCF F_CLIENTE + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Partita IVA@12" PAIV + OUTPUT F_CLIFO TIPOCF + OUTPUT F_CLIENTE CODCF + OUTPUT F_RAGSOCCLIENTE RAGSOC + OUTPUT F_GRUPPOCLIFO GRUPPO + OUTPUT F_CONTOCLIFO CONTO + OUTPUT F_GRUPPORIC GRUPPORIC + OUTPUT F_CONTORIC CONTORIC + OUTPUT F_SOTTOCONTORIC SOTTOCRIC + OUTPUT F_CODPAG CODPAG + OUTPUT F_VALUTA CODVAL + OUTPUT F_STATOPAIV STATOPAIV + OUTPUT F_PIVACLIENTE PAIV + OUTPUT F_OCCASIONALE OCCAS + MESSAGE COPY,F_FORNITORE + CHECKTYPE REQUIRED + WARNING "Cliente assente" + ADD RUN cg0 -1 +END + +NUMBER F_FORNITORE 6 +BEGIN + PROMPT 1 10 "Fornitore " + FIELD LF_MOV->CODCF + GROUP 2 + USE LF_CLIFO KEY 1 + INPUT TIPOCF "F" + INPUT CODCF F_FORNITORE + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Partita IVA@12" PAIV + OUTPUT F_CLIFO TIPOCF + OUTPUT F_FORNITORE CODCF + OUTPUT F_RAGSOCFORNITORE RAGSOC + OUTPUT F_GRUPPOCLIFO GRUPPO + OUTPUT F_CONTOCLIFO CONTO + OUTPUT F_GRUPPORIC GRUPPORIC + OUTPUT F_CONTORIC CONTORIC + OUTPUT F_SOTTOCONTORIC SOTTOCRIC + OUTPUT F_OCCASIONALE OCCAS + OUTPUT F_CODPAG CODPAG + OUTPUT F_VALUTA CODVAL + OUTPUT F_STATOPAIV STATOPAIV + OUTPUT F_PIVAFORNITORE PAIV + MESSAGE COPY,F_CLIENTE + CHECKTYPE REQUIRED + WARNING "Fornitore assente" + ADD RUN cg0 -1 +END + +STRING F_RAGSOCFORNITORE 50 +BEGIN + PROMPT 25 10 "" + GROUP 2 + USE LF_CLIFO KEY 2 + INPUT TIPOCF "F" + INPUT RAGSOC F_RAGSOCFORNITORE + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Partita IVA@12" PAIV + DISPLAY "Codice" CODCF + COPY OUTPUT F_FORNITORE + CHECKTYPE REQUIRED + ADD RUN cg0 -1 +END + +STRING F_RAGSOCCLIENTE 50 +BEGIN + PROMPT 25 10 "" + GROUP 1 + USE LF_CLIFO KEY 2 + INPUT TIPOCF "C" + INPUT RAGSOC F_RAGSOCCLIENTE + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Partita IVA@12" PAIV + DISPLAY "Codice" CODCF + COPY OUTPUT F_CLIENTE + CHECKTYPE REQUIRED + ADD RUN cg0 -1 +END + +STRING F_PIVACLIENTE 14 +BEGIN + PROMPT 1 11 "Partita IVA " + GROUP 1 + USE LF_CLIFO KEY 5 + INPUT TIPOCF "C" + INPUT STATOPAIV F_STATOPAIV + INPUT PAIV F_PIVACLIENTE + DISPLAY "Partita IVA@12" PAIV + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + COPY OUTPUT F_CLIENTE + CHECKTYPE NORMAL + ADD RUN cg0 -1 +END + +STRING F_PIVAFORNITORE 14 +BEGIN + PROMPT 1 11 "Partita IVA " + GROUP 2 + USE LF_CLIFO KEY 5 + INPUT TIPOCF "F" + INPUT STATOPAIV F_STATOPAIV + INPUT PAIV F_PIVAFORNITORE + COPY DISPLAY F_PIVACLIENTE + COPY OUTPUT F_FORNITORE + CHECKTYPE NORMAL + ADD RUN cg0 -1 +END + +LIST F_STATOPAIV 18 +BEGIN + PROMPT 32 11 "Stato " + HELP "Codice ISO dello stato per la partita IVA" + ITEM " |Italia o extra CEE" + ITEM "BE|Belgio" + ITEM "DE|Germania" + ITEM "DK|Danimarca" + ITEM "EL|Grecia" + ITEM "ES|Spagna" + ITEM "FR|Francia" + ITEM "GB|Gran Bretagna" + ITEM "IE|Irlanda" + ITEM "IT|Italia" + ITEM "LU|Lussemburgo" + ITEM "NL|Olanda" + ITEM "PT|Portogallo" +END + +BUTTON F_OCCASEDIT 18 +BEGIN + PROMPT 32 11 "Dati anagrafici" + FLAGS "H" +END + +BOOLEAN F_OCCASIONALE +BEGIN + MESSAGE FALSE HIDE,F_OCCASEDIT|ENABLE,F_PIVACLIENTE|ENABLE,F_PIVAFORNITORE|SHOW,F_STATOPAIV + MESSAGE TRUE SHOW,F_OCCASEDIT|DISABLE,F_PIVACLIENTE|DISABLE,F_PIVAFORNITORE|HIDE,F_STATOPAIV + FLAGS "GH" +END + +STRING F_CODPAG 4 +BEGIN + PROMPT 60 11 "Pagamento " + FIELD CODPAG + USE %CPG + INPUT CODTAB F_CODPAG + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODPAG CODTAB + CHECKTYPE NORMAL +END + +NUMBER F_TOTALE 15 +BEGIN + PROMPT 1 12 "Totale documento " + FIELD TOTDOC + FLAGS "RV" + PICTURE "." +END + +NUMBER F_RITFIS 15 +BEGIN + PROMPT 1 13 "Ritenute fiscali " + FIELD RITFIS + FLAGS "RV" + PICTURE "." +END + +NUMBER F_RITSOC 15 +BEGIN + PROMPT 1 14 "Ritenute sociali " + FIELD LF_MOV->RITSOC + FLAGS "RV" + PICTURE "." +END + +STRING F_CODIVA 4 +BEGIN + PROMPT 60 12 "Codice IVA " + FLAGS "U" + USE %IVA + INPUT CODTAB F_CODIVA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + DISPLAY "%@6" R0 + DISPLAY "Tipo" S1 + OUTPUT F_CODIVA CODTAB + CHECKTYPE NORMAL +END + +DATE F_DATA74TER +BEGIN + PROMPT 54 13 "Data 74/ter " + CHECKTYPE REQUIRED + FIELD DATA74TER +END + +NUMBER F_ANNORIF 4 +BEGIN + PROMPT 45 14 "Rif.partita " + FLAGS "A" + HELP "Anno di riferimento partita" + CHECKTYPE REQUIRED +END + +STRING F_NUMRIF 7 +BEGIN + PROMPT 68 14 "/ " + HELP "Numero documento (o protocollo IVA) di riferimento" + CHECKTYPE REQUIRED +END + +NUMBER F_CORRLIRE 15 +BEGIN + PROMPT 1 15 "Corrispettivo Lire " + FIELD LF_MOV->CORRLIRE + FLAGS "R" + PICTURE "." +END + +NUMBER F_CORRVALUTA 15 +BEGIN + PROMPT 45 15 "Corrisp. valuta " + FIELD LF_MOV->CORRVALUTA + FLAGS "R" + PICTURE "." +END + + +STRING F_VALUTA 3 +BEGIN + PROMPT 1 16 "Valuta " + FIELD LF_MOV->CODVAL + FLAGS "U" + GROUP 3 + USE %VAL + INPUT CODTAB F_VALUTA + DISPLAY "Codice" CODTAB + DISPLAY "Nome@50" S0 + DISPLAY "Cambio@15" R10 + DISPLAY "Ultimo aggiornamento" D0 + OUTPUT F_VALUTA CODTAB + OUTPUT F_CAMBIO R10 + CHECKTYPE NORMAL +END + +NUMBER F_CAMBIO 15 5 +BEGIN + PROMPT 20 16 "Cambio " + FIELD LF_MOV->CAMBIO + FLAGS "RU" + GROUP 3 + PICTURE ".5" +END + +BOOLEAN F_VISVAL +BEGIN + PROMPT 47 16 "Visualizza importi in valuta" + GROUP 3 +END + +ENDPAGE + +PAGE "IVA" -1 -1 77 20 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 0 "@BRighe movimento IVA" +END + +NUMBER H_NUMREG 6 +BEGIN + PROMPT 2 1 "Operazione n. " + FLAGS "D" +END + +DATE H_DATAREG +BEGIN + PROMPT 32 1 "Data " + FLAGS "D" +END + +NUMBER H_ANNOES 4 +BEGIN + PROMPT 61 1 "Esercizio " + FLAGS "DRZ" +END + +STRING H_CODCAUS 3 +BEGIN + PROMPT 2 2 "Causale " + FLAGS "D" +END + +STRING H_DESCRCAUS 50 +BEGIN + PROMPT 25 2 "" + FLAGS "D" +END + +SPREADSHEET F_SHEETIVA 0 7 +BEGIN + PROMPT 0 4 "" + ITEM "Imponibile@15" + ITEM "Iva@4" + ITEM "Det@1" + ITEM "Imposta@15" + ITEM "C/R@1" + ITEM " " + ITEM "Gr." + ITEM "Co." + ITEM "Sottoc.@6" + ITEM "Descrizione Conto@50" +END + +NUMBER F_IMPONIBILI 15 +BEGIN + PROMPT 1 11 "Totale imponibili " + FLAGS "DRV" + PICTURE "." +END + +NUMBER F_IMPOSTE 15 +BEGIN + PROMPT 41 11 "Totale imposte " + FLAGS "DRV" + PICTURE "." +END + +SPREADSHEET F_SHEETCG +BEGIN + PROMPT 0 12 "" + ITEM "Dare@15" + ITEM "Avere@15" + ITEM " " + ITEM "Gr." + ITEM "Co." + ITEM "Sottoc.@6" + ITEM "Descrizione conto@50" + ITEM "Codice" + ITEM "Descrizione riga@50" + ITEM " " + ITEM "Gr./c@3" + ITEM "Co./c@3" + ITEM "Sottoc./c@6" + ITEM "Descrizione contropartita@50" + ITEM " " +END + +NUMBER F_DARE 15 +BEGIN + PROMPT 1 -1 "Sbilancio Dare " + FLAGS "DRV" + PICTURE "." +END + +NUMBER F_AVERE 15 +BEGIN + PROMPT 41 -1 "Sbilancio Avere " + FLAGS "DRV" + PICTURE "." +END + +ENDPAGE + +ENDMASK + +#include "cg21iva.uml" +#include "cg21cg.uml" diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index b3d319939..9883ca972 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -268,19 +268,21 @@ TImporto TPrimanota_application::get_cgs_imp(int n) } // Certified 90% -void TPrimanota_application::add_cgs_imp(int n, const TImporto& imp) +TImporto TPrimanota_application::add_cgs_imp(int n, const TImporto& imp) { TImporto tot(get_cgs_imp(n)); tot.set(imp.sezione(), tot.valore() + imp.valore()); set_cgs_imp(n, tot); + return tot; } // Certified 90% -void TPrimanota_application::sub_cgs_imp(int n, const real& imp) +TImporto TPrimanota_application::sub_cgs_imp(int n, const real& imp) { TImporto tot(get_cgs_imp(n)); tot.set(tot.sezione(), tot.valore() - imp); set_cgs_imp(n, tot); + return tot; } @@ -349,22 +351,33 @@ int TPrimanota_application::set_cgs_row(int n, const TImporto& imp, row.add(""); row.add(desc); - int pos = 0; - if (tipo == 'I' && (pos = type2pos('T')) >= 0) + switch(tipo) // Calcolo contropartita + { + case 'T': + { + TToken_string& irow = ivas().row(0); + for (int i = 5; i < 10; i++) + row.add(irow.get(i == 5 ? 5 : -1)); + } + break; +default: +{ + const int pos = type2pos('T'); + if (pos >= 0) { TBill contro(cg.row(pos), 2, 0x3); row.add(contro.string(0x3)); } - else - { - row.add(" | | | | "); // Contropartita - } - row << '|' << tipo; + else row.add(" | | | | "); +} +break; +} +row << '|' << tipo; - disable_cgs_cells(n, tipo); - cg.force_update(n); - - return n; +disable_cgs_cells(n, tipo); +cg.force_update(n); + +return n; } @@ -657,7 +670,7 @@ bool TPrimanota_application::iva_notify(int r, KEY k) { oldimp = real(row.get(0)); // Imponibile 0 oldiva = real(row.get(3)); // Imposta 3 - if (app().causale().corrispettivi()) + if (oldiva.is_zero() && app().causale().corrispettivi()) { const TCodiceIVA i(row.get(1)); const real percent = i.percentuale(); @@ -695,22 +708,33 @@ bool TPrimanota_application::iva_notify(int r, KEY k) } // Aggiorna conto sulla riga contabile - const real imp(row.get(0)); // Imponibile - const real imposta(row.get(3)); // Imposta + real imp(row.get(0)); // Imponibile + real imposta(row.get(3)); // Imposta + if (imposta.is_zero() && app().causale().corrispettivi()) + { + const TCodiceIVA i(row.get(1)); + const real percent = i.percentuale(); + imposta = scorpora(imp, percent); + } TBill conto(row, 5, 0x3); - const int newpos = bill2pos(conto, 'I'); + int newpos = bill2pos(conto, 'I'); if (newpos < 0) { const TImporto val(app().real2imp(imp, 'I')); if (val.valore() != ZERO) - app().set_cgs_row(-1, val, conto, "", 'I'); + app().set_cgs_row(-1, val, conto, app().causale().descr(2), 'I'); } else { - const TImporto val(app().real2imp(imp, 'I')); - app().add_cgs_imp(newpos, val); + TImporto val(app().real2imp(imp, 'I')); + val = app().add_cgs_imp(newpos, val); + if (val.valore().is_zero()) + { + app().cgs().destroy(newpos); + newpos = -1; + } } oldimp = imp; oldpos = newpos; @@ -720,18 +744,23 @@ bool TPrimanota_application::iva_notify(int r, KEY k) const bool detrarre = detraibile(row); // Determina se IVA detraibile app().causale().bill(detrarre ? 3 : 4, conto); const char tipod = detrarre ? 'D' : 'N'; - const int newposiva = type2pos(tipod); + int newposiva = type2pos(tipod); if (newposiva < 0) { const TImporto val(app().real2imp(imposta, 'I')); if (val.valore() != ZERO) - app().set_cgs_row(-1, val, conto, "", tipod); + newposiva = app().set_cgs_row(-1, val, conto, "", tipod); } else { - const TImporto val(app().real2imp(imposta, 'I')); - app().add_cgs_imp(newposiva, val); + TImporto val(app().real2imp(imposta, 'I')); + val = app().add_cgs_imp(newposiva, val); + if (val.valore().is_zero()) + { + app().cgs().destroy(newposiva); + newposiva = -1; + } } oldiva = imposta; oldposiva = newposiva; @@ -1055,7 +1084,7 @@ bool TPrimanota_application::occas_handler(TMask_field& f, KEY key) void TPrimanota_application::add_cgs_tot(TMask& m) { // Lettura del conto dalla maschera - char tipo = app().iva() == iva_acquisti ? 'F' : 'C'; + char tipo = app().clifo(); int gruppo = m.get_int(F_GRUPPOCLIFO); int conto = m.get_int(F_CONTOCLIFO); long codice = m.get_long(tipo == 'C' ? F_CLIENTE : F_FORNITORE); @@ -1077,7 +1106,8 @@ void TPrimanota_application::add_cgs_tot(TMask& m) // Creazione/Aggiornamento riga totale const int pos = type2pos('T'); - set_cgs_row(pos, real2imp(tot, 'T'), c, "Totale documento", 'T'); + set_cgs_row(pos, real2imp(tot, 'T'), c, m.get(F_DESCR), 'T'); + calcola_saldo(); } @@ -1174,11 +1204,7 @@ void TPrimanota_application::add_cgs_rit(bool fiscali) { const int riga = fiscali ? 8 : 9; TBill conto; _causale.bill(riga, conto); - - TString80 desc("Ritenute "); - desc << (fiscali ? "fiscali" : "sociali"); - - set_cgs_row(-1, real2imp(imp, tipo), conto, desc, tipo); + set_cgs_row(-1, real2imp(imp, tipo), conto, conto.descrizione(), tipo); } else set_cgs_imp(pos, real2imp(imp, tipo)); diff --git a/cg/cg2102.h b/cg/cg2102.h index 30f7583c6..c57770df8 100755 --- a/cg/cg2102.h +++ b/cg/cg2102.h @@ -40,6 +40,7 @@ class TPrimanota_application : public TRelation_application TLibro_giornale _giornale; // Libro giornale corrente TipoIVA _iva; // Tipo di IVA corrente bool _ges_val, _ges_sal; // Gestione valuta e saldaconto + bool _rif_par; // Riferimento parita (NUM_DOC | PROTIVA) TSaldo_agg _saldi; // Saldi da aggiornare @@ -113,6 +114,7 @@ protected: TMask& TPrimanota_application::mask() const; bool gestione_valuta() const { return _ges_val; } bool gestione_saldaconto() const { return _ges_sal; } + bool riferimento_partita() const { return _rif_par; } void fill_sheet(TMask& m) const; void read_firm_params(); @@ -143,8 +145,8 @@ protected: void set_cgs_imp(int n, const TImporto& importo); TImporto get_cgs_imp(int n); - void add_cgs_imp(int n, const TImporto& importo); - void sub_cgs_imp(int n, const real& imp); + TImporto add_cgs_imp(int n, const TImporto& importo); + TImporto sub_cgs_imp(int n, const real& imp); void cgs_pack(); real calcola_saldo() const; diff --git a/cg/cg2103.cpp b/cg/cg2103.cpp index 7f9ec220e..98ca141eb 100755 --- a/cg/cg2103.cpp +++ b/cg/cg2103.cpp @@ -101,11 +101,20 @@ bool TRegistro::corrispettivi() const TipoIVA TRegistro::iva() const { TipoIVA i = (TipoIVA)tipo(); - if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti) + switch (i) { + case nessuna_iva: + case iva_vendite: + case iva_acquisti: + break; + case libro_giornale: + i = nessuna_iva; + break; + default: error_box("Il registro '%s' non e' un registro IVA o contabile: tipo %d", (const char*)name(), i); i = nessuna_iva; + break; } return i; } @@ -306,11 +315,18 @@ const TRectype& TCausale::row(int num) const TBill& TCausale::bill(int num, TBill& conto) const { const TRectype& rec = row(num); - conto.set(rec.get_int("GRUPPO"), rec.get_int("CONTO"), - rec.get_long("SOTTOCONTO"), rec.get_char("TIPOCF")); + conto.set(rec.get_int(RCA_GRUPPO), rec.get_int(RCA_CONTO), + rec.get_long(RCA_SOTTOCONTO), rec.get_char(RCA_TIPOCF)); return conto; } +const char* TCausale::descr(int num) const +{ + const TRectype& rec = row(num); + return rec.get(RCA_DESC); +} + + bool TCausale::data_doc() const { return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; } @@ -338,6 +354,9 @@ const char* TCausale::causale_inc_imm() const const char* TCausale::tipo_doc() const { return _rec.ok() ? _rec.get("TIPODOC") : ""; } +bool TCausale::saldaconto() const +{ return _rec.ok() ? (_rec.get_int("TIPOMOV") > 0) : FALSE; } + bool TCausale::ok() const { if (iva() == iva_errata) diff --git a/cg/cg2103.h b/cg/cg2103.h index 92a4cce66..86cf6a562 100755 --- a/cg/cg2103.h +++ b/cg/cg2103.h @@ -80,6 +80,7 @@ protected: public: TBill& bill(int num, TBill& c) const; + const char* descr(int num) const; bool data_doc() const; bool num_doc() const; @@ -94,6 +95,7 @@ public: TRegistro& reg() const { return (TRegistro&)_reg; } TipoIVA iva() const; bool corrispettivi() const; + bool saldaconto() const; virtual bool ok() const; bool similar(const TCausale& c) const; diff --git a/cg/cg5100a.h b/cg/cg5100a.h index dd57cc96c..b2ae61d76 100755 --- a/cg/cg5100a.h +++ b/cg/cg5100a.h @@ -6,8 +6,8 @@ #define CHK_STTFFR 105 #define CHK_STLGIU 106 #define CHK_GESSAL 107 -#define CHK_NRCFDX 108 -#define FLD_CMSGPC 109 +#define CHK_NRCLIDX 108 +#define CHK_NRFORDX 109 #define LST_RIFPAR 110 #define CHK_GESVAL 111 #define FLD_CODLIN 112 diff --git a/cg/cg5100a.uml b/cg/cg5100a.uml index cdf9a21ce..3c0c2b383 100755 --- a/cg/cg5100a.uml +++ b/cg/cg5100a.uml @@ -13,6 +13,7 @@ BUTTON DLG_QUIT 10 2 BEGIN PROMPT -22 -1 "" END + ENDPAGE /* page1 */ @@ -87,13 +88,13 @@ BEGIN FIELD GesSal END -BOOLEAN CHK_NRCFDX +BOOLEAN CHK_NRCLIDX BEGIN PROMPT 4 12 "N. Rif. allineato a destra per clienti" FIELD NrCliDx END -BOOLEAN FLD_CMSGPC 1 +BOOLEAN CHK_NRFORDX BEGIN PROMPT 4 13 "N. Rif. allineato a destra per fornitori" FIELD NrForDx