Correzioni per Bellegotti a programma personalizzato generazione ordini da commessa
git-svn-id: svn://10.65.10.50/branches/R_10_00@22664 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
20c6de0cf3
commit
a9c5f00128
@ -191,7 +191,7 @@ bool TTabmod_caf_msk::on_field_event(TOperable_field& o, TField_event e, long jo
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case S_ARTICOLO:
|
case S_ARTICOLO:
|
||||||
if(e == fe_modify)
|
if (e == fe_modify)
|
||||||
{
|
{
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
const int rsel = sheet.selected();
|
const int rsel = sheet.selected();
|
||||||
@ -206,7 +206,7 @@ bool TTabmod_caf_msk::on_field_event(TOperable_field& o, TField_event e, long jo
|
|||||||
if (row.get(sheet.cid2index(S_ARTICOLO)) == codart)
|
if (row.get(sheet.cid2index(S_ARTICOLO)) == codart)
|
||||||
{
|
{
|
||||||
TString msg;
|
TString msg;
|
||||||
msg << "Attenzione: esiste già una riga con articolo " << codart;
|
msg << TR("Attenzione: esiste già una riga con articolo ") << codart;
|
||||||
warning_box(msg);
|
warning_box(msg);
|
||||||
|
|
||||||
sheet.select(rsel);
|
sheet.select(rsel);
|
||||||
@ -223,8 +223,7 @@ bool TTabmod_caf_msk::on_field_event(TOperable_field& o, TField_event e, long jo
|
|||||||
}
|
}
|
||||||
|
|
||||||
TTabmod_caf_msk::TTabmod_caf_msk() : TAutomask("pd0610100a")
|
TTabmod_caf_msk::TTabmod_caf_msk() : TAutomask("pd0610100a")
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TTabmod_caf_app
|
// TTabmod_caf_app
|
||||||
@ -233,22 +232,16 @@ TTabmod_caf_msk::TTabmod_caf_msk() : TAutomask("pd0610100a")
|
|||||||
class TTabmod_caf_app: public TSkeleton_application
|
class TTabmod_caf_app: public TSkeleton_application
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool check_autorization() const {return false;}
|
virtual bool check_autorization() const { return false; }
|
||||||
virtual const char * extra_modules() const {return "ve";}
|
virtual const char* extra_modules() const { return "ve"; }
|
||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
void elabora();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void TTabmod_caf_app::elabora()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void TTabmod_caf_app::main_loop()
|
void TTabmod_caf_app::main_loop()
|
||||||
{
|
{
|
||||||
TTabmod_caf_msk m;
|
TTabmod_caf_msk m;
|
||||||
while (m.run() == K_ENTER)
|
while (m.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
elabora();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -388,7 +388,6 @@ TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nr
|
|||||||
void TCrea_ordini_srm_app::elimina_ordf(const TDoc_key& adoc, TOrdf_cache& ca)
|
void TCrea_ordini_srm_app::elimina_ordf(const TDoc_key& adoc, TOrdf_cache& ca)
|
||||||
{
|
{
|
||||||
TDocumento& ordf = ca.doc(adoc);
|
TDocumento& ordf = ca.doc(adoc);
|
||||||
|
|
||||||
ordf.destroy_rows();
|
ordf.destroy_rows();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -409,52 +408,40 @@ void TCrea_ordini_srm_app::elimina_righe(const TDocumento& ordc, TOrdf_cache& ca
|
|||||||
|
|
||||||
//scorro tutte le righe degli ordini fornitori; per ogni riga controllo se esiste ancora sull'ordine cliente;
|
//scorro tutte le righe degli ordini fornitori; per ogni riga controllo se esiste ancora sull'ordine cliente;
|
||||||
//se non esiste più la elimino dall'ordine fornitore, sfruttando la cache dei documenti
|
//se non esiste più la elimino dall'ordine fornitore, sfruttando la cache dei documenti
|
||||||
for(bool ok = rdoc.move_first(); ok; ok = rdoc.move_next())
|
for (bool ok = rdoc.move_last(); ok; ok = rdoc.move_prev())
|
||||||
{
|
{
|
||||||
|
const TDoc_key kordf(rdoc.get(RDOC_ANNO).as_int(), rdoc.get(RDOC_CODNUM).as_string(), rdoc.get(RDOC_NDOC).as_int(), rdoc.get(RDOC_PROVV).as_string()[0]);
|
||||||
|
TDocumento& ordf = ca.doc(kordf);
|
||||||
|
const long codfor = ordf.get_long(DOC_CODCF);
|
||||||
|
|
||||||
const int daidriga = rdoc.get(RDOC_DAIDRIGA).as_int();
|
const int daidriga = rdoc.get(RDOC_DAIDRIGA).as_int();
|
||||||
const int nriga = rdoc.get(RDOC_NRIGA).as_int();
|
const int nriga = rdoc.get(RDOC_NRIGA).as_int();
|
||||||
TDoc_key kordf(rdoc.get(RDOC_ANNO).as_int(), rdoc.get(RDOC_CODNUM).as_string(), rdoc.get(RDOC_NDOC).as_int(), rdoc.get(RDOC_PROVV).as_string()[0]);
|
TRiga_documento& r = ordf[nriga];
|
||||||
TDocumento& ordf = ca.doc(kordf);
|
|
||||||
const long ndoc = ordf.get_long(DOC_NDOC);
|
|
||||||
const long codfor = ordf.get_long(DOC_CODCF);
|
|
||||||
// bool trovato = false;
|
|
||||||
|
|
||||||
TRiga_documento & r = ordf[nriga];
|
bool kill = false;
|
||||||
const TRectype * rordc = r.find_original_rdoc();
|
int ordc_row = 0;
|
||||||
|
for (ordc_row = ordc.physical_rows(); ordc_row > 0; ordc_row = ordc_row--)
|
||||||
if (rordc != NULL)
|
|
||||||
{
|
{
|
||||||
if (rordc->get(RDOC_PROVV) == rordc->get(DOC_PROVV) &&
|
const TRiga_documento& rc = ordc[ordc_row];
|
||||||
rordc->get(RDOC_CODNUM) == rordc->get(DOC_CODNUM) &&
|
if (rc.get_int(RDOC_IDRIGA) == daidriga)
|
||||||
rordc->get(RDOC_ANNO) == rordc->get(DOC_ANNO) &&
|
|
||||||
rordc->get(RDOC_NDOC) == rordc->get(DOC_NDOC))
|
|
||||||
{
|
{
|
||||||
if ((rordc->get_long(RDOC_CODAGG1) != codfor) &&
|
if ((rc.get_long(RDOC_CODAGG1) != codfor) && (rc.get_long(RDOC_CODAGG2) != codfor))
|
||||||
(rordc->get_long(RDOC_CODAGG2) != codfor))
|
kill = true;
|
||||||
r.put("D", "X");
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (ordc_row <= 0)
|
||||||
for(bool ok = rdoc.move_first(); ok; ok = rdoc.move_next())
|
kill = true;
|
||||||
{
|
if (kill)
|
||||||
TDoc_key kordf(rdoc.get(RDOC_ANNO).as_int(), rdoc.get(RDOC_CODNUM).as_string(), rdoc.get(RDOC_NDOC).as_int(), rdoc.get(RDOC_PROVV).as_string()[0]);
|
ordf.destroy_row(nriga, true);
|
||||||
TDocumento& ordf = ca.doc(kordf);
|
|
||||||
|
|
||||||
for(int i = ordf.physical_rows(); i >= 1 ; i--)
|
|
||||||
{
|
|
||||||
if (ordf[i].get("D") == "X")
|
|
||||||
ordf.destroy_row(i, true);
|
|
||||||
}
|
|
||||||
for (int i = 1; i <= ordf.physical_rows(); i++)
|
|
||||||
ordf[i].put(RDOC_NRIGA, i);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//ELABORA_ORDINI_CLIENTE: scorro il file ini e aggiungo alla tabella dei listini le righe mancanti
|
//ELABORA_ORDINI_CLIENTE: scorro il file ini e aggiungo alla tabella dei listini le righe mancanti
|
||||||
void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
||||||
{
|
{
|
||||||
TConfig ini(_ini_name, "33");
|
|
||||||
TString4 para; para.format("%d", LF_DOC);
|
TString4 para; para.format("%d", LF_DOC);
|
||||||
|
TConfig ini(_ini_name, para);
|
||||||
const char provv = ini.get_char(DOC_PROVV, para);
|
const char provv = ini.get_char(DOC_PROVV, para);
|
||||||
const int anno = ini.get_int(DOC_ANNO, para);
|
const int anno = ini.get_int(DOC_ANNO, para);
|
||||||
const TString& codnum = ini.get(DOC_CODNUM, para);
|
const TString& codnum = ini.get(DOC_CODNUM, para);
|
||||||
@ -462,7 +449,6 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
|||||||
const bool delete_docs = ini.get(DOC_NOTE, para) == "DELETING";
|
const bool delete_docs = ini.get(DOC_NOTE, para) == "DELETING";
|
||||||
|
|
||||||
TDoc_key dadoc(anno, codnum, ndoc, provv);
|
TDoc_key dadoc(anno, codnum, ndoc, provv);
|
||||||
TDoc_key ordf;
|
|
||||||
|
|
||||||
TDocumento ordc(provv, anno, codnum, ndoc);
|
TDocumento ordc(provv, anno, codnum, ndoc);
|
||||||
|
|
||||||
@ -479,7 +465,8 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
|||||||
|
|
||||||
if (codfor1 > 0)
|
if (codfor1 > 0)
|
||||||
{
|
{
|
||||||
if(cerca_orf(dadoc, 0, codfor1, ordf))
|
TDoc_key ordf;
|
||||||
|
if (cerca_orf(dadoc, 0, codfor1, ordf))
|
||||||
{
|
{
|
||||||
if (delete_docs)
|
if (delete_docs)
|
||||||
elimina_ordf(ordf, ca);
|
elimina_ordf(ordf, ca);
|
||||||
@ -491,8 +478,8 @@ void TCrea_ordini_srm_app::elabora_ordini_cliente()
|
|||||||
}
|
}
|
||||||
if (codfor2 > 0)
|
if (codfor2 > 0)
|
||||||
{
|
{
|
||||||
|
TDoc_key ordf;
|
||||||
if(cerca_orf(dadoc, 0, codfor2, ordf))
|
if (cerca_orf(dadoc, 0, codfor2, ordf))
|
||||||
{
|
{
|
||||||
if (delete_docs)
|
if (delete_docs)
|
||||||
elimina_ordf(ordf, ca);
|
elimina_ordf(ordf, ca);
|
||||||
@ -538,11 +525,11 @@ bool TCrea_ordini_srm_app::load_ini(bool check)
|
|||||||
|
|
||||||
void TCrea_ordini_srm_app::main_loop() //definizione della member function main_loop, della classe TCrea_ordini_srm_app
|
void TCrea_ordini_srm_app::main_loop() //definizione della member function main_loop, della classe TCrea_ordini_srm_app
|
||||||
{
|
{
|
||||||
TString sw = argv(2); sw.upper();
|
|
||||||
const bool chk_doc = sw == "-V";
|
|
||||||
|
|
||||||
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, 0);
|
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, 0);
|
||||||
|
|
||||||
|
const TFixed_string sw = argv(2);
|
||||||
|
const bool chk_doc = sw.starts_with("-V", true);
|
||||||
|
|
||||||
// mostra un messaggio di errore se non riesce ad aprire il file richiesto
|
// mostra un messaggio di errore se non riesce ad aprire il file richiesto
|
||||||
if (load_ini(chk_doc))
|
if (load_ini(chk_doc))
|
||||||
{
|
{
|
||||||
|
@ -159,9 +159,6 @@ const TString& TCarrelli_app::get_query(int tipo, bool venduto, const TString& c
|
|||||||
*/
|
*/
|
||||||
select << "USE RDOC KEY 6 SELECT DOC.TIPODOC='B01'\n";
|
select << "USE RDOC KEY 6 SELECT DOC.TIPODOC='B01'\n";
|
||||||
join << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
join << "JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
||||||
join << "JOIN CLIFO TO DOC INTO TIPOCF==TIPOCF CODCF==CODCF\n";
|
|
||||||
join << "JOIN INDSPED TO DOC INTO TIPOCF==TIPOCF CODCF==CODCF CODIND==CODINDSP\n";
|
|
||||||
join << "JOIN COMUNI TO CLIFO INTO COM==COMCF \n";
|
|
||||||
join << "FROM CODCMS=#COMM\n";
|
join << "FROM CODCMS=#COMM\n";
|
||||||
join << "TO CODCMS=#COMM\n";
|
join << "TO CODCMS=#COMM\n";
|
||||||
}
|
}
|
||||||
@ -262,13 +259,10 @@ void TCarrelli_app::elabora(const TMask& mask)const
|
|||||||
|
|
||||||
TRiepCarrelli riepilogo;
|
TRiepCarrelli riepilogo;
|
||||||
|
|
||||||
//inizializzazione variabili da utilizzare nella
|
//inizializzazione variabili da utilizzare nella struttura
|
||||||
//struttura
|
|
||||||
TString articolo;
|
TString articolo;
|
||||||
TString user[14];
|
TString user[14];
|
||||||
TString campo;
|
TString campo;
|
||||||
TString ragsoc;
|
|
||||||
TString indir;
|
|
||||||
TString16 numDoc;
|
TString16 numDoc;
|
||||||
TDate dataDoc;
|
TDate dataDoc;
|
||||||
TDate data_gara;
|
TDate data_gara;
|
||||||
@ -289,7 +283,7 @@ void TCarrelli_app::elabora(const TMask& mask)const
|
|||||||
TString commessa, commessaOld;
|
TString commessa, commessaOld;
|
||||||
|
|
||||||
TProgind pi(riep.items(), title());
|
TProgind pi(riep.items(), title());
|
||||||
for(bool ok = riep.move_first();ok;ok=riep.move_next())
|
for (bool ok = riep.move_first();ok;ok=riep.move_next())
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
if (!pi.addstatus(1))
|
||||||
break;
|
break;
|
||||||
@ -317,46 +311,27 @@ void TCarrelli_app::elabora(const TMask& mask)const
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(commessa==commessaOld ||
|
if(commessa==commessaOld || commessa.empty() || articolo.empty())
|
||||||
commessa.empty() ||
|
|
||||||
articolo.empty())
|
|
||||||
{
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
commessaOld=commessa;
|
commessaOld=commessa;
|
||||||
|
|
||||||
int numUser = 1;
|
|
||||||
//if(articolo.not_empty())
|
//if(articolo.not_empty())
|
||||||
{
|
{
|
||||||
for(int a = 0; a<14; a++) //da B a N
|
for(int a = 0; a<14; a++) //da B a N
|
||||||
{
|
{
|
||||||
campo = "ANAMAG.USER";
|
campo = "ANAMAG.USER";
|
||||||
campo << numUser;
|
campo << (a+1);
|
||||||
user[a] = riep.get(campo).as_string();
|
user[a] = riep.get(campo).as_string();
|
||||||
numUser++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ragsoc = "";//M
|
|
||||||
indir = "";//N
|
|
||||||
dataDoc= "";//O
|
dataDoc= "";//O
|
||||||
|
|
||||||
TISAM_recordset bolle(get_query(1));
|
TISAM_recordset bolle(get_query(1));
|
||||||
bolle.set_var("#COMM",TVariant(articolo));
|
bolle.set_var("#COMM",TVariant(articolo));
|
||||||
if (bolle.move_last())
|
if (bolle.move_last())
|
||||||
{
|
{
|
||||||
ragsoc = bolle.get("CLIFO.RAGSOC").as_string();
|
|
||||||
indir = bolle.get("INDSPED.LOCALITA").as_string();
|
|
||||||
dataDoc= bolle.get("DOC.DATADOC").as_date();
|
dataDoc= bolle.get("DOC.DATADOC").as_date();
|
||||||
numDoc = bolle.get("DOC.NDOC").as_string();
|
numDoc = bolle.get("DOC.NDOC").as_string();
|
||||||
indir = bolle.get("COMUNI.DENCOM").as_string();
|
|
||||||
TString4 prov = bolle.get("COMUNI.PROVCOM").as_string();
|
|
||||||
if (prov.full())
|
|
||||||
indir.trim() << "(" << prov.trim() << ")";
|
|
||||||
}
|
|
||||||
if (ragsoc.full())
|
|
||||||
{
|
|
||||||
user[11] = ragsoc;
|
|
||||||
user[12] = indir ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
importob = riep.get("COMMESSE.IMPORTOB").as_real();//P
|
importob = riep.get("COMMESSE.IMPORTOB").as_real();//P
|
||||||
@ -411,16 +386,6 @@ void TCarrelli_app::elabora(const TMask& mask)const
|
|||||||
}
|
}
|
||||||
|
|
||||||
//MANUTENZIONE
|
//MANUTENZIONE
|
||||||
/*
|
|
||||||
manutenzione.set_price(0);//U
|
|
||||||
TISAM_recordset manut(get_query_saldana("003071000003"));
|
|
||||||
manut.set_var("#COMM",TVariant(articolo));
|
|
||||||
for(bool ok2 = manut.move_first();ok2;ok2=manut.move_next())
|
|
||||||
{
|
|
||||||
manutenzione += manut.get("SALDANA.SALDO").as_real();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
revisione = manutenzione = ZERO;
|
revisione = manutenzione = ZERO;
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RMOVANA KEY 4 SELECT CODCONTO='003071000003'"
|
query << "USE RMOVANA KEY 4 SELECT CODCONTO='003071000003'"
|
||||||
@ -449,16 +414,17 @@ void TCarrelli_app::elabora(const TMask& mask)const
|
|||||||
sino al 003 081 999999 (leasing)
|
sino al 003 081 999999 (leasing)
|
||||||
*/
|
*/
|
||||||
venduto_a = user[0];//W
|
venduto_a = user[0];//W
|
||||||
prezzoVend.set_price(0);//X
|
prezzoVend = ZERO;//X
|
||||||
if(venduto_a.empty())
|
|
||||||
|
if (venduto_a.empty())
|
||||||
{
|
{
|
||||||
//VENDUTO
|
//VENDUTO
|
||||||
TISAM_recordset saldana(get_query_saldana("004076000003"));
|
TISAM_recordset saldana(get_query_saldana("004076000003"));
|
||||||
saldana.set_var("#COMM",TVariant(articolo));
|
saldana.set_var("#COMM",TVariant(articolo));
|
||||||
for(bool ok2 = saldana.move_last();ok2;ok2=saldana.move_next())
|
for(bool ok2 = saldana.move_last(); ok2; ok2=saldana.move_next())
|
||||||
{
|
{
|
||||||
venduto_a = "VENDUTO";
|
venduto_a = "VENDUTO";
|
||||||
prezzoVend = prezzoVend + saldana.get("SALDANA.SALDO").as_real();
|
prezzoVend += saldana.get("SALDANA.SALDO").as_real();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(venduto_a.empty())
|
if(venduto_a.empty())
|
||||||
@ -466,7 +432,7 @@ void TCarrelli_app::elabora(const TMask& mask)const
|
|||||||
//CESPITE
|
//CESPITE
|
||||||
TISAM_recordset cespite(get_query(4));
|
TISAM_recordset cespite(get_query(4));
|
||||||
cespite.set_var("#COMM",TVariant(articolo));
|
cespite.set_var("#COMM",TVariant(articolo));
|
||||||
for(bool ok2 = cespite.move_last();ok2;ok2=cespite.move_next())
|
for(bool ok2 = cespite.move_last(); ok2; ok2=cespite.move_next())
|
||||||
{
|
{
|
||||||
venduto_a = "CESPITE";
|
venduto_a = "CESPITE";
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user