Patch level : 10.0 patch 4??
Files correlati : lv3 profioli di lv Ricompilazione Demo : [ ] Commento : Quando inserisco un buono di ritiro a mano, solo il buono di ritiro e non il buono di consegna data di consegna prevista me la deve proporre in automatico, la prima con data superiore alla data del buono di ritiro. Se ne inserisco una a mano di un giorno che non è in consegna (inserisco un martedi e il cliente passa il lunedi e il giovedi (file lvpasplan) e quel giorno non è previsto nel giri cioè non ho inserito una consegna per quella data (file lvrconsplan)) mi dovrebbe dare una segnalazione di conferma tipo giorno di prevista consegna non corrispondente al cliente, confermi? git-svn-id: svn://10.65.10.50/trunk@19196 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5ffdc6d8e5
commit
b6b59864dd
@ -50,6 +50,7 @@ public:
|
||||
virtual void user_set_handler( short fieldid, int index);
|
||||
virtual void user_set_row_handler(TMask& rm, short field, int index);
|
||||
void reset_var_mask() {_stcodcf = 0; _stcodcont = 0;}
|
||||
TDate proponi_dataprco() const;
|
||||
TGestione_bolle_msk(const char* tipodoc);
|
||||
|
||||
int _autoselect;
|
||||
@ -337,6 +338,29 @@ void TGestione_bolle_msk::dettaglio_causale(TSheet_field& ss)
|
||||
dmsk.set(F_LVDESCAU, cau.descr());
|
||||
}
|
||||
|
||||
//PROPONI_DATAPRCO: metodo che propone la prima data di prevista consegna
|
||||
TDate TGestione_bolle_msk::proponi_dataprco() const
|
||||
{
|
||||
const TDate dadata = get(F_DATADOC);
|
||||
TDate dataprco(0,0,0);
|
||||
|
||||
if (dadata.ok())
|
||||
{
|
||||
TDate adata = dadata;
|
||||
adata.addmonth(1);
|
||||
|
||||
TString query = "USE LVRCONSPLAN KEY 3\n";
|
||||
query << "FROM CODCF=" << get(F_CODCF) << " CODCONT=" << get(F_LVCODCONT) << " DTCONS=" << dadata << "\n";
|
||||
query << "TO CODCF=" << get(F_CODCF) << " CODCONT=" << get(F_LVCODCONT) << " DTCONS=" << adata << "\n";
|
||||
TISAM_recordset consegne(query);
|
||||
|
||||
if (consegne.move_first())
|
||||
dataprco = consegne.get(LVRCONSPLAN_DTCONS).as_date();
|
||||
}
|
||||
|
||||
return dataprco;
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
// HANDLER DI DOCUMENTO //
|
||||
////////////////////////////
|
||||
@ -460,6 +484,10 @@ bool TGestione_bolle_msk::lv_contratto_handler(TMask_field& f, KEY k)
|
||||
TString16 tmp;
|
||||
tmp << codcont;
|
||||
dmsk.set(F_LVCODCONT, tmp);
|
||||
|
||||
const TDate dataprco = dmsk.proponi_dataprco();
|
||||
if (dataprco.ok() && dmsk.field(F_LVDATAPRCO).empty())
|
||||
dmsk.set(F_LVDATAPRCO, dataprco);
|
||||
}
|
||||
|
||||
TDocumento& doc = dmsk.doc();
|
||||
@ -468,12 +496,43 @@ bool TGestione_bolle_msk::lv_contratto_handler(TMask_field& f, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
//LV_DATAPRCO_HANDLER: handler che si occupa della gestione del campo "data di prevista consegna"
|
||||
bool TGestione_bolle_msk::lv_dataprco_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask();
|
||||
//se sto leggendo o generando un buono di ritiro, abilito questo campo
|
||||
if (k == K_TAB)
|
||||
{
|
||||
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask();
|
||||
TDocumento& doc = dmsk.doc();
|
||||
//se la data viene modificata a mano, controlla se è una data di previsto passaggio;
|
||||
//se non lo è chiedi conferma se si desidera mantenre la data indicata manualmente o se
|
||||
//è meglio riproporre la data di previsto passaggio
|
||||
if (!f.empty() && f.focusdirty() && doc.get_date("DATAPRCO") != (TDate)f.get())
|
||||
{
|
||||
|
||||
doc.put("DATAPRCO", f.get());
|
||||
|
||||
if (dmsk.get(F_CODNUM) == ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT(0)") && dmsk.get(F_TIPODOC) == ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT(0)"))
|
||||
dmsk.field(F_LVDATAPRCO).enable();
|
||||
TString query1 = "USE LVRCONSPLAN KEY 3\n";
|
||||
query1 << "FROM CODCF=" << dmsk.get(F_CODCF) << " CODCONT=\"" << dmsk.get(F_LVCODCONT) << "\" DTCONS=" << f.get() << "\n";
|
||||
query1 << "TO CODCF=" << dmsk.get(F_CODCF) << " CODCONT=\"" << dmsk.get(F_LVCODCONT) << "\" DTCONS=" << f.get() << "\n";
|
||||
TISAM_recordset consegne(query1);
|
||||
|
||||
if (!consegne.move_first())
|
||||
{
|
||||
f.set_focusdirty(false);
|
||||
|
||||
if (!yesno_box(TR("Non è previsto nessun passaggio per questa data, confermi lo stesso?")))
|
||||
{
|
||||
const TDate dataprco = dmsk.proponi_dataprco();
|
||||
if (dataprco.ok())
|
||||
{
|
||||
f.set(dataprco);
|
||||
doc.put("DATAPRCO", dataprco);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -519,6 +578,10 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
|
||||
doc.put(DOC_DATADOC, datadoc);
|
||||
doc.put(DOC_CODINDSP, indsped);
|
||||
doc.put(DOC_CODCONT, codcont);
|
||||
|
||||
const TDate dataprco = dmsk.proponi_dataprco();
|
||||
if (dataprco.ok() && dmsk.field(F_LVDATAPRCO).empty())
|
||||
doc.put("DATAPRCO", dataprco);
|
||||
}
|
||||
|
||||
if (dmsk._stcodcf == codcf && dmsk._stcodcont == codcont && nrighe > 0)
|
||||
@ -1107,7 +1170,7 @@ void TGestione_bolle_msk::user_set_handler( short fieldid, int index)
|
||||
case 4101: set_field_handler(fieldid, lv_data_handler); break;
|
||||
case 4102: set_field_handler(fieldid, lv_contratto_handler); break;
|
||||
case 4103: set_field_handler(fieldid, lv_bolla_handler); break;
|
||||
case 4104: set_field_handler(fieldid, lv_dataprco_handler); break;
|
||||
case 4105: set_field_handler(fieldid, lv_dataprco_handler); break;
|
||||
default : TDocumento_mask::user_set_handler(fieldid, index); break;
|
||||
}
|
||||
}
|
||||
@ -1220,6 +1283,12 @@ void TGestione_bolle_app::init_insert_mode(TMask &m)
|
||||
TDocumento& d = mask.doc();
|
||||
_giac.reset(d);
|
||||
|
||||
//se sto leggendo o generando un buono di ritiro, abilito questo campo
|
||||
bool enable_dataprco = mask.get(F_CODNUM) == ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT(0)") &&
|
||||
mask.get(F_TIPODOC) == ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT(0)");
|
||||
|
||||
mask.field(F_LVDATAPRCO).enable(enable_dataprco);
|
||||
|
||||
mask.reset_var_mask();
|
||||
mask.first_focus(F_CODCF, false);
|
||||
|
||||
|
@ -226,7 +226,7 @@ Tipo(1)=05
|
||||
[HANDLERS]
|
||||
Handler(0) = 106|4101
|
||||
Handler(1) = 108|4102
|
||||
Handler(3) = 101|4104
|
||||
Handler(3) = 805|4105
|
||||
|
||||
[PROFILOGRUPPO]
|
||||
101 = S_NASCOSTO
|
||||
|
@ -227,6 +227,7 @@ Tipo(1)=05
|
||||
Handler(0) = 106|4101
|
||||
Handler(1) = 108|4103
|
||||
Handler(2) = 125|4103
|
||||
Handler(3) = 805|4105
|
||||
|
||||
[PROFILOGRUPPO]
|
||||
101 = S_NASCOSTO
|
||||
|
@ -210,7 +210,7 @@ Tipo(1)=05
|
||||
Handler(0) = 106|4101
|
||||
Handler(1) = 108|4103
|
||||
Handler(2) = 125|4103
|
||||
Handler(3) = 101|4104
|
||||
Handler(3) = 805|4105
|
||||
|
||||
[PROFILOGRUPPO]
|
||||
101 = S_NASCOSTO
|
||||
|
@ -228,7 +228,7 @@ Tipo(1)=05
|
||||
Handler(0) = 106|4101
|
||||
Handler(1) = 108|4103
|
||||
Handler(2) = 125|4103
|
||||
Handler(3) = 101|4104
|
||||
Handler(3) = 805|4105
|
||||
|
||||
[PROFILOGRUPPO]
|
||||
101 = S_NASCOSTO
|
||||
|
Loading…
x
Reference in New Issue
Block a user