Patch level : 10.0 272
Files correlati : mg1.exe mg1100.msk Ricompilazione Demo : [ ] Commento : 0001216: Righe automatiche di movimento magazzino Modificando un movimento di magazzino che deriva da documento, mi permette di modificare il codice del magazzino sulla riga. Tutto il resto, a parte il prezzo, è disabilitato. git-svn-id: svn://10.65.10.50/trunk@18622 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b50b89232f
commit
b3a42fe53d
159
mg/mg1100.cpp
159
mg/mg1100.cpp
@ -4,10 +4,13 @@
|
||||
#include "../db/dblib.h"
|
||||
#include "../ve/veconf.h"
|
||||
|
||||
#include <relapp.h>
|
||||
#include <defmask.h>
|
||||
#include <relapp.h>
|
||||
#include <msksheet.h>
|
||||
|
||||
#include "anamag.h"
|
||||
#include "rmovmag.h"
|
||||
|
||||
#include "mg1100.h"
|
||||
#include <cfven.h>
|
||||
|
||||
@ -23,13 +26,16 @@ class TMask_movmag : public TMask
|
||||
int _autorows;
|
||||
TArray _old_qta;
|
||||
bool _check_giac;
|
||||
|
||||
TMagazzini _magazzini;
|
||||
|
||||
protected:
|
||||
virtual bool on_key(KEY key);
|
||||
|
||||
protected:
|
||||
// aggiorna la riga di magazzino aggiungendo righe automatiche o esplosioni
|
||||
bool update_rigamov(int r, const char * old_codcaus, const char * old_codart, const real & old_quant);
|
||||
bool add_autorows(int r, const char * old_codcaus, const char * old_codart, const real & old_quant);
|
||||
bool add_explrows(int r);
|
||||
TMagazzini _magazzini;
|
||||
|
||||
void qta_inventory(real & qta);
|
||||
|
||||
@ -46,18 +52,18 @@ class TMask_movmag : public TMask
|
||||
static bool codgrp_handler(TMask_field &fld, KEY k); // handler del codice gruppo
|
||||
static void sheetrighe_put(TSheet_field &fld_righe, int item);
|
||||
static void sheetrighe_get(TSheet_field &fld_righe, int item);
|
||||
|
||||
public:
|
||||
TArticolo_giacenza& curr_art();
|
||||
TArray & old_qta() { return _old_qta; }
|
||||
void update_tot();
|
||||
TArray& old_qta() { return _old_qta; }
|
||||
const TMagazzini& magazzini() const { return _magazzini; }
|
||||
int autorows() const { return _autorows;}
|
||||
void update_tot();
|
||||
|
||||
TMask_movmag(TMov_mag* m_m);
|
||||
virtual ~TMask_movmag();
|
||||
};
|
||||
|
||||
|
||||
// HANDLER DEL CODICE LIVELLO anagrafica
|
||||
bool TMask_movmag::codgrp_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
@ -66,7 +72,7 @@ bool TMask_movmag::codgrp_handler(TMask_field& f, KEY k)
|
||||
if (!livelli_giacenza().enabled())
|
||||
{
|
||||
f.error_box(TR("Livelli del codice non abilitati"));
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
const int levnum=1+f.dlg()-F_LIV1;
|
||||
return livelli_giacenza().autoinsert(levnum,f);
|
||||
@ -74,11 +80,33 @@ bool TMask_movmag::codgrp_handler(TMask_field& f, KEY k)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TMask_movmag::on_key(KEY key)
|
||||
{
|
||||
if (key == K_SHIFT+K_F12 && edit_mode())
|
||||
{
|
||||
if (!field(DLG_SAVEREC).active()) // Riabilita bottoni spenti dalla protected_mode
|
||||
{
|
||||
enable(DLG_SAVEREC);
|
||||
enable(DLG_DELREC);
|
||||
}
|
||||
|
||||
TSheet_field& ss = sfield(F_RIGHE);
|
||||
FOR_EACH_SHEET_ROW(ss, i, row)
|
||||
{
|
||||
const char tipo = row->get_char(0);
|
||||
if (tipo > ' ')
|
||||
ss.enable_row(i);
|
||||
}
|
||||
ss.force_update();
|
||||
|
||||
return true;
|
||||
}
|
||||
return TMask::on_key(key);
|
||||
}
|
||||
|
||||
// costruttore della maschera anagrafica di magazzino
|
||||
//TMask_movmag::TMask_movmag() :
|
||||
TMask_movmag::TMask_movmag(TMov_mag * m_m)
|
||||
: TMask("mg1100")
|
||||
TMask_movmag::TMask_movmag(TMov_mag * m_m) : TMask("mg1100")
|
||||
{
|
||||
_mov_mag = m_m;
|
||||
// setta handler e notify
|
||||
@ -124,7 +152,6 @@ TMask_movmag::TMask_movmag(TMov_mag * m_m)
|
||||
ss.enable_column(ss.cid2index(F_CODDEP),gd);
|
||||
_autorows = prassid.get_int("AUTOROWS", "mg");
|
||||
_check_giac = prassid.get_bool("CHECK_GIAC", "mg");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -136,8 +163,9 @@ TMask_movmag::~TMask_movmag()
|
||||
void TMask_movmag::sheetrighe_get(TSheet_field &fld_righe, int item)
|
||||
{
|
||||
// prende il record della riga corrente dal record array
|
||||
TRectype &rec= fld_righe.record()->row(item, TRUE);
|
||||
TToken_string &row= fld_righe.row(item-1);
|
||||
TRectype& rec = fld_righe.record()->row(item, true);
|
||||
TToken_string& row = fld_righe.row(item-1);
|
||||
|
||||
// codici di livello
|
||||
row.add( livelli_giacenza().unpack_grpcode(rec.get("LIVGIAC") ,1),fld_righe.cid2index(F_LIV1) );
|
||||
row.add( livelli_giacenza().unpack_grpcode(rec.get("LIVGIAC") ,2),fld_righe.cid2index(F_LIV2) );
|
||||
@ -150,7 +178,7 @@ void TMask_movmag::sheetrighe_put(TSheet_field &fld_righe, int item)
|
||||
{
|
||||
TToken_string &row= fld_righe.row(item-1);
|
||||
|
||||
TRectype &recrighe= fld_righe.record()->row(item, TRUE);
|
||||
TRectype &recrighe= fld_righe.record()->row(item, true);
|
||||
// codici livello
|
||||
if (livelli_giacenza().enabled())
|
||||
{
|
||||
@ -186,7 +214,7 @@ bool TMask_movmag::handle_righe(TMask_field &f, KEY k)
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void TMask_movmag::update_tot()
|
||||
@ -233,7 +261,7 @@ bool TMask_movmag::notify_righe(TSheet_field& ss, int r, KEY key)
|
||||
if ( key == K_DEL ) // Cancellazione
|
||||
{
|
||||
if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
return FALSE; // can't remove auto lines directly
|
||||
return false; // can't remove auto lines directly
|
||||
while (r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
{
|
||||
// autoremove automatic lines along with the original one
|
||||
@ -247,7 +275,7 @@ bool TMask_movmag::notify_righe(TSheet_field& ss, int r, KEY key)
|
||||
m.update_tot();
|
||||
} else if (key == K_INS) { // Inserimento
|
||||
if (r < ss.items() && *ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
return FALSE; // cannot insert between a row and its generated one
|
||||
return false; // cannot insert between a row and its generated one
|
||||
|
||||
} else
|
||||
if (key == K_CTRL + K_INS) { // Inserimento accordato
|
||||
@ -374,7 +402,7 @@ bool TMask_movmag::handle_righeprezzo1(TMask_field &f, KEY k)
|
||||
{
|
||||
if (f.mask().get(F_PREZZO).blank())
|
||||
return handle_righeprezzo2(f, k);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// proposta hard: propone il prezzo in ogni caso
|
||||
@ -396,7 +424,7 @@ bool TMask_movmag::handle_righeprezzo2(TMask_field &f, KEY k)
|
||||
}
|
||||
mmm._price_codart = codart;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TMask_movmag::handle_checksosp(TMask_field &f, KEY k)
|
||||
@ -421,7 +449,7 @@ bool TMask_movmag::handle_checksosp(TMask_field &f, KEY k)
|
||||
return error_box(FR("Articolo %s sospeso, quindi non movimentabile"), (const char *)f.get());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TMask_movmag::handle_codarticolo(TMask_field &f, KEY k)
|
||||
@ -475,11 +503,11 @@ bool TMask_movmag::handle_causrig(TMask_field &f, KEY k)
|
||||
if (k==K_TAB && f.focusdirty())
|
||||
{
|
||||
if (!handle_checksosp(f, k))
|
||||
return FALSE;
|
||||
return false;
|
||||
handle_righeprezzo1(f, k);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// proposta hard: propone il prezzo in ogni caso
|
||||
@ -504,13 +532,13 @@ bool TMask_movmag::handle_giacattuale(TMask_field &f, KEY k)
|
||||
if (um.not_empty())
|
||||
{
|
||||
TArticolo_giacenza & art = cached_article_balances(maskrighe.get(F_CODART));
|
||||
real disp = art.disponibilita(maskmov.get(F_ANNOES),codmag,codliv,TRUE);
|
||||
real disp = art.disponibilita(maskmov.get(F_ANNOES),codmag,codliv,true);
|
||||
|
||||
disp = art.convert_to_um(disp, um, NULL, false);
|
||||
f.set(disp.string());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -525,8 +553,8 @@ bool TMask_movmag::update_rigamov (int r, const char * old_codcaus, const char *
|
||||
|
||||
bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * old_codart, const real & old_quant)
|
||||
{
|
||||
bool added_some=FALSE;
|
||||
TSheet_field & ss=(TSheet_field & )field(F_RIGHE);
|
||||
bool added_some=false;
|
||||
TSheet_field & ss= sfield(F_RIGHE);
|
||||
real new_factor(ss.cell(r,ss.cid2index(F_QUANT)));
|
||||
new_factor = old_quant.is_zero() ? ZERO : new_factor / old_quant;
|
||||
TString8 new_codcaus(ss.cell(r,ss.cid2index(F_CAUSRIG)));
|
||||
@ -535,7 +563,7 @@ bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * o
|
||||
|
||||
const TCausale_magazzino oldcau(old_codcaus);
|
||||
const TCausale_magazzino cau(new_codcaus);
|
||||
bool rimuovi_righe_coll=FALSE;
|
||||
bool rimuovi_righe_coll=false;
|
||||
bool inserisci_righe_coll= *cau.caus_collegata()!='\0' && *ss.cell(r,ss.cid2index(F_ESPLOSA)) == ' ';
|
||||
if (inserisci_righe_coll)
|
||||
{
|
||||
@ -545,7 +573,7 @@ bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * o
|
||||
|
||||
if (old_codcaus != new_codcaus)
|
||||
{
|
||||
rimuovi_righe_coll = TRUE;
|
||||
rimuovi_righe_coll = true;
|
||||
}
|
||||
else
|
||||
if ((r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) == riga_automatica)
|
||||
@ -553,14 +581,14 @@ bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * o
|
||||
{
|
||||
if (strcmp(old_codart,ss.cell(r,ss.cid2index( F_CODART)))!=0 )
|
||||
// ho cambiato il codice articolo del finito: rimuovo le righe automatiche esplose
|
||||
rimuovi_righe_coll = TRUE;
|
||||
rimuovi_righe_coll = true;
|
||||
else
|
||||
inserisci_righe_coll=FALSE;
|
||||
inserisci_righe_coll=false;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (*oldcau.caus_collegata()!='\0') // ho cambiato causale, passando ad una che non ha collegamenti
|
||||
rimuovi_righe_coll=TRUE;
|
||||
rimuovi_righe_coll=true;
|
||||
// ******************
|
||||
if (rimuovi_righe_coll)
|
||||
{
|
||||
@ -591,7 +619,7 @@ bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * o
|
||||
if (cau_coll.has_default_dep())
|
||||
newrow.add(dep,ss.cid2index(F_CODDEP));
|
||||
COPIA_SU_AUTO(F_PREZZO);
|
||||
added_some= TRUE;
|
||||
added_some= true;
|
||||
}
|
||||
while (r+offset < ss.items() && *ss.cell(r+offset,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
{
|
||||
@ -632,7 +660,7 @@ bool TMask_movmag::add_explrows(int r)
|
||||
if (new_codcaus.blank())
|
||||
new_codcaus=get(F_CODCAUS);
|
||||
|
||||
bool added_some=FALSE;
|
||||
bool added_some=false;
|
||||
|
||||
const TCausale_magazzino cau(new_codcaus);
|
||||
TArticolo articolo;
|
||||
@ -646,7 +674,7 @@ bool TMask_movmag::add_explrows(int r)
|
||||
// c'e' una riga di movimento esplodente non ancora esplosa:
|
||||
// va sostituita con n righe esplose
|
||||
real prezzo,quant;
|
||||
const char tipo_costo = cau.get("S11")[0];
|
||||
const char tipo_costo = cau.get_char("S11");
|
||||
const int livello = cau.get_int("I0");
|
||||
const TString codart = sheet.cell(r,sheet.cid2index(F_CODART));
|
||||
bool ok = distinta.set_root(codart);
|
||||
@ -654,7 +682,7 @@ bool TMask_movmag::add_explrows(int r)
|
||||
const bool is_coll = rigaprec >= 0 && *sheet.cell(r, sheet.cid2index(F_AUTOMATICA)) == riga_automatica;
|
||||
if (ok)
|
||||
{
|
||||
distinta.explode(boom, TRUE, RAGGR_EXP_NONE, livello, "A");
|
||||
distinta.explode(boom, true, RAGGR_EXP_NONE, livello, "A");
|
||||
for (int newrow=0; newrow < boom.items() ; newrow++)
|
||||
{
|
||||
TRiga_esplosione & riga_esp=(TRiga_esplosione & )(boom[newrow]);
|
||||
@ -707,7 +735,7 @@ bool TMask_movmag::add_explrows(int r)
|
||||
|
||||
sheet.check_row(r+1+newrow);
|
||||
sheet.force_update(r+1+newrow);
|
||||
added_some=TRUE;
|
||||
added_some=true;
|
||||
}
|
||||
// elimino la riga "padre"
|
||||
if (boom.items() > 0)
|
||||
@ -725,8 +753,7 @@ bool TMask_movmag::add_explrows(int r)
|
||||
return added_some;
|
||||
}
|
||||
|
||||
real TMask_movmag::proposed_price(const char *codart,
|
||||
real quant, const char *causrig)
|
||||
real TMask_movmag::proposed_price(const char *codart, real quant, const char *causrig)
|
||||
{
|
||||
real rv;
|
||||
|
||||
@ -776,7 +803,7 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
|
||||
// aggiorna le righe di sheet
|
||||
TMask_movmag &m=(TMask_movmag &)fld.mask();
|
||||
TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
|
||||
bool added_some = FALSE;
|
||||
bool added_some = false;
|
||||
|
||||
// aggiorna le righe che dipendono dalla causale movimento
|
||||
for (int i=0; i< ss.items(); i++)
|
||||
@ -792,7 +819,7 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
|
||||
}
|
||||
if (k == K_TAB)
|
||||
old_codcaus=fld.get();
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
|
||||
@ -809,7 +836,7 @@ bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
|
||||
else
|
||||
return fld.error_box(TR("La data indicata non appartiene a nessuno degli esercizi contabili inseriti ")) ;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
class TApp_movmag: public TRelation_application
|
||||
@ -817,31 +844,27 @@ class TApp_movmag: public TRelation_application
|
||||
TMask_movmag *_msk; // maschera principale
|
||||
TRelation * _rel; // relazione contenente il file movimenti
|
||||
|
||||
protected:
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask *get_mask(int) { return _msk; }
|
||||
virtual void init_query_mode(TMask&) ;
|
||||
virtual void init_insert_mode(TMask&) ;
|
||||
virtual void init_modify_mode(TMask&) ;
|
||||
virtual bool changing_mask(int) { return FALSE; }
|
||||
virtual bool changing_mask(int) { return false; }
|
||||
virtual TRelation *get_relation() const { return _rel; }
|
||||
virtual const char *get_next_key();
|
||||
virtual bool get_next_key(TToken_string& key);
|
||||
virtual int read(TMask& m);
|
||||
TString16 _nextcod;
|
||||
|
||||
public:
|
||||
TApp_movmag() {};
|
||||
virtual ~TApp_movmag() {};
|
||||
virtual bool protected_record(TRectype& rec);
|
||||
};
|
||||
|
||||
|
||||
inline TApp_movmag& app() { return (TApp_movmag&) main_app(); }
|
||||
|
||||
int TApp_movmag::read(TMask& m)
|
||||
{
|
||||
const int err = TRelation_application::read(m);
|
||||
if (err == NOERR)
|
||||
((TMask_movmag &)m).update_tot();
|
||||
((TMask_movmag&)m).update_tot();
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -855,9 +878,15 @@ void TApp_movmag::init_modify_mode(TMask& m)
|
||||
{
|
||||
m.disable(F_INVENTORYMODE);
|
||||
const bool inventory = m.get_bool(F_INVENTORYMODE);
|
||||
TSheet_field & ss = m.sfield(F_RIGHE);
|
||||
TSheet_field& ss = m.sfield(F_RIGHE);
|
||||
ss.sheet_mask().field(F_QUANT).check_type(inventory ? CHECK_NONE : CHECK_REQUIRED);
|
||||
TRelation_application::init_modify_mode(m);
|
||||
|
||||
FOR_EACH_SHEET_ROW(ss, i, row)
|
||||
{
|
||||
if (*row > ' ') // Tipo riga automatico
|
||||
ss.disable_row(i);
|
||||
}
|
||||
}
|
||||
|
||||
void TApp_movmag::init_insert_mode(TMask& m)
|
||||
@ -866,9 +895,9 @@ void TApp_movmag::init_insert_mode(TMask& m)
|
||||
const bool inventory = m.get_bool(F_INVENTORYMODE);
|
||||
TSheet_field& ss = m.sfield(F_RIGHE);
|
||||
ss.sheet_mask().field(F_QUANT).check_type(inventory ? CHECK_NONE : CHECK_REQUIRED);
|
||||
((TMask_movmag &)m).old_qta().destroy();
|
||||
((TMask_movmag&)m).old_qta().destroy();
|
||||
|
||||
for (int i = 0; i < ((TMask_movmag &)m).autorows(); i++)
|
||||
for (int i = ((TMask_movmag&)m).autorows(); i > 0; i--)
|
||||
ss.insert(-1, false, true);
|
||||
|
||||
TRelation_application::init_insert_mode(m);
|
||||
@ -876,9 +905,9 @@ void TApp_movmag::init_insert_mode(TMask& m)
|
||||
|
||||
bool TApp_movmag::user_create()
|
||||
{
|
||||
open_files(LF_ANAMAG, LF_UMART, LF_CODCORR, LF_DESLIN, LF_MOVMAG,LF_RMOVMAG, LF_MAG, LF_STOMAG, LF_TABCOM,0);
|
||||
open_files(LF_ANAMAG, LF_UMART, LF_CODCORR, LF_DESLIN, LF_MOVMAG,LF_RMOVMAG, LF_MAG, LF_STOMAG, LF_TABCOM, 0);
|
||||
|
||||
TMov_mag * m_m= new TMov_mag(); // record del movimento di magazzino
|
||||
TMov_mag* m_m = new TMov_mag(); // record del movimento di magazzino
|
||||
m_m->enable_autoload(LF_RMOVMAG);
|
||||
|
||||
// maschera specifica con gli handler dei movimenti
|
||||
@ -887,29 +916,39 @@ bool TApp_movmag::user_create()
|
||||
_rel= new TRelation(LF_MOVMAG);
|
||||
_rel->lfile().set_curr(m_m);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TApp_movmag::user_destroy()
|
||||
{
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// autonumerazione
|
||||
const char *TApp_movmag::get_next_key()
|
||||
bool TApp_movmag::get_next_key(TToken_string& nextcod)
|
||||
{
|
||||
const char* nk = ((TMov_mag &)_rel->curr()).get_next_key();
|
||||
return _nextcod.format("%d|%s",F_NUMREG, nk);
|
||||
nextcod.format("%d|%s", F_NUMREG, nk);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TApp_movmag::protected_record(TRectype& rec)
|
||||
{
|
||||
bool prot = false;
|
||||
TLocalisamfile rmov(LF_RMOVMAG);
|
||||
rmov.put(RMOVMAG_NUMREG, rec.get(RMOVMAG_NUMREG));
|
||||
rmov.put(RMOVMAG_NRIG, 1);
|
||||
if (rmov.read() == NOERR)
|
||||
prot = rmov.get_char(RMOVMAG_TIPORIGA) == riga_dadocumento;
|
||||
return prot;
|
||||
}
|
||||
|
||||
int mg1100(int argc, char* argv[])
|
||||
{
|
||||
TApp_movmag a;
|
||||
a.run(argc, argv, TR("Movimenti di magazzino"));
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -28,5 +28,4 @@
|
||||
// #define F_VALORE 156
|
||||
#define F_DESCAUSRIG 157
|
||||
|
||||
#define G_NOAUTO 1
|
||||
#define ALIAS_FCG 500
|
||||
|
@ -23,9 +23,7 @@ STRING F_AUTOMATICA 1
|
||||
BEGIN
|
||||
PROMPT 2 1 "Tipo riga "
|
||||
FIELD AUTOMATICA
|
||||
FLAGS "DG"
|
||||
MESSAGE EMPTY ENABLE,G_NOAUTO@
|
||||
MESSAGE DISABLE,G_NOAUTO@
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODART 20
|
||||
@ -42,7 +40,6 @@ BEGIN
|
||||
OUTPUT F_DESART DESCR
|
||||
OUTPUT F_UM LF_UMART->UM
|
||||
CHECKTYPE SEARCH
|
||||
GROUP G_NOAUTO
|
||||
ADD RUN ve2 -3
|
||||
MESSAGE CHECK,F_GIAC
|
||||
END
|
||||
@ -58,7 +55,6 @@ BEGIN
|
||||
DISPLAY "Codice@20" CODART
|
||||
COPY OUTPUT F_CODART
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_NOAUTO
|
||||
ADD RUN ve2 -3
|
||||
END
|
||||
|
||||
@ -161,7 +157,6 @@ BEGIN
|
||||
OUTPUT F_LIV1 CODTAB[2,16]
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CHECK,F_GIAC|CLEAR,F_LIV2|CHECK,F_LIV2
|
||||
GROUP G_NOAUTO
|
||||
MESSAGE CHECK,F_GIAC|ENABLE,F_LIV2
|
||||
END
|
||||
|
||||
@ -176,7 +171,6 @@ BEGIN
|
||||
COPY DISPLAY F_LIV1
|
||||
OUTPUT F_LIV2 CODTAB[2,16]
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_NOAUTO
|
||||
MESSAGE EMPTY CHECK,F_GIAC|CLEAR,F_LIV3|CHECK,F_LIV3
|
||||
MESSAGE CHECK,F_GIAC|ENABLE,F_LIV3
|
||||
END
|
||||
@ -191,7 +185,6 @@ BEGIN
|
||||
COPY DISPLAY F_LIV1
|
||||
OUTPUT F_LIV3 CODTAB[2,16]
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_NOAUTO
|
||||
MESSAGE EMPTY CHECK,F_GIAC|CLEAR,F_LIV4|CHECK,F_LIV4
|
||||
MESSAGE CHECK,F_GIAC|ENABLE,F_LIV4
|
||||
END
|
||||
@ -206,7 +199,6 @@ BEGIN
|
||||
COPY DISPLAY F_LIV1
|
||||
OUTPUT F_LIV4 CODTAB[2,16]
|
||||
CHECKTYPE NORMAL
|
||||
GROUP G_NOAUTO
|
||||
MESSAGE CHECK,F_GIAC
|
||||
END
|
||||
|
||||
@ -225,7 +217,6 @@ BEGIN
|
||||
OUTPUT F_UM UM
|
||||
OUTPUT F_UMFC FC
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP G_NOAUTO
|
||||
END
|
||||
|
||||
NUMBER F_QUANT 15 5
|
||||
@ -234,7 +225,6 @@ BEGIN
|
||||
FIELD QUANT
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Indicare la quantità"
|
||||
GROUP G_NOAUTO
|
||||
MESSAGE CHECK,F_VALORE
|
||||
END
|
||||
|
||||
@ -266,7 +256,6 @@ BEGIN
|
||||
OUTPUT F_DESCAUSRIG S0
|
||||
MESSAGE EMPTY RESET,F_DESCAUSRIG
|
||||
ADD RUN MG0 -0 %CAU
|
||||
GROUP G_NOAUTO
|
||||
END
|
||||
|
||||
STRING F_DESCAUSRIG 50 30
|
||||
|
11
mg/mglib.h
11
mg/mglib.h
@ -49,12 +49,11 @@
|
||||
#endif
|
||||
|
||||
// campi comuni alla maschere di magazzino
|
||||
|
||||
|
||||
typedef enum {
|
||||
riga_dadocumento='D', // derivata da documento
|
||||
riga_automatica='A', // generata da causale collegata
|
||||
riga_nongenerata=' ' // immissione direttta del mov.
|
||||
typedef enum
|
||||
{
|
||||
riga_dadocumento = 'D', // derivata da documento
|
||||
riga_automatica = 'A', // generata da causale collegata
|
||||
riga_nongenerata = ' ' // immissione diretta del mov.
|
||||
} TTipo_rigamovmag;
|
||||
|
||||
typedef enum {
|
||||
|
@ -1,6 +1,6 @@
|
||||
// oggetto TCausale_magazzino
|
||||
// oggetto TMov_Mag , multirecord del movimento di magazzino
|
||||
// funzione di ricostruzione saldi
|
||||
// funzione di ricostruzione saldi
|
||||
|
||||
#include <diction.h>
|
||||
#include <progind.h>
|
||||
@ -10,7 +10,6 @@
|
||||
#include "clifogiac.h"
|
||||
#include "mglib.h"
|
||||
#include "movmag.h"
|
||||
#include "rmovmag.h"
|
||||
#include <cfven.h>
|
||||
|
||||
#ifndef __CGLIB01_H
|
||||
@ -20,7 +19,6 @@
|
||||
#include "../db/dblib.h"
|
||||
#endif
|
||||
|
||||
|
||||
class TSaldo_mag : public TObject
|
||||
{
|
||||
int _codes;
|
||||
|
Loading…
x
Reference in New Issue
Block a user