Files correlati : ve0.exe ve0300a.ini ve0100a.msk ve0200g.msk ve1300.alx ve1.exe ve17001.rep ve17002.rep ve1700a.msk ve1700a.msk ve2.exe ve6.exe ve61000a.msk ve17001.rep ve17002.rep ve17002.rep ve17001.rep ve1700a.msk ve6b00a.msk MODIFICHE CRPA Se si mette il flag P sulla data documento della maschera di un tipo documento viene proposta l’ultima data inserita. Possibilità di impostare il numero di copie nell’inserimento/modifica di un documento. Righe documento massime 10000 Aggiunta ricerca per riferimento cliente (ricerca alternativa). Aggiunto indirizzo cliente/fornitore sulla ricerca documenti. Lista documenti avanzata (report). Aggiunte le regolarizzazioni nella contabilizzazione documenti Sistema abilitazione della data registrazione in contabilizzazione documenti Aggiunta la possibilità di usare campi del documento nella dicitura del riferimento. Gestiti i movimenti di sola iva in contabilizzazione. Riferimento per mese nelle partite. Ordinamento per documento nell’evasione ordini con un flag in configurazione Impostato il tipo CF in base al tipo documento Aggiunto il messaggio cliente alla stampa report delle vendite git-svn-id: svn://10.65.10.50/branches/R_10_00@24005 c028cbd2-c16b-5b4b-a496-9718f37d4682
138 lines
4.2 KiB
C++
138 lines
4.2 KiB
C++
#include "velib.h"
|
|
#include "ve6700a.h"
|
|
|
|
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <config.h>
|
|
#include <defmask.h>
|
|
#include <execp.h>
|
|
#include <incstr.h>
|
|
#include <golem.h>
|
|
#include <prefix.h>
|
|
|
|
#include <clifo.h>
|
|
#include <doc.h>
|
|
#include <rdoc.h>
|
|
|
|
#include "ve6700a.h"
|
|
#include "velib04.h"
|
|
#include "../mg/mglib.h"
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// Applicazione principale
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TCreazione_regolarizzazione : public TSkeleton_application
|
|
{
|
|
|
|
public:
|
|
bool load();
|
|
virtual void main_loop();
|
|
};
|
|
|
|
bool TCreazione_regolarizzazione::load()
|
|
{
|
|
bool ok = false;
|
|
|
|
if (argc() > 2)
|
|
{
|
|
const TString& arg = argv(2);
|
|
if ((arg[0] != '-' && arg[0] != '/') || (arg[1] != 'i' && arg[1] != 'I'))
|
|
return false;
|
|
|
|
TFilename ini_name(arg.mid(2));
|
|
if (ini_name.blank() && argc() > 3)
|
|
ini_name = argv(3);
|
|
|
|
if (ini_name.exist())
|
|
{
|
|
TConfig ini(ini_name, "33");
|
|
char provv = ini.get_char(DOC_PROVV);
|
|
const int anno = ini.get_int(DOC_ANNO);
|
|
TString16 codnum(ini.get(DOC_CODNUM));
|
|
long numdoc = ini.get_long(DOC_NDOC);
|
|
TDocumento indoc;
|
|
bool ok = numdoc > 0 && indoc.read(provv, anno, codnum, numdoc) == NOERR;
|
|
|
|
if (ok)
|
|
{
|
|
const TElaborazione_esterna ee(ini.get("Action", "Transaction"));
|
|
|
|
provv = 'D';
|
|
codnum = ee.codice_numerazione_finale();
|
|
numdoc = indoc.get_long("NUMDOCREG");
|
|
|
|
TDocumento outdoc;
|
|
const long codcli = indoc.clifor().get_long(CLI_CODCFASS);
|
|
|
|
ok = codcli > 0L;
|
|
if (!ok)
|
|
return message_box("Cliente corrispondente assente");
|
|
if (ok && (numdoc == 0 || outdoc.read(provv, anno, codnum, numdoc) != NOERR))
|
|
{
|
|
outdoc.zero();
|
|
TDocumento::set_key(outdoc, provv, anno, codnum, 0L);
|
|
outdoc.renum_ndoc();
|
|
outdoc.set_tipo(ee.tipo_finale());
|
|
outdoc.stato(ee.stato_finale()[0]);
|
|
outdoc.put(DOC_DATADOC, indoc.get_date(DOC_DATADOC));
|
|
outdoc.put(DOC_TIPOCF, "C");
|
|
outdoc.put(DOC_CODCF, codcli);
|
|
outdoc.cli2doc();
|
|
}
|
|
outdoc.put(DOC_DATADOCRIF, indoc.get_date(DOC_DATADOCRIF));
|
|
outdoc.put(DOC_NUMDOCRIF, indoc.get(DOC_NUMDOCRIF));
|
|
outdoc.destroy_rows();
|
|
TAssoc_array & iva = indoc.tabella_iva(); // no reference
|
|
|
|
// Scorre tutti gli elementi della tabella IVA del documento (elementi per codice iva)
|
|
for (const TRiepilogo_iva* riep = (const TRiepilogo_iva*) iva.first_item();
|
|
riep != NULL; riep = (const TRiepilogo_iva*) iva.succ_item())
|
|
{
|
|
TRiga_documento & row = outdoc.new_row("01");
|
|
|
|
row.put(RDOC_DESCR, "Regolarizzazione");
|
|
row.put(RDOC_QTA, UNO);
|
|
row.put(RDOC_PREZZO, riep->imponibile());
|
|
row.put(RDOC_CODIVA, riep->cod_iva().codice());
|
|
}
|
|
|
|
int err = outdoc.rewrite();
|
|
ok = err == NOERR;
|
|
if (!ok)
|
|
return error_box(FR("Errore %d di riscrittura del documento destinazione"), err);
|
|
// qui outdoc.do_elab();
|
|
err = outdoc.rewrite();
|
|
ok = err == NOERR;
|
|
if (!ok)
|
|
return error_box(FR("Errore %d di riscrittura del documento destinazione"), err);
|
|
|
|
ini.set("Result", "OUTDOC");
|
|
indoc.put("NUMDOCREG", outdoc.numero());
|
|
indoc.stato(ee.stato_finale_doc_iniziale()[0]);
|
|
err = indoc.rewrite();
|
|
ok = err == NOERR;
|
|
if (!ok)
|
|
return error_box(FR("Errore %d di riscrittura del documento sorgente"), err);
|
|
}
|
|
}
|
|
}
|
|
return ok;
|
|
}
|
|
|
|
void TCreazione_regolarizzazione::main_loop()
|
|
{
|
|
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, LF_MOVMAG, NULL);
|
|
open_files(LF_ANAMAG, LF_CLIFO, LF_CFVEN, LF_OCCAS, LF_RMOVMAG, NULL);
|
|
|
|
load();
|
|
}
|
|
|
|
int ve6a00(int argc, char** argv)
|
|
{
|
|
TCreazione_regolarizzazione app;
|
|
|
|
app.run(argc, argv, TR("Generazione regolarizzazione"));
|
|
return 0;
|
|
}
|