Rejestracja sprzedaży

Podobne dokumenty
Projekt Hurtownia, realizacja skojarzeń dostawców i produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów

3 Delegacje. 3.1 Tworzenie delegacji. 3.2 Skojarzenie delegacji z procedurą czy funkcją

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Krzysztof Kluza proste ćwiczenia z baz danych

Wykorzystanie modułu Crystal Reports firmy SAP

MS Access formularze

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

1. Zarządzanie informacją w programie Access

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Laboratorium 7 Blog: dodawanie i edycja wpisów

BSX PRINTER INSTRUKCJA UŻYTKOWNIKA. Autor: Karol Wierzchołowski 30 marca 2015

Formularze w programie Word

Baza danych. Program: Access 2007

5.4. Tworzymy formularze

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Nowe funkcje w programie SYMFONIA Handel Premium w wersji 2009.c

Nowe funkcje w programie SYMFONIA Handel Premium w wersji 2009

5.2. Pierwsze kroki z bazami danych

Numerowanie obiektów (wzorów, rysunków, tabel, literatury)

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Załącznik nr 1 do Regulaminu świadczeń dla studentów PWSZ w Suwałkach.

Tworzenie formularzy w Microsoft Office Word 2007

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Program Faktura. Jastrzębie Zdrój, 27 czerwiec 2016r

Instrukcja użytkownika programu QImport (wydanie I r.)

Instalacja. Dane z programu dla wersji jednostanowiskowej są zapisywane w katalogu :

Nowe funkcjonalności wersji

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Pobierz bibliotekę AccessDatabaseEngine dla systemów 64-bitowych.

Instrukcja użytkownika. Aplikacja Smart Paczka DPD

Rejestracja faktury VAT. Instrukcja stanowiskowa

LISTA ZADAŃ NR 3 ZADANIA DO ZREALIZOWANIA W MS ACCESS FORMULARZE

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

SPECYFIKACJA WDROŻENIA SKLEPU MAGENTO

ColDis Poradnik użytkownika

Kadry Optivum, Płace Optivum

Materiały do laboratorium MS ACCESS BASIC

1.0 v2. INSTRUKCJA OBSŁUGI SAD EC Win - Moduł Ewidencja Banderol

INSTRUKCJA OBSŁUGI BIULETYNU INFORMACJI PUBLICZNEJ

Dane z programu dla wersji jednostanowiskowej są zapisywane w katalogu :

Dokumentacja użytkownika systemu bankowości internetowej def3000/ceb. UZUPEŁNIENIE: Mechanizm Podzielonej Płatności (MPP/Split Payment)

WebMobile7 and Sello Integrator wersja 1.1.2

Pomoc do programu Oferent

Program Import Kontrahentów XLS dla Subiekta GT.

Opis konfiguracji i wysyłki wniosków EKW w aplikacji Komornik SQL-VAT

Instrukcja użytkownika programu QImport (wydanie II r.)

Tworzenie bazy danych na przykładzie Access

Instrukcja obsługi aplikacji MobileRaks 1.0

SymSync integracja danych Opencart/Prestashop Symfonia Handel Instrukcja obsługi

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

System zarządzania firmą specyfikacja techniczna.

11. KORESPONDENCJA SERYJNA

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Kolejne osoby możemy wyświetlać naciskając przyciski do przesuwania rekordów.

ZLECENIA STAŁE. Instrukcja Użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

TEST WSTĘPNY. Imię i Nazwisko: Telefon kontaktowy: 1. Kilobajt jest to: a bajtów b bajtów c bitów d.

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Microsoft Access zajęcia 3 4. Tworzenie i wykorzystanie kwerend, formularzy i raportów

Program Import dokumentów XLS dla Subiekta GT.

Uruchamiamy moduł APW44 - Komunikacja

Dokumentacja eksploatacyjna systemu SOVAT dla użytkownika zewnętrznego (pracownik jednostki)

Zakładanie konta w JSA przez administratora JSA. Rozpocznij

Instrukcja użytkownika. Panel Partnera CreamCRM

Instrukcja obsługi systemu e-faktury.no

I. Program II. Opis głównych funkcji programu... 19

Zapytania i wstawianie etykiet z bazy danych do rysunku

