Patch level : 10.0 patch 413
Files correlati : lv2 Ricompilazione Demo : [ ] Commento : 2) 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) 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? Mi propone anche la data del buono di ritiro, ma deve propormi almeno il giorno dopo, difficile che conto lo sporco oggi per oggi 6) Come di avevo anticipato al telefono occorre un tabulato durante la generazione delle bolle di consegna Per elencare gli articoli SULLA BOLLA DI SPORCO e messi in bolla di consegna che non sono presenti in contratto Il tabulato dovrebbe fornire i seguenti dati Cliente,articolo quantità , numero e data bolla (Corretto il mesaggio del log) git-svn-id: svn://10.65.10.50/trunk@19202 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
afbf8ea975
commit
879ef7ba98
@ -5,12 +5,13 @@
|
||||
|
||||
#include "lvlib.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "../ve/rcondv.h"
|
||||
|
||||
#include "doc.h"
|
||||
#include "rdoc.h"
|
||||
#include "lvcondv.h"
|
||||
#include "lvrcondv.h"
|
||||
#include "lvrconsplan.h"
|
||||
#include "rdoc.h"
|
||||
|
||||
#include "lv2400a.h"
|
||||
|
||||
@ -158,6 +159,7 @@ bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_rep
|
||||
//creo il documento corretto riempiendo i campi che già conosco
|
||||
TDocumento doc('D',anno,codnum,0);
|
||||
doc.put(DOC_TIPODOC, tpdoc);
|
||||
doc.write();
|
||||
|
||||
//calcola tutte le quantità riportate sui documenti di ritiro, sui documenti di anticipo e sulle bolle di consegna
|
||||
//...eventualmente modificate a mano
|
||||
@ -204,7 +206,7 @@ bool TGenera_documenti_app::crea_documento(const TISAM_recordset& plan, TLog_rep
|
||||
}
|
||||
|
||||
if (doc.rows() > 0)
|
||||
err = doc.write();
|
||||
err = doc.rewrite();
|
||||
else
|
||||
doc.remove();
|
||||
|
||||
@ -249,14 +251,6 @@ void TGenera_documenti_app::crea_riga(const TString& codart, const char modpas,
|
||||
keyrcont.add(codart);
|
||||
//instanzio una cache sulla tabella delle righe contratti
|
||||
const TRectype& rcont = cache().get(LF_LVRCONDV,keyrcont);
|
||||
|
||||
//se il record è vuoto aggiorno il log
|
||||
if (rcont.empty())
|
||||
{
|
||||
TString str;
|
||||
str << "L'articolo " << codart << "non è prsente sul contratto del cliente " << codcli;
|
||||
rep.log(1, str);
|
||||
}
|
||||
|
||||
//recupero i dati di interesse dalla riga del contratto
|
||||
bool arrot;
|
||||
@ -308,11 +302,70 @@ void TGenera_documenti_app::crea_riga(const TString& codart, const char modpas,
|
||||
|
||||
//elaborazione sul prezzo da utilizzare
|
||||
real prezzo;
|
||||
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
|
||||
if (tplis == 0)
|
||||
prezzo = rcont.get_real(LVRCONDV_PREZZO);
|
||||
|
||||
if (rcont.empty())
|
||||
{
|
||||
//PROPONI PREZZO
|
||||
TToken_string key;
|
||||
key.add('C');
|
||||
key.add(codcli);
|
||||
const TRectype& cfven = cache().get(LF_CFVEN, key);
|
||||
|
||||
bool trvlst = false;
|
||||
|
||||
if (!cfven.empty())
|
||||
{
|
||||
//se è settata la categoria merceologica, leggo sia il listino che la cat merc, altrimenti solo il listino
|
||||
TString8 codlis = cfven.get(CFV_CODLIST);
|
||||
TString8 catven;
|
||||
TConfig* configve = new TConfig(CONFIG_DITTA,"ve");
|
||||
const char gesliscv = configve->get_char("GESLISCV");
|
||||
if (gesliscv != 'X')
|
||||
catven = "";
|
||||
else
|
||||
catven = cfven.get(CFV_CATVEN);
|
||||
|
||||
//cerco il prezzo sul listino
|
||||
key.cut(0);
|
||||
key.add('L'); //tipo
|
||||
key.add(catven); //catven
|
||||
key.add(""); //tipocf
|
||||
key.add(""); //codcf
|
||||
key.add(codlis); //codlis
|
||||
key.add('A'); //tiporiga
|
||||
key.add(codart); //codriga
|
||||
key.add(""); //um
|
||||
key.add(""); //nscagl
|
||||
const TRectype& rcondv = cache().get(LF_RCONDV, key);
|
||||
|
||||
if (!rcondv.empty())
|
||||
{
|
||||
prezzo = rcondv.get_real(RCONDV_PREZZO);
|
||||
trvlst = true;
|
||||
}
|
||||
}
|
||||
|
||||
//se non ho trovato un listino, o se non c'è un listino impostato
|
||||
//propongo come prezzo il valore convenzionale
|
||||
if (!trvlst)
|
||||
{
|
||||
key.cut(0);
|
||||
key.add(codart);
|
||||
key.add(1);
|
||||
const TRectype& umart = cache().get(LF_UMART, key);
|
||||
prezzo = umart.get_real(UMART_PREZZO);
|
||||
if (umart.get(UMART_PREZZO).full())
|
||||
trvlst = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
prezzo = anamag.get_real(ANAMAG_COSTSTD);
|
||||
{
|
||||
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
|
||||
if (tplis == 0)
|
||||
prezzo = rcont.get_real(LVRCONDV_PREZZO);
|
||||
else
|
||||
prezzo = anamag.get_real(ANAMAG_COSTSTD);
|
||||
}
|
||||
|
||||
rdoc.put(RDOC_CODART,codart);
|
||||
rdoc.put(RDOC_CODARTMAG,codart);
|
||||
@ -320,7 +373,7 @@ void TGenera_documenti_app::crea_riga(const TString& codart, const char modpas,
|
||||
if (prinbo)
|
||||
{
|
||||
if (!tmp)
|
||||
rdoc.put(RDOC_PREZZO,rcont.get_real(LVRCONDV_PREZZO));
|
||||
rdoc.put(RDOC_PREZZO, prezzo);
|
||||
else //per adesso per questo ramo non ci passa mai, perchè non sappiamo come gestire le dotazioni temporanee
|
||||
rdoc.put(RDOC_PREZZO,rcont.get_real(LVRCONDV_PRZDTTMP));
|
||||
rdoc.put(RDOC_SCONTO,rcont.get(LVRCONDV_SCONTPERC)); //sconto
|
||||
@ -335,6 +388,17 @@ void TGenera_documenti_app::crea_riga(const TString& codart, const char modpas,
|
||||
|
||||
rdoc.put(RDOC_CODMAG, magazzino);
|
||||
rdoc.put(RDOC_CODMAGC, magazzinoc);
|
||||
|
||||
//se il record di riga contratto è vuoto aggiorno il log
|
||||
if (rcont.empty())
|
||||
{
|
||||
TString str;
|
||||
str << "L'articolo " << codart << " inserito nel documento " << doc.get(DOC_CODNUM) << "-" << doc.get(DOC_TIPODOC)
|
||||
<< " numero " << doc.get(DOC_NDOC) << " in quantità " << quantita_arr
|
||||
<< "non è prsente sul contratto del cliente " << codcli;
|
||||
rep.log(1, str);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
@ -739,8 +803,6 @@ bool TGenera_documenti_app::transfer()
|
||||
docritiri.set_var("#DADATA", dadatacons);
|
||||
docritiri.set_var("#ADATA", adatacons);
|
||||
|
||||
int cazzone = docritiri.items();
|
||||
|
||||
TProgind pi(docritiri.items(), TR("Generazione documenti in corso..."), true, true);
|
||||
|
||||
for (bool ok = docritiri.move_first(); ok; ok = docritiri.move_next())
|
||||
@ -780,7 +842,7 @@ bool TGenera_documenti_app::transfer()
|
||||
|
||||
TISAM_recordset plan(query);
|
||||
|
||||
if (plan.move_first())
|
||||
if (plan.move_to(1))
|
||||
{
|
||||
_quantita.destroy();
|
||||
_quantita_ritirata.destroy();
|
||||
|
Loading…
x
Reference in New Issue
Block a user