Patch level : 12.0 1016

Files correlati     : cg2.ex cg2100c.msk ca2.exe ve0.exe ve6.exe
Commento            :

Aggiunto il campo contabilità separata nei movimenti di analitica.
Sostituite le destroy degli sheet con reset_sheet.

Interno:

La prima nota passa il codice ai movimenti analitici
La contabilizzazione analitica delle fatture lo passa.
La gestione dei movimenti analitici lo edita.
This commit is contained in:
Alessandro Bonazzi 2020-12-02 01:01:00 +01:00
parent e1aa73496c
commit e9e5ddc02e
6 changed files with 18 additions and 18 deletions

View File

@ -406,7 +406,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
if (ins && !ci_sono_importi(cgsheet))
{
cgsheet.reset();
cgsheet.reset_sheet();
for (int i = 1; i < causale().size(); i++)
{
const TRectype* rcaus = (TRectype*)causale().objptr(i);
@ -999,7 +999,7 @@ void TPrimanota_application::init_insert_mode(TMask& m)
void TPrimanota_application::f1_init_modify(TMask& m, const TRectype& mov)
{
const bool after_data_inizio_fe = TDate(mov.get(MOV_DATADOC)) >= TDate(fp_settings().get_data_start_fatt());
const bool after_data_inizio_fe = mov.get_date(MOV_DATADOC) >= get_data_start_fatt();
if (m.find_by_id(F_COLFPPRO) != nullptr && after_data_inizio_fe)
m.set(F_COLFPPRO, mov.get(MOV_KEYFPPRO).empty() ? " " : "X");
@ -1223,7 +1223,7 @@ int TPrimanota_application::read(TMask& m)
if (_iva == nessuna_iva && is_fattura()) // Ci dovrebbero essere delle scadenze
{
pags().reset(); // Azzera sheet rate
pags().reset_sheet(); // Azzera sheet rate
if (!read_scadenze(m)) // Se non esiste fattura
{
const TString& dd = m.get(F_DATADOC);
@ -1285,7 +1285,7 @@ int TPrimanota_application::read(TMask& m)
ivas().update_original_rows();
if (is_fattura()) // Ci dovrebbero essere delle scadenze
{
pags().reset(); // Azzera sheet rate
pags().reset_sheet(); // Azzera sheet rate
if (!read_scadenze(m)) // Se non esiste fattura
{
const TString& dd = m.get(F_DATADOC);
@ -1565,6 +1565,7 @@ int TPrimanota_application::controlli_f1(const TMask& m)
const TDate dataoraric = fppro_db().set_keys(keys).get_dataorarioric();
// Devo controllare che la data operazione sia maggiore della data ric
const TDate data_operazione(m.get(F_DATAREG));
if (data_operazione < dataoraric)
return pro_dataric_err;
const int numreg = fppro_db().set_keys(keys).get_numregcont();
@ -3037,18 +3038,14 @@ bool TPrimanota_application::link_anal(const TMask& msk, const char* action)
// Parentesi strategiche per salvare il config
{
TConfig config(ini, "Transaction");
config.set("Action", action);
/* Attualmente genera solo problemi al Cigno che ha CI e CM ma non ha CA
if (has_module(CIAUT) && !has_module(CAAUT))
config.set("Mode", "A"); // Salva automaticamente i movimenti di sola industriale
*/
TString4 para; para << LF_MOVANA;
config.set("Action", action);
config.set_paragraph(para);
config.remove_all();
config.set(MOVANA_NUMREG, nExist);
config.set(MOVANA_NUMREGCG, msk.get(F_NUMREG));
config.set(MOVANA_CONTSEP, msk.get(NP_CONTSEP));
}
TString cmd; cmd << "ca2 -0 /i" << ini;

View File

@ -667,6 +667,7 @@ BEGIN
OUTPUT NP_DESCONTSEP S0
CHECKTYPE NORMAL
FIELD CONTSEP
MODULE NP
END
STRING NP_DESCONTSEP 50
@ -678,6 +679,7 @@ BEGIN
DISPLAY "Codice@6" CODTAB
COPY OUTPUT NP_CONTSEP
CHECKTYPE NORMAL
MODULE NP
END
#ifdef PRORATA100

View File

@ -2226,7 +2226,7 @@ bool TPrimanota_application::caus_query_handler(TMask_field& f, KEY key)
void TPrimanota_application::check_fppro_fields(TMask& m)
{
const bool after_data = TDate(m.get(F_DATAREG)) >= TDate(fp_settings().get_data_start_fatt());
const bool after_data = m.get_date(F_DATAREG) >= get_data_start_fatt();
if (!check_causale(m.get(F_CODCAUS)) || !app().has_module(FPAUT) || !after_data)
{
@ -2998,7 +2998,6 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
return true;
}
bool TPrimanota_application::IVA2bill(const TCodiceIVA& iva, TBill& bill)
{
const TCausale& cau = causale();
@ -3749,7 +3748,7 @@ bool TPrimanota_application::solaiva_handler(TMask_field& f, KEY key)
TProgind pi(righe, TR("Generazione righe contabilità"), false, true);
TSheet_field& cg = a.cgs();
cg.reset();
cg.reset_sheet();
a.add_cgs_tot(m); // Genera totale documento
if (!m.empty(F_RITFIS))
a.add_cgs_ritenute(cgrowtype_ritfis); // Genera ritenute fiscali

View File

@ -389,9 +389,10 @@ bool TPrimanota_application::numrif_handler(TMask_field& f, KEY key)
const bool moviva = a.iva() != nessuna_iva; // Maschera IVA?
bool required = m.insert_mode() && a.is_fattura();
required &= key == K_ENTER || f.focusdirty();
required &= key == K_ENTER || f.focusdirty();
if (moviva)
required &= !(m.get_bool(F_SOLAIVA) || m.field(F_OCCASEDIT).active());
required &= !(m.get_bool(F_SOLAIVA) || m.field(F_OCCASEDIT).active());
if (required && f.get().blank())
{

View File

@ -903,7 +903,8 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k)
gm._riga_partite = r;
TSheet_field& sheet = gm.scadenze();
sheet.destroy(-1, FALSE); // Azzera righe
sheet.reset(); // Azzera righe
TToken_string& row = partite.row(r);
const int anno = row.get_int(0); // Anno partita

View File

@ -1037,7 +1037,7 @@ void TEasySolder_mask::fill_sheet()
{
TSheet_field& s = sfield(G_SHEET);
s.destroy();
s.reset();
const TString& codval = get(G_VALUTA);
const real cambio = get(G_CAMBIO);