Patch level : 12.0 no-patch

Files correlati     : build
Commento            : project
This commit is contained in:
Simone Palacino 2020-09-09 09:28:25 +02:00
parent 8ad46f57f8
commit db9ad958d3
3 changed files with 267 additions and 0 deletions

88
src/ve/ve5700.cpp Normal file
View File

@ -0,0 +1,88 @@
#include "ve5.h"
#include "applicat.h"
#include "mask.h"
#include "progind.h"
#include "lffiles.h"
#include "isam.h"
#include "doc.h"
#include "velib.h"
#include "ve5700.h"
class TDoctype_mask : public TMask
{
public:
TDoctype_mask() : TMask("ve5700") { }
};
class TFPDoctype_change : public TSkeleton_application
{
protected:
void main_loop() override;
bool create() override;
};
void TFPDoctype_change::main_loop()
{
TDoctype_mask m;
while (m.run() == K_ENTER)
{
TRelation rel(LF_DOC);
m.autosave(rel);
TRectype recini(rel.curr());
TRectype recfin(rel.curr());
recini.put(DOC_NDOC, m.get(F_DANUMERO));
recfin.put(DOC_NDOC, m.get(F_ANUMERO));
TString filter;
filter << DOC_TIPODOCSDI << "==\"" << m.get(F_INIZIALE) << "\"";
TCursor cur(&rel, filter, 1, &recini, &recfin);
const long total = cur.items();
if (total > 0)
{
TString msg = TR("Confermare l'aggiornamento di ");
msg.add_plural(total, TR("documento"));
if (yesno_box(msg))
{
TProgress_monitor pi(total, title());
const TString& finale = m.get(F_FINALE);
TDocumento* doc = new TDocumento;
rel.lfile().set_curr(doc);
cur.freeze();
for (cur = 0; cur.pos() < total; ++cur)
{
if (!pi.add_status())
break;
doc->put(DOC_TIPODOCSDI, finale);
int err = doc->rewrite();
}
// Forza l'aggiornamento dell'indice del cursore
TEdit_field& ef = m.efield(F_DANUMERO);
TCursor* cur = ef.browse()->cursor();
filter = cur->filter();
cur->setfilter("");
cur->setfilter(filter);
}
}
}
}
bool TFPDoctype_change::create()
{
open_files(LF_TABCOM, LF_TAB, LF_CLIFO, LF_OCCAS, LF_INDSP, LF_CFVEN, LF_DOC, LF_RIGHEDOC,
LF_ANAMAG, LF_MOVMAG, LF_RMOVMAG, LF_CONDV, LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_CESS,
LF_CAUSALI, LF_RCAUSALI, 0);
return TSkeleton_application::create();
}
int ve5700(int argc, char* argv[])
{
TFPDoctype_change a;
a.run(argc, argv, "Aggiornamento tipo documento SDI (TD--)");
return 0;
}

12
src/ve/ve5700.h Normal file
View File

@ -0,0 +1,12 @@
#define F_PROVVIS 101
#define F_ANNO 102
#define F_CODNUM 103
#define F_DESNUM 104
#define F_INIZIALE 105
#define F_DESCINI 106
#define F_FINALE 107
#define F_DESCFIN 108
#define F_DANUMERO 109
#define F_ANUMERO 110
#define F_DACLIFO 111
#define F_ACLIFO 112

167
src/ve/ve5700.uml Normal file
View File

