Patch level : 12.0 438
Files correlati : tf Commento : - Aggiunto programma cambio stato spesometro - Abilitato a menù - Tolto attrbuto REQUIRED alla colonna imponibile per movimenti di sola IVA git-svn-id: svn://10.65.10.50/branches/R_10_00@24056 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f202b1fdbe
commit
ce338f0c1c
@ -9,7 +9,7 @@ int main(int argc, char** argv)
|
|||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
case 1 : rt = tf0200(argc, argv); break; // Comunicazione Liquidazioni Periodiche IVA
|
case 1 : rt = tf0200(argc, argv); break; // Comunicazione Liquidazioni Periodiche IVA
|
||||||
//case 2 : rt = tf0300(argc, argv); break; // Cambio stato invio
|
case 2 : rt = tf0300(argc, argv); break; // Cambio stato invio
|
||||||
case 3 : rt = tf0400(argc, argv); break; // Controllo Spesometro
|
case 3 : rt = tf0400(argc, argv); break; // Controllo Spesometro
|
||||||
case 4 : rt = tf0500(argc, argv); break; // Invio IVA
|
case 4 : rt = tf0500(argc, argv); break; // Invio IVA
|
||||||
default: rt = tf0100(argc, argv); break; // Spesometro
|
default: rt = tf0100(argc, argv); break; // Spesometro
|
||||||
|
@ -374,7 +374,6 @@ END
|
|||||||
NUMBER A_IMPONIBILE 12 2
|
NUMBER A_IMPONIBILE 12 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 8 "Imponibile"
|
PROMPT 42 8 "Imponibile"
|
||||||
CHEKTYPE REQUIRED
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER A_IMPOSTA 12 2
|
NUMBER A_IMPOSTA 12 2
|
||||||
|
132
src/tf/tf0300.cpp
Normal file
132
src/tf/tf0300.cpp
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
#include "tf0300a.h"
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <automask.h>
|
||||||
|
#include <recset.h>
|
||||||
|
#include <recarray.h> // cache()
|
||||||
|
#include <progind.h>
|
||||||
|
|
||||||
|
class TChangeStato_msk : public TAutomask
|
||||||
|
{
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly) { return true; }
|
||||||
|
public:
|
||||||
|
TChangeStato_msk() : TAutomask("tf0300a"){}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Definizione per chiamare metodo send dalla maschera
|
||||||
|
class TChangeStato_app : public TSkeleton_application
|
||||||
|
{
|
||||||
|
bool change(TChangeStato_msk& ms);
|
||||||
|
public:
|
||||||
|
virtual void main_loop();
|
||||||
|
};
|
||||||
|
|
||||||
|
bool TChangeStato_app::change(TChangeStato_msk& msk)
|
||||||
|
{
|
||||||
|
TString statoini = msk.get(A_STATOINI), statofin = msk.get(A_STATOFIN);
|
||||||
|
if(statoini == statofin)
|
||||||
|
{
|
||||||
|
return error_box("Errore! Stati Iniziale e Finale identici!");
|
||||||
|
}
|
||||||
|
bool ok;
|
||||||
|
|
||||||
|
// Cambio tutti i movimenti di quella data partendo prima da quelli in prima nota
|
||||||
|
TString query = "USE MOV\n";
|
||||||
|
query << "SELECT (REG!=\"\")&&BETWEEN(DATAREG,#DADATAREG,#ADATAREG)&&(TIPO=\"" << msk.get(F_TIPOCF) << "\")";
|
||||||
|
if(msk.get(F_CODCF) != "")
|
||||||
|
query << "&&STR((CODCF=#CODCF))";
|
||||||
|
if(statoini == "X")
|
||||||
|
{
|
||||||
|
query << "&&((TFINVIO=\"\")||(TFINVIO=\"X\"))";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
query << "&&(TFINVIO=\"" << statoini << "\")";
|
||||||
|
|
||||||
|
TISAM_recordset rset(query);
|
||||||
|
TDate dadatareg = msk.get_date(F_DATAINI);
|
||||||
|
if(!dadatareg.ok())
|
||||||
|
{
|
||||||
|
dadatareg = TDate(01, 01, 2017);
|
||||||
|
msk.set(F_DATAINI, dadatareg);
|
||||||
|
}
|
||||||
|
|
||||||
|
TDate adatareg = msk.get_date(F_DATAFIN);
|
||||||
|
if(!adatareg.ok())
|
||||||
|
{
|
||||||
|
adatareg = TDate(TODAY);
|
||||||
|
msk.set(F_DATAFIN, adatareg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setto le variabili
|
||||||
|
rset.set_var("#DADATAREG", dadatareg);
|
||||||
|
rset.set_var("#ADATAREG", adatareg);
|
||||||
|
if(msk.get(F_CODCF) != "")
|
||||||
|
rset.set_var("#CODCF", msk.get(F_CODCF));
|
||||||
|
|
||||||
|
int nrec = rset.items();
|
||||||
|
|
||||||
|
TLocalisamfile mov(LF_MOV), trasfatt(LF_TRASFATT);
|
||||||
|
|
||||||
|
TProgress_monitor p1(nrec, "Cambio stato prima nota");
|
||||||
|
for(bool ok = rset.move_first(); rset.items() > 0 && ok; ok = rset.move_next())
|
||||||
|
{
|
||||||
|
if(!p1.add_status())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TRectype& rmov = rset.cursor()->curr();
|
||||||
|
rmov.put("TFINVIO", statofin);
|
||||||
|
ok = rmov.rewrite(mov) == NOERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
query.cut(0) << "USE TRASFATT\n";
|
||||||
|
query << "SELECT BETWEEN(DATAREG,#DADATAREG,#ADATAREG)&&(TIPO=\"" << msk.get(F_TIPOCF) << "\")";
|
||||||
|
if(msk.get(F_CODCF) != "")
|
||||||
|
query << "&&STR((CODCF=#CODCF))";
|
||||||
|
|
||||||
|
if(statoini == "X")
|
||||||
|
{
|
||||||
|
query << "&&((TFINVIO=\"\")||(TFINVIO=\"X\"))";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
query << "&&((TFINVIO=\"" << statoini << "\")";
|
||||||
|
|
||||||
|
// Riciclo vah
|
||||||
|
rset = TISAM_recordset(query);
|
||||||
|
// Setto le variabili
|
||||||
|
rset.set_var("#DADATAREG", dadatareg);
|
||||||
|
rset.set_var("#ADATAREG", adatareg);
|
||||||
|
if(msk.get(F_CODCF) != "")
|
||||||
|
rset.set_var("#CODCF", msk.get(F_CODCF));
|
||||||
|
|
||||||
|
nrec = rset.items();
|
||||||
|
TProgress_monitor p2(nrec, "Cambio stato record custom");
|
||||||
|
|
||||||
|
for(bool ok = rset.move_first(); rset.items() > 0 && ok; ok = rset.move_next())
|
||||||
|
{
|
||||||
|
if(!p2.add_status())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
TRectype& rtrasfatt = rset.cursor()->curr();
|
||||||
|
rtrasfatt.put("TFINVIO", statofin);
|
||||||
|
ok = rtrasfatt.rewrite(trasfatt) == NOERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TChangeStato_app::main_loop()
|
||||||
|
{
|
||||||
|
TChangeStato_msk msk;
|
||||||
|
while(msk.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
change(msk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int tf0300(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TChangeStato_app app;
|
||||||
|
app.run(argc, argv, TR("Invio dati liquidazione IVA"));
|
||||||
|
return 0;
|
||||||
|
}
|
7
src/tf/tf0300a.h
Normal file
7
src/tf/tf0300a.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#define F_DATAINI 101
|
||||||
|
#define F_DATAFIN 102
|
||||||
|
#define F_TIPOCF 103
|
||||||
|
#define F_CODCF 104
|
||||||
|
#define F_RAGSOC 105
|
||||||
|
#define A_STATOINI 106
|
||||||
|
#define A_STATOFIN 107
|
90
src/tf/tf0300a.uml
Normal file
90
src/tf/tf0300a.uml
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
#include "tf0300a.h"
|
||||||
|
|
||||||
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
|
|
||||||
|
#include <elabar.h>
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Cambio stato" 0 2 0 0
|
||||||
|
|
||||||
|
DATE F_DATAINI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "Data iniziale:"
|
||||||
|
VALIDATE DATE_CMP_FUNC <= F_DATAFIN
|
||||||
|
WARNING "La data iniziale non può essere maggiore della data finale"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATAFIN
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 0 "Data Finale: "
|
||||||
|
VALIDATE DATE_CMP_FUNC >= F_DATAINI
|
||||||
|
WARNING "La data finale non può essere minore della data iniziale"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAGS "A"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST A_STATOINI 1 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Da stato "
|
||||||
|
ITEM "X|Inviare"
|
||||||
|
ITEM "E|Errore"
|
||||||
|
ITEM "N|Non Inviare"
|
||||||
|
ITEM "F|Forzato"
|
||||||
|
ITEM "I|Inviato"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST A_STATOFIN 1 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 1 "A stato "
|
||||||
|
ITEM "X|Inviare"
|
||||||
|
ITEM "E|Errore"
|
||||||
|
ITEM "N|Non Inviare"
|
||||||
|
ITEM "F|Forzato"
|
||||||
|
ITEM "I|Inviato"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
RADIOBUTTON F_TIPOCF 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Tipo C/F"
|
||||||
|
ITEM "C|Cliente"
|
||||||
|
ITEM "F|Fornitore"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CODCF 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 20 3 "Codice:"
|
||||||
|
USE LF_CLIFO
|
||||||
|
INPUT TIPOCF F_TIPOCF SELECT
|
||||||
|
INPUT CODCF F_CODCF
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Occasionale@C" OCCAS
|
||||||
|
DISPLAY "Codice Fiscale@16" COFI
|
||||||
|
DISPLAY "Partita IVA@15" PAIV
|
||||||
|
OUTPUT F_CODCF CODCF
|
||||||
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
|
CHEKTYPE NORMAL
|
||||||
|
GROUP 1
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOC 50 49
|
||||||
|
BEGIN
|
||||||
|
PROMPT 20 4 "R.Soc: "
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF F_TIPOCF SELECT
|
||||||
|
INPUT RAGSOC F_RAGSOC
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Codice Fiscale@16" COFI
|
||||||
|
DISPLAY "Partita IVA@15" PAIV
|
||||||
|
COPY OUTPUT F_CODCF
|
||||||
|
ADD RUN CG0 -1
|
||||||
|
GROUP 1
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
@ -34,7 +34,7 @@ PAGE "Controlli Spesometro" 0 2 0 0
|
|||||||
LIST F_TIPOCONTROLLO 35 35
|
LIST F_TIPOCONTROLLO 35 35
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 "Controllo da effettuare"
|
PROMPT 1 0 "Controllo da effettuare"
|
||||||
ITEM "0|Movimenti esclusi"
|
ITEM "0|Movimenti ignorati"
|
||||||
ITEM "1|Differenze Prima Nota/Spesometro"
|
ITEM "1|Differenze Prima Nota/Spesometro"
|
||||||
ITEM "2|Mostra tutti i movimenti modificati"
|
ITEM "2|Mostra tutti i movimenti modificati"
|
||||||
FLAGS ""
|
FLAGS ""
|
||||||
|
@ -4,7 +4,7 @@ Picture = <cg01>
|
|||||||
Module = tf
|
Module = tf
|
||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Trasferimento Fatture", "tf0 -0", ""+
|
Item_01 = "Trasferimento Fatture", "tf0 -0", ""+
|
||||||
//Item_02 = "Cambio stato Spesometro", "tf0 -2", ""
|
Item_02 = "Cambio stato Spesometro", "tf0 -2", ""
|
||||||
//Item_03 = "Controllo Spesometro", "tf0 -3", ""
|
//Item_03 = "Controllo Spesometro", "tf0 -3", ""
|
||||||
Item_04 = "Report Spesometro", "ba8 -4 totiva_aliq.rep", ""
|
Item_04 = "Report Spesometro", "ba8 -4 totiva_aliq.rep", ""
|
||||||
Item_05 = "Liquidazione IVA Periodica", "tf0 -1", ""
|
Item_05 = "Liquidazione IVA Periodica", "tf0 -1", ""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user