Patch level : 2.0 480
Files correlati : mg3.exe mg3300a.frm mg3300b.frm mg3500.frm xvaga.dll Ricompilazione Demo : [ ] Commento : GF20022 Se cerco di cambiare l'impostazione delle colonne da messaggio d'errore: "FUNCTION AL LINE 1335 NO IMPLEMENTED" GF20023 Il collegamento al movimento di magazzino non c'è. GF20024 Se si clicca sul tasto di ricerca de movimenti di magazzino l'ultimo record non viene mostrato. GF20025 Se si clicca sul tasto di ricerca dei vari criteri di valorizzazione l'ultimo record (Lifo) non viene visualizzato scorrendo la barra verticale. GF20026 La stampa dello storico non coincide sempre con la stampa dell'inventario di magazzino esempio provare ad inserire per esercizio x due acquisti 1 pezzo x 200 euro e 2 pezzi x 100 euro quindi facendo l'apertura chiusura al lifo storico la composizione della stampa dello storico per l'anno in questione presenta 3 pezzi a un vaore unitario di 133,33 che fa quindi 399,99 e non 400 euro come dovrebbe. git-svn-id: svn://10.65.10.50/trunk@11193 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
414291abe3
commit
7c77333860
@ -2,8 +2,8 @@
|
||||
#include "mg3300.h"
|
||||
USE LF_ANAMAG
|
||||
SORT LF_RMOVMAG BY CODART[1,2] NUMREG
|
||||
USING LF_MOVMAG INTO NUMREG==NUMREG
|
||||
JOIN TO LF_ANAMAG KEY 2 INTO CODART==CODART
|
||||
USING LF_MOVMAG INTO NUMREG==NUMREG
|
||||
JOIN TO LF_ANAMAG KEY 2 INTO CODART==CODART
|
||||
JOIN LF_MAG TO LF_RMOVMAG KEY 2 INTO ANNOES==1990 CODMAG==CODMAG CODART==CODART LIVELLO==LIVGIAC
|
||||
JOIN LF_MOVMAG TO LF_RMOVMAG INTO NUMREG==NUMREG
|
||||
//JOIN %CAU TO LF_RMOVMAG ALIAS ALIAS_CAU_RIGHE INTO CODTAB==CODCAUS
|
||||
@ -390,9 +390,9 @@ SECTION BODY ODD 0
|
||||
SECTION TOTALI_MOV 1 1 1 NUMEXPR #FF_SALDO_MOV!=0
|
||||
|
||||
SECTION HEADER_MOV 1 1 1 NUMEXPR (#FF_NUMRIGHE==0)
|
||||
NUMERO FF_NUM_MOV 32
|
||||
NUMERO FF_NUM_MOV
|
||||
BEGIN
|
||||
PROMPT 2 1 "Mov.$[v,w]"
|
||||
PROMPT 1 1 "Mov.$[v,w] "
|
||||
END
|
||||
STRINGA FF_DATA_MOV 10
|
||||
BEGIN
|
||||
|
@ -324,9 +324,9 @@ SECTION BODY ODD 2
|
||||
END // stampa saldo precedente
|
||||
|
||||
SECTION TOTALI_MOV 1 2 2 NUMEXPR #FF_SALDO_MOV!=0
|
||||
NUMBER FF_NUM_MOV 32
|
||||
NUMBER FF_NUM_MOV
|
||||
BEGIN
|
||||
PROMPT 2 1 "Mov.$[v,w]"
|
||||
PROMPT 1 1 "Mov.$[v,w] "
|
||||
END
|
||||
STRINGA FF_DATA_MOV 10
|
||||
BEGIN
|
||||
|
@ -1,12 +1,51 @@
|
||||
#include <applicat.h>
|
||||
#include <fraction.h>
|
||||
|
||||
#include "mglib.h"
|
||||
#include "mg3500.h"
|
||||
#include "mg3500a.h"
|
||||
#include "mg3frm.h"
|
||||
#include "../cg/cglib01.h"
|
||||
|
||||
// mg3500 Stampa
|
||||
// mg3500 Stampa
|
||||
|
||||
class TForm_storgiac : public TForm_stampemg
|
||||
{
|
||||
TSorted_cursor * _sortcur;
|
||||
bool _use_alternate_cursor;
|
||||
|
||||
public:
|
||||
void use_alternate_cursor(const bool b = TRUE) { _use_alternate_cursor = b; }
|
||||
|
||||
virtual TCursor* cursor() const ;
|
||||
virtual bool validate(TForm_item &cf, TToken_string &s);
|
||||
|
||||
TForm_storgiac(const char *name,const char *code) ;
|
||||
virtual ~TForm_storgiac();
|
||||
};
|
||||
|
||||
TCursor* TForm_storgiac::cursor() const
|
||||
{
|
||||
if (_use_alternate_cursor) // Se e' settata la stampa per ragg. fisc ritorna il cursore appropriato
|
||||
return (TCursor*)_sortcur;
|
||||
return TForm_stampemg::cursor();
|
||||
}
|
||||
|
||||
bool TForm_storgiac::validate(TForm_item &cf, TToken_string &s)
|
||||
{
|
||||
const TString80 cmd = s.get(0);
|
||||
if (cmd == "_FRACTION_MULT")
|
||||
{
|
||||
const TString16 id1 = s.get();
|
||||
const TString16 id2 = s.get();
|
||||
|
||||
const fraction f1 = cf.find_field(id1).get();
|
||||
const fraction f2 = cf.find_field(id2).get();
|
||||
const real m = f1 * f2;
|
||||
cf.set(m.string());
|
||||
return TRUE;
|
||||
}
|
||||
return TForm_stampemg::validate(cf, s);
|
||||
}
|
||||
|
||||
TForm_storgiac::TForm_storgiac(const char *name,const char *code) :
|
||||
TForm_stampemg(name,code)
|
||||
@ -20,16 +59,29 @@ TForm_storgiac::~TForm_storgiac()
|
||||
delete _sortcur;
|
||||
}
|
||||
|
||||
TCursor* TForm_storgiac::cursor() const
|
||||
{
|
||||
if (_use_alternate_cursor) // Se e' settata la stampa per ragg. fisc ritorna il cursore appropriato
|
||||
return (TCursor*)_sortcur;
|
||||
return TForm_stampemg::cursor();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
// Applicazione
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
class TStampa_storgiac : public TSkeleton_application
|
||||
{
|
||||
TArray * _files;
|
||||
TStampemg_mask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_storgiac * _form; // to be moved into TPrint_application
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void set_def_valuta(TForm_storgiac & f) {}
|
||||
|
||||
public:
|
||||
TStampa_storgiac() {}
|
||||
virtual ~TStampa_storgiac() {};
|
||||
};
|
||||
|
||||
bool TStampa_storgiac::create()
|
||||
{
|
||||
_mask = new TStampemg_mask("mg3500");
|
||||
|
@ -42,10 +42,10 @@ BEGIN
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO 3 7
|
||||
NUMERO 3 4
|
||||
BEGIN
|
||||
KEY "Nr. pagina"
|
||||
PROMPT 73 1 "Pag. "
|
||||
PROMPT 72 1 "Pag. "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
@ -58,7 +58,7 @@ END
|
||||
STRINGA 5 80
|
||||
BEGIN
|
||||
KEY "Separatore (iniziale)"
|
||||
PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
PROMPT 1 3 "______________________________________________________________________________________________________________________________________________________"
|
||||
END
|
||||
|
||||
END
|
||||
@ -299,7 +299,7 @@ SECTION FOOTER LAST 3 COLUMNWISE
|
||||
STRINGA 5 80
|
||||
BEGIN
|
||||
KEY "Separatore (finale)"
|
||||
PROMPT 1 1 "------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||
PROMPT 1 1 "______________________________________________________________________________________________________________________________________________________"
|
||||
END
|
||||
|
||||
STRINGA 1 58
|
||||
|
34
mg/mg3500a.h
34
mg/mg3500a.h
@ -1,34 +0,0 @@
|
||||
#ifndef __MG3500A_H
|
||||
#define __MG3500A_H
|
||||
|
||||
class TForm_storgiac : public TForm_stampemg
|
||||
{
|
||||
TSorted_cursor * _sortcur;
|
||||
bool _use_alternate_cursor;
|
||||
public:
|
||||
void use_alternate_cursor(const bool b = TRUE) { _use_alternate_cursor = b; }
|
||||
virtual TCursor* cursor() const ;
|
||||
TForm_storgiac(const char *name,const char *code) ;
|
||||
virtual ~TForm_storgiac();
|
||||
};
|
||||
|
||||
class TStampa_storgiac : public TSkeleton_application
|
||||
{
|
||||
TArray * _files;
|
||||
TStampemg_mask * _mask;
|
||||
TCursor * _cur;
|
||||
TForm_storgiac * _form; // to be moved into TPrint_application
|
||||
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
virtual void main_loop();
|
||||
virtual void set_def_valuta(TForm_storgiac & f) {}
|
||||
|
||||
public:
|
||||
TStampa_storgiac() {}
|
||||
virtual ~TStampa_storgiac() {};
|
||||
};
|
||||
|
||||
#endif //__MG3500A_H
|
||||
|
@ -117,20 +117,22 @@ void TArticolo::set_body_key(TRectype & rowrec)
|
||||
|
||||
int TArticolo::read(TRectype & rec, word op, word lockop)
|
||||
{
|
||||
const TString80 compstr(rec.get(ANAMAG_CODART));
|
||||
const TString& compstr = rec.get(ANAMAG_CODART);
|
||||
if (op == _isequal && lockop == _nolock && codice() == compstr)
|
||||
return NOERR;
|
||||
|
||||
put(ANAMAG_CODART, compstr);
|
||||
const int err = TMultiple_rectype::read(rec, op , lockop);
|
||||
|
||||
int err = _iskeyerr;
|
||||
if (!compstr.blank())
|
||||
{
|
||||
put(ANAMAG_CODART, compstr);
|
||||
err = TMultiple_rectype::read(rec, op , lockop);
|
||||
}
|
||||
if (err != NOERR)
|
||||
zero();
|
||||
return err;
|
||||
}
|
||||
|
||||
int TArticolo::read(const char * cod, word op, word lockop)
|
||||
{
|
||||
{
|
||||
TRectype tmp(*this);
|
||||
tmp.put(ANAMAG_CODART,cod);
|
||||
return read( tmp, op, lockop);
|
||||
@ -356,8 +358,8 @@ TArticolo::TArticolo(const char* codice)
|
||||
add_file(LF_DESLIN,"NRIGA");
|
||||
if (codice && *codice)
|
||||
{
|
||||
const int err=read(codice);
|
||||
if (err!=NOERR)
|
||||
const int err = read(codice);
|
||||
if (err != NOERR)
|
||||
error_box("Impossibile leggere l'articolo %s: Errore %d",codice, err);
|
||||
}
|
||||
}
|
||||
@ -1079,10 +1081,10 @@ void TArticolo_giacenza::add_storico(TRecord_array& nrstorico,const char * annoe
|
||||
{
|
||||
//CHECK(annorif && *annorif,"Add_storico: Indicare l'anno esercizio dello storico");
|
||||
//TRecord_array & rstorico = storico(annorif);
|
||||
TString annorif(nrstorico.key().get(STOMAG_ANNOESRIF));
|
||||
TString8 annorif(nrstorico.key().get(STOMAG_ANNOESRIF));
|
||||
for (int i=nrstorico.last_row(); i>0; i--)
|
||||
{
|
||||
TString mag=nrstorico[i].get(STOMAG_CODMAG);
|
||||
TString16 mag=nrstorico[i].get(STOMAG_CODMAG);
|
||||
if (mag<=codmag)
|
||||
break;
|
||||
}
|
||||
@ -1093,7 +1095,10 @@ void TArticolo_giacenza::add_storico(TRecord_array& nrstorico,const char * annoe
|
||||
storec.put(STOMAG_NRIGA,i+1);
|
||||
storec.put(STOMAG_CODMAG,codmag);
|
||||
storec.put(STOMAG_QUANT,qta);
|
||||
storec.put(STOMAG_VALORE,prz);
|
||||
|
||||
const int dec_price = storec.ndec(STOMAG_VALORE);
|
||||
storec.put(STOMAG_VALORE, prz.string(0, dec_price));
|
||||
|
||||
nrstorico.insert_row(storec);
|
||||
}
|
||||
|
||||
@ -1116,7 +1121,7 @@ void TArticolo_giacenza::agg_storicoLIFO(const char * annoes, const char * codma
|
||||
}
|
||||
|
||||
TString nuovoanno;
|
||||
TPrice prz;
|
||||
real prz;
|
||||
real qta;
|
||||
|
||||
TEsercizi_contabili ese;
|
||||
@ -1132,11 +1137,9 @@ void TArticolo_giacenza::agg_storicoLIFO(const char * annoes, const char * codma
|
||||
if (giacenza > rim)
|
||||
{
|
||||
qta=giacenza-rim;
|
||||
if (acq.is_zero())
|
||||
prz.set_num(ZERO);
|
||||
else
|
||||
prz.set_num(valacq/acq);
|
||||
add_storico(nuovo_storico,annoes,codmag,qta,prz.get_num());
|
||||
if (!acq.is_zero())
|
||||
prz = valacq/acq;
|
||||
add_storico(nuovo_storico,annoes,codmag,qta,prz);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1219,11 +1222,10 @@ void TArticolo_giacenza::agg_storicoFIFO(const char * annoes, const char * codma
|
||||
qta = min(giacenza, acq);
|
||||
if (!qta.is_zero())
|
||||
{
|
||||
TPrice prz;
|
||||
|
||||
real prz;
|
||||
if (!acq.is_zero())
|
||||
prz.set_num(valacq/acq);
|
||||
add_storico(nuovo_storico, annoes, codmag, qta, prz.get_num());
|
||||
prz = valacq/acq;
|
||||
add_storico(nuovo_storico, annoes, codmag, qta, prz);
|
||||
}
|
||||
|
||||
nuovo_storico.pack();
|
||||
@ -1237,8 +1239,6 @@ void TArticolo_giacenza::agg_storico(const char * annoes, const char * codmag,
|
||||
CHECK(strlen(codmag)<=3,"Non è più possibile avere valorizzazione a livello di deposito");
|
||||
CHECK(codmag && *codmag,"Necessario indicare il magazzino");
|
||||
|
||||
// TPrice prz(val);
|
||||
TPrice prz;
|
||||
real qta;
|
||||
|
||||
TRecord_array & rmag = mag(annoes);
|
||||
@ -1255,7 +1255,7 @@ void TArticolo_giacenza::agg_storico(const char * annoes, const char * codmag,
|
||||
TRecord_array& nuovo_storico = storico(nuovoanno);
|
||||
|
||||
//nuovo_storico.destroy_rows();
|
||||
add_storico(nuovo_storico, annoes, codmag, qta, prz.get_num());
|
||||
add_storico(nuovo_storico, annoes, codmag, qta, ZERO);
|
||||
nuovo_storico.sort(sort_storico);
|
||||
nuovo_storico.write();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user