Patch level : 12.0 728
Files correlati : fp Commento : - Aggiunto programma fp1 con stampa elenco bolli in fattura - Data una ripulita al menu fp
This commit is contained in:
parent
bb3077cd24
commit
18f4c6985c
10
build/fp.sln
10
build/fp.sln
@ -15,6 +15,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgaLib", "AgaLib.vcxproj",
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tflib", "tflib.vcxproj", "{7BF6939E-DFCD-49ED-B0A8-EDB68DDCE6D5}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fp1", "fp1.vcxproj", "{A539BCC1-D08F-4D78-A8EA-65560F4A60CD}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C575788B-0BE4-4F68-B9C9-3C204EC04E07} = {C575788B-0BE4-4F68-B9C9-3C204EC04E07}
|
||||
{7BF6939E-DFCD-49ED-B0A8-EDB68DDCE6D5} = {7BF6939E-DFCD-49ED-B0A8-EDB68DDCE6D5}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
@ -37,6 +43,10 @@ Global
|
||||
{7BF6939E-DFCD-49ED-B0A8-EDB68DDCE6D5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{7BF6939E-DFCD-49ED-B0A8-EDB68DDCE6D5}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{7BF6939E-DFCD-49ED-B0A8-EDB68DDCE6D5}.Release|Win32.Build.0 = Release|Win32
|
||||
{A539BCC1-D08F-4D78-A8EA-65560F4A60CD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A539BCC1-D08F-4D78-A8EA-65560F4A60CD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A539BCC1-D08F-4D78-A8EA-65560F4A60CD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A539BCC1-D08F-4D78-A8EA-65560F4A60CD}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -196,6 +196,7 @@
|
||||
<ClCompile Include="..\src\fp\fp0400.cpp" />
|
||||
<ClCompile Include="..\src\fp\fp0500.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -173,7 +173,9 @@
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\fp\fplib01.cpp" />
|
||||
<ClCompile Include="..\src\fp\fplib02.cpp" />
|
||||
<ClCompile Include="..\src\fp\fplib03.cpp" />
|
||||
<ClCompile Include="..\src\fp\fplib03.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef __TF0_H
|
||||
#define __TF0_H
|
||||
#ifndef __FP0_H
|
||||
#define __FP0_H
|
||||
|
||||
int fp0100(int argc, char* argv[]);
|
||||
int fp0200(int argc, char* argv[]);
|
||||
|
16
src/fp/fp1.cpp
Normal file
16
src/fp/fp1.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
#include <xvt.h>
|
||||
#include "fp1.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int rt = -1;
|
||||
const int r = (argc > 1) ? atoi( &argv[1][1] ) : 1;
|
||||
|
||||
// Stampe fatturazione elettronica
|
||||
switch (r)
|
||||
{
|
||||
default: rt = fp1100(argc, argv); break; // Stampa bolli fatture
|
||||
}
|
||||
return rt;
|
||||
}
|
||||
|
6
src/fp/fp1.h
Normal file
6
src/fp/fp1.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef __FP1_H
|
||||
#define __FP1_H
|
||||
|
||||
int fp1100(int argc, char* argv[]);
|
||||
|
||||
#endif
|
178
src/fp/fp1100.cpp
Normal file
178
src/fp/fp1100.cpp
Normal file
@ -0,0 +1,178 @@
|
||||
#include <confapp.h>
|
||||
#include <automask.h>
|
||||
#include <sheet.h>
|
||||
#include <utility.h>
|
||||
#include <urldefid.h> // ID Bottoni
|
||||
|
||||
#include "fp1.h"
|
||||
#include "fp1100a.h"
|
||||
#include <tsdb.h>
|
||||
#include "recset.h"
|
||||
#include "progind.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "fplib.h"
|
||||
|
||||
class TBolliinfatt_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
void fill();
|
||||
public:
|
||||
TBolliinfatt_mask() : TAutomask("fp1100a"){};
|
||||
};
|
||||
|
||||
bool TBolliinfatt_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
case DLG_EXPORT:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TSheet_field& sf = sfield(F_DOCS);
|
||||
if(sf.items() > 0)
|
||||
{
|
||||
sf.esporta();
|
||||
}
|
||||
else
|
||||
{
|
||||
warning_box("Impossibile esportare una tabella vuota!");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DLG_RECALC:
|
||||
if (e == fe_button)
|
||||
fill();
|
||||
case DLG_USER:
|
||||
if (e == fe_button && jolly > 0)
|
||||
{
|
||||
TSheet_field& docs = sfield(F_DOCS);
|
||||
TToken_string& row = docs.row(docs.selected());
|
||||
TRectype doc(LF_DOC);
|
||||
doc.put(DOC_PROVV, 'D');
|
||||
doc.put(DOC_ANNO, row.get(1));
|
||||
doc.put(DOC_CODNUM, row.get(2));
|
||||
doc.put(DOC_TIPODOC, row.get(3));
|
||||
doc.put(DOC_NDOC, row.get(5));
|
||||
if (doc.edit())
|
||||
fill();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void TBolliinfatt_mask::fill()
|
||||
{
|
||||
TSheet_field& docs = sfield(F_DOCS);
|
||||
TString_array& sht = docs.rows_array();
|
||||
docs.hide();
|
||||
|
||||
sht.destroy();
|
||||
|
||||
TDate dal = get_date(F_DADATA);
|
||||
TDate al = get_date(F_ADATA);
|
||||
|
||||
if(!dal.ok())
|
||||
{
|
||||
dal = TDate(01, 01, 2019);
|
||||
set(F_DADATA, dal);
|
||||
}
|
||||
|
||||
if(!al.ok())
|
||||
{
|
||||
al = TDate(TODAY);
|
||||
set(F_ADATA, al);
|
||||
}
|
||||
|
||||
// Record di controllo per eventuali elaborazioni precedenti
|
||||
TString hfatt, bfatt;
|
||||
|
||||
TString query;
|
||||
|
||||
query << "USE 33 KEY 3 \n" <<
|
||||
"SELECT 33.TIPOCF==\"C\"" <<
|
||||
TISAM_recordset::add_between_filter(DOC_CODNUM, get(F_DACODNUM), get(F_ACODNUM)) <<
|
||||
" \n" <<
|
||||
"JOIN 20 INTO TIPOCF==TIPOCF CODCF==CODCF \n" <<
|
||||
"JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF \n" <<
|
||||
"JOIN %TIP TO 33 ALIAS 400 INTO CODTAB==TIPODOC \n" <<
|
||||
"FROM DATADOC=#DADATADOC \n" <<
|
||||
"TO DATADOC=#ADATADOC";
|
||||
|
||||
TISAM_recordset rec(query);
|
||||
|
||||
rec.set_var("#DADATADOC", dal);
|
||||
rec.set_var("#ADATADOC", al);
|
||||
rec.set_var("#DACODNUM", get(F_DACODNUM));
|
||||
rec.set_var("#ACODNUM", get(F_ACODNUM));
|
||||
|
||||
TProgress_monitor pi(rec.items(), nullptr);
|
||||
|
||||
for (bool okc = rec.move_first(); okc; okc = rec.move_next())
|
||||
{
|
||||
if (!pi.add_status())
|
||||
break;
|
||||
const TRectype& doc = rec.cursor()->curr();
|
||||
const TTipo_documento& td = cached_tipodoc(doc.get(DOC_TIPODOC));
|
||||
|
||||
bool sent = false;
|
||||
if (chiave_paf(doc, hfatt, bfatt))
|
||||
{
|
||||
TString qry_paf7 = "SELECT PAF0700F.P7_IMPORTOBOLLO, PAF0100F.P1_GESTIONE FROM PAF0700F JOIN PAF0100F ON P7_KEYPRGINVIO = P1_KEYPRGINVIO AND P7_KEYHEADERFATT = P1_KEYHEADERFATT AND P7_KEYBODYFATT = P1_KEYBODYFATT WHERE P7_KEYHEADERFATT = '";
|
||||
qry_paf7 << hfatt << "' AND P7_KEYBODYFATT = '" << bfatt << "' AND P7_IMPORTOBOLLO > 0";
|
||||
if (!fp_db().sq_set_exec(qry_paf7) || (fp_db().sq_get("P1_GESTIONE") != "N" && (fp_settings().is_f8() ? fp_db().sq_get("P1_GESTIONE") != "X" : true)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
TToken_string& row = docs.row(-1);
|
||||
row.add(rec.get(DOC_ANNO).as_int());
|
||||
row.add(rec.get(DOC_CODNUM).as_string());
|
||||
row.add(rec.get(DOC_TIPODOC).as_string());
|
||||
if (!rec.get(DOC_TIPODOCSDI).is_empty())
|
||||
row.add(rec.get(DOC_TIPODOCSDI).as_string());
|
||||
else
|
||||
row.add(td.tipo_doc_sdi());
|
||||
row.add(rec.get(DOC_NDOC).as_int());
|
||||
row.add(rec.get(DOC_DATADOC).as_date());
|
||||
row.add(rec.get("33.TOTDOC").as_real());
|
||||
row.add(rec.get("33.IMPOSTE").as_real());
|
||||
row.add(rec.get(CFV_CODCF).as_int());
|
||||
row.add(rec.get("20." CLI_RAGSOC).as_string());
|
||||
row.add(fp_db().sq_get("P7_IMPORTOBOLLO"));
|
||||
row.add(rec.get(DOC_ADDBOLLI).as_string());
|
||||
}
|
||||
|
||||
if(docs.items() == 0)
|
||||
{
|
||||
warning_box("Non sono stati trovati documenti con i filtri scelti.");
|
||||
}
|
||||
|
||||
docs.force_update();
|
||||
docs.show();
|
||||
}
|
||||
|
||||
class TBolliinfatt_app : public TSkeleton_application
|
||||
{
|
||||
public:
|
||||
virtual void main_loop() override;
|
||||
};
|
||||
|
||||
void TBolliinfatt_app::main_loop()
|
||||
{
|
||||
TBolliinfatt_mask pm;
|
||||
while (pm.run() == K_ENTER)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
int fp1100(int argc, char* argv[])
|
||||
{
|
||||
TBolliinfatt_app appc;
|
||||
appc.run(argc, argv, TR("Bolli in fattura FP"));
|
||||
return 0;
|
||||
}
|
20
src/fp/fp1100a.h
Normal file
20
src/fp/fp1100a.h
Normal file
@ -0,0 +1,20 @@
|
||||
#define F_DADATA 201
|
||||
#define F_ADATA 202
|
||||
#define F_DACODNUM 203
|
||||
#define F_DATIPODOC 204
|
||||
#define F_ACODNUM 205
|
||||
#define F_ATIPODOC 206
|
||||
#define F_DOCS 207
|
||||
|
||||
#define S_ANNO 101
|
||||
#define S_CODNUM 102
|
||||
#define S_TIPODOC 103
|
||||
#define S_CODSDI 104
|
||||
#define S_NDOC 105
|
||||
#define S_DATADOC 106
|
||||
#define S_TOTDOC 107
|
||||
#define S_IMPOSTADOC 108
|
||||
#define S_CLIENTE 109
|
||||
#define S_RAGSOC 110
|
||||
#define S_BOLLO 111
|
||||
#define S_ADDEBITO 112
|
172
src/fp/fp1100a.uml
Normal file
172
src/fp/fp1100a.uml
Normal file
@ -0,0 +1,172 @@
|
||||
#include "fp1100a.h"
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_RECALC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Carica"
|
||||
PICTURE TOOL_CONVERT
|
||||
END
|
||||
|
||||
BUTTON DLG_EXPORT 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Excel"
|
||||
PICTURE TOOL_EXCEL
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Filtri" 0 2 0 0
|
||||
|
||||
DATE F_DADATA
|
||||
BEGIN
|
||||
PROMPT 1 1 "Data iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
DATE F_ADATA
|
||||
BEGIN
|
||||
PROMPT 50 1 "Data finale "
|
||||
VALIDATE DATE_CMP_FUNC >= F_DADATA
|
||||
WARNING "La data finale non può essere minore della data iniziale"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DACODNUM 4
|
||||
BEGIN
|
||||
PROMPT 1 2 "Da numerazione "
|
||||
HELP "Da codice numerazione"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_DACODNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_DACODNUM CODTAB
|
||||
FLAG "UPA"
|
||||
CHECKTYPE FORCED
|
||||
WARNING "Numerazione assente"
|
||||
KEY 1 2
|
||||
END
|
||||
|
||||
STRING F_ACODNUM 4
|
||||
BEGIN
|
||||
PROMPT 50 2 "A numerazione "
|
||||
HELP "Da codice numerazione"
|
||||
USE %NUM
|
||||
INPUT CODTAB F_ACODNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_ACODNUM CODTAB
|
||||
FLAG "UPA"
|
||||
CHECKTYPE FORCED
|
||||
WARNING "Numerazione assente"
|
||||
KEY 1 2
|
||||
END
|
||||
|
||||
SPREADSHEET F_DOCS
|
||||
BEGIN
|
||||
PROMPT 0 5 ""
|
||||
ITEM "Anno"
|
||||
ITEM "Cod.\nNum.@4"
|
||||
ITEM "Tipo\nDoc@4"
|
||||
ITEM "Tipo SDI@4"
|
||||
ITEM "Num.\nDoc.@7"
|
||||
ITEM "Data\nDoc.@10"
|
||||
ITEM "Totale\nDoc.@10"
|
||||
ITEM "Imposta\nDoc.@10"
|
||||
ITEM "Cliente"
|
||||
ITEM "Ragione Sociale@50"
|
||||
ITEM "Bollo"
|
||||
ITEM "Addebito"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
||||
|
||||
PAGE "Documento" -1 -1 80 6
|
||||
|
||||
NUMBER S_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "Anno "
|
||||
END
|
||||
|
||||
STRING S_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 25 1 "Numerazione "
|
||||
END
|
||||
|
||||
STRING S_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 46 1 "Tipo Documento "
|
||||
END
|
||||
|
||||
STRING S_CODSDI 4
|
||||
BEGIN
|
||||
PROMPT 1 2 "Tipo Doc SDI"
|
||||
END
|
||||
|
||||
NUMBER S_NDOC 7
|
||||
BEGIN
|
||||
PROMPT 25 2 "Numero "
|
||||
END
|
||||
|
||||
DATE S_DATADOC
|
||||
BEGIN
|
||||
PROMPT 46 2 "Data "
|
||||
END
|
||||
|
||||
NUMBER S_TOTDOC 15 2
|
||||
BEGIN
|
||||
PROMPT 1 3 "Totale Doc. "
|
||||
END
|
||||
|
||||
NUMBER S_IMPOSTADOC 15 2
|
||||
BEGIN
|
||||
PROMPT 46 3 "Imposta "
|
||||
END
|
||||
|
||||
NUMBER S_CLIENTE 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "Cliente "
|
||||
END
|
||||
|
||||
STRING S_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 25 4 ""
|
||||
END
|
||||
|
||||
NUMBER S_BOLLO 4 2
|
||||
BEGIN
|
||||
PROMPT 1 5 "Importo bollo"
|
||||
END
|
||||
|
||||
BOOLEAN S_ADDEBITO
|
||||
BEGIN
|
||||
PROMPT 20 5 "Addebito cliente"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "Documento" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_USER 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Collega"
|
||||
PICTURE TOOL_LINK
|
||||
END
|
||||
|
||||
|
||||
BUTTON DLG_CANCEL 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -3,8 +3,24 @@ Caption = "Trasferimento Fatture"
|
||||
Picture = <cg01>
|
||||
Module = fp
|
||||
Flags = ""
|
||||
Item_01 = "Configurazione", "fp0 -0", ""+
|
||||
Item_01 = "Manutenzione modulo", [FPMENU_003]
|
||||
Item_02 = "Invio fatture", "fp0 -2", ""
|
||||
Item_03 = "Monitor Mancata Consegna", "fp0 -4", ""
|
||||
Item_04 = "Monitor Fatture Passive", "fp0 -3", ""
|
||||
Item_05 = "Inserimento riferimenti C/F", "fp0 -1", ""
|
||||
Item_03 = "Monitor Fatture Passive", "fp0 -3", ""
|
||||
Item_04 = "Stampe", [FPMENU_002]
|
||||
|
||||
|
||||
[FPMENU_002]
|
||||
Caption = "Stampe"
|
||||
Picture = <cg01>
|
||||
Module = fp
|
||||
Flags = ""
|
||||
Item_01 = "Elenco Mancata Consegna", "fp0 -4", ""
|
||||
Item_02 = "Elenco bolli in fattura", "fp1 -0", ""
|
||||
|
||||
[FPMENU_003]
|
||||
Caption = "Manutenzione"
|
||||
Picture = <cg01>
|
||||
Module = fp
|
||||
Flags = ""
|
||||
Item_01 = "Configurazione", "fp0 -0", "", 10210
|
||||
Item_02 = "Inserimento riferimenti C/F", "fp0 -1", ""
|
Loading…
x
Reference in New Issue
Block a user