This commit was manufactured by cvs2svn to create branch 'R_10_00'.

git-svn-id: svn://10.65.10.50/branches/R_10_00@20914 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
(no author) 2010-09-27 14:29:29 +00:00
parent b8a17c24d8
commit d741c541f9
5 changed files with 608 additions and 0 deletions

194
ha/ha0400.cpp Executable file
View File

@ -0,0 +1,194 @@
#include <applicat.h>
#include <automask.h>
#include <config.h>
#include <progind.h>
#include <recarray.h>
#include <recset.h>
#include <relapp.h>
#include <clifo.h>
#include <doc.h>
#include <rdoc.h>
#include "halib.h"
#include "ha0.h"
#include "ha0400a.h"
///////////////////////////////////////////////////////////
// TAutomask
///////////////////////////////////////////////////////////
class THardy_tied_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
long fill_recordset(const long codcf, TISAM_recordset& recset);
void fill_sheet();
public:
THardy_tied_mask();
~THardy_tied_mask();
};
long THardy_tied_mask::fill_recordset(const long codcf, TISAM_recordset& recset)
{
TString query;
const char tipo_contratto = get(F_TIPO)[0];
query << "USE RDOC";
query << "\nSELECT (DOC.STATO=5)&&(TIPORIGA=#TIPORIGA)&&(STR(" << RCA_2_ANTICIPATO << "<=" << RCA_2_RESO_STORICO << "))";
//in base al tipo contratto cambia la query
if (tipo_contratto == 'T')
query << "&&((DOC.TIPODOC=#A_TIPODOC)||(DOC.TIPODOC=#R_TIPODOC))";
else
query << "&&(DOC.TIPODOC=#TIPODOC)";
if (codcf > 0)
query << "&&(DOC.TIPOCF='C')&&(DOC.CODCF=#CODCF)";
query << "\nJOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC";
//setta la query al recordset, che inizialmente aveva una query vuota
recset.set(query);
//settaggio delle variabili
//tipo riga
const TString4 tiporiga = HARDY_TIPORIGA_SOMMA;
recset.set_var("#TIPORIGA", tiporiga);
//numerazione
TConfig config(CONFIG_DITTA, "ha");
const TString4 tipo_a = config.get("CoAntTip");
const TString4 tipo_r = config.get("CoRifaTip");
switch (tipo_contratto)
{
case 'A': recset.set_var("#TIPODOC", tipo_a); break;
case 'R': recset.set_var("#TIPODOC", tipo_r); break;
case 'T': recset.set_var("#A_TIPODOC", tipo_a); recset.set_var("#R_TIPODOC", tipo_r); break;
default: break;
}
//clifo
if (codcf > 0)
recset.set_var("#CODCF", codcf);
//e alla fine della fiera...
const long items = recset.items();
return items;
}
void THardy_tied_mask::fill_sheet()
{
TSheet_field& sf_righe = sfield(F_RIGHE);
sf_righe.destroy();
//query per raccattare i contratti pareggiati; in base al filtro sul cliente cambia la query
TString query;
long recset_items;
TISAM_recordset recset(query);
const long codcf = get_long(F_CODCF);
recset_items = fill_recordset(codcf, recset);
//riempie le righe dello sheet
TProgind progind(recset_items, "Ricerca contratti in corso...", false, true);
//record corrente
//const TRectype& rec = recset.cursor()->curr(); ****cazzone****
//per ogni riga del recordset va ad aggiornare lo sheet sulla maschera (aggiunge la riga)
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{
progind.addstatus(1);
TToken_string& row = sf_righe.row(-1); //riga sheet da riempire
row.add("");
const TString& codcf = recset.get("DOC.CODCF").as_string();
row.add(codcf);
TToken_string key;
key.add("C");
key.add(codcf);
const TString& ragsoc = cache().get(LF_CLIFO, key, CLI_RAGSOC);
row.add(ragsoc);
const int anno = recset.get(RDOC_ANNO).as_int();
row.add(anno);
const long ndoc = recset.get(RDOC_NDOC).as_int();
row.add(ndoc);
const TString& tipo = recset.get("DOC.TIPODOC").as_string();
row.add(tipo);
real importo = recset.get(RCA_2_ANTICIPATO).as_real();
const TString& str_importo = importo.string();
row.add(str_importo);
const TString& codpag = recset.get("DOC.CODPAG").as_string();
row.add(codpag);
const TString& codag = recset.get("DOC.CODAG").as_string();
row.add(codag);
sf_righe.check_row(sf_righe.items()-1, 3);
}
//mostra e aggiorna lo sheet
sf_righe.show();
sf_righe.force_update();
}
THardy_tied_mask::THardy_tied_mask() : TAutomask ("ha0400a")
{
}
THardy_tied_mask::~THardy_tied_mask()
{
}
bool THardy_tied_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_TIPO:
if (e == fe_modify)
{
//riempie lo sheet con i contratti pareggiati
const TString& tipo = get(F_TIPO);
if (tipo.full())
fill_sheet();
}
default:
break;
break;
}
return true;
}
///////////////////////////////////////
// TSkeleton_application
///////////////////////////////////////
class THardy_tied : public TSkeleton_application
{
protected:
public:
virtual void main_loop();
virtual bool create();
};
void THardy_tied::main_loop()
{
THardy_tied_mask mask;
while (mask.run() == K_ENTER)
{
//elabora(mask);
}
}
bool THardy_tied::create()
{
return TSkeleton_application::create();
}
int ha0400 (int argc, char* argv[])
{
THardy_tied tiedapp;
tiedapp.run(argc, argv, TR("Elaborazione contratti premio pareggiati"));
return 0;
}

