Patch level : 12.0 818

Files correlati     : ve0.exe ve5.exe ve6.exe
Commento            :

Nell'impostazione partite
This commit is contained in:
AlexBonazzi 2019-06-07 04:23:13 +02:00
parent 05fc11028e
commit c72a282ac6
2 changed files with 122 additions and 85 deletions

View File

@ -537,6 +537,7 @@ static TBill _co_cliente, // conto clifo per movimento d'anticipo
static bool _numpart_pro; // se true prende il numero rif. partita dal numero protocollo static bool _numpart_pro; // se true prende il numero rif. partita dal numero protocollo
static bool _numpart_mon; // se true prende il numero rif. partita dal mese static bool _numpart_mon; // se true prende il numero rif. partita dal mese
static char _part_type; // tipi di numero partita "D" codcumento, "P" protocollo IVA, "M" Mese static char _part_type; // tipi di numero partita "D" codcumento, "P" protocollo IVA, "M" Mese
static bool _part_acq_ndoc; // numero partita acquisti acquisti numero doc
static bool _sc_enabled; // se true il saldaconto di ditta è abilitato static bool _sc_enabled; // se true il saldaconto di ditta è abilitato
static bool _in_enabled; // se true l'intra è abilitato static bool _in_enabled; // se true l'intra è abilitato
static TToken_string* _search_seq = NULL; static TToken_string* _search_seq = NULL;
@ -858,8 +859,8 @@ bool TContabilizzazione::load_parameters()
_sc_enabled = conf.get_bool("GesSal","cg"); _sc_enabled = conf.get_bool("GesSal","cg");
_in_enabled = dongle().active(INAUT); _in_enabled = dongle().active(INAUT);
_numpart_pro = conf.get_bool("RifPro", "cg"); _numpart_pro = conf.get_bool("RifPro", "cg");
_numpart_mon = conf.get_bool("RifMonth", "cg"); _numpart_mon = conf.get_bool("RifMonth", "cg");
_part_type = 'D'; _part_type = 'D';
if (_numpart_pro) _part_type = 'P'; if (_numpart_pro) _part_type = 'P';
else else
if (_numpart_mon) _part_type = 'M'; if (_numpart_mon) _part_type = 'M';
@ -2701,44 +2702,56 @@ error_type TContabilizzazione::write_scadenze(TDocumento& doc, bool recontabiliz
// int anno = head.get_int(MOV_ANNOIVA); // int anno = head.get_int(MOV_ANNOIVA);
int anno = 0; int anno = 0;
TString8 numpart; // Max. 7 chars TString8 numpart; // Max. 7 chars
const TString4 tipocf = doc.get(DOC_TIPOCF);
if (doc.get(DOC_TIPOCF) == "F" || is_nc) if (tipocf == "F" || is_nc)
{ {
anno = doc.get_int(DOC_ANNORIF); anno = doc.get_int(DOC_ANNORIF);
numpart = doc.get(DOC_NUMDOCRIF); numpart = doc.get(DOC_NUMDOCRIF);
if (numpart.full()) if (numpart.full())
{ {
TString4 codnum = doc.get(DOC_CODNUMRIF); TString4 codnum = doc.get(DOC_CODNUMRIF);
TToken_string keydoc; TToken_string keydoc;
if (codnum.blank()) if (codnum.blank())
codnum = doc.get(DOC_CODNUM); codnum = doc.get(DOC_CODNUM);
if (anno <= 0) if (anno <= 0)
{ {
const TDate ddr = doc.get_date(DOC_DATADOCRIF); const TDate ddr = doc.get_date(DOC_DATADOCRIF);
anno = ddr.year(); anno = ddr.year();
} }
keydoc.add(doc.get(DOC_PROVV)); keydoc.add(doc.get(DOC_PROVV));
keydoc.add(anno); keydoc.add(anno);
keydoc.add(codnum); keydoc.add(codnum);
keydoc.add(numpart); keydoc.add(numpart);
const long numreg = atol(cache().get(LF_DOC, keydoc, DOC_NUMREG)); const TRectype & docrif = cache().get(LF_DOC, keydoc);
const TString4 & tipocfrif = docrif.get(DOC_TIPOCF);
if (numreg > 0) if (tipocf == tipocfrif)
{ {
TPartite_array pa; pa.add_numreg(numreg); const long codcf = docrif.get_long(DOC_CODCF);
const TPartita* game = pa.first();
if (codcf == doc.get_long(DOC_CODCF))
if (game != NULL) {
{ const long numreg = docrif.get_long( DOC_NUMREG);
anno = game->anno();
numpart = game->numero(); if (numreg > 0)
} {
} TPartite_array pa; pa.add_numreg(numreg);
} const TPartita* game = pa.first();
if (game != NULL)
{
anno = game->anno();
numpart = game->numero();
}
}
}
}
}
} }
if (anno <= 0 || numpart.blank()) if (anno <= 0 || numpart.blank())
{ {

View File

@ -518,42 +518,55 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array, bool interatti
if (numpart_mon) if (numpart_mon)
part_type = 'M'; part_type = 'M';
if (doc.get(DOC_TIPOCF) == "F" || is_nota_credito) const TString4 tipocf = doc.get(DOC_TIPOCF);
if (tipocf == "F" || is_nota_credito)
{ {
anno = doc.get_int(DOC_ANNORIF); anno = doc.get_int(DOC_ANNORIF);
numpart = doc.get(DOC_NUMDOCRIF); // Max. 7 chars numpart = doc.get(DOC_NUMDOCRIF); // Max. 7 chars
if (numpart.full()) if (numpart.full())
{ {
TString4 codnum = doc.get(DOC_CODNUMRIF); TString4 codnum = doc.get(DOC_CODNUMRIF);
TToken_string keydoc; TToken_string keydoc;
if (codnum.blank()) if (codnum.blank())
codnum = doc.get(DOC_CODNUM); codnum = doc.get(DOC_CODNUM);
if (anno <= 0) if (anno <= 0)
{
const TDate ddr = doc.get_date(DOC_DATADOCRIF);
anno = ddr.year();
}
keydoc.add(doc.get(DOC_PROVV));
keydoc.add(anno);
keydoc.add(codnum);
keydoc.add(numpart);
const long numreg = atol(cache().get(LF_DOC, keydoc, DOC_NUMREG));
if (numreg > 0)
{
TPartite_array pa; pa.add_numreg(numreg);
const TPartita* game = pa.first();
if (game != NULL)
{ {
anno = game->anno(); const TDate ddr = doc.get_date(DOC_DATADOCRIF);
numpart = game->numero();
anno = ddr.year();
} }
} keydoc.add(doc.get(DOC_PROVV));
keydoc.add(anno);
keydoc.add(codnum);
keydoc.add(numpart);
const TRectype & docrif = cache().get(LF_DOC, keydoc);
const char tipocfrif = docrif.get_char(DOC_TIPOCF);
if (tipocf == tipocfrif)
{
const long codcf = docrif.get_long(DOC_CODCF);
if (codcf == doc.get_long(DOC_CODCF))
{
const long numreg = docrif.get_long(DOC_NUMREG);
if (numreg > 0)
{
TPartite_array pa; pa.add_numreg(numreg);
const TPartita* game = pa.first();
if (game != NULL)
{
anno = game->anno();
numpart = game->numero();
}
}
}
}
} }
} }
if (anno <= 0 || numpart.blank()) if (anno <= 0 || numpart.blank())
@ -801,42 +814,53 @@ void TGenerazione_effetti::generate_bill(TDocumento& doc, bool interattivo) // b
if (numpart_mon) if (numpart_mon)
part_type = 'M'; part_type = 'M';
if (doc.get(DOC_TIPOCF) == "F" || is_nota_credito) if (tipocf == 'F' || is_nota_credito)
{ {
anno = doc.get_int(DOC_ANNORIF); anno = doc.get_int(DOC_ANNORIF);
numpart = doc.get(DOC_NUMDOCRIF); // Max. 7 chars numpart = doc.get(DOC_NUMDOCRIF); // Max. 7 chars
if (numpart.full()) if (numpart.full())
{ {
TString4 codnum = doc.get(DOC_CODNUMRIF); TString4 codnum = doc.get(DOC_CODNUMRIF);
TToken_string keydoc; TToken_string keydoc;
if (codnum.blank()) if (codnum.blank())
codnum = doc.get(DOC_CODNUM); codnum = doc.get(DOC_CODNUM);
if (anno <= 0) if (anno <= 0)
{
const TDate ddr = doc.get_date(DOC_DATADOCRIF);
anno = ddr.year();
}
keydoc.add(doc.get(DOC_PROVV));
keydoc.add(anno);
keydoc.add(codnum);
keydoc.add(numpart);
const long numreg = atol(cache().get(LF_DOC, keydoc, DOC_NUMREG));
if (numreg > 0)
{
TPartite_array pa; pa.add_numreg(numreg);
const TPartita* game = pa.first();
if (game != NULL)
{ {
anno = game->anno(); const TDate ddr = doc.get_date(DOC_DATADOCRIF);
numpart = game->numero();
anno = ddr.year();
} }
} keydoc.add(doc.get(DOC_PROVV));
keydoc.add(anno);
keydoc.add(codnum);
keydoc.add(numpart);
const TRectype & docrif = cache().get(LF_DOC, keydoc);
const char tipocfrif = docrif.get_char(DOC_TIPOCF);
if (tipocf == tipocfrif)
{
const long codcf = docrif.get_long(DOC_CODCF);
if (codcf == doc.get_long(DOC_CODCF))
{
const long numreg = docrif.get_long(DOC_NUMREG);
if (numreg > 0)
{
TPartite_array pa; pa.add_numreg(numreg);
const TPartita* game = pa.first();
if (game != NULL)
{
anno = game->anno();
numpart = game->numero();
}
}
}
}
} }
} }
if (anno <= 0 || numpart.blank()) if (anno <= 0 || numpart.blank())