Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@17206 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
rajitgill 2008-09-10 09:22:52 +00:00
parent 48ff1ac328
commit 977d7280a7
2 changed files with 219 additions and 148 deletions

View File

@ -1,3 +1,5 @@
#include <automask.h>
#include <execp.h>
#include <msksheet.h>
#include <relapp.h>
#include <recarray.h>
@ -6,9 +8,121 @@
#include "lv0400.h"
#include "../mg/anamag.h"
class TContratti_msk: public TAutomask
{
protected:
bool on_art_select();
virtual bool on_field_event(TOperable_field& o,TField_event e,long jolly);
public:
TContratti_msk();
};
bool TContratti_msk::on_art_select()
{
TSheet_field& ss=sfield(F_RIGHE);
TToken_string & row = ss.row(ss.selected());
const TString80 codart(row.get(ss.cid2index(S_CODART)));
const TRectype & artrec = cache().get(LF_ANAMAG, codart);
set(F_GRMERC,artrec.get(ANAMAG_GRMERC).sleft(3));
set(F_COLORE,artrec.get(ANAMAG_COLORE));
set(F_LIVELLO,artrec.get(ANAMAG_LIVELLO));
set(F_PPCONF,artrec.get(ANAMAG_PPCONF));
set(F_PPCOLLO,artrec.get(ANAMAG_PPCOLLO));
set(F_PPPALLET,artrec.get(ANAMAG_PPPALLET));
set(F_TIPOPARTE,artrec.get(ANAMAG_TIPOPARTE));
set(F_CODLAV1,artrec.get(ANAMAG_CODLAV1));
set(F_CODLAV2,artrec.get(ANAMAG_CODLAV2));
set(F_LINDEST1,artrec.get(ANAMAG_LINDEST1));
set(F_LINDEST2,artrec.get(ANAMAG_LINDEST2));
set(F_LAVATRICE,artrec.get(ANAMAG_LAVATRICE));
set(F_ARTLAVCONT,artrec.get(ANAMAG_ARTLAVCONT));
set(F_MANGDEST,artrec.get(ANAMAG_MANGDEST));
const int indsped=get_int(F_INDSPED);
const TDate oggi(TODAY);
TString query, filter;
filter << "ANNOES=#ANNOES CODART=#CODART TIPOCF=C CODCF=#CLIENTE";
if (indsped > 0)
filter << " INDSPED=" << indsped;
query << "USE CLIFOGIAC KEY 3\n"
<< "FROM " << filter << '\n'
<< "TO " << filter << '\n';
TISAM_recordset recset (query);
recset.set_var("#CLIENTE",get_long(F_CODCF));
recset.set_var("#ANNOES",TVariant((long)oggi.year()));
recset.set_var("#CODART",TVariant(codart));
real dotod,consyear;
for (bool ok=recset.move_first(); ok; ok=recset.move_next())
{
dotod+=recset.get("GIAC").as_real();
consyear+=recset.get("ACQ").as_real()+recset.get("ENT").as_real();
}
set(F_DOTOD,dotod);
set(F_CONSANNO,consyear);
const bool varclcons = get_int(F_PPCONF)>0;
ss.enable_cell(ss.selected(),ss.cid2index(S_CALCCONS));
ss.sheet_mask().set(S_CALCCONS,"0");
row.add("0",ss.cid2index(S_CALCCONS));
return true;
}
bool TContratti_msk:: on_field_event(TOperable_field& o,TField_event e,long jolly)
{
switch(o.dlg())
{
case DLG_PLANNING:
if (e==fe_button && !field(F_CODCONT).empty())
{
TRelation_application& app=(TRelation_application&) main_app();
app.get_relation()->read(_isequal,_unlock);
TString str;
str << "lv0 -4 " << get(F_CODCF) << " " << get(F_CODCONT);
TExternal_app planning(str);
planning.run();
app.get_relation()->read(_isequal,_lock);
}
break;
case S_CODART:
if (e==fe_modify)
{
TSheet_field& ss=sfield(F_RIGHE);
TToken_string& row=ss.row(ss.selected());
row.add(o.get(),0);
on_art_select();
}
break;
case F_RIGHE:
if (e==se_enter)
on_art_select();
break;
default:break;
}
return true;
}
TContratti_msk::TContratti_msk() :TAutomask("lv0400a")
{
}
class TContratti_app: public TRelation_application
{
TMask* _msk;
TContratti_msk* _msk;
TRelation* _rel;
bool _unicont;
@ -29,16 +143,13 @@ protected:
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
static bool notify(TSheet_field& ss, int r, KEY key);
};
bool TContratti_app:: user_create()
{
_rel=new TRelation (LF_LVCONDV);
_msk= new TMask ("lv0400a");
TSheet_field& sheet = _msk->sfield(F_RIGHE);
sheet.set_notify(notify );
_msk= new TContratti_msk;
return true;
}
@ -92,46 +203,6 @@ bool TContratti_app:: get_next_key(TToken_string& key)
return true;
}
bool TContratti_app::notify( TSheet_field& ss, int r, KEY key )
{
TMask& m = ss.mask();
switch (key)
{
case K_TAB: // modifica
{
TToken_string & row = ss.row(ss.selected());
const TString80 codart(row.get(ss.cid2index(S_CODART)));
const TRectype & artrec = cache().get(LF_ANAMAG, codart);
m.set(F_GRMERC,artrec.get(ANAMAG_GRMERC).sleft(3));
m.set(F_COLORE,artrec.get(ANAMAG_COLORE));
m.set(F_LIVELLO,artrec.get(ANAMAG_LIVELLO));
m.set(F_PPCONF,artrec.get(ANAMAG_PPCONF));
m.set(F_PPCOLLO,artrec.get(ANAMAG_PPCOLLO));
m.set(F_PPPALLET,artrec.get(ANAMAG_PPPALLET));
m.set(F_TIPOPARTE,artrec.get(ANAMAG_TIPOPARTE));
m.set(F_CODLAV1,artrec.get(ANAMAG_CODLAV1));
m.set(F_CODLAV2,artrec.get(ANAMAG_CODLAV2));
m.set(F_LINDEST1,artrec.get(ANAMAG_LINDEST1));
m.set(F_LINDEST2,artrec.get(ANAMAG_LINDEST2));
m.set(F_LAVATRICE,artrec.get(ANAMAG_LAVATRICE));
m.set(F_ARTLAVCONT,artrec.get(ANAMAG_ARTLAVCONT));
m.set(F_MANGDEST,artrec.get(ANAMAG_MANGDEST));
const bool varclcons = m.get_int(F_PPCONF)>0;
ss.enable_cell(ss.selected(),ss.cid2index(S_CALCCONS));
ss.sheet_mask().set(S_CALCCONS,"0");
row.add("0",ss.cid2index(S_CALCCONS));
}
break;
default:
break;
}
return true;
}
void TContratti_app:: build_query(const TMask& m,TString& query) const

