Patch level : 12.0 1059
Files correlati : bs0500a.h bs0500a.uml bs0500.cpp Gestione Banca precedente migliorata e filtrata
This commit is contained in:
parent
075ea73b43
commit
d5d5b04dd8
@ -20,7 +20,6 @@
|
||||
#include <clifo.h>
|
||||
#include <cfven.h>
|
||||
#include <rcausali.h>
|
||||
|
||||
#include "bsutility.h"
|
||||
|
||||
#define BS_DTULTAGG "DtUltAgg"
|
||||
@ -136,8 +135,7 @@ void TImporta_mask::autoload()
|
||||
f->set(ini_get_bool(CONFIG_DITTA, "bs", name,true) ? "X" : " ");
|
||||
else
|
||||
f->set(ini_get_string(CONFIG_DITTA, "bs", name));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,6 +163,8 @@ class TImporta_sync : public TSkeleton_application
|
||||
TString _psw;
|
||||
TFilename _sqlog;
|
||||
TLog_report* _log;
|
||||
bool _banche_pres_loaded;
|
||||
TAssoc_array _banche_pres;
|
||||
|
||||
private:
|
||||
const TString& comune(const TRecordset& recset, const char* fld_cap, const char* fld_den) const;
|
||||
@ -197,12 +197,14 @@ 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, int tipotestata, bool importadoc);
|
||||
void sync_doc(const TDate& dal, const TDate& al, int tipotestata,const char* unitadefault, 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);
|
||||
|
||||
TToken_string & decode_presentazione(const char* IBAN);
|
||||
|
||||
public:
|
||||
virtual bool create();
|
||||
virtual void main_loop();
|
||||
@ -1276,7 +1278,7 @@ void TImporta_sync::sync_corrisp(const TDate&, const TDate&)
|
||||
}
|
||||
}
|
||||
|
||||
void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata, bool importadoc)
|
||||
void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata, const char* unitadefault, bool importadoc)
|
||||
{
|
||||
const TString8 codcausdef = ini_get_string(CONFIG_DITTA, "bs", MOVMAG_CODCAUS, "", 2);
|
||||
TString str(255);
|
||||
@ -1326,6 +1328,15 @@ void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata
|
||||
if (tipocf != "C") // verificare
|
||||
tipocf = "F";
|
||||
|
||||
TToken_string key = tipocf;
|
||||
key.add(codcf);
|
||||
const TRectype & clifor = cache().get(LF_CLIFO, key);
|
||||
|
||||
if (clifor.empty())
|
||||
{
|
||||
// eccezione su cliente inesistente in DSErrore errore=1
|
||||
}
|
||||
|
||||
if (test_nd != test_doc)
|
||||
// if (nd != num_doc)
|
||||
{
|
||||
@ -1371,6 +1382,17 @@ void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata
|
||||
// inserire codice pagamento Es. BB02
|
||||
doc->put(DOC_CODVAL, codval);
|
||||
doc->put(DOC_CAMBIO, cambio);
|
||||
|
||||
doc->put(DOC_CODPAG, docs.get("CodPagamento_FP").as_string() );
|
||||
doc->put(DOC_CODABIA, docs.get("ABI").as_string()); //banca di appoggio
|
||||
doc->put(DOC_CODCABA, docs.get("CAB").as_string());
|
||||
|
||||
TToken_string bnpkey = decode_presentazione(docs.get("NostroContoCorr").as_string());
|
||||
|
||||
doc->put(DOC_CODABIP, bnpkey.get() ); //banca di presentazione
|
||||
doc->put(DOC_CODCABP, bnpkey.get() );
|
||||
doc->put(DOC_PROGBNP, bnpkey.get() ); //banca di presentazione
|
||||
|
||||
doc->put(DOC_ASPBENI1, asp.sleft(50));
|
||||
doc->put(DOC_ASPBENI2, asp.smid(50));
|
||||
doc->put(DOC_NCOLLI, ncolli);
|
||||
@ -1412,7 +1434,12 @@ void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata
|
||||
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());
|
||||
TString unitamisura = docs.get("CodUntMis").as_string();
|
||||
if (unitamisura.blank())
|
||||
{
|
||||
unitamisura = unitadefault;
|
||||
}
|
||||
umart.put(UMART_UM, unitamisura);
|
||||
umart.put(UMART_FC, 1);
|
||||
articolo.write();
|
||||
}
|
||||
@ -1440,6 +1467,11 @@ void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata
|
||||
}
|
||||
rdoc.put(RDOC_CODMAG, docs.get("CodMagazzino").as_string().left(5));
|
||||
rdoc.put(RDOC_CODMAGC, docs.get("CodMagazDest").as_string().left(5));
|
||||
TString unitamisura = docs.get("CodUntMis").as_string();
|
||||
if (unitamisura.blank())
|
||||
{
|
||||
unitamisura = unitadefault;
|
||||
}
|
||||
rdoc.put(RDOC_UMQTA, docs.get("CodUntMis").as_string());
|
||||
rdoc.put(RDOC_QTA, docs.get("Quantita").as_real());
|
||||
rdoc.put(RDOC_PREZZO, docs.get("PrzNettoNeg").as_real()); // o PrzNettoValuta ??
|
||||
@ -1467,6 +1499,7 @@ void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata
|
||||
rdoc.put(RDOC_SCONTO, sconto);
|
||||
*/
|
||||
rdoc.put(RDOC_CODIVA, docs.get("CodIva").as_string());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1496,12 +1529,43 @@ void TImporta_sync::sync_doc(const TDate& dal, const TDate& al , int tipotestata
|
||||
}
|
||||
}
|
||||
|
||||
TToken_string & TImporta_sync::decode_presentazione(const char*IBAN)
|
||||
{
|
||||
TToken_string & key = get_tmp_string(20);
|
||||
if (IBAN && *IBAN)
|
||||
{
|
||||
if (!_banche_pres_loaded)
|
||||
{
|
||||
TCursor cur(new TRelation ("BNP"));
|
||||
const int items = cur.items();
|
||||
|
||||
for (cur = 0L; cur.pos() < items; ++cur)
|
||||
{
|
||||
const TString codtab = cur.curr().get("CODTAB");
|
||||
const TString iban = cur.curr().get("S3");
|
||||
TToken_string bankey = codtab.left(5);
|
||||
|
||||
bankey.add(codtab.mid(5,5));
|
||||
bankey.add(codtab.mid(10));
|
||||
_banche_pres.add(iban,bankey);
|
||||
}
|
||||
_banche_pres_loaded = true;
|
||||
}
|
||||
TToken_string *keyfound = (TToken_string *)_banche_pres.objptr(IBAN);
|
||||
if (keyfound != nullptr)
|
||||
key = *keyfound;
|
||||
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
bool TImporta_sync::create()
|
||||
{
|
||||
_dsn = ini_get_string(CONFIG_DITTA, "bs", "DSN", "BEESTORE");
|
||||
_sqlog = ini_get_string(CONFIG_DITTA, "bs", "Log", "");
|
||||
_usr = ini_get_string(CONFIG_DITTA, "bs", "USR", "BEESTORE");
|
||||
_psw = decode(ini_get_string(CONFIG_DITTA, "bs", "PSW", "BEESTORE"));
|
||||
_banche_pres_loaded = false;
|
||||
|
||||
if (_dsn.full())
|
||||
{
|
||||
@ -1564,7 +1628,7 @@ void TImporta_sync::main_loop()
|
||||
if (mask.get_bool("SyncCorr"))
|
||||
sync_corrisp(dal, al);
|
||||
if (mask.get_bool("SyncDoc"))
|
||||
sync_doc(dal, al, mask.get_int(F_TIPODOC), importa_artdoc);
|
||||
sync_doc(dal, al, mask.get_int(F_TIPODOC), mask.get(F_UNITADEFAULT), importa_artdoc);
|
||||
|
||||
if (mask.get_bool("SyncCarScar"))
|
||||
sync_carscar(dal, al);
|
||||
|
@ -23,6 +23,7 @@
|
||||
#define F_IMPPARTDOC 124
|
||||
#define F_CANCART 125
|
||||
#define F_TIPODOC 126
|
||||
#define F_UNITADEFAULT 127
|
||||
|
||||
#define F_C_CARSCAR 201
|
||||
#define F_D_CARSCAR 202
|
||||
|
@ -151,7 +151,7 @@ ENDPAGE
|
||||
|
||||
PAGE "Parametri" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri"
|
||||
END
|
||||
@ -164,6 +164,13 @@ BEGIN
|
||||
MESSAGE FALSE ENABLE,F_CANCART|ENABLE,F_ART
|
||||
END
|
||||
|
||||
BOOLEAN F_UNITADEFAULT
|
||||
BEGIN
|
||||
PROMPT 2 3 "Unitŕ di Default"
|
||||
FIELD SyncUNITADEFAULT
|
||||
END
|
||||
|
||||
|
||||
BOOLEAN F_CANCART
|
||||
BEGIN
|
||||
PROMPT 40 2 "Elimina Articoli Sospesi"
|
||||
@ -172,12 +179,12 @@ END
|
||||
|
||||
GROUPBOX DLG_NULL 78 6
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bMovimenti"
|
||||
PROMPT 1 5 "@bMovimenti"
|
||||
END
|
||||
|
||||
STRING F_C_CARSCAR 4
|
||||
BEGIN
|
||||
PROMPT 2 5 "Causale magazzino car./scar. "
|
||||
PROMPT 2 6 "Causale magazzino car./scar. "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_CARSCAR
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -191,13 +198,13 @@ END
|
||||
|
||||
STRING F_D_CARSCAR 50 36
|
||||
BEGIN
|
||||
PROMPT 40 5 ""
|
||||
PROMPT 40 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_C_DOCUMENTI 4
|
||||
BEGIN
|
||||
PROMPT 2 6 "Causale magazzino documenti "
|
||||
PROMPT 2 7 "Causale magazzino documenti "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_DOCUMENTI
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -211,13 +218,13 @@ END
|
||||
|
||||
STRING F_D_DOCUMENTI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 6 ""
|
||||
PROMPT 40 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_C_SCONTRINI 4
|
||||
BEGIN
|
||||
PROMPT 2 7 "Causale magazzino scontrini "
|
||||
PROMPT 2 8 "Causale magazzino scontrini "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_SCONTRINI
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -231,13 +238,13 @@ END
|
||||
|
||||
STRING F_D_SCONTRINI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 7 ""
|
||||
PROMPT 40 8 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_C_GENERICI 4
|
||||
BEGIN
|
||||
PROMPT 2 8 "Causale magazzino mov.generici "
|
||||
PROMPT 2 9 "Causale magazzino mov.generici "
|
||||
USE %CAU SELECT (S2[8,8]=1)&&(S6="P")
|
||||
INPUT CODTAB F_C_GENERICI
|
||||
DISPLAY "Codice" CODTAB
|
||||
@ -251,18 +258,18 @@ END
|
||||
|
||||
STRING F_D_GENERICI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 8 ""
|
||||
PROMPT 40 9 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 10 "@bCorrispettivi"
|
||||
PROMPT 1 11 "@bCorrispettivi"
|
||||
END
|
||||
|
||||
STRING F_C_CORRISPETTIVI 4
|
||||
BEGIN
|
||||
PROMPT 2 11 "Causale contabile "
|
||||
PROMPT 2 12 "Causale contabile "
|
||||
USE LF_CAUSALI SELECT TIPODOC="CR"
|
||||
INPUT CODCAUS F_C_CORRISPETTIVI
|
||||
DISPLAY "Codice" CODCAUS
|
||||
@ -276,7 +283,7 @@ END
|
||||
|
||||
STRING F_D_CORRISPETTIVI 50 36
|
||||
BEGIN
|
||||
PROMPT 40 11 ""
|
||||
PROMPT 40 12 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user