Patch level : 10.0 148
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : Aggiunti i flag di lavanderia alle causali di magazzino bollaclv.msk bollaclv.ini verig16.msk verig16.ini Prima bozza di profilo di bolla manuale di lavanderia e di rigo bolla lavanderia con causale lavanderia quantita' consegnata e ritirata git-svn-id: svn://10.65.10.50/trunk@17497 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
50e7c34308
commit
e7ede03f87
263
ve/bollaclv.src
Executable file
263
ve/bollaclv.src
Executable file
@ -0,0 +1,263 @@
|
|||||||
|
#include "veini.h"
|
||||||
|
#include "veuml.h"
|
||||||
|
#include "verig.h"
|
||||||
|
// Esempio di profilo documento : Profilo Bolla Vendita
|
||||||
|
|
||||||
|
[MAIN]
|
||||||
|
// Descrizione a caratteri del documento
|
||||||
|
TYPE=Bolla di vendita
|
||||||
|
// Dove sono le risorse per il documento
|
||||||
|
// modifica
|
||||||
|
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
|
||||||
|
CALCOLI=*
|
||||||
|
TOTPROVV=
|
||||||
|
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
|
||||||
|
TIPOCF=C
|
||||||
|
|
||||||
|
[PROFILO]
|
||||||
|
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
|
||||||
|
// 1|Prompt|Help|Warning
|
||||||
|
|
||||||
|
// TIPOCF = S_NORMALE
|
||||||
|
// CODCF = S_OBBLIGATORIO
|
||||||
|
// RAGSOC = S_NORMALE
|
||||||
|
OCCASEDIT = S_NORMALE //100
|
||||||
|
OCFPI = S_DISABILITATO //100
|
||||||
|
COFI = S_NORMALE //100
|
||||||
|
STATOPAIV = S_NORMALE //100
|
||||||
|
PAIVA = S_NORMALE //100
|
||||||
|
GOLEM = S_NORMALE //100
|
||||||
|
GRRECAPITO = S_NORMALE //100
|
||||||
|
INDCF = S_DISABILITATO //100
|
||||||
|
CIVCF = S_DISABILITATO //100
|
||||||
|
LOCALITACF = S_DISABILITATO //100
|
||||||
|
CAPCF = S_DISABILITATO //100
|
||||||
|
PROVCOM = S_DISABILITATO //100
|
||||||
|
COMCF = S_DISABILITATO //100
|
||||||
|
DENCOM = S_DISABILITATO //100
|
||||||
|
STATOCF = S_DISABILITATO //100
|
||||||
|
DESSTATOCF = S_DISABILITATO //100
|
||||||
|
CODVAL1 = S_NORMALE //200
|
||||||
|
CODVAL2 = S_NORMALE //200
|
||||||
|
NOME_VAL1 = S_NORMALE //200
|
||||||
|
NOME_VAL2 = S_NORMALE //200
|
||||||
|
CONTROEURO = S_NORMALE //200
|
||||||
|
CAMBIO = S_NORMALE //200
|
||||||
|
DATA_CAMBIO1 = S_NORMALE //200
|
||||||
|
DATA_CAMBIO2 = S_NORMALE //200
|
||||||
|
CODLIN = S_NORMALE //300
|
||||||
|
DESLIN = S_NORMALE //300
|
||||||
|
CODPAG = S_OBBLIGATORIO //400
|
||||||
|
DESCODPAG = S_NORMALE //400
|
||||||
|
GRSCADENZE = S_NORMALE //500
|
||||||
|
DATAINSC = S_NORMALE //500
|
||||||
|
DATASCAD1 = S_DISABILITATO //500
|
||||||
|
DATASCAD2 = S_DISABILITATO //500
|
||||||
|
DATASCAD3 = S_DISABILITATO //500
|
||||||
|
DATASCAD4 = S_DISABILITATO //500
|
||||||
|
DATASCAD5 = S_DISABILITATO //500
|
||||||
|
CODABIA = S_OBBLIGATORIO //600
|
||||||
|
CODCABA = S_OBBLIGATORIO //600
|
||||||
|
DESBANAPP = S_NORMALE //600
|
||||||
|
IBAN = S_NORMALE //600
|
||||||
|
IBAN_STATO = S_NORMALE //600
|
||||||
|
IBAN_CHECK = S_NORMALE //600
|
||||||
|
BBAN = S_NORMALE //600
|
||||||
|
BBAN_CIN = S_NORMALE //600
|
||||||
|
BBAN_ABI = S_NORMALE //600
|
||||||
|
BBAN_CAB = S_NORMALE //600
|
||||||
|
BBAN_CONTO = S_NORMALE //600
|
||||||
|
CODABIP = S_NORMALE //700
|
||||||
|
CODCABP = S_NORMALE //700
|
||||||
|
DESBANPRE = S_NORMALE //700
|
||||||
|
CATVEN = S_NORMALE //800
|
||||||
|
DESCATVEN = S_DISABILITATO //800
|
||||||
|
CODLIST1 = S_NORMALE //800
|
||||||
|
CODLIST2 = S_NORMALE //800
|
||||||
|
DESLIST = S_DISABILITATO //800
|
||||||
|
CODCONT1 = S_NORMALE //810
|
||||||
|
CODCONT2 = S_NORMALE //810
|
||||||
|
DESCONT = S_DISABILITATO //810
|
||||||
|
CODCAMP = S_NORMALE //820
|
||||||
|
DESCAMP = S_DISABILITATO //820
|
||||||
|
SCONTOPERC = S_NORMALE //830
|
||||||
|
GRINDSPED = S_NORMALE //900
|
||||||
|
CODINDSP = S_NORMALE //900
|
||||||
|
RAGSOCSP = S_DISABILITATO //900
|
||||||
|
INDSP = S_DISABILITATO //900
|
||||||
|
CIVSP = S_DISABILITATO //900
|
||||||
|
LOCALITASP = S_DISABILITATO //900
|
||||||
|
CAPSP = S_DISABILITATO //900
|
||||||
|
COMSP = S_DISABILITATO //900
|
||||||
|
DENCOMSP = S_DISABILITATO //900
|
||||||
|
PROVCOMSP = S_DISABILITATO //900
|
||||||
|
STATOSP = S_DISABILITATO //900
|
||||||
|
DESSTATOSP = S_DISABILITATO //900
|
||||||
|
DATADOCRIF = S_NORMALE //1000
|
||||||
|
NUMDOCRIF = S_NOCHECK //1000
|
||||||
|
CODAGVIS = S_NASCOSTO //1110
|
||||||
|
DESAGVIS = S_NASCOSTO //1110
|
||||||
|
CODAG = S_NORMALE //1100
|
||||||
|
DESAG = S_NORMALE //1100
|
||||||
|
CODZON = S_NORMALE //1100
|
||||||
|
DESZON = S_NORMALE //1100
|
||||||
|
CODSPMEZZO = S_OBBLIGATORIO //1200
|
||||||
|
DESSPMEZZO = S_NORMALE //1200
|
||||||
|
CODPORTO = S_NORMALE //1210
|
||||||
|
DESPORTO = S_NORMALE //1210
|
||||||
|
CODNOTESP1 = S_NORMALE //1300
|
||||||
|
DESNOTESP1 = S_NORMALE //1300
|
||||||
|
CODNOTESP2 = S_NORMALE //1300
|
||||||
|
DESNOTESP2 = S_NORMALE //1300
|
||||||
|
CAUSTRASP = S_OBBLIGATORIO //1400
|
||||||
|
DENCAUSTRASP = S_NORMALE //1400
|
||||||
|
CODVETT1 = S_NORMALE //1500
|
||||||
|
CODVETT2 = S_NORMALE //1500
|
||||||
|
CODVETT3 = S_NORMALE //1500
|
||||||
|
NOMEVETT1 = S_NORMALE //1500
|
||||||
|
NOMEVETT2 = S_NORMALE //1500
|
||||||
|
NOMEVETT3 = S_NORMALE //1500
|
||||||
|
NCOPIE = S_NASCOSTO //1600
|
||||||
|
GRPARTENZA = S_NORMALE //1700
|
||||||
|
DATAPART = S_NORMALE //1700
|
||||||
|
ORAPART = S_NORMALE //1700
|
||||||
|
IMPPAGATO = S_NORMALE //1800
|
||||||
|
ACCSALDO = S_NASCOSTO //1800
|
||||||
|
DOC1 = S_NASCOSTO //1900
|
||||||
|
DOC2 = S_NASCOSTO //1900
|
||||||
|
DOC3 = S_NASCOSTO //1900
|
||||||
|
DATACONS = S_NASCOSTO //2000
|
||||||
|
ASPBENI1 = S_OBBLIGATORIO //2100
|
||||||
|
DESCRBENI1 = S_NORMALE //2100
|
||||||
|
ASPBENI2 = S_NASCOSTO //2100
|
||||||
|
DESCRBENI2 = S_NASCOSTO //2100
|
||||||
|
IMPNETTI = S_NASCOSTO //2200
|
||||||
|
RAGGR = S_NORMALE //2300
|
||||||
|
RAGGREFF = S_NORMALE //2300
|
||||||
|
SPESEINC = S_NORMALE //2400
|
||||||
|
ADDBOLLI = S_NORMALE //2400
|
||||||
|
UMTARA = S_NORMALE //2710
|
||||||
|
TARA = S_NORMALE //2710
|
||||||
|
DESUMTARA = S_NASCOSTO //2710
|
||||||
|
UMPNETTO = S_NORMALE //2700
|
||||||
|
PNETTO = S_NORMALE //2700
|
||||||
|
DESUMPNETTO = S_NASCOSTO //2700
|
||||||
|
NCOLLI = S_NORMALE //2800
|
||||||
|
CAUSMAG = S_OBBLIGATORIO //2900
|
||||||
|
CAUSMAGC = S_DISABILITATO //2900
|
||||||
|
DESCRMAG = S_NORMALE //2900
|
||||||
|
DESCRMAGC = S_DISABILITATO //2900
|
||||||
|
CODCMS = S_NORMALE //3000
|
||||||
|
DESCRCMS = S_NORMALE //3000
|
||||||
|
FASCMS = S_NORMALE //3000
|
||||||
|
DESCRFAS = S_NORMALE //3000
|
||||||
|
BLANK = S_DISABILITATO //4000
|
||||||
|
CODNOTE = S_NORMALE //2500
|
||||||
|
NOTECLI = S_NOCHECK //2500
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
Default(0)=F_CAUSTRASP|VEN
|
||||||
|
|
||||||
|
[SHEET]
|
||||||
|
Col(0)=FR_CODAGG1|Causale Lavanderie
|
||||||
|
Col(1)=FR_CODMAG
|
||||||
|
Col(2)=FR_CODDEP
|
||||||
|
Col(3)=FR_CODART
|
||||||
|
Col(4)=FR_LIV1
|
||||||
|
Col(5)=FR_LIV2
|
||||||
|
Col(6)=FR_LIV3
|
||||||
|
Col(7)=FR_LIV4
|
||||||
|
Col(8)=FR_DESCR
|
||||||
|
Col(9)=FR_UMQTA
|
||||||
|
Col(10)=FR_QTA|Consegnato|18
|
||||||
|
Col(11)=FR_QTAGG1|Ritirato|18
|
||||||
|
Col(12)=FR_PREZZO
|
||||||
|
Col(13)=FR_SCONTO
|
||||||
|
Col(14)=FR_PERCPROV
|
||||||
|
Col(15)=FR_IMPFISUN
|
||||||
|
Col(16)=FR_IMPFISSO
|
||||||
|
Col(17)=FR_CODIVA
|
||||||
|
Col(18)=FR_NCOLLI
|
||||||
|
Col(19)=FR_PNETTO
|
||||||
|
Col(20)=FR_TARA
|
||||||
|
Col(21)=FR_CAUS
|
||||||
|
Col(22)=FR_CODMAGC
|
||||||
|
Col(23)=FR_CODDEPC
|
||||||
|
Col(24)=FR_TIPORIGA
|
||||||
|
|
||||||
|
[RIGHE]
|
||||||
|
|
||||||
|
[HANDLERS]
|
||||||
|
// Handler(0) = F_ORAPART|1
|
||||||
|
|
||||||
|
[PROFILOGRUPPO]
|
||||||
|
101 = S_NASCOSTO
|
||||||
|
100 = S_NORMALE
|
||||||
|
200 = S_NORMALE
|
||||||
|
300 = S_NORMALE
|
||||||
|
400 = S_NORMALE
|
||||||
|
500 = S_NORMALE
|
||||||
|
600 = S_NORMALE
|
||||||
|
700 = S_NORMALE
|
||||||
|
800 = S_NORMALE
|
||||||
|
810 = S_NORMALE
|
||||||
|
820 = S_NORMALE
|
||||||
|
830 = S_NORMALE
|
||||||
|
900 = S_NORMALE
|
||||||
|
1000 = S_NORMALE
|
||||||
|
1100 = S_NORMALE
|
||||||
|
1200 = S_NORMALE
|
||||||
|
1210 = S_NORMALE
|
||||||
|
1300 = S_NORMALE
|
||||||
|
1400 = S_NORMALE
|
||||||
|
1500 = S_NORMALE
|
||||||
|
1600 = S_NASCOSTO
|
||||||
|
1700 = S_NORMALE
|
||||||
|
1800 = S_NORMALE
|
||||||
|
1900 = S_NORMALE
|
||||||
|
2000 = S_NASCOSTO
|
||||||
|
2100 = S_NORMALE
|
||||||
|
2200 = S_NASCOSTO
|
||||||
|
2300 = S_NORMALE
|
||||||
|
2400 = S_NORMALE
|
||||||
|
2500 = S_NORMALE
|
||||||
|
2700 = S_NORMALE
|
||||||
|
2710 = S_NORMALE
|
||||||
|
2800 = S_NORMALE
|
||||||
|
2900 = S_NORMALE
|
||||||
|
3000 = S_NORMALE
|
||||||
|
4000 = S_NORMALE
|
||||||
|
|
||||||
|
[ORDINEGRUPPI]
|
||||||
|
NGROUPS=30
|
||||||
|
1=100
|
||||||
|
2=2500
|
||||||
|
3=200
|
||||||
|
4=300
|
||||||
|
5=400
|
||||||
|
6=500
|
||||||
|
7=600
|
||||||
|
8=700
|
||||||
|
9=2400
|
||||||
|
10=2300
|
||||||
|
11=800
|
||||||
|
12=810
|
||||||
|
13=820
|
||||||
|
14=830
|
||||||
|
15=900
|
||||||
|
16=1100
|
||||||
|
17=1200
|
||||||
|
18=1500
|
||||||
|
19=1210
|
||||||
|
20=1300
|
||||||
|
21=1400
|
||||||
|
22=2100
|
||||||
|
23=2800
|
||||||
|
24=2700
|
||||||
|
25=2710
|
||||||
|
26=1700
|
||||||
|
27=1800
|
||||||
|
28=1000
|
||||||
|
29=2900
|
||||||
|
30=3000
|
||||||
|
|
@ -481,6 +481,17 @@ void TMotore_application::load_auto_reopen_data()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool num_filter(const TRelation* r)
|
||||||
|
{
|
||||||
|
const TCodice_numerazione & cod_num = cached_numerazione(r->curr().get("CODTAB"));
|
||||||
|
|
||||||
|
int last = cod_num.ntipi_doc();
|
||||||
|
for (int i = 0; i < last; i++ )
|
||||||
|
if (tipodoc_ok(cod_num.tipo_doc(i)))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool TMotore_application::user_create( )
|
bool TMotore_application::user_create( )
|
||||||
{
|
{
|
||||||
open_files(LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, LF_DESLIN, LF_CODCORR,
|
open_files(LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, LF_DESLIN, LF_CODCORR,
|
||||||
@ -505,6 +516,16 @@ bool TMotore_application::user_create( )
|
|||||||
|
|
||||||
const int args = argc() ;
|
const int args = argc() ;
|
||||||
|
|
||||||
|
TEdit_field & e = _msk->efield(F_CODNUM);
|
||||||
|
TBrowse * b = e.browse();
|
||||||
|
TEdit_field & edes = _msk->efield(F_DESNUM);
|
||||||
|
TBrowse * bdes = edes.browse();
|
||||||
|
TCursor * cur = b->cursor();
|
||||||
|
TCursor * descur = bdes->cursor();
|
||||||
|
|
||||||
|
cur->set_filterfunction(num_filter);
|
||||||
|
descur->set_filterfunction(num_filter);
|
||||||
|
|
||||||
for (int i = 2; i < args; i++)
|
for (int i = 2; i < args; i++)
|
||||||
{
|
{
|
||||||
const TString arg(argv(i));
|
const TString arg(argv(i));
|
||||||
@ -532,11 +553,6 @@ bool TMotore_application::user_create( )
|
|||||||
else
|
else
|
||||||
if (arg.starts_with("-filt"))
|
if (arg.starts_with("-filt"))
|
||||||
{
|
{
|
||||||
TEdit_field & e = _msk->efield(F_CODNUM);
|
|
||||||
TBrowse * b = e.browse();
|
|
||||||
TEdit_field & edes = _msk->efield(F_DESNUM);
|
|
||||||
TBrowse * bdes = edes.browse();
|
|
||||||
|
|
||||||
if (b != NULL || bdes != NULL)
|
if (b != NULL || bdes != NULL)
|
||||||
{
|
{
|
||||||
TString filter = b->get_filter();
|
TString filter = b->get_filter();
|
||||||
|
@ -224,6 +224,7 @@ class TTipo_documento : public TRectype // velib03
|
|||||||
TString16 _field_qta, _field_qtaevasa; // Veri campi Quantità e Quantità Evasa
|
TString16 _field_qta, _field_qtaevasa; // Veri campi Quantità e Quantità Evasa
|
||||||
TString16 _raee_cod, _raee_fld;
|
TString16 _raee_cod, _raee_fld;
|
||||||
TString _str_desc_doc, _str_desc_rdoc;
|
TString _str_desc_doc, _str_desc_rdoc;
|
||||||
|
TString4 _module;
|
||||||
|
|
||||||
char _tipocf;
|
char _tipocf;
|
||||||
char _tipocr;
|
char _tipocr;
|
||||||
@ -305,6 +306,7 @@ public:
|
|||||||
bool additional_print_profile(TFilename& report) const;
|
bool additional_print_profile(TFilename& report) const;
|
||||||
bool is_costo() const ;
|
bool is_costo() const ;
|
||||||
bool is_ricavo() const ;
|
bool is_ricavo() const ;
|
||||||
|
const TString & module() const { return _module; }
|
||||||
|
|
||||||
TFormula_documento* first_formula() { return succ_formula(true); }
|
TFormula_documento* first_formula() { return succ_formula(true); }
|
||||||
TFormula_documento* succ_formula(bool restart = false);
|
TFormula_documento* succ_formula(bool restart = false);
|
||||||
|
@ -1130,6 +1130,50 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
|||||||
rm.put(RMOVMAG_PREZZO, prezzo.get_num());
|
rm.put(RMOVMAG_PREZZO, prezzo.get_num());
|
||||||
rm.put(RMOVMAG_CODCAUS, cod_caus_riga);
|
rm.put(RMOVMAG_CODCAUS, cod_caus_riga);
|
||||||
rm.put(RMOVMAG_TIPORIGA, (char) riga_dadocumento);
|
rm.put(RMOVMAG_TIPORIGA, (char) riga_dadocumento);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (main_app().has_module(LVAUT))
|
||||||
|
{
|
||||||
|
const TString & codcauslav = r.get(RDOC_CODAGG1);
|
||||||
|
const TRectype & caulav = cache().get("&LVCAU", codcauslav);
|
||||||
|
if (!caulav.empty())
|
||||||
|
{
|
||||||
|
const real qta = r.get(RDOC_QTAGG1);
|
||||||
|
const TString & causcons = caulav.get("S6");
|
||||||
|
|
||||||
|
if (causcons.full())
|
||||||
|
mov[LF_RMOVMAG][j - 1].put(RMOVMAG_CODCAUS, causcons);
|
||||||
|
|
||||||
|
if (r_num == num_movmag && !qta.is_zero())
|
||||||
|
{
|
||||||
|
const TString & causrit = caulav.get("S7");
|
||||||
|
TRectype & rm = mov.insert_row(j++);
|
||||||
|
|
||||||
|
rm.put(RMOVMAG_IMPIANTO, r.get(RDOC_IMPIANTO));
|
||||||
|
rm.put(RMOVMAG_LINEA, r.get(RDOC_LINEA));
|
||||||
|
rm.put(RMOVMAG_CODMAG, r.get(RDOC_CODMAGC));
|
||||||
|
if (articolo && (causrit.full() ? cached_causale_magazzino(causrit).scarica_alternativi() : scarica_alt))
|
||||||
|
{
|
||||||
|
const TRectype art = cache().get(LF_ANAMAG, codart);
|
||||||
|
const TString & alt = art.get(ANAMAG_CODARTALT);
|
||||||
|
|
||||||
|
if (alt.full())
|
||||||
|
codart = alt;
|
||||||
|
}
|
||||||
|
rm.put(RMOVMAG_CODART, codart);
|
||||||
|
rm.put(RMOVMAG_LIVGIAC, r.get(RDOC_LIVELLO));
|
||||||
|
rm.put(RMOVMAG_UM, r.get(RDOC_UMQTA));
|
||||||
|
|
||||||
|
rm.put(RMOVMAG_QUANT, qta);
|
||||||
|
|
||||||
|
/* TCurrency_documento prezzo(r.prezzo(TRUE, FALSE), *this, TRUE);
|
||||||
|
|
||||||
|
prezzo.change_to_firm_val();
|
||||||
|
rm.put(RMOVMAG_PREZZO, prezzo.get_num()); */
|
||||||
|
rm.put(RMOVMAG_CODCAUS, causrit);
|
||||||
|
rm.put(RMOVMAG_TIPORIGA, (char) riga_dadocumento);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,6 +343,7 @@ void TTipo_documento::read_formule()
|
|||||||
_str_desc_rdoc = prof.get("DESCRIZIONE_RDOC");
|
_str_desc_rdoc = prof.get("DESCRIZIONE_RDOC");
|
||||||
_show_evaded_lines = !prof.get_bool("NASCONDI_RIGHE_EVASE"); // Normalmente mostra anche evase
|
_show_evaded_lines = !prof.get_bool("NASCONDI_RIGHE_EVASE"); // Normalmente mostra anche evase
|
||||||
_non_evadere = prof.get_bool("NON_EVADERE"); // Normalmente mostra anche evase
|
_non_evadere = prof.get_bool("NON_EVADERE"); // Normalmente mostra anche evase
|
||||||
|
_module = prof.get("MODULE", NULL, -1, "ve").left(2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,14 +592,14 @@ class TContabilizzazione_analitica : public TElaborazione // velib04f
|
|||||||
bool _usepdcc;
|
bool _usepdcc;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool find_conti_iva_indetraibile(const TRiga_documento& riga, const TBill & bill, TString_array& conti, int annoes, const char tipomov);
|
bool find_conti_iva_indetraibile(const TRiga_documento& riga, const TBill & bill, TString_array& conti, int annoes, const char tipomov, bool & pareggio);
|
||||||
bool find_conti(const TRiga_documento& riga, TString_array& conti, int annoes, bool riclassifica_fdr_fde, const char tipomov);
|
bool find_conti(const TRiga_documento& riga, TString_array& conti, int annoes, bool riclassifica_fdr_fde, const char tipomov, bool & pareggio);
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
const TCausale& doc2caus(const TDocumento& doc);
|
const TCausale& doc2caus(const TDocumento& doc);
|
||||||
const TCausale& rdoc2caus(const TRiga_documento& rdoc);
|
const TCausale& rdoc2caus(const TRiga_documento& rdoc);
|
||||||
|
|
||||||
void init_distrib(TString_array& conti, TGeneric_distrib& distrib);
|
void init_distrib(TString_array& conti, TGeneric_distrib& distrib, bool pareggio);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto, bool riclassifica_fdr_fde);
|
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto, bool riclassifica_fdr_fde);
|
||||||
|
136
ve/velib04f.cpp
136
ve/velib04f.cpp
@ -327,62 +327,56 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
|
|||||||
return conto.ok() && conto.find();
|
return conto.ok() && conto.find();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_documento& riga, const TBill & bill, TString_array& conti, int annoes, const char tipomov)
|
bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_documento& riga, const TBill & bill, TString_array& conti, int annoes, const char tipomov, bool & pareggio)
|
||||||
{
|
{
|
||||||
const TString80 riga_cos = riga.codice_costo();
|
const TString80 riga_cos = riga.codice_costo();
|
||||||
const TString80 riga_cms = riga.codice_commessa();
|
const TString80 riga_cms = riga.codice_commessa();
|
||||||
const TString16 riga_fsc = riga.fase_commessa();
|
const TString16 riga_fsc = riga.fase_commessa();
|
||||||
// const int annoes = riga.get_int(RDOC_ANNO);
|
|
||||||
const bool riga_any = riga_cos.full() || riga_cms.full() || riga_fsc.full();
|
|
||||||
|
|
||||||
TToken_string conto;
|
TToken_string conto;
|
||||||
if (_usepdcc)
|
|
||||||
{
|
|
||||||
conto = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
conto = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
|
||||||
if (riga_any)
|
|
||||||
{
|
|
||||||
conto.add(riga_cos, 1);
|
conto.add(riga_cos, 1);
|
||||||
conto.add(riga_cms, 2);
|
conto.add(riga_cms, 2);
|
||||||
conto.add(riga_fsc, 3);
|
conto.add(riga_fsc, 3);
|
||||||
}
|
|
||||||
conto.add(100, 4);
|
conto.add(100, 4);
|
||||||
conti.add(conto);
|
conti.add(conto);
|
||||||
}
|
|
||||||
else
|
const TAnal_ripartizioni_batch & rip = _rip.righe(bill, annoes, tipomov);
|
||||||
{
|
|
||||||
// Cerca la ripartizione del conto
|
pareggio = rip.rows() == 0;
|
||||||
const TAnal_ripartizioni_batch& rip = _rip.righe_interattive(bill, annoes, tipomov);
|
|
||||||
for (int i = 1; i <= rip.rows(); i++)
|
for (int i = 1; i <= rip.rows(); i++)
|
||||||
{
|
{
|
||||||
const TRectype& rigarip = rip.row(i);
|
const TRectype& rigarip = rip.row(i);
|
||||||
|
|
||||||
conto = rigarip.get(RRIP_CODCONTO);
|
conto = rigarip.get(RRIP_CODCONTO);
|
||||||
if (riga_any)
|
|
||||||
{
|
const TString costo = rigarip.get(RRIP_CODCOSTO);
|
||||||
conto.add(riga_cos, 1);
|
|
||||||
conto.add(riga_cms, 2);
|
conto.add(costo.full() ? costo : riga_cos, 1);
|
||||||
conto.add(riga_fsc, 3);
|
|
||||||
}
|
const TString & commessa = rigarip.get(RRIP_CODCMS);
|
||||||
else
|
|
||||||
{
|
conto.add(commessa.full() ? commessa : riga_cms, 2);
|
||||||
conto.add(rigarip.get(RRIP_CODCOSTO), 1);
|
|
||||||
conto.add(rigarip.get(RRIP_CODCMS), 2);
|
const TString & fase = rigarip.get(RRIP_CODFASE);
|
||||||
conto.add(rigarip.get(RRIP_CODFASE), 3);
|
|
||||||
}
|
conto.add(fase.full() ? fase: riga_fsc, 3);
|
||||||
conto.add(rigarip.get(RRIP_RIPARTO), 4);
|
conto.add(rigarip.get(RRIP_RIPARTO), 4);
|
||||||
conti.add(conto);
|
conti.add(conto);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return !conti.empty();
|
return !conti.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TString_array& conti, int annoes, bool riclassifica_fdr_fde, const char tipomov)
|
bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TString_array& conti, int annoes, bool riclassifica_fdr_fde, const char tipomov, bool & pareggio)
|
||||||
{
|
{
|
||||||
bool bArcticleFound = false;
|
bool bArcticleFound = false;
|
||||||
|
|
||||||
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
|
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
|
||||||
TString80 contanal;
|
TString80 contanal;
|
||||||
|
TToken_string conto;
|
||||||
TBill bill; // Cerco il conto contabile
|
TBill bill; // Cerco il conto contabile
|
||||||
|
|
||||||
|
pareggio = false;
|
||||||
if (riga.is_sconto())
|
if (riga.is_sconto())
|
||||||
{
|
{
|
||||||
if (riga.is_sconto_perc())
|
if (riga.is_sconto_perc())
|
||||||
@ -432,60 +426,57 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
const TString80 riga_cos = riga.codice_costo();
|
const TString80 riga_cos = riga.codice_costo();
|
||||||
const TString80 riga_cms = riga.codice_commessa();
|
const TString80 riga_cms = riga.codice_commessa();
|
||||||
const TString16 riga_fsc = riga.fase_commessa();
|
const TString16 riga_fsc = riga.fase_commessa();
|
||||||
// const int annoes = riga.get_int(RDOC_ANNO);
|
|
||||||
const bool riga_any = riga_cos.not_empty() || riga_cms.not_empty() || riga_fsc.not_empty();
|
|
||||||
|
|
||||||
if (contanal.blank()) // Non ho trovato il conto in anagrafica ...
|
if (contanal.full()) // Non ho trovato il conto in anagrafica ...
|
||||||
{
|
|
||||||
// Cerca la ripartizione del conto
|
|
||||||
const TAnal_ripartizioni_batch& rip = _rip.righe_interattive(bill, annoes, tipomov);
|
|
||||||
TToken_string conto;
|
|
||||||
for (int i = 1; i <= rip.rows(); i++)
|
|
||||||
{
|
|
||||||
const TRectype& rigarip = rip.row(i);
|
|
||||||
conto = rigarip.get(RRIP_CODCONTO);
|
|
||||||
if (riga_any)
|
|
||||||
{
|
|
||||||
conto.add(riga_cos, 1);
|
|
||||||
conto.add(riga_cms, 2);
|
|
||||||
conto.add(riga_fsc, 3);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
conto.add(rigarip.get(RRIP_CODCOSTO), 1);
|
|
||||||
conto.add(rigarip.get(RRIP_CODCMS), 2);
|
|
||||||
conto.add(rigarip.get(RRIP_CODFASE), 3);
|
|
||||||
}
|
|
||||||
conto.add(rigarip.get(RRIP_RIPARTO), 4);
|
|
||||||
conti.add(conto);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// Ho trovato il conto in anagrafica ...
|
// Ho trovato il conto in anagrafica ...
|
||||||
TToken_string conto = contanal;
|
TToken_string conto = contanal;
|
||||||
if (riga_any)
|
|
||||||
{
|
|
||||||
conto.add(riga_cos, 1);
|
conto.add(riga_cos, 1);
|
||||||
conto.add(riga_cms, 2);
|
conto.add(riga_cms, 2);
|
||||||
conto.add(riga_fsc, 3);
|
conto.add(riga_fsc, 3);
|
||||||
}
|
|
||||||
conto.add(100, 4);
|
conto.add(100, 4);
|
||||||
conti.add(conto);
|
conti.add(conto);
|
||||||
}
|
}
|
||||||
|
const TAnal_ripartizioni_batch & rip = _rip.righe(bill, annoes, tipomov);
|
||||||
|
|
||||||
|
pareggio = rip.rows() > 0;
|
||||||
|
for (int i = 1; i <= rip.rows(); i++)
|
||||||
|
{
|
||||||
|
const TRectype& rigarip = rip.row(i);
|
||||||
|
|
||||||
|
conto = rigarip.get(RRIP_CODCONTO);
|
||||||
|
|
||||||
|
const TString costo = rigarip.get(RRIP_CODCOSTO);
|
||||||
|
|
||||||
|
conto.add(costo.full() ? costo : riga_cos, 1);
|
||||||
|
|
||||||
|
const TString & commessa = rigarip.get(RRIP_CODCMS);
|
||||||
|
|
||||||
|
conto.add(commessa.full() ? commessa : riga_cms, 2);
|
||||||
|
|
||||||
|
const TString & fase = rigarip.get(RRIP_CODFASE);
|
||||||
|
|
||||||
|
conto.add(fase.full() ? fase: riga_fsc, 3);
|
||||||
|
conto.add(rigarip.get(RRIP_RIPARTO), 4);
|
||||||
|
conti.add(conto);
|
||||||
|
}
|
||||||
|
|
||||||
return !conti.empty();
|
return !conti.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TContabilizzazione_analitica::init_distrib(TString_array& conti, TGeneric_distrib& distrib)
|
void TContabilizzazione_analitica::init_distrib(TString_array& conti, TGeneric_distrib& distrib, bool pareggio)
|
||||||
{
|
{
|
||||||
FOR_EACH_ARRAY_ROW(conti, i, row)
|
FOR_EACH_ARRAY_ROW(conti, i, row)
|
||||||
|
{
|
||||||
|
if (!pareggio || i > 0)
|
||||||
{
|
{
|
||||||
real slice = row->get(4);
|
real slice = row->get(4);
|
||||||
if (slice <= ZERO)
|
if (slice <= ZERO)
|
||||||
slice = UNO;
|
slice = UNO;
|
||||||
distrib.add(slice);
|
distrib.add(slice);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write, TAnal_mov& mov, bool riclassifica_fdr_fde)
|
bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TViswin* viswin, bool can_write, TAnal_mov& mov, bool riclassifica_fdr_fde)
|
||||||
@ -574,6 +565,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
for (i = 1; i <= doc.physical_rows(); i++)
|
for (i = 1; i <= doc.physical_rows(); i++)
|
||||||
{
|
{
|
||||||
const TRiga_documento& riga = doc[i];
|
const TRiga_documento& riga = doc[i];
|
||||||
|
bool pareggio = false;
|
||||||
|
|
||||||
// salto descrizioni, sconti e omaggi
|
// salto descrizioni, sconti e omaggi
|
||||||
// if (riga.is_descrizione() || riga.is_sconto() || riga.is_omaggio())
|
// if (riga.is_descrizione() || riga.is_sconto() || riga.is_omaggio())
|
||||||
@ -604,11 +596,11 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
{
|
{
|
||||||
TString_array conti_ind;
|
TString_array conti_ind;
|
||||||
const char tipomov = mov.get_char(MOVANA_TIPOMOV);
|
const char tipomov = mov.get_char(MOVANA_TIPOMOV);
|
||||||
if (find_conti_iva_indetraibile(riga, bill, conti_ind, annoes, tipomov)) //qui
|
if (find_conti_iva_indetraibile(riga, bill, conti_ind, annoes, tipomov, pareggio)) //qui
|
||||||
{
|
{
|
||||||
TGeneric_distrib esso(ivaind, decimals);
|
TGeneric_distrib esso(ivaind, decimals);
|
||||||
|
|
||||||
init_distrib(conti_ind, esso);
|
init_distrib(conti_ind, esso, pareggio);
|
||||||
FOR_EACH_ARRAY_ROW(conti_ind, j, row_ind)
|
FOR_EACH_ARRAY_ROW(conti_ind, j, row_ind)
|
||||||
{
|
{
|
||||||
TRectype& rmov = mov.new_row();
|
TRectype& rmov = mov.new_row();
|
||||||
@ -619,11 +611,15 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
rmov.put(RMOVANA_CODFASE, row_ind->get());
|
rmov.put(RMOVANA_CODFASE, row_ind->get());
|
||||||
rmov.put(RMOVANA_DESCR, riga.get(RDOC_DESCR));
|
rmov.put(RMOVANA_DESCR, riga.get(RDOC_DESCR));
|
||||||
|
|
||||||
TImporto imp(sezione, real(esso.get()));
|
const bool negative = pareggio && j > 0;
|
||||||
|
const bool totale = pareggio && j == 0;
|
||||||
|
TImporto imp(sezione, totale ? ivaind : real(esso.get()));
|
||||||
|
|
||||||
|
if (negative)
|
||||||
|
imp.swap_section();
|
||||||
imp.normalize();
|
imp.normalize();
|
||||||
rmov.put(RMOVANA_SEZIONE, imp.sezione());
|
rmov.put(RMOVANA_SEZIONE, imp.sezione());
|
||||||
rmov.put(RMOVANA_IMPORTO, imp.valore());
|
rmov.put(RMOVANA_IMPORTO, imp.valore());
|
||||||
|
|
||||||
totdoc += imp;
|
totdoc += imp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -639,7 +635,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
|
|
||||||
TString_array conti;
|
TString_array conti;
|
||||||
const char tipomov = mov.get_char(MOVANA_TIPOMOV);
|
const char tipomov = mov.get_char(MOVANA_TIPOMOV);
|
||||||
const bool ok = find_conti(riga, conti, annoes, riclassifica_fdr_fde, tipomov);
|
const bool ok = find_conti(riga, conti, annoes, riclassifica_fdr_fde, tipomov, pareggio);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
{
|
{
|
||||||
if (viswin != NULL)
|
if (viswin != NULL)
|
||||||
@ -655,7 +651,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
|
|
||||||
TGeneric_distrib esso(valore, decimals);
|
TGeneric_distrib esso(valore, decimals);
|
||||||
|
|
||||||
init_distrib(conti, esso);
|
init_distrib(conti, esso, pareggio);
|
||||||
FOR_EACH_ARRAY_ROW(conti, i, row)
|
FOR_EACH_ARRAY_ROW(conti, i, row)
|
||||||
{
|
{
|
||||||
TRectype& rmov = mov.new_row();
|
TRectype& rmov = mov.new_row();
|
||||||
@ -666,11 +662,15 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
|
|||||||
rmov.put(RMOVANA_CODFASE, row->get());
|
rmov.put(RMOVANA_CODFASE, row->get());
|
||||||
rmov.put(RMOVANA_DESCR, riga.get(RDOC_DESCR));
|
rmov.put(RMOVANA_DESCR, riga.get(RDOC_DESCR));
|
||||||
|
|
||||||
TImporto imp(sezione, real(esso.get()));
|
const bool negative = pareggio && i > 0;
|
||||||
|
const bool totale = pareggio && i == 0;
|
||||||
|
TImporto imp(sezione, totale ? valore : real(esso.get()));
|
||||||
|
|
||||||
|
if (negative)
|
||||||
|
imp.swap_section();
|
||||||
imp.normalize();
|
imp.normalize();
|
||||||
rmov.put(RMOVANA_SEZIONE, imp.sezione());
|
rmov.put(RMOVANA_SEZIONE, imp.sezione());
|
||||||
rmov.put(RMOVANA_IMPORTO, imp.valore());
|
rmov.put(RMOVANA_IMPORTO, imp.valore());
|
||||||
|
|
||||||
totdoc += imp;
|
totdoc += imp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3054,6 +3054,17 @@ bool TDocumento_mask::anno_handler( TMask_field& f, KEY key)
|
|||||||
|
|
||||||
TString16 __codnum;
|
TString16 __codnum;
|
||||||
|
|
||||||
|
bool tipodoc_ok(const TString & tipodoc)
|
||||||
|
{
|
||||||
|
const TString4 module(main_app().name().left(2));
|
||||||
|
const TTipo_documento& tipo = cached_tipodoc(tipodoc);
|
||||||
|
const TString & tipomod = tipo.module();
|
||||||
|
|
||||||
|
if (module == "ve" && tipomod.blank())
|
||||||
|
return true;
|
||||||
|
return tipomod == module;
|
||||||
|
}
|
||||||
|
|
||||||
bool tip_filter(const TRelation* r)
|
bool tip_filter(const TRelation* r)
|
||||||
{
|
{
|
||||||
if (__codnum.blank())
|
if (__codnum.blank())
|
||||||
@ -3065,7 +3076,8 @@ bool tip_filter(const TRelation* r)
|
|||||||
for (int i = 0; i < last; i++ )
|
for (int i = 0; i < last; i++ )
|
||||||
{
|
{
|
||||||
const TString & curtipo = cod_num.tipo_doc(i);
|
const TString & curtipo = cod_num.tipo_doc(i);
|
||||||
if (curtipo == tipo)
|
|
||||||
|
if (curtipo == tipo && tipodoc_ok(curtipo))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -3073,7 +3085,7 @@ bool tip_filter(const TRelation* r)
|
|||||||
|
|
||||||
bool TDocumento_mask::num_handler( TMask_field& f, KEY key)
|
bool TDocumento_mask::num_handler( TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB && f.to_check(key, TRUE))
|
if (key == K_TAB && f.to_check(key, true))
|
||||||
{
|
{
|
||||||
// Ottengo la maschera
|
// Ottengo la maschera
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
|
@ -2195,7 +2195,7 @@ bool TDocumento_mask::ragsoc_search_handler(TMask_field& f, KEY key)
|
|||||||
sheet.cursor()->read();
|
sheet.cursor()->read();
|
||||||
if (sheet.run() == K_ENTER)
|
if (sheet.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
const TString16 ndoc = sheet.row(-1).get(5);
|
const long ndoc = sheet.row(-1).get_long(2);
|
||||||
m.set(F_NDOC, ndoc);
|
m.set(F_NDOC, ndoc);
|
||||||
m.stop_run(K_AUTO_ENTER);
|
m.stop_run(K_AUTO_ENTER);
|
||||||
}
|
}
|
||||||
|
@ -36,4 +36,7 @@ bool cms_mag_handler(TMask_field& f, KEY key);
|
|||||||
bool codcms_handler(TMask_field &f, KEY key);
|
bool codcms_handler(TMask_field &f, KEY key);
|
||||||
bool numdocrif_hndl(TMask_field& field, KEY key);
|
bool numdocrif_hndl(TMask_field& field, KEY key);
|
||||||
bool smart_hndl(TMask_field& field, KEY key);
|
bool smart_hndl(TMask_field& field, KEY key);
|
||||||
|
|
||||||
|
bool tipodoc_ok(const TString & tipodoc);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -67,6 +67,7 @@
|
|||||||
#define FR_CODARTMAG 131
|
#define FR_CODARTMAG 131
|
||||||
#define FR_CHECKED 132
|
#define FR_CHECKED 132
|
||||||
#define FR_CHECKED 132
|
#define FR_CHECKED 132
|
||||||
|
#define FR_RITIRO 133 // Lavanderie
|
||||||
#define FR_QTAGG1 133
|
#define FR_QTAGG1 133
|
||||||
#define FR_QTAGG2 134
|
#define FR_QTAGG2 134
|
||||||
#define FR_QTAGG3 135
|
#define FR_QTAGG3 135
|
||||||
@ -87,6 +88,7 @@
|
|||||||
#define FR_CDC11 150
|
#define FR_CDC11 150
|
||||||
#define FR_CDC12 151
|
#define FR_CDC12 151
|
||||||
#define FR_CODAGG1 152
|
#define FR_CODAGG1 152
|
||||||
|
#define FR_CAULAV 153 // Lavanderie
|
||||||
#define FR_CODAGG2 153
|
#define FR_CODAGG2 153
|
||||||
#define FR_TIPODET 154
|
#define FR_TIPODET 154
|
||||||
|
|
||||||
@ -132,5 +134,7 @@
|
|||||||
#define FR_DESCDC10 290
|
#define FR_DESCDC10 290
|
||||||
#define FR_DESCDC11 291
|
#define FR_DESCDC11 291
|
||||||
#define FR_DESCDC12 292
|
#define FR_DESCDC12 292
|
||||||
|
#define FR_FLCONS 293
|
||||||
|
#define FR_FLRIT 294
|
||||||
|
|
||||||
#endif
|
#endif
|
69
ve/verig.uml
69
ve/verig.uml
@ -1319,7 +1319,7 @@ BEGIN
|
|||||||
DISPLAY "Tipo" I0
|
DISPLAY "Tipo" I0
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT FR_TIPODET CODTAB
|
OUTPUT FR_TIPODET CODTAB
|
||||||
CHECTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -1421,6 +1421,68 @@ END
|
|||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IFDEF(FLD_RITIRO)
|
||||||
|
NUMBER FR_RITIRO 13 5
|
||||||
|
BEGIN
|
||||||
|
IFDEF(X_RITIRO)
|
||||||
|
PROMPT X_RITIRO Y_RITIRO PR_RITIRO
|
||||||
|
ELSEIF
|
||||||
|
PROMPT 2 20 "Ritirato "
|
||||||
|
ENDIF
|
||||||
|
IFDEF(FL_RITIRO)
|
||||||
|
FLAGS FL_RITIRO
|
||||||
|
ENDIF
|
||||||
|
IFDEF(MS_RITIRO)
|
||||||
|
MESSAGE MS_RITIRO
|
||||||
|
ENDIF
|
||||||
|
IFDEF(NC_RITIRO)
|
||||||
|
NUM_CALC NC_RITIRO
|
||||||
|
ENDIF
|
||||||
|
FIELD QTAGG1
|
||||||
|
END
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IFDEF(FLD_CAULAV)
|
||||||
|
STRING FR_CAULAV 3
|
||||||
|
BEGIN
|
||||||
|
IFDEF(X_CAULAV)
|
||||||
|
PROMPT X_CAULAV Y_CAULAV PR_CAULAV
|
||||||
|
ELSEIF
|
||||||
|
PROMPT 35 20 "Causale lavanderie "
|
||||||
|
ENDIF
|
||||||
|
USE &LVCAU
|
||||||
|
INPUT CODTAB FR_CAULAV
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT FR_CAULAV CODTAB
|
||||||
|
OUTPUT FR_FLCONS B0
|
||||||
|
OUTPUT FR_FLRIT B1
|
||||||
|
FLAGS "UZ"
|
||||||
|
IFDEF(MS_CAULAV)
|
||||||
|
MESSAGE MS_CAULAV
|
||||||
|
ENDIF
|
||||||
|
IFDEF(NC_CAULAV)
|
||||||
|
NUM_CALC NC_CAULAV
|
||||||
|
ENDIF
|
||||||
|
FIELD CODAGG1
|
||||||
|
END
|
||||||
|
BOOLEAN FR_FLCONS
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 50 "Flag consegnato"
|
||||||
|
MESSAGE FALSE CLEAR,FR_QTA
|
||||||
|
MESSAGE TRUE ENABLE,FR_QTA
|
||||||
|
FLAGS "HG"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN FR_FLRIT
|
||||||
|
BEGIN
|
||||||
|
PROMPT 50 50 "Flag ritirato"
|
||||||
|
MESSAGE FALSE CLEAR,FR_RITIRO
|
||||||
|
MESSAGE TRUE ENABLE,FR_RITIRO
|
||||||
|
FLAGS "HG"
|
||||||
|
END
|
||||||
|
ENDIF
|
||||||
|
|
||||||
#ifdef PAGE_2
|
#ifdef PAGE_2
|
||||||
|
|
||||||
#ifndef FULL_SCREEN
|
#ifndef FULL_SCREEN
|
||||||
@ -1972,9 +2034,4 @@ END
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
#ifdef JOLLY
|
|
||||||
#include "jolly.uml"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#include "verigdef.h"
|
#include "verigdef.h"
|
||||||
|
|
||||||
#define PAGE_2
|
#define PAGE_2
|
||||||
#define JOLLY
|
|
||||||
|
|
||||||
DEFINE_FIELD(CODMAG)
|
DEFINE_FIELD(CODMAG)
|
||||||
DEFINE_FIELD(DESMAG)
|
DEFINE_FIELD(DESMAG)
|
||||||
|
9
ve/verig16.ini
Executable file
9
ve/verig16.ini
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#Profilo di riga tipo merce lavanderie
|
||||||
|
[MAIN]
|
||||||
|
CALCOLI=*
|
||||||
|
CAMPICALC=
|
||||||
|
IMPONIBILE=IMPNS
|
||||||
|
|
||||||
|
[HANDLERS]
|
||||||
|
NHANDLER = 0
|
||||||
|
|
44
ve/verig16.uml
Executable file
44
ve/verig16.uml
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#include "verigdef.h"
|
||||||
|
|
||||||
|
#define FULL_SCREEN
|
||||||
|
// else
|
||||||
|
// #define MASK_WIDTH 60
|
||||||
|
// #define MASK_HEIGHT 14
|
||||||
|
//
|
||||||
|
#define MASK_TITLE1 "Merce Lavanderie"
|
||||||
|
#define PAGE_2
|
||||||
|
|
||||||
|
DEFINE_FIELD(CODMAG)
|
||||||
|
DEFINE_FIELD(DESMAG)
|
||||||
|
DEFINE_FIELD(CODDEP)
|
||||||
|
DEFINE_FIELD(DESDEP)
|
||||||
|
DEFINE_FIELD(CODART)
|
||||||
|
// F_OUT(CODART, FR_CODAGG1, USER1)
|
||||||
|
DEFINE_FIELD(DESCRART)
|
||||||
|
DEFINE_FIELD(UMQTA)
|
||||||
|
DEFINE_FIELD(QTA)
|
||||||
|
F_POS(QTA, 21, 9,"Consegnato " )
|
||||||
|
DEFINE_FIELD(PREZZO)
|
||||||
|
F_POS(PREZZO, 47, 9,"Prezzo " )
|
||||||
|
DEFINE_FIELD(SCONTO)
|
||||||
|
F_POS(SCONTO, 2, 11,"Sconto " )
|
||||||
|
DEFINE_FIELD(PERCPROV)
|
||||||
|
F_POS(PERCPROV, 42, 11,"Provvigione" )
|
||||||
|
DEFINE_FIELD(CODIVA)
|
||||||
|
DEFINE_FIELD(DESIVA)
|
||||||
|
DEFINE_FIELD(CAULAV)
|
||||||
|
F_POS(CAULAV, 47, 10,"Causale Lavanderie " )
|
||||||
|
DEFINE_FIELD(RITIRO)
|
||||||
|
F_POS(RITIRO, 21, 10,"Ritirato " )
|
||||||
|
DEFINE_FIELD(NCOLLI)
|
||||||
|
DEFINE_FIELD(PNETTO)
|
||||||
|
DEFINE_FIELD(TARA)
|
||||||
|
DEFINE_FIELD(DESCRCAUS)
|
||||||
|
DEFINE_FIELD(CODMAGC)
|
||||||
|
DEFINE_FIELD(DESMAGC)
|
||||||
|
DEFINE_FIELD(CODDEPC)
|
||||||
|
DEFINE_FIELD(DESDEPC)
|
||||||
|
|
||||||
|
|
||||||
|
#include "verig.uml"
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user