View File

@ -100,10 +100,9 @@ END
BUTTON DLG_PLANNING 10 2
BEGIN
PROMPT 66 2 "~Planning"
MESSAGE RUN,lv0 -4 #F_CODCF #F_CODCONT
END
SPREADSHEET F_RIGHE 0 9
SPREADSHEET F_RIGHE 0 8
BEGIN
PROMPT 0 5 "Righe contratto"
ITEM "Articolo@20"
@ -139,13 +138,19 @@ END
NUMBER F_DOTOD 9
BEGIN
PROMPT 2 15 "Dotazione odierna "
PROMPT 2 15 "Dotaz. odierna "
FLAGS "D"
END
STRING F_COLORE 20 10
BEGIN
PROMPT 30 15 "Colore "
FLAGS "D"
END
STRING F_GRMERC 3
BEGIN
PROMPT 32 15 "Tipologia "
PROMPT 55 15 "Tipologia "
FLAG "UD"
USE GMC KEY 1 SELECT CODTAB[4,5]==""
INPUT CODTAB F_GRMERC
@ -155,93 +160,87 @@ BEGIN
CHECKTYPE NORMAL
END
STRING F_COLORE 20 15
BEGIN
PROMPT 54 15 "Colore "
FLAGS "D"
END
NUMBER F_PPCONF 9
BEGIN
PROMPT 2 16 "Pz. per Pacco "
PROMPT 2 16 "Pz. per Pacco "
FLAGS "D"
END
NUMBER F_PPCOLLO 9
BEGIN
PROMPT 32 16 "Per Sacco "
PROMPT 30 16 "Per Sacco "
FLAGS "D"
END
NUMBER F_PPPALLET 9
BEGIN
PROMPT 54 16 "Per Carrello "
PROMPT 55 16 "Per Carrello "
FLAGS "D"
END
STRING F_MANGDEST 3
BEGIN
PROMPT 2 17 "Mangano Destinazione "
PROMPT 2 17 "Mangano Dest. "
FLAGS "D"
END
STRING F_ARTLAVCONT 4
BEGIN
PROMPT 32 17 "Art.Lava.cont. "
PROMPT 30 17 "Art.Lav.cont."
FLAGS "D"
END
STRING F_LAVATRICE 4
BEGIN
PROMPT 54 17 "Lavatrice "
PROMPT 55 17 "Lavatrice "
FLAGS "D"
END
STRING F_CODLAV1 3
BEGIN
PROMPT 2 18 "Cod. Lavaggio 1 "
PROMPT 2 18 "Cod. Lavag. 1 "
FLAGS "D"
END
STRING F_CODLAV2 3
BEGIN
PROMPT 32 18 "Cod. Lavaggio 2 "
PROMPT 30 18 "Cod. Lavag. 2"
FLAGS "D"
END
STRING F_TIPOPARTE 1
BEGIN
PROMPT 65 18 "Tipo Parte "
PROMPT 55 18 "Tipo Parte "
FLAGS "D"
END
STRING F_LINDEST1 3
BEGIN
PROMPT 2 19 "Linea destinazione 1 "
PROMPT 2 19 "Linea dest. 1 "
FLAGS "D"
END
STRING F_LINDEST2 3
BEGIN
PROMPT 32 19 "Linea destinazione 2 "
PROMPT 30 19 "Linea dest. 2"
FLAGS "D"
END
STRING F_LIVELLO 1
BEGIN
PROMPT 65 19 "Livello "
PROMPT 55 19 "Livello "
FLAGS "D"
END
NUMBER F_CONSMESE 9
BEGIN
PROMPT 2 20 "Qtà. consegnata nel mese"
PROMPT 2 20 "Consegnato mese"
FLAGS "D"
END
NUMBER F_CONSANNO 9
BEGIN
PROMPT 41 20 "Qtà. consegnata nell' anno "
PROMPT 30 20 "Consegn. anno"
FLAGS "D"
END
@ -521,7 +520,8 @@ BEGIN
OUTPUT S_DESCR DESCR
OUTPUT S_PREZZOST COSTSTD
FIELD CODART
CHECKTYPE REQUIRED
CHECKTYPE REQUIRED
ADD RUN ve2 -3
END
STRING S_DESCR 50
@ -537,54 +537,44 @@ END
CURRENCY S_PREZZOST 15
BEGIN
PROMPT 1 4 "Prezzo in vigore "
PROMPT 1 4 "Prezzo in vigore "
FIELD PREZZO
END
CURRENCY S_PREZZORN 15
BEGIN
PROMPT 45 4 "Prezzo di rinnovo "
PROMPT 43 4 "Prezzo di rinnovo "
FIELD PREZRIN
END
CURRENCY S_IMPFISART 15
BEGIN
PROMPT 1 5 "Importo fisso "
PROMPT 1 5 "Importo fisso "
FIELD IMPFISART
END
NUMBER S_SCONTO 6 2
BEGIN
PROMPT 45 5 "Sconto % "
PROMPT 43 5 "Sconto % "
FIELD SCONTPERC
END
NUMBER S_CONG 9
BEGIN
PROMPT 1 6 "Conguaglio "
PROMPT 1 6 "Conguaglio "
FIELD QTACONG
END
CURRENCY S_VALCONV 15
BEGIN
PROMPT 45 6 "Val. convenzionale"
PROMPT 43 6 "Val. convenzionale"
FLAGS "U"
FIELD VALCONV
END
LISTBOX S_ARTBLOC 25
BEGIN
PROMPT 1 7 "Articolo bloccato "
ITEM "0|Nessuna"
ITEM "1|Articolo in sostituzione"
ITEM "2|Cliente in chiusura"
ITEM "3|Contratto in rinnovo"
FIELD ARTBLOC
END
STRING S_UM 2
BEGIN
PROMPT 59 7 "Unità di misura"
PROMPT 1 7 "Unità di misura "
USE LF_UMART KEY 2
JOIN UMS INTO CODTAB=UM
INPUT CODART S_CODART SELECT
@ -596,9 +586,65 @@ BEGIN
CHECKTYPE REQUIRED
END
LISTBOX S_TIPOFORF 34
STRING S_CAUSMAG 4
BEGIN
PROMPT 1 8 "Tipo Forfait"
PROMPT 43 7 "Causale di default"
USE CAU
INPUT CODTAB S_CAUSMAG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_CAUSMAG CODTAB
FIELD CAUSMAG
CHECKTYPE NORMAL
END
CURRENCY S_PREZDAN 15
BEGIN
PROMPT 1 8 "Prezzo danneggiati "
FLAGS "U"
FIELD PREZDAN
END
CURRENCY S_PRZDTTMP 15
BEGIN
PROMPT 43 8 "Prezzo dot. temp. "
FLAGS "U"
FIELD PRZDTTMP
END
NUMBER S_DOTIN 9
BEGIN
PROMPT 1 9 "Dot. iniziale "
FIELD DOTIN
END
NUMBER S_DOTTMP 9
BEGIN
PROMPT 43 9 "Dot. temporanea "
FIELD DOTTMP
END
DATE S_INDTTMP
BEGIN
PROMPT 1 10 "Inizio dot. temporanea "
FIELD INDTTMP
END
DATE S_FIDTTMP
BEGIN
PROMPT 43 10 "Fine dot. temp "
FIELD FIDTTMP
END
NUMBER S_FORFPERCL 6 2
BEGIN
PROMPT 1 11 "% Forfait cliente "
FIELD FORFPERCL
END
LISTBOX S_TIPOFORF 1 34
BEGIN
PROMPT 1 12 "Tipo Forfait "
ITEM "0|Nessuno"
ITEM "1|A valore fisso"
ITEM "2|Nolo in base a dot. iniziale"
@ -611,80 +657,34 @@ BEGIN
FIELD TIPOFORF
END
NUMBER S_FORFPERCL 6 2
LISTBOX S_ARTBLOC 1 34
BEGIN
PROMPT 55 8 "% Forfait cliente"
FIELD FORFPERCL
PROMPT 1 13 "Articolo bloccato "
ITEM "0|Nessuna"
ITEM "1|Articolo in sostituzione"
ITEM "2|Cliente in chiusura"
ITEM "3|Contratto in rinnovo"
FIELD ARTBLOC
END
CURRENCY S_PREZDAN 15
LISTBOX S_CALCCONS 1 34
BEGIN
PROMPT 1 9 "Prezzo danneggiati "
FLAGS "U"
FIELD PREZDAN
END
STRING S_CAUSMAG 4
BEGIN
PROMPT 52 9 "Causale di default "
USE CAU
INPUT CODTAB S_CAUSMAG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_CAUSMAG CODTAB
FIELD CAUSMAG
CHECKTYPE NORMAL
END
LISTBOX S_CALCCONS 26
BEGIN
PROMPT 14 10 "Calcolo del consegnato "
PROMPT 1 14 "Calcolo del consegnato "
ITEM "0|Conguaglio alla confezione"
ITEM "1|Uguale al ritirato"
FIELD CALCCONS
END
NUMBER S_DOTIN 9
LISTBOX S_TIPONOL 1 34
BEGIN
PROMPT 1 13 "Dotazione iniziale "
FIELD DOTIN
END
NUMBER S_DOTTMP 9
BEGIN
PROMPT 1 14 "Dotazione temporanea "
FIELD DOTTMP
END
CURRENCY S_PRZDTTMP 15
BEGIN
PROMPT 40 14 "Prezzo dot. temporanea"
FLAGS "U"
FIELD PRZDTTMP
END
DATE S_INDTTMP
BEGIN
PROMPT 1 15 "Inizio dot. temporanea "
FIELD INDTTMP
END
DATE S_FIDTTMP
BEGIN
PROMPT 40 15 "Fine dot. temporanea "
FIELD FIDTTMP
END
LISTBOX S_TIPONOL 15
BEGIN
PROMPT 1 16 "Tipo Noleggio"
PROMPT 1 15 "Tipo Noleggio "
FIELD TIPONOL
FLAGS "D"
END
BOOLEAN S_RITAUDTTMP
BEGIN
PROMPT 40 16 "Ritiro automatico dotazione temporanea"
PROMPT 1 16 "Ritiro automatico dotazione temporanea"
FIELD RITAUDTTMP
END
@ -696,7 +696,7 @@ END
BOOLEAN S_ARROT
BEGIN
PROMPT 40 17 "Arrotondamento"
PROMPT 1 18 "Arrotondamento"
FIELD ARROT
END