Webshop, régi DBase adatbázist használva.

A következő feladattal kerestek meg, amivel jelenleg nem tudom merre induljak el.

Adva van egy régi, karakteres alapú készletnyilvántartó program. Gyaníthatóan DBase adatbázist használ. Ebből dolgozik egy számlázó program is.

Az volna a feladat, hogy az ügyfél ebből az adatbázisból webshop-ot üzemeltessen. Nem szeretne két helyen naprakészen dolgozni és új nyilvántartó/számlázó programot venni sem.

Az volna a kérdésem, hogy megoldható-e a probléma valahogyan, mert én nem találok rá megoldást.

1. Egyrészt nem tűnik túl jó dolognak, h az adatbázis egy kliensen legyen és a weboldal azt érje el. Még akkor sem, ha valahogy biztosítják az elérését folyamatosan.

2. Új táblák és a valószínűleg a meglévő táblákba új mezők is kerülnének. Nem tudom ez mennyire járható út egy olyan adatbázisban amiből számlázás történik.

Valakinek van valami ötlete a problémára?

Hozzászólások

Export-import-tal meg lehetne oldani a dolgot (mondjuk naponta), de szerintem legolcsóbban akkor jön ki, ha vesz egy olyan számlázó-készletnyilvántartót amiből lehet webshopot üzemeltetni.

--
Gábriel Ákos
http://i-logic.hu

Az igényes megoldás: keress a neten egy normális adatbázisba dolgozó, webshop interface-szel rendelkező nyilvántartó/számlázó programot, amibe vegyétek
át az adatokat a dbase-ből, és kössétek hozzá a webshop-hoz. Egy ilyen program néhány 10 ezer forintból megvan, plusz a migrálás ára, viszont nagyon hamar
fog kapni egy viszonylag jó megoldást.

Ha ez nem megy valami miatt (nagyon extra nyilvántartó program) akkor időközönként exportáld át a dbase állományt egy mysql/postgres-be, majd keress olyan
webshop-ot amiben számlázás is van, és ezeket a rendeléseket kezeljétek külön, majd szépen halasszátok ki a régi rendszert.

Harmadik megoldás: próbáld meg valahogyan összekötni a két rendszert, de nem tudom, mennyire vannak tranzakciók és hasonló okosságok a dbase-ben, jó lenne tudni
a verziószámot.

Én hozzá nem nyúlnék az eredeti db-hez, csak kopizás erejéig, mert ha valami gebasz beüt, ne én legyek a hülye azért, mert a tulaj kőbaltával csinál finommechanikát.
Ha tényleg a közismert .dbf-ekről van szó, azokat rsync/samba/ftp/bármi útján átmásolnám, és megejteném a tartalmon a már említett export-importot, utóbbit egy tisztességes motorhoz (ha nincs memo és egyéb nyalánkság, a dbf specifikációja alapján pofonegyszerű összedobni egy exportert, ha nem volna kéznél).

Ha a készletadatok pl. éjjel frissülnek a webes db-ből, akkor a napi megrendeléslehetőségeket hűen tükrözik az adott napra.

Gány egy módszer, de Murphy van akkora guru, hogy adnék a szavára.

Van a php-nak dBase parancsai.
Meg van sql parancsai.
Meg van a webshop ami php-t használ sql alapokon.

Már csak egy kis ügyesség kell, hogy e kettő együtt működjön.
Első körbe a dBase-t csak olvasásra nyitnám, sql-be meg lehet a dBase>sql.

Majd cronba pl.: 20-30 percenként lefut a lekérés, mely beszúrja az esetleges új rekordot, illetve frissíti az árakat vevőket etc.

A gond inkább a vevő sql > dBase-nél lehet, de azt is le lehet kezelni, csak óvatosabban kell eljárni a számlázó miatt.

pch
--
http://www.buster.hu "A" számlázó
--