Instrukcja korzystania z platformy B2B Black Point S.A.

Programowanie MorphX Ax

Padlet wirtualna tablica lub papier w Internecie

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Wersja 3.40 Firmy++C/S

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

ACCESS ćwiczenia (zestaw 1)

Aleksander Galisz. Gf aktura 1.0. Podręcznik użytkownika

BAZY DANYCH Panel sterujący

Przygotowanie formularza do wypożyczenia filmu:

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Korespondencja seryjna Word 2000

Instrukcja aktualizacji programu FAKTURY i Rachunki 2013

Obsługa gotówki. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

Programowanie obiektowe

Import danych z plików Excel. (pracownicy, limity urlopowe i inne)

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

System magazynowy małego sklepu.

WooCommerce (WordPress) Integrator by CTI. Instrukcja

Ćwiczenie 22 Dynamiczne wczytywanie tekstu z pliku.txt

PWI Instrukcja użytkownika

Instrukcja programu mam wersja 1.02.

PROGRAMY NARZĘDZIOWE DOKUMENT

Aplikacje w środowisku VBA. Visual Basic for Aplications

Edycja szablonu artykułu do czasopisma

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Books. by HansaWorld. Przewodnik instalacji. wersji 6.2

Certyfikat kwalifikowany

Transkrypt:

Rejestracja sprzedaży Powoli zbliżamy się do zakończenia prac nad projektem Hurtownia. Zajęcia 5 zjazdu szkoleniowego zostaną poświęcone na zabezpieczenie procesu rejestracji sprzedaży. Problem będzie dość skomplikowany, ale da także możliwość pokazania wielu nowych rozwiązań jak i uporządkowania dotychczasowej wiedzy i umiejętności. Sformułowanie problemu Celem jest przygotowanie formularza ekranowego pozwalającego na obsługę sprzedaży produktów oferowanych przez hurtownię w zakresie: 1. Wyboru nabywcy z pola kombi z ewentualną możliwością zarejestrowania nowego nabywcy bezpośrednio z formularza sprzedaży; 2. Wyboru produktu z pola kombi znając w miarę możliwości jego dokładny opis (nazwa produktu, wielkość i rodzaj opakowania, nazwa dostawcy, cena jednostkowa); 3. Ustalenie liczby opakowań wybranego produktu w taki sposób, aby nie było możliwości przekroczenia liczby dostępnych opakowań; 4. Przed zaakceptowaniem wyboru nabywca powinien znać wartość netto i brutto wybranej ilości opakowań; 5. Możliwość dodania wybranego produktu do koszyka zakupów wraz z wyświetleniem kwoty brutto wartości koszyka; 6. Możliwość rezygnacji z wybranego pojedynczego produktu (wycofanie go z koszyka zakupów); 7. Zarejestrowanie sprzedaży w dwóch tabelach bazy danych: sam fakt sprzedaży w tabeli Sprzedaz, a jej detali w tabeli DetaleSprzedazy. Jednocześnie w tabeli tempmagazyn muszą być zarejestrowane informacje dla obsługi magazynu pozwalające na wydanie w pierwszej kolejności tych opakowań danego produktu, którym najwcześniej kończy się data przydatności; 8. Przygotowanie faktury VAT dokumentującej fakt dokonania zakupu. Baza danych, potrzebne tabele i procedury przechowywane Projekty tabel Sprzedaz i DetaleSprzedazy pokazane są niżej, obie tabele połączone są relacją typu jeden-do-wielu poprzez pole ids. Dla potrzeb obsługi magazynu została utworzona pomocnicza tabela tempmagazyn, umieszczane w niej będą informacje ułatwiające wydawanie zakupionych produktów z przestrzeganiem zasady, aby te same produkty były wydawane wg najkrótszych terminów ich przydatności. 1