17
ha/ha0400a.h Executable file
View File

@ -0,0 +1,17 @@
#define F_TIPOCF 201
#define F_CODCF 202
#define F_RAGSOC 203
#define F_TIPO 204
#define F_RIGHE 205
//maschera riga sheet
#define S_CHECK 101
#define S_CODCF 102
#define S_RAGSOC 103
#define S_ANNO 104
#define S_NDOC 105
#define S_TIPO 106
#define S_IMPORTO 107
#define S_CONDPAG 108
#define S_CODAG 109

155
ha/ha0400a.uml Executable file
View File

@ -0,0 +1,155 @@
#include "ha0400a.h"
TOOLBAR "" 0 0 0 2
#include <elabar.h>
ENDPAGE
PAGE "Contratti premio pareggiati" -1 -1 78 23
LIST F_TIPOCF 9
BEGIN
PROMPT 130 101 ""
FIELD TIPOCF
IT "C|Cliente"
FLAGS "D"
END
NUMBER F_CODCF 6
BEGIN
PROMPT 1 1 "Cliente "
WARNING "Cliente assente"
HELP "Codice del cliente del documento"
FLAGS "R"
FIELD CODCF
USE LF_CLIFO KEY 1
INPUT TIPOCF "C"
INPUT CODCF F_CODCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@12" PAIV
DISPLAY "Sospeso" SOSPESO
OUTPUT F_CODCF CODCF
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
END
STRING F_RAGSOC 50
BEGIN
WARNING "Cliente assente"
HELP "Ragione sociale del cliente del documento"
PROMPT 20 1 ""
USE LF_CLIFO KEY 2
INPUT TIPOCF "C"
INPUT RAGSOC F_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Partita IVA@12" PAIV
DISPLAY "Codice" CODCF
COPY OUTPUT F_CODCF
CHECKTYPE NORMAL
ADD RUN cg0 -1 C
END
LIST F_TIPO 1 14
BEGIN
PROMPT 1 2 "Tipo "
ITEM " |Selezionare"
ITEM "A|Anticipo"
ITEM "R|Rifatturazione"
ITEM "T|Tutti"
END
SPREADSHEET F_RIGHE
BEGIN
PROMPT 1 4 ""
ITEM "@1"
ITEM "Cliente"
ITEM "Ragione sociale@40"
ITEM "Anno"
ITEM "N.Contr."
ITEM "Tipo"
ITEM "Importo@12"
ITEM "Cod.Pag."
ITEM "Agente"
FLAGS "H"
END
ENDPAGE
ENDMASK
/////////////////////////////////////////
//maschera di riga
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 ""
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 ""
END
ENDPAGE
PAGE "Riga" -1 -1 76 12
BOOLEAN S_CHECK
BEGIN
PROMPT 1 1 "Elabora "
END
NUMBER S_CODCF 6
BEGIN
PROMPT 1 2 "Cliente "
END
STRING S_RAGSOC 50
BEGIN
PROMPT 20 2 ""
END
NUMBER S_ANNO 4
BEGIN
PROMPT 1 3 "Anno "
END
NUMBER S_NDOC 7
BEGIN
PROMPT 1 4 "N. doc. "
END
LIST S_TIPO 18
BEGIN
PROMPT 1 5 "Tipo "
ITEM "A|Anticipo"
ITEM "R|Rifatturazione"
END
CURRENCY S_IMPORTO
BEGIN
PROMPT 1 6 "Importo "
FLAGS "U"
END
STRING S_CONDPAG 4
BEGIN
PROMPT 1 7 "Pagam. "
END
STRING S_CODAG 5
BEGIN
PROMPT 1 8 "Agente "
END
ENDPAGE
ENDMASK

