Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Creazione ordini fornitore SRM git-svn-id: svn://10.65.10.50/branches/R_10_00@21353 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8c66b5385b
commit
05c5aa97ee
@ -51,7 +51,10 @@ void TTabmod_caf_msk::riempi_sheet()
|
|||||||
row.add(codtab.mid(6), sheet.cid2index(S_ARTICOLO));
|
row.add(codtab.mid(6), sheet.cid2index(S_ARTICOLO));
|
||||||
row.add(forn1, sheet.cid2index(S_FORN1));
|
row.add(forn1, sheet.cid2index(S_FORN1));
|
||||||
row.add(forn2, sheet.cid2index(S_FORN2));
|
row.add(forn2, sheet.cid2index(S_FORN2));
|
||||||
|
sheet.disable_cell(sheet.items()-1 , sheet.cid2index(S_ARTICOLO));
|
||||||
|
sheet.disable_cell(sheet.items()-1 , sheet.cid2index(S_DESART));
|
||||||
sheet.check_row(sheet.items()-1);
|
sheet.check_row(sheet.items()-1);
|
||||||
|
|
||||||
}
|
}
|
||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
}
|
}
|
||||||
@ -64,7 +67,10 @@ void TTabmod_caf_msk::aggiungi_riga()
|
|||||||
|
|
||||||
TSheet_field& sheet = sfield(F_SHEET);
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
TToken_string& row = sheet.row(-1);
|
TToken_string& row = sheet.row(-1);
|
||||||
|
|
||||||
row.add(cliente, sheet.cid2index(S_CLIENTE));
|
row.add(cliente, sheet.cid2index(S_CLIENTE));
|
||||||
|
sheet.enable_cell(sheet.items() - 1, sheet.cid2index(S_ARTICOLO));
|
||||||
|
sheet.enable_cell(sheet.items() - 1, sheet.cid2index(S_DESART));
|
||||||
sheet.force_update();
|
sheet.force_update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,19 +95,19 @@ void TTabmod_caf_msk::registra()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
long forn1 = 0;
|
const long forn1 = row.get_long(sheet.cid2index(S_FORN1));
|
||||||
long forn2 = 0;
|
const long forn2 = row.get_long(sheet.cid2index(S_FORN2));
|
||||||
const char* s1 = row.get(sheet.cid2index(S_FORN1));
|
|
||||||
if (s1 != NULL)
|
|
||||||
forn1 = atol(s1);
|
|
||||||
const char* s2 = row.get(sheet.cid2index(S_FORN2));
|
|
||||||
if (s2 != NULL)
|
|
||||||
forn2 = atol(s2);
|
|
||||||
caf.put("CODTAB", codtab);
|
caf.put("CODTAB", codtab);
|
||||||
|
if (forn1 > 0 || forn2 > 0)
|
||||||
|
{
|
||||||
caf.put("I0", forn1);
|
caf.put("I0", forn1);
|
||||||
caf.put("I1", forn2);
|
caf.put("I1", forn2);
|
||||||
caf.rewrite_write();
|
caf.rewrite_write();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
caf.remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
riempi_sheet();
|
riempi_sheet();
|
||||||
}
|
}
|
||||||
@ -144,7 +150,8 @@ bool TTabmod_caf_msk::on_field_event(TOperable_field& o, TField_event e, long jo
|
|||||||
aggiungi_riga();
|
aggiungi_riga();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(e == se_query_del)
|
else
|
||||||
|
if (e == se_query_del)
|
||||||
{
|
{
|
||||||
TSheet_field& sheet = (TSheet_field&)o;
|
TSheet_field& sheet = (TSheet_field&)o;
|
||||||
TToken_string& row = sheet.row(jolly);
|
TToken_string& row = sheet.row(jolly);
|
||||||
@ -154,6 +161,15 @@ bool TTabmod_caf_msk::on_field_event(TOperable_field& o, TField_event e, long jo
|
|||||||
TButton_field& button = (TButton_field&)sheet.sheet_mask().field(DLG_DELREC);
|
TButton_field& button = (TButton_field&)sheet.sheet_mask().field(DLG_DELREC);
|
||||||
return on_field_event(button, fe_button, 1);
|
return on_field_event(button, fe_button, 1);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
if (e == se_leave)
|
||||||
|
{
|
||||||
|
TSheet_field& sheet = (TSheet_field&)o;
|
||||||
|
|
||||||
|
sheet.disable_cell(jolly , sheet.cid2index(S_ARTICOLO));
|
||||||
|
sheet.disable_cell(jolly , sheet.cid2index(S_DESART));
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case S_ARTICOLO:
|
case S_ARTICOLO:
|
||||||
if(e == fe_modify)
|
if(e == fe_modify)
|
||||||
|
@ -118,16 +118,10 @@ public:
|
|||||||
void TOrdf_cache::discarding(const THash_object* obj)
|
void TOrdf_cache::discarding(const THash_object* obj)
|
||||||
{
|
{
|
||||||
TDocumento& doc = (TDocumento&)obj->obj();
|
TDocumento& doc = (TDocumento&)obj->obj();
|
||||||
if (doc.physical_rows() > 1)
|
if (doc.physical_rows() == 0 || (doc.physical_rows() == 1 && doc[1].get(RDOC_TIPORIGA) == "05"))
|
||||||
{
|
|
||||||
TRiga_documento& rdoc = doc[2];
|
|
||||||
doc.put(DOC_CODCMS, rdoc.get(RDOC_CODCMS));
|
|
||||||
doc.put(DOC_FASCMS, rdoc.get(RDOC_FASCMS));
|
|
||||||
doc.put(DOC_CODCOSTO, rdoc.get(RDOC_CODCOSTO));
|
|
||||||
int err = doc.rewrite();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
doc.remove();
|
doc.remove();
|
||||||
|
else
|
||||||
|
doc.rewrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
//KEY2OBJ:sceglie il documento giusto da disco in modo da poterlo continuare, o lo crea se non c'è
|
//KEY2OBJ:sceglie il documento giusto da disco in modo da poterlo continuare, o lo crea se non c'è
|
||||||
@ -147,8 +141,6 @@ TObject* TOrdf_cache::key2obj(const char* key)
|
|||||||
doc->put(DOC_CODCF, codcf);
|
doc->put(DOC_CODCF, codcf);
|
||||||
doc->put(DOC_DATADOC, _data);
|
doc->put(DOC_DATADOC, _data);
|
||||||
doc->put(DOC_DATACONS, _data);
|
doc->put(DOC_DATACONS, _data);
|
||||||
|
|
||||||
doc->cli2doc();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -280,48 +272,17 @@ const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const long cod
|
|||||||
return prezzo;
|
return prezzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
//CERCA_ORF: cerco se esistono degli ordini fornitori che arrivano dall'ordine cliente in esame
|
|
||||||
/*const void TCrea_ordini_srm_app::cerca_orf(TDoc_key& dadoc, const long daidriga, const long codfor, TDoc_key& ordf)
|
|
||||||
{
|
|
||||||
TLocalisamfile rdoc(LF_RIGHEDOC);
|
|
||||||
|
|
||||||
rdoc.setkey(4);
|
|
||||||
rdoc.put(RDOC_DAPROVV, dadoc.provv());
|
|
||||||
rdoc.put(RDOC_DAANNO, dadoc.anno());
|
|
||||||
rdoc.put(RDOC_DACODNUM, dadoc.codnum());
|
|
||||||
rdoc.put(RDOC_DANDOC, dadoc.ndoc());
|
|
||||||
rdoc.put(RDOC_DAIDRIGA, daidriga);
|
|
||||||
|
|
||||||
const int err = rdoc.read();
|
|
||||||
ordf = TDoc_key(0, "", 0, ' ');
|
|
||||||
|
|
||||||
|
|
||||||
if (err == NOERR)
|
|
||||||
{
|
|
||||||
const char provv = rdoc.get_char(RDOC_PROVV);
|
|
||||||
const int anno = rdoc.get_int(RDOC_ANNO);
|
|
||||||
const TString8 codnum = rdoc.get(RDOC_CODNUM);
|
|
||||||
const long ndoc = rdoc.get_long(RDOC_NDOC);
|
|
||||||
TToken_string key;
|
|
||||||
|
|
||||||
key.add(provv);
|
|
||||||
key.add(anno);
|
|
||||||
key.add(codnum);
|
|
||||||
key.add(ndoc);
|
|
||||||
const long codcf = atol(cache().get(LF_DOC, key, DOC_CODCF));
|
|
||||||
|
|
||||||
if (codcf == codfor)
|
|
||||||
ordf = TDoc_key(anno, codnum, ndoc, provv);
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
|
|
||||||
//CERCA_ORF: cerco se esistono degli ordini fornitori che arrivano dall'ordine cliente in esame
|
//CERCA_ORF: cerco se esistono degli ordini fornitori che arrivano dall'ordine cliente in esame
|
||||||
const bool TCrea_ordini_srm_app::cerca_orf(TDoc_key& dadoc, const long daidriga, const long codfor, TDoc_key& ordf)
|
const bool TCrea_ordini_srm_app::cerca_orf(TDoc_key& dadoc, const long daidriga, const long codfor, TDoc_key& ordf)
|
||||||
{
|
{
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RDOC KEY 4\n"
|
query << "USE RDOC KEY 4\n"
|
||||||
<< "FROM DAPROVV=\"" << dadoc.provv() << "\" DAANNO=" << dadoc.anno() << " DACODNUM=\"" << dadoc.codnum() << "\" DANDOC=" << dadoc.ndoc() << " DAIDRIGA=" << daidriga << "\n"
|
<< "FROM DAPROVV=\"" << dadoc.provv() << "\" DAANNO=" << dadoc.anno() << " DACODNUM=\"" << dadoc.codnum() << "\" DANDOC=" << dadoc.ndoc() << " DAIDRIGA=" << daidriga << "\n"
|
||||||
<< "TO DAPROVV=\"" << dadoc.provv() << "\" DAANNO=" << dadoc.anno() << " DACODNUM=\"" << dadoc.codnum() << "\" DANDOC=" << dadoc.ndoc() << " DAIDRIGA=" << daidriga;
|
<< "TO DAPROVV=\"" << dadoc.provv() << "\" DAANNO=" << dadoc.anno() << " DACODNUM=\"" << dadoc.codnum() << "\" DANDOC=" << dadoc.ndoc();
|
||||||
|
if (daidriga > 0)
|
||||||
|
query << " DAIDRIGA=" << daidriga << "\n";
|
||||||
|
else
|
||||||
|
query << " DAIDRIGA=999999\n";
|
||||||
|
|
||||||
TISAM_recordset rdoc(query);
|
TISAM_recordset rdoc(query);
|
||||||
|
|
||||||
@ -398,7 +359,17 @@ void TCrea_ordini_srm_app::aggiorna_ordf(const TDocumento& ordc, const int nriga
|
|||||||
//CREA_ORDF: creo un nuovo ordine cliente
|
//CREA_ORDF: creo un nuovo ordine cliente
|
||||||
TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca)
|
TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nriga, const long codfor, TOrdf_cache& ca)
|
||||||
{
|
{
|
||||||
TDocumento& ordf = ca.doc(codfor);
|
TDoc_key kordf;
|
||||||
|
TDoc_key kdadoc(ordc.get_int(DOC_ANNO), ordc.get(DOC_CODNUM), ordc.get_long(DOC_NDOC), ordc.get_char(DOC_PROVV));
|
||||||
|
TDocumento * wrk = cerca_orf(kdadoc, 0, codfor, kordf) ? &ca.doc(kordf) : &ca.doc(codfor);
|
||||||
|
TDocumento& ordf = *wrk;
|
||||||
|
|
||||||
|
if (ordf.physical_rows() == 0)
|
||||||
|
{
|
||||||
|
ordf.cli2doc();
|
||||||
|
ordf.put(DOC_CODCMS, ordc.get(DOC_CODCMS));
|
||||||
|
ordf.put(DOC_CODCOSTO, ordc.get(DOC_CODCOSTO));
|
||||||
|
ordf.put(DOC_FASCMS, ordc.get(RDOC_FASCMS));
|
||||||
TRiga_documento & row = ordf.new_row("05");
|
TRiga_documento & row = ordf.new_row("05");
|
||||||
TString rif;
|
TString rif;
|
||||||
|
|
||||||
@ -411,6 +382,7 @@ TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nr
|
|||||||
rif << " del " << ordc.get(DOC_DATADOC);
|
rif << " del " << ordc.get(DOC_DATADOC);
|
||||||
|
|
||||||
row.put(RDOC_DESCR, rif);
|
row.put(RDOC_DESCR, rif);
|
||||||
|
}
|
||||||
ordini_fornitore(ordc, nriga, ordf);
|
ordini_fornitore(ordc, nriga, ordf);
|
||||||
return new TDoc_key(ordf.get_int(DOC_ANNO), ordf.get(DOC_CODNUM), ordf.get_long(DOC_NDOC), ordf.get_char(DOC_PROVV));
|
return new TDoc_key(ordf.get_int(DOC_ANNO), ordf.get(DOC_CODNUM), ordf.get_long(DOC_NDOC), ordf.get_char(DOC_PROVV));
|
||||||
}
|
}
|
||||||
@ -445,24 +417,40 @@ void TCrea_ordini_srm_app::elimina_righe(const TDocumento& ordc, const TAssoc_ar
|
|||||||
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]);
|
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);
|
||||||
|
|
||||||
bool trovato = false;
|
bool trovato = false;
|
||||||
|
|
||||||
if (ords.is_key(kordf))
|
if (ords.is_key(kordf))
|
||||||
{
|
{
|
||||||
for(int i = 1; i <= ordc.rows(); i++)
|
for(int i = 1; i <= ordc.physical_rows(); i++)
|
||||||
{
|
{
|
||||||
TRiga_documento rdoc = ordc[i];
|
TRiga_documento rdoc = ordc[i];
|
||||||
|
|
||||||
if(daidriga == rdoc.get_long(RDOC_IDRIGA))
|
if (daidriga == rdoc.get_long(RDOC_IDRIGA))
|
||||||
trovato = true;
|
{
|
||||||
|
trovato = rdoc.get_long(RDOC_CODAGG1) == codfor;
|
||||||
|
trovato |= rdoc.get_long(RDOC_CODAGG2) == codfor;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!trovato)
|
if (!trovato)
|
||||||
|
ordf.put(RDOC_NRIGA, 0);
|
||||||
|
}
|
||||||
|
for(bool ok = rdoc.move_first(); ok; ok = rdoc.move_next())
|
||||||
{
|
{
|
||||||
|
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);
|
TDocumento& ordf = ca.doc(kordf);
|
||||||
|
|
||||||
|
for(int i = 1; i <= ordf.physical_rows(); i++)
|
||||||
|
{
|
||||||
|
if (ordf.get_int(RDOC_NRIGA) == 0)
|
||||||
ordf.destroy_row(nriga, true);
|
ordf.destroy_row(nriga, true);
|
||||||
}
|
}
|
||||||
|
for (int i = 1; i <= ordf.physical_rows(); i++)
|
||||||
|
ordf.put(RDOC_NRIGA, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -565,9 +553,6 @@ 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
|
||||||
{
|
{
|
||||||
#ifdef DBG
|
|
||||||
message_box("start program");
|
|
||||||
#endif
|
|
||||||
TString sw(argv(2)); sw.upper();
|
TString sw(argv(2)); sw.upper();
|
||||||
const bool chk_doc = sw == "-V";
|
const bool chk_doc = sw == "-V";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user