Milgiorie a gestione schede percipienti
git-svn-id: svn://10.65.10.50/branches/R_10_00@22871 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0acd0807c0
commit
ad0a49b16a
@ -515,32 +515,36 @@ void TSchedaPercipienti::agg_pagamenti(const TRectype& sch, const TDate& pag_dal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool schede(const TRelation& rel, void* pJolly)
|
static TDate _pag_dal;
|
||||||
|
|
||||||
|
static bool schede(const TRelation& rel, void* pJolly)
|
||||||
{
|
{
|
||||||
const TRectype& sch = rel.curr();
|
const TRectype& sch = rel.curr();
|
||||||
TSchedaPercipienti* schper = (TSchedaPercipienti *) pJolly;
|
TSchedaPercipienti* schper = (TSchedaPercipienti *) pJolly;
|
||||||
|
schper->agg_pagamenti(sch, _pag_dal);
|
||||||
TMask mp("Aggiorna pagamenti", 1, 20, 4);
|
return true;
|
||||||
mp.add_date(101, 0, "Data minimima pagamenti ", 1, 1);
|
|
||||||
const bool ok = mp.run() == K_ENTER;
|
|
||||||
if (ok)
|
|
||||||
{
|
|
||||||
const TDate pag_dal = mp.get(101);
|
|
||||||
schper->agg_pagamenti(sch, pag_dal);
|
|
||||||
}
|
|
||||||
return ok;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TSchedaPercipienti::aggpag_handler(TMask_field& f, KEY k)
|
bool TSchedaPercipienti::aggpag_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_SPACE)
|
if (k == K_SPACE)
|
||||||
{
|
{
|
||||||
TLocalisamfile fsch(LF_SCPERC);
|
TMask mp(TR("Aggiorna pagamenti"), 1, 32, 6);
|
||||||
TRectype from(LF_SCPERC);
|
mp.add_date(101, 0, PR("Data iniziale "), 1, 1);
|
||||||
from.put("CODDITTA", get_firm_770());
|
mp.add_button(DLG_OK, 0, "", -12, -1, 9, 2);
|
||||||
TRelation rel(LF_SCPERC);
|
mp.add_button(DLG_CANCEL, 0, "", -22, -1, 9, 2);
|
||||||
TCursor c(&rel, "", 1, &from, &from);
|
const bool ok = mp.run() == K_ENTER;
|
||||||
c.scan(schede, &app(), TR("Aggiornamento schede"));
|
if (ok)
|
||||||
|
{
|
||||||
|
_pag_dal = mp.get(101);
|
||||||
|
|
||||||
|
TLocalisamfile fsch(LF_SCPERC);
|
||||||
|
TRectype from(LF_SCPERC);
|
||||||
|
from.put("CODDITTA", get_firm_770());
|
||||||
|
TRelation rel(LF_SCPERC);
|
||||||
|
TCursor c(&rel, "", 1, &from, &from);
|
||||||
|
c.scan(schede, &app(), TR("Aggiornamento schede"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ TCursor* TVersa_rit::meik_curs(TRelation* rel)
|
|||||||
{
|
{
|
||||||
const long codditta = get_firm_770();
|
const long codditta = get_firm_770();
|
||||||
TString16 filt; filt.format("CODDITTA=%ld", codditta);
|
TString16 filt; filt.format("CODDITTA=%ld", codditta);
|
||||||
return new TCursor(rel, filt);
|
return new TSorted_cursor(rel, "6->RAGSOC", filt);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TVersa_rit::create()
|
bool TVersa_rit::create()
|
||||||
@ -127,10 +127,10 @@ bool TVersa_rit::create()
|
|||||||
|
|
||||||
|
|
||||||
_sheet_perc = new TCursor_sheet(_cur,
|
_sheet_perc = new TCursor_sheet(_cur,
|
||||||
" |TIPOA|CODANAGR|6->RAGSOC",
|
" |TIPOA|CODANAGR|6->RAGSOC|6->COFI|6->PAIV",
|
||||||
"Selezione percipienti",
|
"Selezione percipienti",
|
||||||
"@1|Tipo|Codice|Ragione sociale@50",
|
"@1|Tipo|Codice|Ragione sociale@50|Codice Fiscale@16|Partita IVA@12",
|
||||||
8, 3);
|
8, 1);
|
||||||
_schede = new TArray_sheet(3, 3, -3, -3,
|
_schede = new TArray_sheet(3, 3, -3, -3,
|
||||||
"Selezione schede",
|
"Selezione schede",
|
||||||
"@1|T|Codice|Scheda n.|Data@10|Ragione@50");
|
"@1|T|Codice|Scheda n.|Data@10|Ragione@50");
|
||||||
@ -231,7 +231,7 @@ bool TVersa_rit::abicab_hndl(TMask_field& f, KEY k)
|
|||||||
const TString& park = f.get();
|
const TString& park = f.get();
|
||||||
for (int i=0; park[i]; i++)
|
for (int i=0; park[i]; i++)
|
||||||
if (!isdigit(park[i]))
|
if (!isdigit(park[i]))
|
||||||
return f.warning_box("Il codice ABI/CAB deve essere numerico");
|
return f.error_box(TR("Il codice ABI/CAB deve essere numerico"));
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "770200a.h"
|
#include "770200a.h"
|
||||||
|
|
||||||
PAGE "Versamento ritenute" -1 -1 75 15
|
PAGE "Versamento ritenute" -1 -1 75 12
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 74 3
|
GROUPBOX DLG_NULL 74 3
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -158,20 +158,16 @@ END
|
|||||||
|
|
||||||
CURRENCY F_VERSATO 15
|
CURRENCY F_VERSATO 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Importo versato "
|
PROMPT 2 9 "Importo versato "
|
||||||
WARNING "Manca l'importo versato"
|
WARNING "Manca l'importo versato"
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
ENDPAGE
|
||||||
BEGIN
|
|
||||||
PROMPT -12 -1 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON DLG_CANCEL 10 2
|
TOOLBAR "top" 0 0 0 2
|
||||||
BEGIN
|
|
||||||
PROMPT -22 -1 ""
|
#include <stdbar.h>
|
||||||
END
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Codice fiscale di Sirio spa
|
// Codice fiscale di Sirio spa
|
||||||
#define CF_PRODUTTORE "00909290355"
|
#define CF_PRODUTTORE "04879210963"
|
||||||
|
|
||||||
const int ANNO_DIC = 2012;
|
const int ANNO_DIC = 2012;
|
||||||
|
|
||||||
@ -213,8 +213,8 @@ class TTrasferimento770 : public TObject
|
|||||||
bool _save_headers;
|
bool _save_headers;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void riepiloga_ss(const TRecord770& rec, TArray& riep_ss) const;
|
bool riepiloga_ss(const TRecord770& rec, TArray& riep_ss) const;
|
||||||
void riepiloga_sx(const TRecord770& rec, TArray& riep_sx) const;
|
bool riepiloga_sx(const TRecord770& rec, TArray& riep_sx) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool open(const char* path = "", char mode = 'r', int volume = 0);
|
bool open(const char* path = "", char mode = 'r', int volume = 0);
|
||||||
@ -235,6 +235,7 @@ public:
|
|||||||
|
|
||||||
TRecnotype conta_certificazioni() const;
|
TRecnotype conta_certificazioni() const;
|
||||||
bool casella_prospetto_st() const;
|
bool casella_prospetto_st() const;
|
||||||
|
bool casella_prospetto_sx() const;
|
||||||
bool append_record_b();
|
bool append_record_b();
|
||||||
long append_quadro(const char* quadro, long codditta, TProgind& pi);
|
long append_quadro(const char* quadro, long codditta, TProgind& pi);
|
||||||
|
|
||||||
@ -1317,6 +1318,23 @@ bool TTrasferimento770::casella_prospetto_st() const
|
|||||||
return nr > 0;
|
return nr > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TTrasferimento770::casella_prospetto_sx() const
|
||||||
|
{
|
||||||
|
// Il quadro SX sono le ritenute versate in eccesso
|
||||||
|
TString query;
|
||||||
|
query.format("USE %d\nSELECT QLAP=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld",
|
||||||
|
LF_QUADRO_ST, ANNO_DIC, _cod_ditta, _cod_ditta);
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
bool found = false;
|
||||||
|
for (bool ok = recset.move_first(); ok && !found; ok = recset.move_next())
|
||||||
|
{
|
||||||
|
const real verecc = recset.get("QLRITVEREC").as_real();
|
||||||
|
found = !verecc.is_zero();
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TTrasferimento770::append_record_b()
|
bool TTrasferimento770::append_record_b()
|
||||||
{
|
{
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
@ -1365,12 +1383,13 @@ bool TTrasferimento770::append_record_b()
|
|||||||
rec.set(75, 1); // Reazione della dichiarazione (sezione I)
|
rec.set(75, 1); // Reazione della dichiarazione (sezione I)
|
||||||
rec.set(76, 0); // Comunicazioni relative a certificazioni lavoro dipendente
|
rec.set(76, 0); // Comunicazioni relative a certificazioni lavoro dipendente
|
||||||
const int autonomi = conta_certificazioni();
|
const int autonomi = conta_certificazioni();
|
||||||
const bool prosp_s = casella_prospetto_st();
|
const bool prosp_st = casella_prospetto_st();
|
||||||
|
const bool prosp_sx = casella_prospetto_sx();
|
||||||
rec.set(77, autonomi);
|
rec.set(77, autonomi);
|
||||||
rec.set(78, autonomi > 0); // casella prospetto SS
|
rec.set(78, autonomi > 0); // casella prospetto SS
|
||||||
rec.set(79, prosp_s); // casella prospetto ST
|
rec.set(79, prosp_st); // casella prospetto ST
|
||||||
rec.set(80, false); // casella prospetto SV
|
rec.set(80, false); // casella prospetto SV
|
||||||
rec.set(81, prosp_s); // casella prospetto SX
|
rec.set(81, prosp_sx); // casella prospetto SX
|
||||||
rec.set(82, false); // casella prospetto SY
|
rec.set(82, false); // casella prospetto SY
|
||||||
|
|
||||||
rec.set(94, 1); // Firma del dichiarante
|
rec.set(94, 1); // Firma del dichiarante
|
||||||
@ -1415,11 +1434,11 @@ long TTrasferimento770::append_quadro(const char* quadro, long codditta, TProgin
|
|||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTrasferimento770::riepiloga_ss(const TRecord770& rec, TArray& riep_ss) const
|
bool TTrasferimento770::riepiloga_ss(const TRecord770& rec, TArray& riep_ss) const
|
||||||
{
|
{
|
||||||
TString8 code;
|
TString8 code;
|
||||||
real val;
|
real val;
|
||||||
for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("AU"))
|
for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("AU") && !val.is_zero())
|
||||||
{
|
{
|
||||||
const TString& key = code.right(3);
|
const TString& key = code.right(3);
|
||||||
const int num = atoi(key);
|
const int num = atoi(key);
|
||||||
@ -1435,13 +1454,14 @@ void TTrasferimento770::riepiloga_ss(const TRecord770& rec, TArray& riep_ss) con
|
|||||||
*r += val;
|
*r += val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return !riep_ss.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TTrasferimento770::riepiloga_sx(const TRecord770& rec, TArray& riep_sx) const
|
bool TTrasferimento770::riepiloga_sx(const TRecord770& rec, TArray& riep_sx) const
|
||||||
{
|
{
|
||||||
TString8 code;
|
TString8 code;
|
||||||
real val;
|
real val;
|
||||||
for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("ST"))
|
for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("ST") && !val.is_zero())
|
||||||
{
|
{
|
||||||
const int rig = atoi(code.mid(2,3));
|
const int rig = atoi(code.mid(2,3));
|
||||||
const int col = atoi(code.mid(5,3));
|
const int col = atoi(code.mid(5,3));
|
||||||
@ -1456,6 +1476,7 @@ void TTrasferimento770::riepiloga_sx(const TRecord770& rec, TArray& riep_sx) con
|
|||||||
*r += val;
|
*r += val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return !riep_sx.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user