42
ha/halib.cpp Executable file
View File

@ -0,0 +1,42 @@
#include "halib.h"
TString4 TContratto_premi::_tipo_ant;
TString4 TContratto_premi::_tipo_post;
TString4 TContratto_premi::_tipo_rifa;
//metodi della TContratto_premi
char TContratto_premi::tipo_contratto() const
{
//i tipi contratto vengono caricati solo al primo accesso, in modo da non dover rileggere tutte le volte..
//..il file di configurazione
if (_tipo_ant.blank())
{
TConfig config(CONFIG_DITTA, "ha");
_tipo_ant = config.get("CoAntTip");
_tipo_post = config.get("CoPostTip");
_tipo_rifa = config.get("CoRifaTip");
}
//ritorna il tipo contratto come carattere; se non lo trova -> tipo 'P'osticipo perchè..
//..è il tipo meno pericoloso (comunque non dovrebbe mai accadere in quanto il tipo è..
//..obbligatorio sia in immissione contratto che in configurazione modulo)
const TString& tipo_doc = get(DOC_TIPODOC);
if (tipo_doc == _tipo_ant)
return 'A';
else
{
if (tipo_doc == _tipo_rifa)
return 'R';
}
return 'P';
}
TContratto_premi::TContratto_premi(char provv, int anno, const char* codnum, long ndoc)
: TDocumento(provv, anno, codnum, ndoc)
{}
TContratto_premi::TContratto_premi(const TRectype& rec_doc)
: TDocumento(rec_doc)
{}

