Corretti errori Gabri

git-svn-id: svn://10.65.10.50/trunk@2622 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-02-21 09:00:03 +00:00
parent 6a79d80176
commit f63419ff75
8 changed files with 123 additions and 103 deletions

View File

@ -16,7 +16,7 @@ END
LIST F_TIPOCF 1 12 LIST F_TIPOCF 1 12
BEGIN BEGIN
PROMPT 2 1 "Tipo " PROMPT 2 1 "Tipo "
FIELD LF_CLIFO->TIPOCF FIELD TIPOCF
FLAGS "PG" FLAGS "PG"
KEY 1 2 4 5 6 KEY 1 2 4 5 6
HELP "Indicare se cliente oppure fornitore" HELP "Indicare se cliente oppure fornitore"
@ -29,7 +29,7 @@ END
NUMBER F_CODCF 6 NUMBER F_CODCF 6
BEGIN BEGIN
PROMPT 2 2 "Codice " PROMPT 2 2 "Codice "
FIELD LF_CLIFO->CODCF FIELD CODCF
FLAGS "GR" FLAGS "GR"
KEY 1 KEY 1
USE LF_CLIFO KEY 1 USE LF_CLIFO KEY 1
@ -56,7 +56,7 @@ END
STRING F_RAGSOC 30 STRING F_RAGSOC 30
BEGIN BEGIN
PROMPT 23 1 "Cognome / Rag. Soc." PROMPT 23 1 "Cognome / Rag. Soc."
FIELD LF_CLIFO->RAGSOC[1,30] FIELD RAGSOC[1,30]
KEY 2 KEY 2
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT INPUT TIPOCF F_TIPOCF SELECT
@ -77,7 +77,7 @@ END
STRING F_RAGSOCA 20 STRING F_RAGSOCA 20
BEGIN BEGIN
PROMPT 23 2 "Nome / Seconda parte Rag. Soc. " PROMPT 23 2 "Nome / Seconda parte Rag. Soc. "
FIELD LF_CLIFO->RAGSOC[31,] FIELD RAGSOC[31,]
KEY 2 KEY 2
HELP "Seconda parte della ragione sociale o nome" HELP "Seconda parte della ragione sociale o nome"
MESSAGE COPY,6@ MESSAGE COPY,6@
@ -86,7 +86,7 @@ END
STRING F_RICALT 30 20 STRING F_RICALT 30 20
BEGIN BEGIN
PROMPT 2 4 "Ricerca Alt. " PROMPT 2 4 "Ricerca Alt. "
FIELD LF_CLIFO->RICALT FIELD RICALT
KEY 6 KEY 6
USE LF_CLIFO KEY 6 USE LF_CLIFO KEY 6
INPUT TIPOCF F_TIPOCF SELECT INPUT TIPOCF F_TIPOCF SELECT
@ -101,7 +101,7 @@ END
LIST F_STATOPAIV 2 21 LIST F_STATOPAIV 2 21
BEGIN BEGIN
PROMPT 42 4 "Stato CEE " PROMPT 42 4 "Stato CEE "
FIELD LF_CLIFO->STATOPAIV FIELD STATOPAIV
KEY 5 KEY 5
HELP "Codice ISO dello stato" HELP "Codice ISO dello stato"
ITEM " |Italia o extra CEE" ITEM " |Italia o extra CEE"
@ -122,7 +122,7 @@ END
STRING F_COFI 16 STRING F_COFI 16
BEGIN BEGIN
PROMPT 2 5 "Codice fiscale " PROMPT 2 5 "Codice fiscale "
FIELD LF_CLIFO->COFI FIELD COFI
FLAGS "U" FLAGS "U"
KEY 4 KEY 4
USE LF_CLIFO KEY 4 USE LF_CLIFO KEY 4
@ -141,7 +141,7 @@ END
STRING F_PAIV 12 STRING F_PAIV 12
BEGIN BEGIN
PROMPT 42 5 "Partita IVA " PROMPT 42 5 "Partita IVA "
FIELD LF_CLIFO->PAIV FIELD PAIV
KEY 5 KEY 5
USE LF_CLIFO KEY 5 USE LF_CLIFO KEY 5
INPUT TIPOCF F_TIPOCF SELECT INPUT TIPOCF F_TIPOCF SELECT
@ -165,21 +165,21 @@ END
STRING F_INDCF 35 STRING F_INDCF 35
BEGIN BEGIN
PROMPT 2 7 "Indirizzo " PROMPT 2 7 "Indirizzo "
FIELD LF_CLIFO->INDCF FIELD INDCF
HELP "Indirizzo del recapito" HELP "Indirizzo del recapito"
END END
STRING F_CIVCF 10 STRING F_CIVCF 10
BEGIN BEGIN
PROMPT 60 7 "N. " PROMPT 60 7 "N. "
FIELD LF_CLIFO->CIVCF FIELD CIVCF
HELP "Numero civico del recapito" HELP "Numero civico del recapito"
END END
NUMBER F_STATOCF 3 NUMBER F_STATOCF 3
BEGIN BEGIN
PROMPT 2 8 "Comune: Stato " PROMPT 2 8 "Comune: Stato "
FIELD LF_CLIFO->STATOCF FIELD STATOCF
FLAGS "Z" FLAGS "Z"
USE %STA USE %STA
INPUT CODTAB F_STATOCF INPUT CODTAB F_STATOCF
@ -205,7 +205,7 @@ END
STRING F_COMCF 4 STRING F_COMCF 4
BEGIN BEGIN
PROMPT 8 9 ":Codice " PROMPT 8 9 ":Codice "
FIELD LF_CLIFO->COMCF FIELD COMCF
FLAGS "U" FLAGS "U"
USE LF_COMUNI USE LF_COMUNI
INPUT STATO F_STATOCF SELECT INPUT STATO F_STATOCF SELECT
@ -240,14 +240,14 @@ END
STRING F_LOCALITACF 35 STRING F_LOCALITACF 35
BEGIN BEGIN
PROMPT 2 10 "Localita' " PROMPT 2 10 "Localita' "
FIELD LF_CLIFO->LOCALITACF FIELD LOCALITACF
HELP "Localita' del recapito" HELP "Localita' del recapito"
END END
STRING F_CAPCF 5 STRING F_CAPCF 5
BEGIN BEGIN
PROMPT 53 10 "CAP " PROMPT 53 10 "CAP "
FIELD LF_CLIFO->CAPCF FIELD CAPCF
HELP "Codice di avviamento postale del recapito" HELP "Codice di avviamento postale del recapito"
END END
@ -260,7 +260,7 @@ END
LIST F_TIPOPERS 1 12 LIST F_TIPOPERS 1 12
BEGIN BEGIN
PROMPT 2 12 "Tipo persona " PROMPT 2 12 "Tipo persona "
FIELD LF_CLIFO->TIPOPERS FIELD TIPOPERS
HELP "Tipo anagrafico del clinete/fornitore" HELP "Tipo anagrafico del clinete/fornitore"
ITEM "F|Fisica" ITEM "F|Fisica"
MESSAGE COPY,F_TIPOAPER MESSAGE COPY,F_TIPOAPER
@ -271,7 +271,7 @@ END
STRING F_CODSTAT 7 STRING F_CODSTAT 7
BEGIN BEGIN
PROMPT 46 12 "Codice statistico " PROMPT 46 12 "Codice statistico "
FIELD LF_CLIFO->CODSTAT FIELD CODSTAT
USE %STT USE %STT
INPUT CODTAB F_CODSTAT INPUT CODTAB F_CODSTAT
DISPLAY "Codice statistico" CODTAB DISPLAY "Codice statistico" CODTAB
@ -284,7 +284,7 @@ END
NUMBER F_ALLEG 1 NUMBER F_ALLEG 1
BEGIN BEGIN
PROMPT 2 13 "Inserimento in allegato " PROMPT 2 13 "Inserimento in allegato "
FIELD LF_CLIFO->ALLEG FIELD ALLEG
SHEET "Codice|Descrizione@50" SHEET "Codice|Descrizione@50"
HELP "Codice per l'inserimento negli allegati IVA" HELP "Codice per l'inserimento negli allegati IVA"
INPUT F_ALLEG INPUT F_ALLEG
@ -300,7 +300,7 @@ END
NUMBER F_CODALLEG 6 NUMBER F_CODALLEG 6
BEGIN BEGIN
PROMPT 32 13 "Codice allegato " PROMPT 32 13 "Codice allegato "
FIELD LF_CLIFO->CODALLEG FIELD CODALLEG
FLAGS "R" FLAGS "R"
COPY USE F_CODCF COPY USE F_CODCF
INPUT TIPOCF F_TIPOCF SELECT INPUT TIPOCF F_TIPOCF SELECT
@ -322,7 +322,7 @@ END
BOOLEAN F_OCCASIONALE BOOLEAN F_OCCASIONALE
BEGIN BEGIN
PROMPT 2 16 "Occasionale " PROMPT 2 16 "Occasionale "
FIELD LF_CLIFO->OCCAS FIELD OCCAS
HELP "Indicare se si tratta di un C/F occasionale" HELP "Indicare se si tratta di un C/F occasionale"
MESSAGE TRUE "2",F_ALLEG MESSAGE TRUE "2",F_ALLEG
END END
@ -330,7 +330,7 @@ END
BOOLEAN F_SOSPESO BOOLEAN F_SOSPESO
BEGIN BEGIN
PROMPT 32 16 "Sospeso " PROMPT 32 16 "Sospeso "
FIELD LF_CLIFO->SOSPESO FIELD SOSPESO
HELP "Indicare se il C/F e' movimentato ma non piu' utilizzabile" HELP "Indicare se il C/F e' movimentato ma non piu' utilizzabile"
END END
@ -381,70 +381,70 @@ END
STRING F_PTEL 10 STRING F_PTEL 10
BEGIN BEGIN
PROMPT 2 5 "Telefono " PROMPT 2 5 "Telefono "
FIELD LF_CLIFO->PTEL FIELD PTEL
HELP "Prefisso telefonico primo recapito" HELP "Prefisso telefonico primo recapito"
END END
STRING F_TEL 30 STRING F_TEL 30
BEGIN BEGIN
PROMPT 43 5 "" PROMPT 43 5 ""
FIELD LF_CLIFO->TEL FIELD TEL
HELP "Numero telefonico primo recapito" HELP "Numero telefonico primo recapito"
END END
STRING F_PTEL2 10 STRING F_PTEL2 10
BEGIN BEGIN
PROMPT 16 6 "" PROMPT 16 6 ""
FIELD LF_CLIFO->PTEL2 FIELD PTEL2
HELP "Prefisso telefonico secondo recapito" HELP "Prefisso telefonico secondo recapito"
END END
STRING F_TEL2 30 STRING F_TEL2 30
BEGIN BEGIN
PROMPT 43 6 "" PROMPT 43 6 ""
FIELD LF_CLIFO->TEL2 FIELD TEL2
HELP "Numero telefonico secondo recapito" HELP "Numero telefonico secondo recapito"
END END
STRING F_PTEL3 10 STRING F_PTEL3 10
BEGIN BEGIN
PROMPT 16 7 "" PROMPT 16 7 ""
FIELD LF_CLIFO->PTEL3 FIELD PTEL3
HELP "Prefisso telefonico terzo recapito" HELP "Prefisso telefonico terzo recapito"
END END
STRING F_TEL3 30 STRING F_TEL3 30
BEGIN BEGIN
PROMPT 43 7 "" PROMPT 43 7 ""
FIELD LF_CLIFO->TEL3 FIELD TEL3
HELP "Numero telefonico terzo recapito" HELP "Numero telefonico terzo recapito"
END END
STRING F_PFAX 10 STRING F_PFAX 10
BEGIN BEGIN
PROMPT 2 8 "Fax " PROMPT 2 8 "Fax "
FIELD LF_CLIFO->PFAX FIELD PFAX
HELP "Prefisso del numero di fax" HELP "Prefisso del numero di fax"
END END
STRING F_FAX 30 STRING F_FAX 30
BEGIN BEGIN
PROMPT 43 8 "" PROMPT 43 8 ""
FIELD LF_CLIFO->FAX FIELD FAX
HELP "Numero telefonico del fax" HELP "Numero telefonico del fax"
END END
STRING F_PTELEX 10 STRING F_PTELEX 10
BEGIN BEGIN
PROMPT 2 9 "Telex " PROMPT 2 9 "Telex "
FIELD LF_CLIFO->PTELEX FIELD PTELEX
HELP "Prefisso del numero di telex" HELP "Prefisso del numero di telex"
END END
STRING F_TELEX 30 STRING F_TELEX 30
BEGIN BEGIN
PROMPT 43 9 "" PROMPT 43 9 ""
FIELD LF_CLIFO->TELEX FIELD TELEX
HELP "Numero telefonico del telex" HELP "Numero telefonico del telex"
END END
@ -456,7 +456,7 @@ END
LIST F_TIPOAPER 1 15 LIST F_TIPOAPER 1 15
BEGIN BEGIN
PROMPT 2 12 "Tipo " PROMPT 2 12 "Tipo "
FIELD LF_CLIFO->TIPOAPER FIELD TIPOAPER
FLAGS "D" FLAGS "D"
ITEM "F|Fisica" ITEM "F|Fisica"
ITEM "G|Giuridica" ITEM "G|Giuridica"
@ -465,7 +465,7 @@ END
NUMBER F_CODANAGPER 5 NUMBER F_CODANAGPER 5
BEGIN BEGIN
PROMPT 61 12 "Codice " PROMPT 61 12 "Codice "
FIELD LF_CLIFO->CODANAGPER FIELD CODANAGPER
FLAGS "R" FLAGS "R"
GROUP 4 GROUP 4
USE LF_ANAG USE LF_ANAG
@ -505,7 +505,7 @@ END
DATE F_DATANASC DATE F_DATANASC
BEGIN BEGIN
PROMPT 2 16 "Data " PROMPT 2 16 "Data "
FIELD LF_CLIFO->DATANASC FIELD DATANASC
GROUP 5 GROUP 5
HELP "Data di nascita del cliente/fornitore" HELP "Data di nascita del cliente/fornitore"
END END
@ -513,7 +513,7 @@ END
NUMBER F_STATONASC 3 NUMBER F_STATONASC 3
BEGIN BEGIN
PROMPT 38 16 "Stato " PROMPT 38 16 "Stato "
FIELD LF_CLIFO->STATONASC FIELD STATONASC
FLAGS "Z" FLAGS "Z"
GROUP 5 GROUP 5
COPY USE F_STATOCF COPY USE F_STATOCF
@ -528,7 +528,7 @@ END
STRING F_COMNASC 4 STRING F_COMNASC 4
BEGIN BEGIN
PROMPT 60 16 "Comune " PROMPT 60 16 "Comune "
FIELD LF_CLIFO->COMNASC FIELD COMNASC
FLAGS "U" FLAGS "U"
GROUP 5 GROUP 5
COPY USE F_COMCF COPY USE F_COMCF
@ -598,7 +598,7 @@ END
NUMBER F_CODABI 5 NUMBER F_CODABI 5
BEGIN BEGIN
PROMPT 2 4 "Codice ABI " PROMPT 2 4 "Codice ABI "
FIELD LF_CLIFO->CODABI FIELD CODABI
FLAGS "Z" FLAGS "Z"
USE %BAN USE %BAN
INPUT CODTAB F_CODABI INPUT CODTAB F_CODABI
@ -615,7 +615,7 @@ END
NUMBER F_CODBAN 5 NUMBER F_CODBAN 5
BEGIN BEGIN
PROMPT 56 4 "Codice CAB " PROMPT 56 4 "Codice CAB "
FIELD LF_CLIFO->CODCAB FIELD CODCAB
FLAGS "Z" FLAGS "Z"
COPY USE F_CODABI COPY USE F_CODABI
INPUT CODTAB[1,5] F_CODABI INPUT CODTAB[1,5] F_CODABI
@ -646,7 +646,7 @@ FLAGS "UZ"
PROMPT 2 6 "Valuta " PROMPT 2 6 "Valuta "
FLAGS "UZ" FLAGS "UZ"
>>>>>>> 1.23 >>>>>>> 1.23
FIELD LF_CLIFO->CODVAL FIELD CODVAL
USE %VAL USE %VAL
INPUT CODTAB F_CODVAL INPUT CODTAB F_CODVAL
DISPLAY "Codice valuta" CODTAB DISPLAY "Codice valuta" CODTAB
@ -670,7 +670,7 @@ END
STRING F_CODLIN 1 STRING F_CODLIN 1
BEGIN BEGIN
PROMPT 2 7 "Lingua " PROMPT 2 7 "Lingua "
FIELD LF_CLIFO->CODLIN FIELD CODLIN
USE %LNG USE %LNG
FLAGS "U" FLAGS "U"
INPUT CODTAB F_CODLIN INPUT CODTAB F_CODLIN
@ -696,7 +696,7 @@ END
STRING F_CODPAG 4 STRING F_CODPAG 4
BEGIN BEGIN
PROMPT 2 8 "Pagamento " PROMPT 2 8 "Pagamento "
FIELD LF_CLIFO->CODPAG FIELD CODPAG
FLAGS "U#" FLAGS "U#"
USE %CPG USE %CPG
INPUT CODTAB F_CODPAG INPUT CODTAB F_CODPAG
@ -722,7 +722,7 @@ END
NUMBER F_FIDO 15 NUMBER F_FIDO 15
BEGIN BEGIN
PROMPT 2 9 "Fido " PROMPT 2 9 "Fido "
FIELD LF_CLIFO->FIDO FIELD FIDO
FLAGS "R" FLAGS "R"
PICTURE "." PICTURE "."
HELP "Importo massimo fido del cliente/fornitore" HELP "Importo massimo fido del cliente/fornitore"
@ -736,7 +736,7 @@ END
NUMBER F_GRUPPO 3 NUMBER F_GRUPPO 3
BEGIN BEGIN
PROMPT 2 11 "Gruppo " PROMPT 2 11 "Gruppo "
FIELD LF_CLIFO->GRUPPO FIELD GRUPPO
FLAGS "R" FLAGS "R"
HELP "Codice del gruppo" HELP "Codice del gruppo"
END END
@ -744,7 +744,7 @@ END
NUMBER F_CONTO 3 NUMBER F_CONTO 3
BEGIN BEGIN
PROMPT 27 11 "Conto " PROMPT 27 11 "Conto "
FIELD LF_CLIFO->CONTO FIELD CONTO
FLAGS "R" FLAGS "R"
USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF) USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
INPUT GRUPPO F_GRUPPO INPUT GRUPPO F_GRUPPO
@ -788,7 +788,7 @@ USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
NUMBER F_GRUPPORIC 3 NUMBER F_GRUPPORIC 3
BEGIN BEGIN
PROMPT 2 15 "Gruppo " PROMPT 2 15 "Gruppo "
FIELD LF_CLIFO->GRUPPORIC FIELD GRUPPORIC
FLAGS "R" FLAGS "R"
HELP "Gruppo di contropartita" HELP "Gruppo di contropartita"
END END
@ -796,7 +796,7 @@ USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
NUMBER F_CONTORIC 3 NUMBER F_CONTORIC 3
BEGIN BEGIN
PROMPT 27 15 "Conto " PROMPT 27 15 "Conto "
FIELD LF_CLIFO->CONTORIC FIELD CONTORIC
FLAGS "R" FLAGS "R"
HELP "Conto di contropartita" HELP "Conto di contropartita"
END END
@ -804,7 +804,7 @@ USE LF_PCON SELECT (CONTO!="")&&(SOTTOCONTO="")&&(TMCF=#F_TIPOCF)
NUMBER F_SOTTOCRIC 6 NUMBER F_SOTTOCRIC 6
BEGIN BEGIN
PROMPT 47 15 "Sottoconto " PROMPT 47 15 "Sottoconto "
FIELD LF_CLIFO->SOTTOCRIC FIELD SOTTOCRIC
FLAGS "R" FLAGS "R"
USE LF_PCON SELECT SOTTOCONTO!="" USE LF_PCON SELECT SOTTOCONTO!=""
INPUT GRUPPO F_GRUPPORIC INPUT GRUPPO F_GRUPPORIC

View File

@ -799,6 +799,7 @@ int TPrimanota_application::crea_somma_spese(TImporto& imp)
bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k) bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k)
{ {
static TImporto old_spesa; static TImporto old_spesa;
static bool delete_l = FALSE;
CHECKD(r >= 0, "Chi e' quel ca$$one che notifica la riga ", r); CHECKD(r >= 0, "Chi e' quel ca$$one che notifica la riga ", r);
@ -806,6 +807,13 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k)
if (k == K_CTRL + K_DEL) if (k == K_CTRL + K_DEL)
{ {
if (delete_l)
{
const int l = type2pos('L');
CHECK(l >= 0, "Impossibile cancellare riga di tipo L");
cg.destroy(l);
delete_l = FALSE;
}
a.calcola_saldo(); // Ricalcola saldo dopo cancellazione a.calcola_saldo(); // Ricalcola saldo dopo cancellazione
return TRUE; // Ritorna subito, altrimenti crea riga vuota return TRUE; // Ritorna subito, altrimenti crea riga vuota
} }
@ -846,7 +854,7 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k)
if (s < 0) if (s < 0)
a.crea_somma_spese(growth); a.crea_somma_spese(growth);
else else
a.sub_cgs_imp(s, growth); delete_l = a.sub_cgs_imp(s, growth);
} }
} }
else else
@ -855,7 +863,7 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k)
a.generazione_righe_cg(r); a.generazione_righe_cg(r);
} }
if (k == K_ENTER) if (k == K_ENTER)
a.calcola_saldo(); a.calcola_saldo(); // Altrimenti ci pensa CTRL-DEL
break; break;
case K_CTRL+K_INS: // Post inserimento case K_CTRL+K_INS: // Post inserimento
if (a.is_pagamento()) if (a.is_pagamento())
@ -863,7 +871,7 @@ bool TPrimanota_application::cg_notify(TSheet_field& cg, int r, KEY k)
const char tipo = cg.mask().get(SK_TIPORIGA)[0]; const char tipo = cg.mask().get(SK_TIPORIGA)[0];
if (tipo == 'K' || tipo == 'G') if (tipo == 'K' || tipo == 'G')
{ {
const int k = tipo == 'K' ? 1 : 10; const int k = tipo == 'K' ? 1 : RIGA_SPESE;
TBill conto; a.causale().bill(k, conto); TBill conto; a.causale().bill(k, conto);
const TString80 desc(a.causale().desc_agg(k)); const TString80 desc(a.causale().desc_agg(k));
const char sez = a.causale().sezione(k); const char sez = a.causale().sezione(k);

View File

@ -828,7 +828,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
row.add(descr, 4); row.add(descr, 4);
const bool blocked = scad.get_bool(SCAD_BLOCCATA); const bool blocked = scad.get_bool(SCAD_BLOCCATA);
row.add(blocked ? "X" : " " , 13); row.add(blocked ? "X" : " ", 13);
const int lastp = scad.last(); const int lastp = scad.last();
for (int pa = scad.first(); pa <= lastp; pa = scad.succ(pa)) for (int pa = scad.first(); pa <= lastp; pa = scad.succ(pa))
@ -971,6 +971,7 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
{ {
TToken_string& row = scadenze.row(scadenze.add("")); TToken_string& row = scadenze.row(scadenze.add(""));
row.add("Ritenute professionali", 4); row.add("Ritenute professionali", 4);
gm.add_importo(row, rit, FALSE);
tot_lit += rit; tot_lit += rit;
} }
} }
@ -1293,8 +1294,9 @@ bool TGame_mask::edit_scadenza_handler(TMask_field& f, KEY k)
{ {
TSheet_field& ss = gm.scadenze(); TSheet_field& ss = gm.scadenze();
const int rs = ss.selected(); // Memorizza la riga corrente const int rs = ss.selected(); // Memorizza la riga corrente
gm.fill_partite(); gm.fill_partite(); // Aggiorna elenco partite
ss.select(rs); // Riporta la selezione sulla riga corrente if (rs < ss.items()) // Se esiste ancora ...
ss.select(rs); // ... riporta la selezione sulla riga corrente
gm._changed = TRUE; gm._changed = TRUE;
} }
} }
@ -1569,11 +1571,8 @@ void TGame_mask::fill_partite()
const TBill& k = gioco->conto(); const TBill& k = gioco->conto();
bool u = (k.tipo() > ' ' && k.sottoconto() == conto().sottoconto()) || k == conto(); bool u = (k.tipo() > ' ' && k.sottoconto() == conto().sottoconto()) || k == conto();
#ifdef DBG
if (u && !all && gioco->chiusa() && gioco->mov2rig(_numreg, _numrig) <= 0) if (u && !all && gioco->chiusa() && gioco->mov2rig(_numreg, _numrig) <= 0)
u = error_box("Tentativo di visualizzare partita %d %s!", u = FALSE;
gioco->anno(), (const char*)gioco->numero());
#endif
if (u) if (u)
update_partita(*gioco, -1); update_partita(*gioco, -1);
@ -1685,7 +1684,6 @@ bool TGame_mask::edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp) co
const TValuta val(somma); const TValuta val(somma);
#ifdef __EXTRA__ #ifdef __EXTRA__
// val.get(m, E_VALUTA, E_DATACAMBIO, E_CAMBIO);
p.modifica_pagamento(newpag, val, TRUE); p.modifica_pagamento(newpag, val, TRUE);
#else #else
if (somma.is_nota_credito()) if (somma.is_nota_credito())