A "gyaníthatóan" dbase adatbázis könnyen lehet, hogy nem dbase. Régen nagy divat volt leprogramozni saját magadnak a kis indexelős adatbázist, már volt alkalmam átkonvertelni ilyeneket SQLbe, szenvedés. Szóval nézd meg hogy egyáltalán dbase-e. Ez rövidrezárhatja a kérdést. Ha dbase, még akkor sem, de akkor más miatt :D

http://www.whitetown.com/cdbflite
Én ezt használom.
Exportálok csv-be, feltöltöm a szerverre, ott meg a mysql-t frissítem.
Mondjuk nekem csak cikkszám, ár, mennyiség, aktív/passzív mezők kellenek.

A webshop saját fejlesztés lenne, tehát azon az oldalon teljes a szabadság. Tudom, h a PHP-nak vannak dBase kezelő függvényei, viszont picit tartok attól, h a cégnél üzemelő számlázó/készletnyilvántartó program miként reagál arra, ha belenyúlok az adatbázisába. Illetve az adóhatóság felé nem tudom ilyenkor szükséges-e valamiféle minősítés, hiszen a számlázó is abból dolgozik.

A cron-os megoldás tűnik egyelőre talán a legjobbnak. Kiolvasná a raktárkészletet és frissítené a webshopban. Írási műveletet a dBase-ben nem szívesen végeznék.

"picit tartok attól, h a cégnél üzemelő számlázó/készletnyilvántartó program miként reagál arra, ha belenyúlok az adatbázisába."

Teljesen mindegy, hogyan reagál, attól a ponttól fogva, hogy ráakaszkodsz, olyan nincs, hogy ha valamit elkefélnek az adatrögzítésnél, vagy bárhol, annak az eredménye ne pont azért volna, mert te stb. stb. Jó hosszan ki lehet magyarázni, de kabátlopási ügyből jól nem lehet kijönni. Ha külsősként csinálod, azért kínos, ha alkalmazottként, akkor meg állandó hivatkozási alap lesz a főnök számára a semmi.

Ezért tanácsos még a legelején leírni, aláhúzni, jóváhagyatni, aláíratni, az aláírást aláhúzni, hogy az adatbázisfájlokkal annyit és csak annyit csinálsz, mint bármikor a mentések során, másolod.

> . Illetve az adóhatóság felé nem tudom ilyenkor szükséges-e valamiféle minősítés, hiszen a számlázó is abból dolgozik.

Adohatosagnal csak a 'nyugta' penztargep hozzanyulasakor kell engedely, de akkor sem mindig. Szamlazo program eseten csak a leirast kell modositani ha valtozik, es kiadni egy nyilatkozatott, hogy minden torvenynek megfelel.

A regi adatbazisba en sem piszkalnek bele, foleg ha nincs is leirasod az adatbazisrol.

Köszönöm a sok segítséget. Akkor egyelőre marad az a felállás, hogy az eredeti adatbázisból kizárólag olvasni fogok, gyakorlatilag időközönként frissítve a webshop adatbázisát.
Hogy cron-al lesz megoldva automatikusan v. export/import még nem tudom. Attól is függ, hogy a gépüket és a dBase-t meg tudják-e majd osztani a Shop felé.

Közben felmerült bennem egy kérdés, de ez már csak saját ötletből indíttatva.
Ha írnék egy számlázó programot (csak elméletben), mondjuk Visual C++-ban, akkor az a netes adatbázist használná és a webshop-al együtt dolgozna belőle vagy kellene neki saját és szintén szinkronizálni kellene folyton a WS-al?

Ha a számlázónak csak olvasnia kell a WS adatbázisából, akkor saját adatbázis, melyet frissít akkor mikor van kapcsolata az adatbázissal. Amúgy nyugodtan lehet használni a WS adatbázisát. (Csak akkor a számlázónak folyton kapcsolatban kell lenni az adatbázissal, a már létező számlákat sem tudja megmutatni.)