@ -0,0 +1,167 @@
#include <doc.h>
#include "ve5700.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Cambiamento Tipo Doc SDI" 0 0 0 0
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 1 "Numerazione"
END
RADIOBUTTON F_PROVVIS 35
BEGIN
PROMPT 1 1 ""
ITEM "D|Definitiva"
ITEM "P|Provvisoria"
FLAGS "Z"
FIELD PROVV
END
NUMBER F_ANNO 4
BEGIN
PROMPT 59 2 "Anno "
FLAGS "AU"
CHECKTYPE REQUIRED
FIELD ANNO
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 3 "Codice "
USE %NUM
FLAGS "U"
INPUT CODTAB F_CODNUM
DISPLAY "Codice Num." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE REQUIRED
FIELD CODNUM
END
STRING F_DESNUM 50
BEGIN
PROMPT 16 3 ""
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice Num." CODTAB
COPY OUTPUT F_CODNUM
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 5 "Tipo Doc SDI"
END
LIST F_INIZIALE 4 40
BEGIN
PROMPT 2 6 "Iniziale"
ITEM "|"
ITEM "TD01|TD01 Fattura"
ITEM "TD02|TD02 Acconto/Anticipo su fattura"
ITEM "TD03|TD03 Acconto/Anticipo su parcella"
ITEM "TD04|TD04 Nota di credito"
ITEM "TD05|TD05 Nota di debito"
ITEM "TD06|TD06 Parcella"
ITEM "TD16|TD16 Integraz. fatt. rev.ch. interno"
ITEM "TD17|TD17 Integ./autof. acq. servizi estero"
ITEM "TD18|TD18 Integ. acq. beni intracomunitari"
ITEM "TD19|TD19 Integ./autof. acq. beni ex art. 17"
ITEM "TD20|TD20 Autofattura"
ITEM "TD21|TD21 Autofattura per splafonamento"
ITEM "TD22|TD22 Estrazione beni da Deposito IVA"
ITEM "TD23|TD23 Estr. beni Deposito IVA vers. IVA"
ITEM "TD24|TD24 Fatt. differita art.21 c.4 lett. a"
ITEM "TD25|TD25 Fatt. differita art. 21 c.4 per.3 b"
ITEM "TD26|TD26 Cess. beni ammort./passaggi interni"
ITEM "TD27|TD27 Fatt. autoconsumo/cessioni gratuite"
END
LIST F_FINALE 4 40
BEGIN
PROMPT 2 7 "Finale "
ITEM "|"
ITEM "TD01|TD01 Fattura"
ITEM "TD02|TD02 Acconto/Anticipo su fattura"
ITEM "TD03|TD03 Acconto/Anticipo su parcella"
ITEM "TD04|TD04 Nota di credito"
ITEM "TD05|TD05 Nota di debito"
ITEM "TD06|TD06 Parcella"
ITEM "TD16|TD16 Integraz. fatt. rev.ch. interno"
ITEM "TD17|TD17 Integ./autof. acq. servizi estero"
ITEM "TD18|TD18 Integ. acq. beni intracomunitari"
ITEM "TD19|TD19 Integ./autof. acq. beni ex art. 17"
ITEM "TD20|TD20 Autofattura"
ITEM "TD21|TD21 Autofattura per splafonamento"
ITEM "TD22|TD22 Estrazione beni da Deposito IVA"
ITEM "TD23|TD23 Estr. beni Deposito IVA vers. IVA"
ITEM "TD24|TD24 Fatt. differita art.21 c.4 lett. a"
ITEM "TD25|TD25 Fatt. differita art. 21 c.4 per.3 b"
ITEM "TD26|TD26 Cess. beni ammort./passaggi interni"
ITEM "TD27|TD27 Fatt. autoconsumo/cessioni gratuite"
END
GROUPBOX DLG_NULL 70 4
BEGIN
PROMPT 1 9 "Intervallo"
END
NUMBER F_DANUMERO 7
BEGIN
PROMPT 2 10 "Da "
USE LF_DOC SELECT TIPODOCSDI==#F_INIZIALE
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT PROVV F_PROVVIS SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_DANUMERO
DISPLAY "Provv" PROVV
DISPLAY "Anno" ANNO
DISPLAY "Num." CODNUM
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Data Doc. " DATADOC
DISPLAY "Stato" STATO
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT F_DANUMERO NDOC
CHECKTYPE SEARCH
FLAGS "U"
END
STRING F_DACLIFO 50 52
BEGIN
PROMPT 16 10 ""
FLAGS "D"
END
NUMBER F_ANUMERO 7
BEGIN
PROMPT 2 11 "A "
COPY USE F_DANUMERO
INPUT ANNO F_ANNO SELECT
INPUT PROVV F_PROVVIS SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_ANUMERO
COPY DISPLAY F_DANUMERO
OUTPUT F_ANUMERO NDOC
CHECKTYPE SEARCH
NUM_EXPR (#F_ANUMERO==0)||(#F_ANUMERO>=#F_DANUMERO)
WARNING "Il numero finale deve essere maggiore di quello iniziale"
END
STRING F_ACLIFO 50 52
BEGIN
PROMPT 16 11 ""
FLAGS "D"
END
ENDPAGE
ENDMASK