View File

@ -51,6 +51,7 @@ END
STRING 106 1 STRING 106 1
BEGIN BEGIN
PROMPT 24 5 "Ulteriore classific. " PROMPT 24 5 "Ulteriore classific. "
FLAGS "U"
USE %CLR USE %CLR
INPUT CODTAB[1,1] 105 SELECT INPUT CODTAB[1,1] 105 SELECT
INPUT CODTAB[2,2] 106 INPUT CODTAB[2,2] 106

View File

@ -804,7 +804,7 @@ const char* TPagamento::desc_tipo(int tipo, char ulc, bool* ok) const
if (ok != NULL) *ok = TRUE; if (ok != NULL) *ok = TRUE;
if (ulc > ' ') if (ulc > ' ')
{ {
const char key[] = { tipo+'0', ulc, '\0' }; const char key[] = { tipo+'0', toupper(ulc), '\0' };
TTable clr("%CLR"); TTable clr("%CLR");
clr.put("CODTAB", key); clr.put("CODTAB", key);

View File

@ -533,16 +533,16 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
sum.update(old_pag, new_pag, PART_IMPORTOVAL); sum.update(old_pag, new_pag, PART_IMPORTOVAL);
sum.update(old_pag, new_pag, PART_RITENUTE); sum.update(old_pag, new_pag, PART_RITENUTE);
// Aggiorna flags di chiusura
chiusa(TRUE);
partita().chiusa(TRUE);
const bool empty = new_pag.get_char(PAGSCA_ACCSAL) != 'S' && const bool empty = new_pag.get_char(PAGSCA_ACCSAL) != 'S' &&
new_pag.get_real(PAGSCA_IMPORTO).is_zero() && new_pag.get_real(PAGSCA_IMPORTO).is_zero() &&
new_pag.get_real(PAGSCA_RITENUTE).is_zero(); new_pag.get_real(PAGSCA_RITENUTE).is_zero();
if (empty) if (empty)
rows_array().destroy_row(nrigp); rows_array().destroy_row(nrigp);
// Aggiorna flags di chiusura
chiusa(TRUE);
partita().chiusa(TRUE);
return empty; return empty;
} }
@ -747,14 +747,14 @@ int TRiga_partite::ultima_rata_con_abbuoni_diffcam() const
bool TRiga_partite::in_valuta() const bool TRiga_partite::in_valuta() const
{ {
const TString& cod = get(PART_CODVAL); const TString& cod = get(PART_CODVAL);
return cod.not_empty() && cod != "LIT"; return cod.not_empty();
} }
// Calcola l'importo in lire o in valuta su di una riga di partita // Calcola l'importo in lire o in valuta su di una riga di partita
// E' possibile considerare o meno IMPORTO, ABBUONI e DIFFCAM // E' possibile considerare o meno IMPORTO, ABBUONI e DIFFCAM
TImporto TRiga_partite::importo(bool valuta, int mode) const TImporto TRiga_partite::importo(bool valuta, int mode) const
{ {
CHECKD(mode > 0 && mode < 16, "Bad importo mode ", mode); CHECKD(mode > 0x0 && mode <= 0xF, "Bad importo mode ", mode);
const bool in_lire = !in_valuta(); const bool in_lire = !in_valuta();
if (valuta && in_lire) if (valuta && in_lire)
valuta = FALSE; valuta = FALSE;
@ -766,13 +766,13 @@ TImporto TRiga_partite::importo(bool valuta, int mode) const
i.set(sezione(), get_real(field)); i.set(sezione(), get_real(field));
} }
if (!is_fattura() && (mode & 0x6)) // Esistono abbuoni o differenze cambio? if (!is_fattura() && (mode & 0xE)) // Ci sono abbuoni, differenze cambio o ritenute?
{ {
if (valuta) // Desidero gli abbuoni in valuta if (valuta) // Desidero gli abbuoni in valuta
{ {
if (mode & 0x2) if (mode & 0x2)
{ {
TImporto abbuoni(get_char(PART_SEZABB), get_real(PART_ABBUONI)); const TImporto abbuoni(get_char(PART_SEZABB), get_real(PART_ABBUONI));
i += abbuoni; i += abbuoni;
} }
// In valuta ignoro completamente le differenze cambio // In valuta ignoro completamente le differenze cambio
@ -1017,27 +1017,34 @@ int TPartita::write_saldo(bool re, TRectype* rec) const
TLocalisamfile part(LF_PARTITE); TLocalisamfile part(LF_PARTITE);
TRectype& sld = part.curr(); TRectype& sld = part.curr();
sld = _part.key(); sld = _part.key(); // Copia conto, anno e numero partita
sld.put(PART_NRIGA, (int)UNASSIGNED); sld.put(PART_NRIGA, (int)UNASSIGNED); // Assegna magic line number
sld.put(PART_SEZ, saldo.sezione()); sld.put(PART_SEZ, saldo.sezione()); // Sezione saldo
sld.put(PART_IMPORTO, saldo.valore()); sld.put(PART_IMPORTO, saldo.valore()); // Saldo
sld.put(PART_SEZABB, doc.sezione()); sld.put(PART_SEZABB, doc.sezione()); // Sezione documenti
sld.put(PART_ABBUONI, doc.valore()); sld.put(PART_ABBUONI, doc.valore()); // Documenti
sld.put(PART_SEZDIFCAM, pag.sezione()); sld.put(PART_SEZDIFCAM, pag.sezione()); // Sezione pagamenti
sld.put(PART_DIFFCAM, pag.valore()); sld.put(PART_DIFFCAM, pag.valore()); // Pagamenti
sld.put(PART_REG, imp.sezione()); sld.put(PART_REG, imp.sezione()); // Sezione altri importi
sld.put(PART_IMPOSTA, imp.valore()); sld.put(PART_IMPOSTA, imp.valore()); // Altri importi
int r = prima_fattura(); int r = prima_fattura(); // Cerca la prima fattura ...
if (r <=0 ) r = first(); if (r <= 0) r = first(); // ... o la prima riga valida
const TRiga_partite& row = riga(r); const TRiga_partite& row = riga(r);
sld.put(PART_NUMDOC, row.get(PART_NUMDOC));
sld.put(PART_NUMDOC, row.get(PART_NUMDOC)); // Copia estremi documento
sld.put(PART_DATADOC, row.get(PART_DATADOC)); sld.put(PART_DATADOC, row.get(PART_DATADOC));
sld.put(PART_DESCR, row.get(PART_DESCR)); sld.put(PART_DESCR, row.get(PART_DESCR));
const TValuta valuta(row); // Copia la valuta
valuta.put(sld);
sld.put(PART_CHIUSA, row.get(PART_CHIUSA)); // Copia il flag di chiusura
if (rec != NULL) if (rec != NULL)
*rec = sld; *rec = sld;
// Scrittura del record di saldo
int err = re ? part.rewrite() : part.write(); int err = re ? part.rewrite() : part.write();
if (err != NOERR) if (err != NOERR)
err = re ? part.write() : part.rewrite(); err = re ? part.write() : part.rewrite();
@ -1081,11 +1088,15 @@ int TPartita::read_saldo(TRectype& riga,
return err; return err;
} }
bool TPartita::write(bool re) const bool TPartita::write(bool re) const
{ {
if (ok()) if (ok())
{ {
((TPartita*)this)->chiusa(TRUE); // Aggiorna flag di chiusura (non si sa mai)
if (conto().tipo() > ' ')
{
// Aggiunge conti cliente/fornitore mancanti
for (int r = last(); r > 0; r = pred(r)) for (int r = last(); r > 0; r = pred(r))
{ {
TRiga_partite& row = riga(r); TRiga_partite& row = riga(r);
@ -1095,6 +1106,7 @@ bool TPartita::write(bool re) const
row.put(PART_CONTOCL, conto().conto()); row.put(PART_CONTOCL, conto().conto());
} }
} }
}
const char cur_align = allineamento_corrente(); const char cur_align = allineamento_corrente();
const char req_align = allineamento_richiesto(conto().tipo()); const char req_align = allineamento_richiesto(conto().tipo());
@ -1486,27 +1498,28 @@ bool TPartita::modifica_pagamento(const TRectype& new_pag, const TValuta& valuta
} }
bool TPartita::chiusa(bool update) bool TPartita::chiusa(bool update) const
{ {
bool chiusa = FALSE; bool chiusa = TRUE;
const int ultima = last(); const int ultima = last();
if (ultima > 0)
{
const TRiga_partite& row = riga(ultima);
chiusa = row.get_bool(PART_CHIUSA);
}
if (update) if (update)
{ {
const TImporto saldo = calcola_saldo(TRUE); // Saldo in valuta const TImporto saldo = calcola_saldo(TRUE); // Saldo in valuta
chiusa = saldo.is_zero(); chiusa = saldo.is_zero();
for (int p = last(); p > 0; p = pred(p)) for (int p = ultima; p > 0; p = pred(p))
{ {
TRiga_partite& part = riga(p); TRiga_partite& part = riga(p);
part.put(PART_CHIUSA, chiusa); part.put(PART_CHIUSA, chiusa);
} }
} }
else
{
if (ultima > 0)
{
const TRiga_partite& row = riga(ultima);
chiusa = row.get_bool(PART_CHIUSA);
}
}
return chiusa; return chiusa;
} }

View File

@ -284,7 +284,7 @@ public:
bool utilizzata(int r) const; // Controlla se esistono pagamenti sommati alla riga r bool utilizzata(int r) const; // Controlla se esistono pagamenti sommati alla riga r
TRecord_array& unassigned() { return _unassigned; } TRecord_array& unassigned() { return _unassigned; }
bool chiusa(bool update = FALSE); bool chiusa(bool update = FALSE) const;
const TBill& conto() const { return _conto; } const TBill& conto() const { return _conto; }
int anno() const { return _anno; } int anno() const { return _anno; }