Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22356 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c88a888656
commit
e686e0b051
187
ps/ps0430300.cpp
187
ps/ps0430300.cpp
@ -7,6 +7,7 @@
|
||||
#include <progind.h>
|
||||
#include <reprint.h>
|
||||
#include <utility.h>
|
||||
#include <xvtility.h>
|
||||
|
||||
#include "../or/orlib.h"
|
||||
#include "../cg/cglib01.h"
|
||||
@ -94,13 +95,14 @@ class TGenera_ordini_mask : public TAutomask
|
||||
TString _doc_filter;
|
||||
int _days_interval;
|
||||
int _riga_da_selezionare;
|
||||
short _campo_da_selezionare;
|
||||
bool _filter_changed, _order_changed;
|
||||
|
||||
private:
|
||||
void serialize(bool bSave);
|
||||
void load_user_defs();
|
||||
void update_sheet();
|
||||
void update_orders();
|
||||
void update_documents();
|
||||
void reconstruction(const TDocumento& doc2delete);
|
||||
|
||||
protected:
|
||||
@ -132,12 +134,12 @@ public:
|
||||
void generate_orders();
|
||||
void generate_carics();
|
||||
void generate_docs_head(const char type, const TSheet_field& sf,
|
||||
long& minforn, long& maxforn, TAssoc_array& orders);
|
||||
long& minforn, long& maxforn, TAssoc_array& documents);
|
||||
void generate_caric_row(const TSheet_field& sf, TToken_string* row, const real qta,
|
||||
TDocumento* d,TRiga_documento& rdoc, TLocalisamfile& righedoc);
|
||||
void generate_order_row(const TSheet_field& sf, TToken_string* row, const real qta,
|
||||
TDocumento* d, TRiga_documento& rdoc, const TRectype& forn, const TRectype& fornven);
|
||||
void write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& orders);
|
||||
void write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& documents);
|
||||
|
||||
virtual bool create();
|
||||
virtual void main_loop();
|
||||
@ -273,34 +275,34 @@ void TGenera_ordini_mask::update_sheet()
|
||||
TToken_string & row = sf.row(i);
|
||||
const TString & codart = recset.get(LF_ANAMAG, ANAMAG_CODART).as_string();
|
||||
|
||||
row.add(codart, sf.cid2index(SO_CODART));
|
||||
row.add(codart, sf.cid2index(SA_CODART));
|
||||
art.read(codart);
|
||||
const real giac = art.giacenza_anno(codmag, "", anno);
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SO_DESCR));
|
||||
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SO_UM));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCR).as_string(), sf.cid2index(SA_DESCR));
|
||||
row.add(recset.get("UMART.UM").as_string(), sf.cid2index(SA_UM));
|
||||
|
||||
const long codforn = recset.get(LF_ANAMAG, ANAMAG_CODFORN).as_int();
|
||||
|
||||
row.add(codforn, sf.cid2index(SO_FORNITORE));
|
||||
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SO_RAGSOC));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(SO_LEADTIME));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(SO_LOTTOMIN));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SO_DESCRAGG));
|
||||
row.add(giac.string(), sf.cid2index(SO_GIACENZA));
|
||||
row.add(codforn, sf.cid2index(SA_FORNITORE));
|
||||
row.add(recset.get("CLIFO.RAGSOC").as_string(), sf.cid2index(SA_RAGSOC));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(SA_LEADTIME));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_LOTTORIOR).as_string(), sf.cid2index(SA_LOTTOMIN));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_DESCRAGG).as_string(), sf.cid2index(SA_DESCRAGG));
|
||||
row.add(giac.string(), sf.cid2index(SA_GIACENZA));
|
||||
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_PPCONF).as_string(), sf.cid2index(SO_PPCONF));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(SO_USER1));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(SO_USER2));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(SO_USER3));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(SO_USER4));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(SO_USER5));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(SO_USER6));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(SO_USER7));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(SO_USER8));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(SO_USER9));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SO_USER10));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_PPCONF).as_string(), sf.cid2index(SA_PPCONF));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER1).as_string(), sf.cid2index(SA_USER1));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER2).as_string(), sf.cid2index(SA_USER2));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER3).as_string(), sf.cid2index(SA_USER3));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER4).as_string(), sf.cid2index(SA_USER4));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER5).as_string(), sf.cid2index(SA_USER5));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER6).as_string(), sf.cid2index(SA_USER6));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER7).as_string(), sf.cid2index(SA_USER7));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER8).as_string(), sf.cid2index(SA_USER8));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER9).as_string(), sf.cid2index(SA_USER9));
|
||||
row.add(recset.get(LF_ANAMAG, ANAMAG_USER10).as_string(), sf.cid2index(SA_USER10));
|
||||
const real disp = art.disponibilita(codes, get(F_MAG), NULL);
|
||||
row.add(disp.string(), sf.cid2index(SO_DISPON));
|
||||
row.add(disp.string(), sf.cid2index(SA_DISPON));
|
||||
sf.check_row(i);
|
||||
if (check_expr)
|
||||
{
|
||||
@ -326,12 +328,12 @@ void TGenera_ordini_mask::update_sheet()
|
||||
sf.force_update();
|
||||
}
|
||||
|
||||
void TGenera_ordini_mask::update_orders()
|
||||
void TGenera_ordini_mask::update_documents()
|
||||
{
|
||||
_order_changed = false;
|
||||
TWait_cursor hourglass;
|
||||
|
||||
TSheet_field& sh = sfield(F_ORDERS);
|
||||
TSheet_field& sh = sfield(F_DOCUMENTS);
|
||||
sh.destroy();
|
||||
|
||||
TString query;
|
||||
@ -395,9 +397,9 @@ void TGenera_ordini_mask::next_page(int p)
|
||||
}
|
||||
if (_order_changed)
|
||||
{
|
||||
const TSheet_field& sf = sfield(F_ORDERS);
|
||||
const TSheet_field& sf = sfield(F_DOCUMENTS);
|
||||
if (win() == sf.parent())
|
||||
update_orders();
|
||||
update_documents();
|
||||
}
|
||||
|
||||
}
|
||||
@ -409,19 +411,19 @@ bool TGenera_ordini_mask::on_sheet_event(TOperable_field& o, TField_event e, lon
|
||||
case se_query_del:
|
||||
case se_query_add:
|
||||
return false;
|
||||
|
||||
case fe_init:
|
||||
if (o.dlg() == F_ARTICLES)
|
||||
update_sheet();
|
||||
else
|
||||
update_orders();
|
||||
update_documents();
|
||||
break;
|
||||
|
||||
//gestione automatica immissione qta per articolo (con terminalino)
|
||||
case se_notify_modify:
|
||||
if (o.dlg() == F_ARTICLES)
|
||||
{
|
||||
TEdit_field& cc = efield(F_CAZ_CODART);
|
||||
cc.reset();
|
||||
cc.set_focus();
|
||||
_campo_da_selezionare = F_CAZ_CODART;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -512,7 +514,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
case F_DASTATO:
|
||||
case F_ASTATO:
|
||||
if (e == fe_modify)
|
||||
update_orders();
|
||||
update_documents();
|
||||
break;
|
||||
|
||||
case F_CAZ_CODART: //ricerca riga da codart in testa alla maschera
|
||||
@ -618,7 +620,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
capp().print_doc(c->curr());
|
||||
|
||||
update_sheet();
|
||||
update_orders();
|
||||
update_documents();
|
||||
}
|
||||
ok = false; // Non uscire
|
||||
}
|
||||
@ -666,7 +668,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
doc.remove();
|
||||
}
|
||||
update_sheet();
|
||||
update_orders();
|
||||
update_documents();
|
||||
}
|
||||
ok = false; // Non uscire
|
||||
}
|
||||
@ -675,7 +677,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
if (e == fe_button && jolly == 0)
|
||||
{
|
||||
capp().generate_orders();
|
||||
update_orders();
|
||||
update_documents();
|
||||
update_sheet();
|
||||
ok = false;
|
||||
}
|
||||
@ -684,7 +686,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
|
||||
if (e == fe_button && jolly == 0)
|
||||
{
|
||||
capp().generate_carics();
|
||||
update_orders();
|
||||
update_documents();
|
||||
update_sheet();
|
||||
ok = false;
|
||||
}
|
||||
@ -740,12 +742,23 @@ void TGenera_ordini_mask::on_idle()
|
||||
TAutomask::on_idle();
|
||||
if (_riga_da_selezionare >= 0)
|
||||
{
|
||||
TString msg;
|
||||
msg << "Vado alla riga " << _riga_da_selezionare;
|
||||
xvtil_statbar_set(msg);
|
||||
//si posiziona sulla qta
|
||||
TSheet_field& sf_righe = sfield(F_ARTICLES);
|
||||
const int column = sf_righe.cid2index(SO_QTA);
|
||||
sf_righe.select(_riga_da_selezionare, column, true);
|
||||
_riga_da_selezionare = -1;
|
||||
sf_righe.set_focus();
|
||||
sf_righe.select(_riga_da_selezionare, true);
|
||||
_riga_da_selezionare = -1;
|
||||
}
|
||||
|
||||
//si riposiziona sul campo selezionatore resettandolo in modo da perdere il precedente articolo
|
||||
if (_campo_da_selezionare > 0)
|
||||
{
|
||||
TEdit_field& cc = efield(_campo_da_selezionare);
|
||||
_campo_da_selezionare = -1;
|
||||
cc.reset();
|
||||
cc.set_focus();
|
||||
}
|
||||
}
|
||||
|
||||
@ -780,8 +793,8 @@ TGenera_ordini_mask::TGenera_ordini_mask()
|
||||
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
const int col = sh.cid2index(SO_USER1 + i -1);
|
||||
TEditable_field & f = sh_mask.efield(SO_USER1 + i - 1);
|
||||
const int col = sh.cid2index(SA_USER1 + i -1);
|
||||
TEditable_field & f = sh_mask.efield(SA_USER1 + i - 1);
|
||||
|
||||
if (c.get_bool("CHK_USER", "ve", i) && c.get_bool("USERDEF", "or", i))
|
||||
{
|
||||
@ -799,6 +812,7 @@ TGenera_ordini_mask::TGenera_ordini_mask()
|
||||
|
||||
//resetta l'indicatore di riga da selezionare
|
||||
_riga_da_selezionare = -1;
|
||||
_campo_da_selezionare = -1;
|
||||
}
|
||||
|
||||
TGenera_ordini_mask::~TGenera_ordini_mask()
|
||||
@ -835,28 +849,30 @@ void TCreazione_ordini::print()
|
||||
{
|
||||
_mask->field(DLG_PRINT).on_hit();
|
||||
}
|
||||
|
||||
|
||||
void TCreazione_ordini::print_doc(const TRectype & doc)
|
||||
{
|
||||
const TTipo_documento tipo(doc.get(DOC_TIPODOC));
|
||||
|
||||
TFilename rep; tipo.main_print_profile(rep, 0);
|
||||
rep.ext("rep");
|
||||
|
||||
TString commandline;
|
||||
if (rep.custom_path()) // Esiste il nuovo report :-)
|
||||
commandline = "ve1 -2";
|
||||
else // Esiste il vecchio form :-(
|
||||
commandline = "ve1 -0";
|
||||
|
||||
commandline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
|
||||
commandline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC);
|
||||
commandline << " D";
|
||||
TFilename rep;
|
||||
tipo.main_print_profile(rep, 0);
|
||||
|
||||
TString cmdline;
|
||||
if (rep.ends_with("rep", true)) // Esiste il nuovo report :-)
|
||||
cmdline = "ve1 -2";
|
||||
else // Esiste il vecchio form :-(
|
||||
cmdline = "ve1 -0";
|
||||
|
||||
cmdline << ' ' << doc.get(DOC_CODNUM) << ' ' << doc.get(DOC_ANNO) << ' ';
|
||||
cmdline << doc.get(DOC_PROVV) << ' ' << doc.get(DOC_NDOC) << ' ' << doc.get(DOC_NDOC);
|
||||
cmdline << " D";
|
||||
|
||||
const int ncopie = tipo.ncopie();
|
||||
if (ncopie > 0)
|
||||
commandline << ' ' << ncopie;
|
||||
cmdline << ' ' << ncopie;
|
||||
|
||||
TExternal_app interattivo( commandline );
|
||||
TExternal_app interattivo( cmdline );
|
||||
|
||||
interattivo.run();
|
||||
}
|
||||
@ -922,7 +938,7 @@ void TCreazione_ordini::generate_caric_row(const TSheet_field& sf, TToken_string
|
||||
void TCreazione_ordini::generate_order_row(const TSheet_field& sf, TToken_string* row, const real qta,
|
||||
TDocumento* d, TRiga_documento& rdoc, const TRectype& forn, const TRectype& fornven)
|
||||
{
|
||||
const TString codart = row->get(sf.cid2index(SO_CODART));
|
||||
const TString codart = row->get(sf.cid2index(SA_CODART));
|
||||
|
||||
TString8 codmag = _mask->get(F_MAG);
|
||||
codmag.right_just(3);
|
||||
@ -939,19 +955,19 @@ void TCreazione_ordini::generate_order_row(const TSheet_field& sf, TToken_string
|
||||
rdoc.put(RDOC_CODART, codart);
|
||||
rdoc.put(RDOC_CODARTMAG, codart);
|
||||
rdoc.put(RDOC_CHECKED, "X");
|
||||
rdoc.put(RDOC_DESCR, row->get(sf.cid2index(SO_DESCR)));
|
||||
rdoc.put(RDOC_DESCR, row->get(sf.cid2index(SA_DESCR)));
|
||||
|
||||
const TString descr_agg = row->get(sf.cid2index(SO_DESCRAGG));
|
||||
const TString descr_agg = row->get(sf.cid2index(SA_DESCRAGG));
|
||||
if (descr_agg.full())
|
||||
{
|
||||
rdoc.put(RDOC_DESCLUNGA, "X");
|
||||
rdoc.put(RDOC_DESCEST, descr_agg);
|
||||
}
|
||||
|
||||
rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(SO_UM)));
|
||||
rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(SA_UM)));
|
||||
rdoc.put(RDOC_QTA, qta);
|
||||
|
||||
const TDate datacons(row->get(sf.cid2index(SO_DATACONS)));
|
||||
const TDate datacons(row->get(sf.cid2index(SA_DATACONS)));
|
||||
rdoc.put(RDOC_DATACONS, datacons);
|
||||
|
||||
const TRectype& articolo = cache().get(LF_ANAMAG, codart);
|
||||
@ -971,23 +987,24 @@ void TCreazione_ordini::generate_order_row(const TSheet_field& sf, TToken_string
|
||||
else
|
||||
rdoc.put(RDOC_CODIVA, articolo.get(ANAMAG_CODIVA));
|
||||
|
||||
const TString commessa = row->get(sf.cid2index(SO_CDC));
|
||||
const TString fase = row->get(sf.cid2index(SO_FSC));
|
||||
const TString commessa = row->get(sf.cid2index(SA_CDC));
|
||||
const TString fase = row->get(sf.cid2index(SA_FSC));
|
||||
rdoc.put(RDOC_CODCMS, commessa);
|
||||
rdoc.put(RDOC_FASCMS, fase);
|
||||
|
||||
for (int i = 0; i < 10 ; i++)
|
||||
if (_userfld.row(i).full())
|
||||
rdoc.put(_userfld.row(i), _mask->get(SO_USER1 + i));
|
||||
rdoc.put(_userfld.row(i), _mask->get(SA_USER1 + i));
|
||||
|
||||
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(SO_CODAGG1)));
|
||||
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SO_CODAGG2)));
|
||||
rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(SA_CODAGG1)));
|
||||
rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(SA_CODAGG2)));
|
||||
}
|
||||
|
||||
|
||||
//genera la testata del documento di 'C'arico o dell''O'rdine
|
||||
//genera la testata del documento di 'C'arico o dell''O'rdine e chiama i metodi per creare le righe..
|
||||
//..di entrambi
|
||||
void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field& sf,
|
||||
long& minforn, long& maxforn, TAssoc_array& orders)
|
||||
long& minforn, long& maxforn, TAssoc_array& documents)
|
||||
{
|
||||
TString msg;
|
||||
TString4 codnum, tipodoc;
|
||||
@ -1049,9 +1066,9 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
|
||||
}
|
||||
else
|
||||
{
|
||||
qta = row->get(sf.cid2index(SO_QTA));
|
||||
codforn = row->get(sf.cid2index(SO_FORNITORE));
|
||||
datacons = row->get(sf.cid2index(SO_DATACONS));
|
||||
qta = row->get(sf.cid2index(SA_QTA));
|
||||
codforn = row->get(sf.cid2index(SA_FORNITORE));
|
||||
datacons = row->get(sf.cid2index(SA_DATACONS));
|
||||
}
|
||||
|
||||
if (!qta.is_zero())
|
||||
@ -1063,7 +1080,7 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
|
||||
//..e cfven collegato
|
||||
const TRectype& forven = cache().get(LF_CFVEN, key);
|
||||
|
||||
TDocumento* d = (TDocumento*)orders.objptr(codforn);
|
||||
TDocumento* d = (TDocumento*)documents.objptr(codforn);
|
||||
if (d == NULL)
|
||||
{
|
||||
//il documento va creato
|
||||
@ -1106,7 +1123,7 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
|
||||
const TString& causmag = tipo.caus_mov();
|
||||
d->put(DOC_CAUSMAG, causmag);
|
||||
|
||||
orders.add(codforn, d);
|
||||
documents.add(codforn, d);
|
||||
if (cod < minforn)
|
||||
minforn = cod;
|
||||
if (cod > maxforn)
|
||||
@ -1129,7 +1146,9 @@ void TCreazione_ordini::generate_docs_head(const char type, const TSheet_field&
|
||||
|
||||
}
|
||||
|
||||
void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& orders)
|
||||
|
||||
//salva i documenti generati
|
||||
void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const long& maxforn, TAssoc_array& documents)
|
||||
{
|
||||
TString msg;
|
||||
switch (tipo)
|
||||
@ -1139,7 +1158,7 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
|
||||
default: break;
|
||||
}
|
||||
|
||||
TProgind pi(orders.items(), msg, true, true);
|
||||
TProgind pi(documents.items(), msg, true, true);
|
||||
TString cmdline;
|
||||
int cnt = 0;
|
||||
TString8 key;
|
||||
@ -1147,7 +1166,7 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
|
||||
for (long cod = minforn; cod <= maxforn; cod++)
|
||||
{
|
||||
key.format("%ld", cod);
|
||||
TDocumento* d = (TDocumento*)orders.objptr(key);
|
||||
TDocumento* d = (TDocumento*)documents.objptr(key);
|
||||
if (d != NULL)
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
@ -1189,25 +1208,25 @@ void TCreazione_ordini::write_docs(const char tipo, const long& minforn, const l
|
||||
|
||||
void TCreazione_ordini::generate_carics()
|
||||
{
|
||||
//TGenera_ordini_mask& mask = *_mask;
|
||||
TSheet_field& sf = _mask->sfield(F_ORDERS);
|
||||
TSheet_field& sf = _mask->sfield(F_DOCUMENTS);
|
||||
|
||||
long minforn = 999999L;
|
||||
long maxforn = 0L;
|
||||
TAssoc_array orders;
|
||||
TAssoc_array carics;
|
||||
|
||||
if (sf.items() > 0)
|
||||
generate_docs_head('C', sf, minforn, maxforn, orders);
|
||||
generate_docs_head('C', sf, minforn, maxforn, carics);
|
||||
|
||||
if (orders.items() > 0)
|
||||
write_docs('C', minforn, maxforn, orders);
|
||||
if (carics.items() > 0)
|
||||
write_docs('C', minforn, maxforn, carics);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//genera gli ordini a partire dalle righe articolo sullo sheet F_ARTICLES
|
||||
void TCreazione_ordini::generate_orders()
|
||||
{
|
||||
TGenera_ordini_mask& mask = *_mask;
|
||||
TSheet_field& sf = mask.sfield(F_ARTICLES);
|
||||
TSheet_field& sf = _mask->sfield(F_ARTICLES);
|
||||
|
||||
long minforn = 999999L;
|
||||
long maxforn = 0L;
|
||||
|
@ -5,7 +5,9 @@
|
||||
#define F_SGRMERC 153
|
||||
#define F_DSGRMERC 154
|
||||
#define F_SOTTOSCORTA 155
|
||||
|
||||
#define F_ARTICLES 156
|
||||
|
||||
#define F_CODNUM 157
|
||||
#define F_DESNUM 158
|
||||
#define F_TIPODOC 159
|
||||
@ -38,38 +40,38 @@
|
||||
#define F_ASTATO 202
|
||||
#define F_ANNO 203
|
||||
#define F_DATADOCCAR 204
|
||||
#define F_ORDERS 210
|
||||
#define F_DOCUMENTS 210
|
||||
|
||||
//campi 'S'heet degli 'O'rdini (SO_)
|
||||
#define SO_CODART 101
|
||||
#define SO_DESCR 102
|
||||
#define SO_UM 103
|
||||
#define SO_QTA 104
|
||||
#define SO_DATACONS 105
|
||||
#define SO_FORNITORE 106
|
||||
#define SO_RAGSOC 107
|
||||
#define SO_CDC 108
|
||||
#define SO_FSC 109
|
||||
#define SO_CODAGG1 110
|
||||
#define SO_CODAGG2 111
|
||||
#define SO_LEADTIME 112
|
||||
#define SO_LOTTOMIN 113
|
||||
#define SO_DESCRAGG 114
|
||||
#define SO_GIACENZA 115
|
||||
#define SO_PPCONF 116
|
||||
#define SO_DISPON 117
|
||||
#define SO_USER1 118
|
||||
#define SO_USER2 119
|
||||
#define SO_USER3 120
|
||||
#define SO_USER4 121
|
||||
#define SO_USER5 122
|
||||
#define SO_USER6 123
|
||||
#define SO_USER7 124
|
||||
#define SO_USER8 125
|
||||
#define SO_USER9 126
|
||||
#define SO_USER10 127
|
||||
//campi 'S'heet delle righe 'A'rticolo (SA_) (F_ARTICLES) sono le righe degli ordini da generare
|
||||
#define SA_CODART 101
|
||||
#define SA_QTA 102
|
||||
#define SA_DATACONS 103
|
||||
#define SA_UM 104
|
||||
#define SA_DESCR 105
|
||||
#define SA_FORNITORE 106
|
||||
#define SA_RAGSOC 107
|
||||
#define SA_CDC 108
|
||||
#define SA_FSC 109
|
||||
#define SA_CODAGG1 110
|
||||
#define SA_CODAGG2 111
|
||||
#define SA_LEADTIME 112
|
||||
#define SA_LOTTOMIN 113
|
||||
#define SA_DESCRAGG 114
|
||||
#define SA_GIACENZA 115
|
||||
#define SA_PPCONF 116
|
||||
#define SA_DISPON 117
|
||||
#define SA_USER1 118
|
||||
#define SA_USER2 119
|
||||
#define SA_USER3 120
|
||||
#define SA_USER4 121
|
||||
#define SA_USER5 122
|
||||
#define SA_USER6 123
|
||||
#define SA_USER7 124
|
||||
#define SA_USER8 125
|
||||
#define SA_USER9 126
|
||||
#define SA_USER10 127
|
||||
|
||||
//campi 'S'heet dei 'D'ocumenti (SD_)
|
||||
//campi 'S'heet dei 'D'ocumenti (SD_) (F_DOCUMENTS)
|
||||
#define SD_DATADOC 101
|
||||
#define SD_NUMDOC 102
|
||||
#define SD_NUMRIGA 103
|
||||
|
@ -64,11 +64,11 @@ END
|
||||
SPREADSHEET F_ARTICLES
|
||||
BEGIN
|
||||
PROMPT 1 3 "Articoli"
|
||||
ITEM "Codice\nArticolo@15"
|
||||
ITEM "Codice\nArticolo@15F"
|
||||
ITEM "Quantità@10F"
|
||||
ITEM "Data\nConsegna@10F"
|
||||
ITEM "UM@F"
|
||||
ITEM "Descrizione@35"
|
||||
ITEM "UM"
|
||||
ITEM "Quantità@10"
|
||||
ITEM "Data\nConsegna@10"
|
||||
ITEM "Codice\nForn.@6"
|
||||
ITEM "Ragione sociale@30"
|
||||
ITEM "Commessa@20"
|
||||
@ -133,7 +133,7 @@ BEGIN
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
SPREADSHEET 210
|
||||
SPREADSHEET F_DOCUMENTS
|
||||
BEGIN
|
||||
PROMPT 1 2 "Ordini"
|
||||
ITEM "Data\nDoc.@10"
|
||||
@ -567,7 +567,7 @@ ENDMASK
|
||||
|
||||
//---Maschere di riga degli sheet---//
|
||||
|
||||
//---Riga sheet degli ordini SO---//
|
||||
//---Riga sheet degli articoli SA---//
|
||||
TOOLBAR "" 0 -2 0 3
|
||||
|
||||
BUTTON 1 10 2
|
||||
@ -584,167 +584,168 @@ ENDPAGE
|
||||
|
||||
PAGE "Righe ordine" -1 -1 80 20
|
||||
|
||||
STRING SO_CODART 20
|
||||
STRING SA_CODART 20
|
||||
BEGIN
|
||||
PROMPT 1 2 "Articolo "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_DESCR 50 38
|
||||
STRING SA_DESCR 50 38
|
||||
BEGIN
|
||||
PROMPT 32 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_UM 2
|
||||
STRING SA_UM 2
|
||||
BEGIN
|
||||
PROMPT 1 3 "U.M. "
|
||||
USE LF_UMART KEY 2 SELECT CODART==#SO_CODART
|
||||
USE LF_UMART KEY 2 SELECT CODART==#SA_CODART
|
||||
JOIN %UMS INTO CODTAB==UM
|
||||
INPUT CODART SO_CODART SELECT
|
||||
INPUT UM SO_UM
|
||||
INPUT CODART SA_CODART SELECT
|
||||
INPUT UM SA_UM
|
||||
DISPLAY "U.M." UM
|
||||
DISPLAY "Descrizione@50" %UMS->S0
|
||||
DISPLAY "F.C.@10" FC
|
||||
OUTPUT SO_UM UM
|
||||
OUTPUT SA_UM UM
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UG"
|
||||
END
|
||||
|
||||
NUMBER SO_QTA 13 5
|
||||
NUMBER SA_QTA 13 5
|
||||
BEGIN
|
||||
PROMPT 16 3 "Quantità "
|
||||
END
|
||||
|
||||
DATA SO_DATACONS
|
||||
DATA SA_DATACONS
|
||||
BEGIN
|
||||
PROMPT 43 3 "Data di consegna "
|
||||
WARNING "Indicare la data di consegna"
|
||||
VALIDATE 12 1 104
|
||||
END
|
||||
|
||||
NUMBER SO_FORNITORE 6
|
||||
NUMBER SA_FORNITORE 6
|
||||
BEGIN
|
||||
PROMPT 1 5 "Fornitore "
|
||||
FIELD CODCF
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "F"
|
||||
INPUT CODCF SO_FORNITORE
|
||||
INPUT CODCF SA_FORNITORE
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
OUTPUT SO_FORNITORE CODCF
|
||||
OUTPUT SO_RAGSOC RAGSOC
|
||||
OUTPUT SA_FORNITORE CODCF
|
||||
OUTPUT SA_RAGSOC RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_RAGSOC 50
|
||||
STRING SA_RAGSOC 50
|
||||
BEGIN
|
||||
FLAGS "D"
|
||||
PROMPT 20 5 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "F"
|
||||
INPUT RAGSOC SO_RAGSOC
|
||||
INPUT RAGSOC SA_RAGSOC
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT SO_FORNITORE
|
||||
COPY OUTPUT SA_FORNITORE
|
||||
CHECKTYPE SEARCH
|
||||
END
|
||||
|
||||
//versione 3.2
|
||||
STRING SO_CDC 20
|
||||
STRING SA_CDC 20
|
||||
BEGIN
|
||||
PROMPT 1 8 "Commessa "
|
||||
USE CMS
|
||||
INPUT CODTAB SO_CDC
|
||||
INPUT CODTAB SA_CDC
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT SO_CDC CODTAB
|
||||
OUTPUT SA_CDC CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "DUZ"
|
||||
END
|
||||
|
||||
/* Versione 10.0
|
||||
STRING SO_CDC 20
|
||||
STRING SA_CDC 20
|
||||
BEGIN
|
||||
PROMPT 1 8 "Commessa "
|
||||
USE LF_COMMESSE
|
||||
INPUT CODCMS SO_CDC
|
||||
INPUT CODCMS SA_CDC
|
||||
DISPLAY "Codice@20" CODCMS
|
||||
DISPLAY "Descrizione@50" DESCRIZ
|
||||
OUTPUT SO_CDC CODCMS
|
||||
OUTPUT SA_CDC CODCMS
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END*/
|
||||
|
||||
//versione 3.2
|
||||
STRING SO_FSC 10
|
||||
STRING SA_FSC 10
|
||||
BEGIN
|
||||
PROMPT 45 8 "Fase "
|
||||
USE FSC
|
||||
INPUT CODTAB SO_FSC
|
||||
INPUT CODTAB SA_FSC
|
||||
DISPLAY "Codice@20" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT SO_FSC CODTAB
|
||||
OUTPUT SA_FSC CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "DUZ"
|
||||
END
|
||||
|
||||
/* Versione 10.0 (deve essere legabile alla commessa!!)
|
||||
STRING SO_FSC 10
|
||||
STRING SA_FSC 10
|
||||
BEGIN
|
||||
PROMPT 45 8 "Fase "
|
||||
USE LF_FASI
|
||||
INPUT CODFASE SO_FSC SELECT CODCMSFAS==#SO_CDC
|
||||
INPUT CODFASE SA_FSC SELECT CODCMSFAS==#SA_CDC
|
||||
DISPLAY "Codice@20" CODFASE
|
||||
DISPLAY "Descrizione@50" descriz
|
||||
OUTPUT SO_FSC CODfase
|
||||
OUTPUT SA_FSC CODfase
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "DUZ"
|
||||
END*/
|
||||
|
||||
STRING SO_CODAGG1 20
|
||||
STRING SA_CODAGG1 20
|
||||
BEGIN
|
||||
PROMPT 1 7 "Cespite "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_CODAGG2 20
|
||||
STRING SA_CODAGG2 20
|
||||
BEGIN
|
||||
PROMPT 37 7 "Codice agg.2 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER SO_LEADTIME 5
|
||||
NUMBER SA_LEADTIME 5
|
||||
BEGIN
|
||||
PROMPT 1 15 "Lead time "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER SO_LOTTOMIN 10 3
|
||||
NUMBER SA_LOTTOMIN 10 3
|
||||
BEGIN
|
||||
PROMPT 19 15 "Lotto "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
MEMO SO_DESCRAGG 50 4
|
||||
MEMO SA_DESCRAGG 50 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "Descr.aggiuntiva"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER SO_GIACENZA 15 5
|
||||
NUMBER SA_GIACENZA 15 5
|
||||
BEGIN
|
||||
PROMPT 1 17 "Giacenza"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER SO_PPCONF 15
|
||||
NUMBER SA_PPCONF 15
|
||||
BEGIN
|
||||
PROMPT 38 15 "Pezzi per conf. "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER SO_DISPON 15 5
|
||||
NUMBER SA_DISPON 15 5
|
||||
BEGIN
|
||||
PROMPT 39 17 "Disponibilita' "
|
||||
FLAGS "D"
|
||||
@ -754,61 +755,61 @@ ENDPAGE
|
||||
|
||||
PAGE "Campi Utente" -1 -1 80 20
|
||||
|
||||
STRING SO_USER1 20
|
||||
STRING SA_USER1 20
|
||||
BEGIN
|
||||
PROMPT 2 2 "Campo utente 1 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER2 20
|
||||
STRING SA_USER2 20
|
||||
BEGIN
|
||||
PROMPT 2 4 "Campo utente 2 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER3 20
|
||||
STRING SA_USER3 20
|
||||
BEGIN
|
||||
PROMPT 2 6 "Campo utente 3 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER4 20
|
||||
STRING SA_USER4 20
|
||||
BEGIN
|
||||
PROMPT 2 8 "Campo utente 4 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER5 20
|
||||
STRING SA_USER5 20
|
||||
BEGIN
|
||||
PROMPT 2 10 "Campo utente 5 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER6 20
|
||||
STRING SA_USER6 20
|
||||
BEGIN
|
||||
PROMPT 2 12 "Campo utente 6 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER7 20
|
||||
STRING SA_USER7 20
|
||||
BEGIN
|
||||
PROMPT 2 14 "Campo utente 7 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER8 20
|
||||
STRING SA_USER8 20
|
||||
BEGIN
|
||||
PROMPT 2 16 "Campo utente 8 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER9 20
|
||||
STRING SA_USER9 20
|
||||
BEGIN
|
||||
PROMPT 2 18 "Campo utente 9 "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING SO_USER10 20
|
||||
STRING SA_USER10 20
|
||||
BEGIN
|
||||
PROMPT 2 20 "Campo utente 10 "
|
||||
FLAGS "D"
|
||||
|
Loading…
x
Reference in New Issue
Block a user