200
lv/lvinv.rep Executable file
View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8" ?>
<report libraries="ve1300" name="lvinv" orientation="1" lpi="6">
<description>inventario</description>
<font face="Courier New" size="9" />
<section type="Head" height="26.5" pattern="1">
<font face="Arial" size="10" />
<field x="90.5" y="19.5" type="Stringa" width="2" id="9" pattern="2">
<prescript description="H0.9 PRESCRIPT">MESSAGE _PAGENO</prescript>
</field>
<field x="77" y="19.5" type="Data" width="10" id="10" pattern="2">
<font face="Arial" bold="1" size="10" />
<source>33.DATADOC</source>
</field>
<field x="67.5" y="19.5" type="Stringa" align="right" width="6.5" id="11" pattern="2">
<font face="Arial" bold="1" size="10" />
<source>33.NDOC</source>
</field>
<field x="37" y="16" type="Stringa" hidden="1" width="5" id="12" pattern="2">
<source>34.CODMAG</source>
</field>
<field x="1" y="19.5" type="Stringa" width="35" id="31" pattern="2">
<font face="Arial" bold="1" size="10" />
<source>210@.S0</source>
</field>
<field x="1" y="16.25" type="Stringa" hidden="1" width="5" id="40" pattern="2">
<source>16.STATO</source>
<prescript description="H0.40 PRESCRIPT">#THIS @
STRLEN
DUP
1 =
IF
"00" #THIS @ + #THIS !
THEN
2 =
IF
"0" #THIS @ + #THIS !
THEN
</prescript>
</field>
<field x="6.5" y="16.25" type="Stringa" hidden="1" width="25" id="70" pattern="2">
<prescript description="H0.70 PRESCRIPT">MESSAGE _TABLEREAD,%STA,#40,S0
MESSAGE APPEND,69</prescript>
</field>
</section>
<section type="Head" level="1" pattern="1" />
<section type="Body" pattern="1">
<field border="1" radius="100" y="18" type="Rettangolo" shade_offset="50" width="93.5" height="4" pattern="2" />
<field x="1" y="18.5" type="Testo" width="11" pattern="1" text="Tipo Documento">
<font italic="1" face="Arial" size="8" />
</field>
<field x="69.5" y="18.5" type="Testo" width="6" pattern="1" text="Numero">
<font italic="1" face="Arial" size="8" />
</field>
<field x="79" y="18.5" type="Testo" width="7" pattern="1" text="Data">
<font italic="1" face="Arial" size="8" />
</field>
<field x="87" y="18.5" type="Testo" width="5" pattern="1" text="Pagina">
<font italic="1" face="Arial" size="8" />
</field>
<field border="1" radius="100" y="24.5" type="Rettangolo" shade_offset="50" width="93.5" height="30" pattern="2" />
<field border="1" x="12" y="25" type="Linea" height="29" pattern="2" />
<field border="1" x="44" y="25" type="Linea" height="29" pattern="2" />
<field border="1" x="59" y="25" type="Linea" height="29" pattern="2" />
<field x="1.5" y="25" type="Testo" width="8.5" id="202" pattern="1" text="Articolo">
<font face="Arial" bold="1" size="8" />
</field>
<field x="12.5" y="25" type="Testo" width="28" id="203" pattern="1" text="Descrizione">
<font face="Arial" bold="1" size="8" />
</field>
<field x="44.5" y="25" type="Testo" width="10" id="204" pattern="1" text="Giacenza">
<font face="Arial" bold="1" size="8" />
</field>
<field x="60" y="25" type="Testo" width="20" id="204" pattern="1" text="Magazzino&#2F;Deposito">
<font face="Arial" bold="1" size="8" />
</field>
</section>
<section type="Body" level="1" can_break="1" pattern="1">
<condition>!((34.TIPORIGA='08'))</condition>
<font face="Arial" size="9" />
<field x="44.5" type="Numero" align="right" width="10" pattern="2" hide_zero="1" text="##.###">
<source>34.QTA</source>
</field>
<field x="60.5" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="3" pattern="1">
<source>34.CODMAG[1,3]</source>
</field>
<field x="66" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="3" pattern="1">
<source>34.CODMAG[4,5]</source>
</field>
<field type="Stringa" hidden="1" bg_color="#E9E9E9" width="3.5" id="50" pattern="2">
<source>34.CODARTMAG</source>
<prescript description="B1.50 PRESCRIPT">MESSAGE EMPTY DISABLE,51
MESSAGE ENABLE,51</prescript>
</field>
<field x="0.5" type="Stringa" width="11.5" id="51" pattern="1">
<source>34.CODART</source>
</field>
<field x="12.5" type="Stringa" bg_color="#D4D4D4" dynamic_height="1" width="30" height="2" id="52" pattern="1">
<source>47.DESCR</source>
</field>
</section>
<section y="53" hidden_if_needed="1" type="Foot" pattern="1">
<font face="Arial" size="10" />
<field x="72" y="12" type="Testo" width="17" id="100" pattern="2" text="&#3E;&#3E;&#3E; SEGUE &#3E;&#3E;&#3E;">
<font italic="1" face="Arial" bold="1" size="10" />
</field>
</section>
<section y="54" type="Foot" level="1" pattern="1">
<field x="59" y="2" type="Stringa" width="22.5" id="34" pattern="2">
<source>207@.S0</source>
</field>
<field x="1.25" y="2" type="Array" width="19" id="101" pattern="2">
<source>CODSPMEZZO</source>
<list>
<li Value=" " Code=" " />
<li Value="DESTINATARIO" Code="D" />
<li Value="MITTENTE" Code="M" />
<li Value="VETTORE" Code="V" />
</list>
</field>
<field x="36" y="8.5" type="Stringa" hidden="1" width="29" id="105" pattern="2">
<source>TRIM(205@.S0)</source>
<prescript description="F1.105 PRESCRIPT">MESSAGE COPY,107</prescript>
</field>
<field x="27" y="7.5" type="Stringa" hidden="1" width="35" id="106" pattern="2">
<source>TRIM(205@.S1[1,35])</source>
<prescript description="F1.106 PRESCRIPT">MESSAGE APPEND,107</prescript>
</field>
<field x="1" y="8.5" type="Stringa" width="76.5" id="107" pattern="2" />
<field x="45" y="7.5" type="Stringa" hidden="1" width="10" id="108" pattern="2">
<source>TRIM(205@.S1[36,45])</source>
<prescript description="F1.108 PRESCRIPT">MESSAGE APPEND,107</prescript>
</field>
<field x="57.5" y="8" type="Stringa" hidden="1" width="5" id="110" pattern="2">
<source>TRIM(205@.S7)</source>
<prescript description="F1.110 PRESCRIPT">MESSAGE APPEND,107</prescript>
</field>
<field x="18" y="8.5" type="Stringa" hidden="1" width="18" id="111" pattern="2">
<source>TRIM(205@.S1[46,70])</source>
<prescript description="F1.111 PRESCRIPT">MESSAGE APPEND,107</prescript>
</field>
<field x="21" y="7.5" type="Stringa" hidden="1" width="5" id="112" pattern="2">
<source>205@.S9</source>
</field>
<field x="9" y="8.5" type="Stringa" hidden="1" width="35" id="113" pattern="2">
<prescript description="F1.113 PRESCRIPT">MESSAGE _ISAMREAD,13,COM=#112,DENCOM
MESSAGE APPEND,107</prescript>
</field>
<field x="15" y="7.5" type="Stringa" hidden="1" width="2" id="114" pattern="2">
<prescript description="F1.114 PRESCRIPT">MESSAGE _ISAMREAD,13,COM=#112,PROVCOM
MESSAGE APPEND,107</prescript>
</field>
<field x="51" y="8.5" deactivated="1" type="Stringa" width="38" id="115" pattern="2" />
<field x="69.75" y="4.25" type="Stringa" hidden="1" width="5" id="117" pattern="2" text="##:##">
<source>ORAPART</source>
</field>
<field x="59.75" y="4.25" type="Data" hidden="1" width="8" id="118" pattern="2">
<source>DATAPART</source>
</field>
<field x="20.75" y="2" type="Stringa" width="34.5" id="120" pattern="2">
<source>206@.S0</source>
</field>
<field x="16.5" y="4.25" type="Numero" hidden="1" align="right" width="12" id="121" pattern="2" text="#########">
<source>IF(33.PNETTO=0,TOTPESO,33.PNETTO)</source>
</field>
<field x="0.5" y="4.25" type="Numero" hidden="1" align="right" width="6" id="122" pattern="2">
<source>IF(33.NCOLLI=0,TOTCOLLI,33.NCOLLI)</source>
</field>
<field x="9" y="4.25" type="Numero" hidden="1" align="right" width="6" id="132" pattern="2">
<source>IF(33.NBANC=0,TOTBANC,33.NBANC)</source>
</field>
<field x="0.5" y="6.25" type="Stringa" width="76.5" id="157" pattern="2">
<source>33.NOTE</source>
</field>
<field x="30.25" y="4.25" type="Stringa" hidden="1" width="27.5" id="158" pattern="2">
<source>203@.S0</source>
</field>
</section>
<sql>USE 33
JOIN 34 INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN 168 INTO CODCF==CODCF CODCONT==CODCONT
JOIN 17 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 20 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN 16 TO 33 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 16 TO 17 ALIAS 116 INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP
JOIN 13 TO 16 INTO STATO=STATO COM=COM
JOIN 47 TO 34 INTO CODART==CODART
JOIN 122 TO 33 INTO CODAGE==CODAG
JOIN %POR TO 33 ALIAS 203 INTO CODTAB==CODPORTO
JOIN %VET TO 33 ALIAS 205 INTO CODTAB==CODVETT1
JOIN %ABE TO 33 ALIAS 206 INTO CODTAB==ASPBENI1
JOIN %CTR TO 33 ALIAS 207 INTO CODTAB==CAUSTRASP
JOIN %BAN TO 33 ALIAS 208 INTO CODTAB==CODABIA
JOIN %VAL TO 33 ALIAS 209 INTO CODTAB==CODVAL
JOIN %TIP TO 33 ALIAS 210 INTO CODTAB==TIPODOC
JOIN %MSP TO 33 ALIAS 211 INTO CODTAB==CODSPMEZZO
JOIN GCA TO 34 ALIAS 212 INTO CODTAB==3+CODART[7,12]
JOIN GCA TO 34 ALIAS 213 INTO CODTAB==5+CODART[17,18]
</sql>
</report>