Dane będą wstawiane do tych tabel poprzez pokazane niżej procedury przechowywane. Pierwsza z nich odpowiada za zarejestrowanie faktu sprzedaży, jej zadaniem jest także zwrócenie identyfikatora wstawionego rekordu, który będzie wykorzystany jako jeden z argumentów w drugiej procedurze. Pokazana niżej procedura będzie odpowiadać za zarejestrowanie detalu sprzedaży, będzie ona wywołana tyle razy, ile różnych produktów będzie zakupionych w jednej transakcji. Obie pokazane wyżej procedury będą uruchamiane przy obsłudze transakcji, czyli z możliwością wycofania wszystkich zmian w obu tabelach w sytuacji, gdyby były problemy z ich wykonaniem. Do tabeli tempmagazyn informacje będą wprowadzane z pomocą pokazanej niżej procedury. Po wydaniu zakupionych produktów informacja o nich będzie usuwana z tej tabeli z pomocą kolejnej procedury przechowywanej. Poza pokazanymi procedurami do obsługi procesu sprzedaży będą jeszcze potrzebne procedury zabezpieczające funkcjonowanie formularza, który za moment będziemy projektować, Kolejno zostaną przedstawione te procedury. Pierwsza z tych procedur będzie odpowiedzialna za dostarczenie danych do pola kombi, które będzie pozwalało na wybór nabywcy (odbiorcy) oferowanych produktów. Pokazana niżej procedura będzie dostarczać informacji o dostępnych produktach, poza identyfikatorem produktu i jego rozbudowaną nazwą zwraca ona kilka dodatkowych informacji, które będą potrzebne przy obsłudze sprzedaży (dostępna liczba opakowań, cena jednostkowa opakowania, stawka podatku VAT). Informacje zwrócone przez tą procedurę będą wykorzystane do zbudowania instancji klasy CProdukty, której zadaniem będzie zawarcie w jednym obiekcie szeregu właściwości danego produktu. Klasa CProdukty na ten moment jeszcze nie istnieje, utworzymy ją za chwilę. W klasie tej nadpiszemy metodę ToString tak, aby instancje tej klasy można było wykorzystać jako elementy pola kombi pozwalającego na wybór produktów. Rekordset zwracany przez tę procedurę będziemy także przechowywać w jawnej postaci w jakimś pomocniczym obiekcie (np., w DataGridView lub DataTable) na potrzeby modyfikacji źródła danych dla pola 2

kombi pozwalającego na wybór produktów (np., w momencie wyczerpania wszystkich opakowań) czy na obsługę wycofania z koszyka jakiegoś produktu. Pokazana niżej procedura będzie uruchamiana dla każdego produktu w koszyku zakupów, a jej zadaniem jest przygotowanie informacji dla obsługi magazynu w sensie wskazania opakowań, które mają być wydane, Dane te ostatecznie trafią do tabeli tempmagazyn. Projekt formularza frmsprzedaz Dodajemy do rozwiązania nowy formularz o nazwie jak wyżej i umieszczamy na nim formanty tak, jak to pokazano niżej. 3

Formanty tego formularza i ich nazwy systemowe pokazane są w widoku Document Outline (menu View/Other Windows). Przed napisaniem kodu procedur obsługujących funkcjonowanie tego formularza musimy przygotować dwie nowe klasy o nazwach CSprzedaz oraz CProdukty, będą one zawierać metody i właściwości, które wykorzystamy w kodzie formularza frmsprzedaz. Obiekt klasy CSprzedaz Zaczynamy od dodania do rozwiązania nowego obiektu typu Class o nazwie CSprzedaz.vb. Obiekt ten będzie zawierał oprócz klasy CSprzedaz także klasę CProdukty (trochę nietypowo, ale jest to dopuszczalne). Poniżej widok tego obiektu z zaimportowanym szeregiem przestrzeni nazw, takie przestrzenie jak System.Data i System.Data.SqlClient są niezbędne do współpracy z bazą danych MS SQL, a System.Math pozwoli na korzystanie z funkcji Round. Pozostałe trzy przestrzenie wykorzystamy do przygotowania raportu faktury jako dokumentu Worda. W obiekcie CSprzedaz.vb utworzono dwa interfejsy, pierwszy z nich o nazwie ISprzedaz zawiera zapowiedzi tych właściwości (Function) i metod (Sub), które wykorzystamy do obsługi sprzedaży. Interfejs IMagazyn zapowiada właściwości i funkcje, które wykorzystamy do obsługi magazynu na etapie wydawania zakupionych produktów. 4

