Patch level : 12.0 1056
Files correlati : bs0500a.h bs0500a.uml bs0500.cpp bsmenu.men Articolo new da riga tietmovmag
This commit is contained in:
parent
b3cc2229a8
commit
f92e687157
@ -6,19 +6,16 @@
|
||||
#include <reputils.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include "../mg/mglib.h"
|
||||
#include "../cg/cglib.h"
|
||||
#include "../ve/velib.h"
|
||||
#include <doc.h>
|
||||
#include <rdoc.h>
|
||||
|
||||
#include "bs0.h"
|
||||
|
||||
#include "bs0500a.h"
|
||||
#include "../fe/felib.h"
|
||||
#include "../ve/condv.h"
|
||||
#include "../ve/rcondv.h"
|
||||
|
||||
#include <comuni.h>
|
||||
#include <clifo.h>
|
||||
#include <cfven.h>
|
||||
@ -87,7 +84,7 @@ public:
|
||||
TMask_field* f = find_by_fieldname(fld); return TDate(f ? f->get() : EMPTY_STRING);
|
||||
}
|
||||
|
||||
TImporta_mask() : TAutomask("bs0500a") { autoload(); }
|
||||
TImporta_mask() : TAutomask("bs0500a") { autoload(); }
|
||||
~TImporta_mask() { autosave(); }
|
||||
};
|
||||
|
||||
@ -131,8 +128,16 @@ void TImporta_mask::autoload()
|
||||
FOR_EACH_MASK_FIELD(*this, i, f)
|
||||
{
|
||||
const TFieldref* fr = f->field();
|
||||
if (fr != NULL)
|
||||
f->set(ini_get_string(CONFIG_DITTA, "bs", fr->name()));
|
||||
if (fr != NULL)
|
||||
{
|
||||
const TString & name = fr->name();
|
||||
|
||||
if ( (name == "SyncIMPPARTDOC") || (name == "SyncDoc") )
|
||||
f->set(ini_get_bool(CONFIG_DITTA, "bs", name,true) ? "X" : " ");
|
||||
else
|
||||
f->set(ini_get_string(CONFIG_DITTA, "bs", name));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,12 +197,11 @@ protected:
|
||||
void sync_corrisp(const TDate& dal, const TDate& al);
|
||||
void sync_mov(int tipotestata, const TDate& dal, const TDate& al);
|
||||
void sync_scontrini(const TDate& dal, const TDate& al) { sync_mov(3, dal, al); }
|
||||
void sync_doc(const TDate& dal, const TDate& al);
|
||||
void sync_doc(const TDate& dal, const TDate& al, int tipotestata, bool importadoc);
|
||||
void sync_carscar(const TDate& dal, const TDate& al) { sync_mov(1, dal, al); }
|
||||
void sync_generici(const TDate& dal, const TDate& al) { sync_mov(4, dal, al); }
|
||||
void sync_clifo(int cfmask, const TDate& dal, const TDate& al);
|
||||
void sync_listino(const TString& listino);
|
||||
void sync_fatbol(const TDate& dal, const TDate& al);
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
@ -942,9 +946,10 @@ void TImporta_sync::sync_clifo(int cfmask, const TDate& dal, const TDate& al)
|
||||
TString str(255);
|
||||
TODBC_recordset clifo(str);
|
||||
clifo.connect(_dsn, _usr, _psw);
|
||||
/*
|
||||
str << "DELETE FROM tieAnagCFP WHERE Origine=1;";
|
||||
clifo.exec(str); // Elimina tutte le anagrafiche importate da BeeStore
|
||||
|
||||
*/
|
||||
save_clifo(cfmask, dal, al);
|
||||
}
|
||||
|
||||
@ -1134,154 +1139,6 @@ void TImporta_sync::add_rmov(TMovimentoPN& mov, const real& importo, const TCaus
|
||||
}
|
||||
}
|
||||
|
||||
void TImporta_sync::sync_doc(const TDate& dal, const TDate& al)
|
||||
{
|
||||
const TString8 codcausdef = ini_get_string(CONFIG_DITTA, "bs", MOVMAG_CODCAUS, "", 2);
|
||||
|
||||
if (codcausdef.blank())
|
||||
{
|
||||
_log->log(2, "Configurare parametri per movimenti Bee Store");
|
||||
return;
|
||||
}
|
||||
|
||||
TString str(255);
|
||||
str << "SELECT tieDMovMag.*,tieTBolFat.* FROM tieDMovMag,tieTBolFat WHERE tieDMovMag.Origine=1 AND tieDMovMag.TipoTestata=2 AND tieDMovMag.CodTestata=tieTBolFat.Cod_PK"; // verificare
|
||||
if (dal.ok() || al.ok())
|
||||
{
|
||||
str << " AND DataMov";
|
||||
if (dal.ok() && al.ok())
|
||||
str << " BETWEEN " << date2sql(dal) << " AND " << date2sql(al);
|
||||
else
|
||||
{
|
||||
if (dal.ok())
|
||||
str << ">=" << date2sql(dal);
|
||||
else
|
||||
str << "<=" << date2sql(al);
|
||||
}
|
||||
}
|
||||
str << "\nORDER BY NumMov,NumRiga";
|
||||
|
||||
TODBC_recordset docs(str);
|
||||
docs.connect(_dsn, _usr, _psw);
|
||||
TProgress_monitor pi(docs.items(), str);
|
||||
|
||||
long num_doc = -1, nd, codcf;
|
||||
TString4 tipocf;
|
||||
TDocumento* doc = NULL;
|
||||
|
||||
for (bool ok = docs.move_first(); ok; ok = docs.move_next())
|
||||
{
|
||||
TToken_string test(docs.get("CodTestata").as_string(), '\\');
|
||||
|
||||
nd = atol(test.get());
|
||||
TString wrk = docs.get("CodCliente").as_string();
|
||||
|
||||
while (wrk[0] >= 'A')
|
||||
wrk.ltrim(1);
|
||||
|
||||
codcf = atol(wrk);
|
||||
tipocf = docs.get("TipoIntestatario").as_string();
|
||||
if (tipocf != "C") // verificare
|
||||
tipocf = "F";
|
||||
|
||||
if (nd != num_doc)
|
||||
{
|
||||
if (num_doc > 0 && !save_and_delete_doc(doc))
|
||||
break;
|
||||
num_doc = nd;
|
||||
const TDate datadoc = docs.get("DataMov").as_date();
|
||||
TString8 numdoc = docs.get("TipoDocCE").as_string();
|
||||
TString8 tipodoc = docs.get("TipoDocCE").as_string();
|
||||
|
||||
TTipo_documento tipo(tipodoc);
|
||||
const TString8 codcaus = tipo.caus_mov().blank() ? codcausdef : tipo.caus_mov();
|
||||
|
||||
doc = new TDocumento();
|
||||
doc->put(DOC_ANNO, datadoc.year());
|
||||
doc->put(DOC_DATADOC, datadoc);
|
||||
doc->put(DOC_NDOC, nd);
|
||||
doc->put(DOC_PROVV, "D");
|
||||
doc->put(DOC_CODNUM, numdoc);
|
||||
doc->put(DOC_TIPODOC, tipodoc);
|
||||
doc->put(DOC_TIPOCF, tipocf);
|
||||
doc->put(DOC_CODCF, codcf);
|
||||
doc->cli2doc();
|
||||
|
||||
const TString8 codval = docs.get("CodValuta").as_string();
|
||||
const real cambio = docs.get("CambioValuta").as_real();
|
||||
const TString asp = docs.get("AspettoBeni").as_string();
|
||||
const int ncolli = docs.get("NumeroColli").as_int();
|
||||
|
||||
doc->put(DOC_CODVAL, codval);
|
||||
doc->put(DOC_CAMBIO, cambio);
|
||||
doc->put(DOC_ASPBENI1, asp.sleft(50));
|
||||
doc->put(DOC_ASPBENI2, asp.smid(50));
|
||||
doc->put(DOC_NCOLLI, ncolli);
|
||||
doc->put(DOC_CAUSMAG, codcaus);
|
||||
}
|
||||
const int tipoart = docs.get("TipoArticolo").as_int();
|
||||
TString4 tiporiga = tipoart == 2 ? "04" : "02";
|
||||
TRectype& rdoc = doc->new_row("01");
|
||||
const TString80 codart = docs.get("CodArticolo").as_string();
|
||||
|
||||
rdoc.put(RDOC_CODART, codart);
|
||||
|
||||
if (tipoart == 2)
|
||||
{
|
||||
if (cache().get("SPP", codart).not_empty())
|
||||
rdoc.put(RDOC_CODARTMAG, codart);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cache().get(LF_ANAMAG, codart).not_empty())
|
||||
rdoc.put(RDOC_CODARTMAG, codart);
|
||||
}
|
||||
|
||||
rdoc.put(RDOC_CODARTMAG, codart);
|
||||
// rdoc.check_row();
|
||||
|
||||
const TString descr = docs.get("DSRiga").as_string();
|
||||
|
||||
rdoc.put(RDOC_DESCR, descr.sleft(50));
|
||||
if (descr.len() > 50)
|
||||
{
|
||||
rdoc.put(RDOC_DESCLUNGA, "X");
|
||||
rdoc.put(RDOC_DESCEST, descr.smid(50));
|
||||
}
|
||||
rdoc.put(RDOC_CODMAG, docs.get("CodMagazzino").as_string().left(5));
|
||||
rdoc.put(RDOC_CODMAGC, docs.get("CodMagazDest").as_string().left(5));
|
||||
rdoc.put(RDOC_UMQTA, docs.get("CodUntMis").as_string());
|
||||
rdoc.put(RDOC_QTA, docs.get("Quantita").as_real());
|
||||
rdoc.put(RDOC_PREZZO, docs.get("PrzNettoSede").as_real()); // o PrzNettoValuta ??
|
||||
|
||||
real valsconto1(docs.get("Sconto1").as_real());
|
||||
real valsconto2(docs.get("Sconto2").as_real());
|
||||
real valsconto3(docs.get("Sconto3").as_real());
|
||||
TString80 sconto;
|
||||
|
||||
if (valsconto1 != ZERO)
|
||||
sconto << valsconto1.stringa(6, 2);
|
||||
if (valsconto2 != ZERO)
|
||||
{
|
||||
if (sconto.full())
|
||||
sconto << "+";
|
||||
sconto << valsconto2.stringa(6, 2);
|
||||
}
|
||||
if (valsconto3 != ZERO)
|
||||
{
|
||||
if (sconto.full())
|
||||
sconto << "+";
|
||||
sconto << valsconto3.stringa(6, 2);
|
||||
}
|
||||
rdoc.put(RDOC_SCONTO, sconto);
|
||||
rdoc.put(RDOC_CODIVA, docs.get("CodIva").as_string());
|
||||
|
||||
if (!pi.add_status())
|
||||
break;
|
||||
}
|
||||
save_and_delete_doc(doc); // Salva ultimo documento in sospeso
|
||||
}
|
||||
|
||||
void TImporta_sync::sync_corrisp(const TDate&, const TDate&)
|
||||
{
|
||||
const TString8 codcaus = ini_get_string(CONFIG_DITTA, "bs", "CODCAUSC");
|
||||
@ -1419,20 +1276,11 @@ void TImporta_sync::sync_corrisp(const TDate&, const TDate&)
|
||||
}
|
||||
}
|
||||
|
||||
void TImporta_sync::sync_fatbol(const TDate& dal, const TDate& al)
|
||||
void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata, bool importadoc)
|
||||
{
|
||||
|
||||
const TString8 codcausdef = ini_get_string(CONFIG_DITTA, "bs", MOVMAG_CODCAUS, "", 2);
|
||||
/*
|
||||
if (codcausdef.blank())
|
||||
{
|
||||
_log->log(2, "Configurare parametri per movimenti Bee Store");
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
TString str(255);
|
||||
str << "SELECT tieDMovMag.*,tieTBolFat.* FROM tieDMovMag,tieTBolFat WHERE tieDMovMag.Origine=1 AND tieDMovMag.TipoTestata=2 AND tieDMovMag.CodTestata=tieTBolFat.Cod_PK"; // verificare
|
||||
str << "SELECT tieDMovMag.*,tieTBolFat.* FROM tieDMovMag,tieTBolFat WHERE tieDMovMag.Origine=1 AND tieDMovMag.TipoTestata=" <<tipotestata<< " AND tieDMovMag.CodTestata=tieTBolFat.Cod_PK"; // verificare
|
||||
if (dal.ok() || al.ok())
|
||||
{
|
||||
str << " AND DataMov";
|
||||
@ -1498,7 +1346,11 @@ void TImporta_sync::sync_fatbol(const TDate& dal, const TDate& al)
|
||||
TString8 tipodoc = docs.get("TipoDocCE").as_string();
|
||||
TString origine_dc = docs.get("Origine").as_string();
|
||||
|
||||
if (tipodoc.not_empty() && (tipodoc != " ")) {
|
||||
|
||||
|
||||
if (((tipodoc.not_empty()) && (tipodoc != " ")) )
|
||||
//&& ((docs.get("CodIva").as_string().not_empty() && (docs.get("CodIva").as_string() != " "))))
|
||||
{
|
||||
|
||||
TTipo_documento tipo(tipodoc);
|
||||
const TString8 codcaus = tipo.caus_mov().blank() ? codcausdef : tipo.caus_mov();
|
||||
@ -1540,15 +1392,31 @@ void TImporta_sync::sync_fatbol(const TDate& dal, const TDate& al)
|
||||
}
|
||||
}
|
||||
TString8 tipodoc = docs.get("TipoDocCE").as_string();
|
||||
if (tipodoc.not_empty() && (tipodoc != " "))
|
||||
{
|
||||
|
||||
if ( ( (tipodoc.not_empty() ) && (tipodoc != " ") ) )
|
||||
//&& ( (docs.get("CodIva").as_string().not_empty() && (docs.get("CodIva").as_string() != " ") ) ) )
|
||||
{
|
||||
const int tipoart = docs.get("TipoArticolo").as_int();
|
||||
// inutile per noi TString4 tiporiga = tipoart == 2 ? "04" : "02";
|
||||
TRectype& rdoc = doc->new_row("01");
|
||||
const TString80 codart = docs.get("CodArticolo").as_string();
|
||||
|
||||
rdoc.put(RDOC_CODART, codart);
|
||||
if (importadoc && tipoart == 0)
|
||||
{
|
||||
rdoc.put(RDOC_CODARTMAG, codart);
|
||||
rdoc.put(RDOC_CHECKED, "X");
|
||||
if (cache().get(LF_ANAMAG, codart).empty())
|
||||
{
|
||||
TArticolo articolo;
|
||||
articolo.put(ANAMAG_CODART, codart);
|
||||
articolo.put(ANAMAG_DESCR, docs.get("DSRiga").as_string());
|
||||
articolo.put(ANAMAG_CLASSDOG, docs.get("CodDogana").as_string());
|
||||
TRectype& umart = articolo.new_row(LF_UMART);
|
||||
umart.put(UMART_UM, docs.get("CodUntMis").as_string());
|
||||
umart.put(UMART_FC, 1);
|
||||
articolo.write();
|
||||
}
|
||||
}
|
||||
if (tipoart == 2) //righe libere
|
||||
{
|
||||
if (cache().get("SPP", codart).not_empty())
|
||||
@ -1666,6 +1534,7 @@ void TImporta_sync::main_loop()
|
||||
|
||||
const TDate dal = mask.get_date("SyncDateFrom");
|
||||
const TDate al = mask.get_date("SyncDateTo");
|
||||
const bool importa_artdoc = mask.get_bool("SyncIMPPARTDOC");
|
||||
|
||||
if (mask.get_bool("SyncUMS"))
|
||||
sync_ums(dal, al);
|
||||
@ -1695,14 +1564,12 @@ void TImporta_sync::main_loop()
|
||||
if (mask.get_bool("SyncCorr"))
|
||||
sync_corrisp(dal, al);
|
||||
if (mask.get_bool("SyncDoc"))
|
||||
sync_doc(dal, al);
|
||||
sync_doc(dal, al, mask.get_int(F_TIPODOC), importa_artdoc);
|
||||
|
||||
if (mask.get_bool("SyncCarScar"))
|
||||
sync_carscar(dal, al);
|
||||
if (mask.get_bool("SyncGenerici"))
|
||||
sync_generici(dal, al);
|
||||
if (mask.get_bool("SyncFatBol"))
|
||||
sync_fatbol(dal, al);
|
||||
|
||||
_log->preview();
|
||||
delete _log;
|
||||
_log = NULL;
|
||||
|
@ -17,8 +17,12 @@
|
||||
#define F_FORNITORI 116
|
||||
#define F_BARCODE 117
|
||||
|
||||
#define F_FATBOL 121
|
||||
#define F_CANCART 122
|
||||
#define F_FATTURE 121
|
||||
#define F_BOLLE 122
|
||||
#define F_ORDINI 123
|
||||
#define F_IMPPARTDOC 124
|
||||
#define F_CANCART 125
|
||||
#define F_TIPODOC 126
|
||||
|
||||
#define F_C_CARSCAR 201
|
||||
#define F_D_CARSCAR 202
|
||||
|
@ -4,7 +4,7 @@ TOOLBAR "topbar" 0 0 0 2
|
||||
#include <elabar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Sincronizzazione Bee Store" 0 2 0 0
|
||||
PAGE "Importazioni da BeeStore" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 9
|
||||
BEGIN
|
||||
@ -111,19 +111,26 @@ GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "@bDocumenti"
|
||||
END
|
||||
BOOLEAN F_FATBOL
|
||||
BEGIN
|
||||
PROMPT 2 11 "Importa le Fatture"
|
||||
FIELD SyncFatBol
|
||||
END
|
||||
|
||||
BOOLEAN F_DOCUMENTI
|
||||
BEGIN
|
||||
PROMPT 2 12 "Documenti "
|
||||
PROMPT 2 11 "Documenti "
|
||||
FIELD SyncDoc
|
||||
MESSAGE FALSE CLEAR,F_TIPODOC
|
||||
MESSAGE TRUE ENABLE,F_TIPODOC
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
LISTBOX F_TIPODOC 1 15
|
||||
BEGIN
|
||||
PROMPT 2 12 "Tipo Documento"
|
||||
ITEM "2|Fatture"
|
||||
ITEM "6|Note di credito"
|
||||
ITEM "1|Bolle"
|
||||
ITEM "9|Ordini"
|
||||
FIELD SyncTIPODOC
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 14 "@bFiltri"
|
||||
END
|
||||
@ -144,14 +151,33 @@ ENDPAGE
|
||||
|
||||
PAGE "Parametri" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 7
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bMovimenti"
|
||||
PROMPT 1 1 "@bParametri"
|
||||
END
|
||||
|
||||
BOOLEAN F_IMPPARTDOC
|
||||
BEGIN
|
||||
PROMPT 2 2 "Importazione Articoli da Documenti"
|
||||
FIELD SyncIMPPARTDOC
|
||||
MESSAGE TRUE CLEAR,F_CANCART|CLEAR,F_ART
|
||||
MESSAGE FALSE ENABLE,F_CANCART|ENABLE,F_ART
|
||||
END
|
||||
|
||||
BOOLEAN F_CANCART
|
||||
BEGIN
|
||||
PROMPT 40 2 "Elimina Articoli Sospesi"
|
||||
FIELD SyncCANCART
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bMovimenti"
|
||||
END
|
||||
|
||||
STRING F_C_CARSCAR 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Causale magazzino car./scar. "
|
||||
PROMPT 2 5 "Causale magazzino car./scar. "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_CARSCAR
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -165,13 +191,13 @@ END
|
||||
|
||||
STRING F_D_CARSCAR 50 36
|
||||
BEGIN
|
||||
PROMPT 40 2 ""
|
||||
PROMPT 40 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_C_DOCUMENTI 4
|
||||
BEGIN
|
||||
PROMPT 2 3 "Causale magazzino documenti "
|
||||
PROMPT 2 6 "Causale magazzino documenti "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_DOCUMENTI
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -185,13 +211,13 @@ END
|
||||
|
||||
STRING F_D_DOCUMENTI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 3 ""
|
||||
PROMPT 40 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_C_SCONTRINI 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "Causale magazzino scontrini "
|
||||
PROMPT 2 7 "Causale magazzino scontrini "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_SCONTRINI
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -205,13 +231,13 @@ END
|
||||
|
||||
STRING F_D_SCONTRINI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 4 ""
|
||||
PROMPT 40 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_C_GENERICI 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Causale magazzino mov.generici "
|
||||
PROMPT 2 8 "Causale magazzino mov.generici "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_GENERICI
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -225,18 +251,18 @@ END
|
||||
|
||||
STRING F_D_GENERICI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 5 ""
|
||||
PROMPT 40 8 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 8 "@bCorrispettivi"
|
||||
PROMPT 1 10 "@bCorrispettivi"
|
||||
END
|
||||
|
||||
STRING F_C_CORRISPETTIVI 4
|
||||
BEGIN
|
||||
PROMPT 2 9 "Causale contabile "
|
||||
PROMPT 2 11 "Causale contabile "
|
||||
USE LF_CAUSALI SELECT TIPODOC="CR"
|
||||
INPUT CODCAUS F_C_CORRISPETTIVI
|
||||
DISPLAY "Codice" CODCAUS
|
||||
@ -250,21 +276,10 @@ END
|
||||
|
||||
STRING F_D_CORRISPETTIVI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 9 ""
|
||||
PROMPT 40 11 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 12 "@bParametri"
|
||||
END
|
||||
|
||||
BOOLEAN F_CANCART
|
||||
BEGIN
|
||||
PROMPT 2 13 "Cancellazione degli Articoli in sospeso"
|
||||
FIELD SyncCANCART
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -5,7 +5,7 @@ Module = bs
|
||||
Flags = "F"
|
||||
Item_01 = "Configurazione", "bs0 -0", "F", 9015
|
||||
Item_02 = "Sincronizzazione", "bs0 -1", "F", 9015
|
||||
Item_03 = "Importazione Fatture", "bs0 -4", "F", 9015
|
||||
Item_03 = "Importazione", "bs0 -4", "F", 9015
|
||||
Item_04 = "SKNET Importer", "bs0 -2", "F", 9015
|
||||
Item_05 = "Tabelle di conversione", [BSMENU_002]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user