W kodzie klasy CSprzedaz wpisujemy instrukcje dziedziczenia po klasie CForStorageSub, zapowiedzi implementacji obu interfejsów oraz deklarujemy zmienne prywatne klasy. W kolejnym kroku tworzymy kod poszczególnych funkcji. Pokazana niżej metoda będzie odpowiedzialna za przygotowanie formularza frmsprzedaz do pracy, jej zadaniem jest pobranie z bazy danych informacji będących źródłem danych dla formantu cbonabywca oraz pobranie danych, które opisują dostępne produkty. Dane te są zapisywane w publicznej zmiennej zadeklarowanej w formularzu frmsprzedaz. Kolejna metoda odpowiada za przygotowanie informacji o tym, ile opakowań i z których dostaw będą wydane dla zrealizowania faktu sprzedaży danego produktu (chodzi o to, aby w momencie dysponowania tym samym produktem z dwóch rożnych dostaw wydawać te opakowania, które były przyjęte wcześniej, czyli te, którym kończy się termin przydatności do spożycia). 5

Metoda zarejestrowania sprzedaży wykorzystuje mechanizm transakcji udostępniony przez klasę bazową. 6

Ostatnia metoda interfejsu ISprzedaz jest najbardziej rozbudowana, a jej zadaniem jest przygotowanie faktury sprzedaży. Faktura będzie przygotowana jako dokument Worda w oparciu o szablon Faktura.dotx zlokalizowany w folderze wskazanym zmienną strfolderfaktury, który może być bezpośrednio wydrukowany na drukarce lub zachowany w postaci pliku PDF. Zostaną wykorzystane możliwości MS Word w wyeksportowaniu pliku do formatu PDF. 7

8

Metoda powyższa korzysta z prywatnej procedury klasy, której zadaniem jest zwolnienie aplikacji MS Word. Procedura została w całości skopiowana z Internetu, o czym informuje stosowny komentarz 9

Klasa CProdukty Jak o tym wspominałem wcześniej klasa ta będzie wykorzystana do zbudowania obiektów dodawanych do pola kombo cboprodukty. 10

Kod formularza frmsprzedaz Kod formularza zaczyna się zaimportowaniem przestrzeni nazw: System.Math będzie nam potrzebna z uwagi na wykorzystanie funkcji Round. W sekcji deklaracji deklarujemy te zmienne klasy, które mają być dostępne dla wszystkich jej procedur i funkcji. Poza znanymi z wcześniejszych rozwiązań typami danych deklarujemy tu i tworzymy obiekt będący kolekcją. Na uwagę zasługuje także obiekt dt typu DataTable, który będzie źródłem danych dla gridu dgvkoszyk. Na tym etapie jest to tylko deklaracja, później utworzymy ten obiekt i dodamy do niego kolumny określonego typu danych. Procedura poniższa wykonywana jest w momencie uruchomienia formularza, kończy jego przygotowanie do pracy. 11

Procedura pokazana niżej dba o to, aby formant cboprodukty był dostępny dla użytkownika w momencie, gdy zostanie wybrany nabywca w polu cbonabywca. Kolejna procedura wykonywana jest w momencie wyboru produktu w polu cboprodukty, musi ona wykonać szereg prac związanych z określeniem ceny jednostkowej produktu, stawki Vat jak i liczby dostępnych opakowań. Informacje te muszą być odzyskane z wybranej pozycji w polu kombi poprzez jej przekonwertowanie na typ CProdukty, co pozwoli na skorzystanie z właściwości tej klasy. Prywatna funkcja klasy formularza UstalIndex wykorzystywana jest do odszukania wybranego produktu w kolekcji jgkol w celu pobrania z kolekcji aktualnej dostępnej liczby opakowań. 12

Zmiana liczby opakowań w formancie nudile uruchamia pokazaną niżej procedurę, jej zadaniem jest zaktualizowanie informacji o wartości netto i brutto wybranego produktu. Klik przycisku btndodaj uruchamia kolejną procedurę, jej zadaniem jest dodanie informacji o wybranym produkcie do gridu dgvkoszyk. 13

Nabywca może się rozmyśleć co do zakupu produktu, który już jest w koszyku, a my musimy stworzyć możliwość usunięcia takiego produktu z gridu dgvkoszyk. Zadanie to realizuje pokazana niżej procedura. 14

15

Kilka zrzutów ekranowych obsługi sprzedaży 16