Ustawienie domyślnej waluty na karcie kontrahenta

W aplikacji Comarch Mobile Zakupy istnieje możliwość ustawienia domyślnej waluty, która będzie wyświetlana na karcie kontrahenta. Walutę ustawia się w zakładce [Handlowe], w sekcji [Domyślne warunki handlowe].
Informacja o domyślnej walucie na karcie kontrahenta w systemie Comarch ERP Altum
Operator, który ma uprawnienia do edycji karty kontrahenta może również zmieniać rodzaj waluty na tej karcie. Uprawnienie to nadaje się w systemie Comarch ERP Altum na grupie operatorów, w zakładce [Obiekty- Kontrahent: Modyfikacja].

Załączniki

Do Comarch Mobile Zakupy są pobierane te załączniki, które:
  • Jako Właściciela załącznika mają ustawioną opcję [Wszyscy] lub [Firmę], do której przypięte jest centrum mobilne,
  • Mają ustawioną dostępność w Mobile.
Ustawienie dostępności załącznika
Uwaga
Aby zdjęcia mogły się poprawnie wyświetlać na urządzeniu i nie powodowały przepełnienia pamięci, w czasie synchronizacji są automatycznie zmniejszane do rozmiarów x na 1024 pikseli. Niektóre urządzenia umożliwiają jednak bezproblemową obsługę większych zdjęć. Aby zmienić wielkość synchronizowanych zdjęć należy w katalogu [Methods] w folderze serwera Comarch Mobile Zakupy odnaleźć plik [articlesphotos] i wyedytować go w notatniku, podając długość dłuższej krawędzi zdjęcia.
W aplikacji Comarch Mobile została jest możliwość dodawania załączników z poziomu aplikacji. Opcja ta dotyczy następujących obiektów:
  • Karty kontrahenta,
  • Karty towaru,
  • Nagłówka następujących dokumentów: ZZ, OZ
  • Pozycji następujących dokumentów: ZZ, OZ
W celu usprawnienia synchronizacji zostały dodane ustawienia umożliwiające ręczne sterowanie takimi parametrami synchronizacji załączników jak automatyczna zmiana rozmiaru zdjęć czy ich kompresja. W pliku articlesphotos.configuration znajdującym się w folderze (…)\Comarch Mobile\Serwer synchronizacji\Methods\articlesphotos dostępne są następujące parametry:
  • Size – maksymalny rozmiar boku zdjęcia (w pikselach) w przypadku włączonej opcji automatycznej zmiany rozmiaru załącznika
  • DoResize – czy ma być wykonana automatyczna zmiana wielkości załączników. Wartość domyślna – True. Wyłączenie opcji w znacznym stopniu przyśpiesza tworzenie pliku wymiany. Jeżeli jednak na bazie systemu ERP znajduje się duża liczba załączników w wysokiej rozdzielczości, zmiana parametru może skutkować znacznym zwiększeniem rozmiaru paczki do pobrania w synchronizacji.
  • DoCompression – czy ma być wykonana automatyczna kompresja załączników. Wartość domyślna – True. Wyłączenie opcji w znacznym stopniu przyśpiesza tworzenie pliku wymiany. Jeżeli jednak na bazie systemu ERP znajduje się duża liczba nieskompresowanych załączników, zmiana parametru może skutkować znacznym zwiększeniem rozmiaru paczki do pobrania w synchronizacji.
  • MultiThreading – wielowątkowe tworzenie pliku wymiany z załącznikami. Wartość domyślna – False. Włączenie opcji w znacznym stopniu przyśpiesza tworzenie pliku wymiany. Użycie trybu może skutkować wzrostem obciążenia CPU, szczególnie w momencie wykonywania pierwszej synchronizacji załączników jednocześnie przez kilku operatorów.
Uwaga
Przed zmianą parametrów synchronizacji na środowisku produkcyjnym zaleca się zbadanie ich wpływu na środowisku testowym, w celu dobrania optymalnych wartości dla danej bazy danych

Ukrywanie kwoty przyznanego i wykorzystanego limitu kredytowego kontrahenta

W aplikacji Comarch Mobile Zakupy istnieje możliwość ukrywania niektórych informacji dotyczących limitu kredytowego, takich jak:
  • Wartość bieżącego limitu kredytowego,
  • Wykorzystana kwota limitu kredytowego,
  • Dozwolona ilość po przekroczeniu terminu,
  • Kwota następnego limitu kredytowego,
  • Dozwolona wielkość po przekroczeniu terminu dla następnego limitu kredytowego.
Umożliwiono również pobieranie limitów kredytowych w walutach obcych. Jeżeli limit kredytowy dla danego kontrahenta został zdefiniowany w systemie w innej walucie i na karcie Kontrahenta waluta obca ustawiona jest jako domyślna wówczas limit kredytowy na karcie Kontrahenta w aplikacji wyświetla się w walucie obcej.
Ustawienie limitu kredytowego na kontrahencie
Ustawienie domyślnej waluty na karcie kontrahenta
W plikach konfiguracyjnych znajdujących się w katalogu Comarch Mobile\Serwer synchronizacji\Methods znajduje się parametr  [IsContractorsCreditLimitsValueVisible], odpowiedzialny za ukrywanie/odkrywanie informacji o przyznanej oraz wykorzystanej kwocie limitu. Dzięki tej funkcjonalności przedstawiciel handlowy będzie miał dostęp tylko do kwoty limitu pozostającej do wykorzystania przez kontrahenta oraz kwot dozwolonych po terminie i przeterminowanych. Domyślna wartość tego parametru jest wartość „1”. Więcej informacji nt. tego parametru znajduje się TUTAJ.

Obsługa programów lojalnościowych

W aplikacji Comarch Mobile Zakupy jest możliwość obsługi programów lojalnościowych. Umożliwiono pobieranie z systemu ERP punktów lojalnościowych zgromadzonych na kontach określonych kontrahentów za zakup poszczególnych towarów. Zebrane punkty mogą zostać wykorzystane w aplikacji mobilnej do nadania rabatów. Aby umożliwić rozliczanie punktów lojalnościowych z poziomu aplikacji Comarch Mobile Zakupy, należy:
  • stworzyć definicję programu lojalnościowego zgodnego ze swoimi założeniami oraz wymaganiami opisanymi w dalszej części dokumentu,
  • obsłużyć synchronizację punktów lojalnościowych kontrahentów,
  • włączyć obsługę programu lojalnościowego w pliku configuration.*.statement, poprzez zmianę wartości klucza [IsLoyaltyEnabled] na 1.

Struktura definicji programu lojalnościowego

Przygotowane definicje programów lojalnościowych należy umieścić w pliku z rozszerzeniem XML w katalogu [LoyaltyProgramsDefinitions] katalogu głównego serwera synchronizacji Mobile. Nazwa pliku musi składać się z <IdProgramuLojalnosciowego>#<NazwaProgramuLojalnosciowego>.xml
Przyklad
12#NaszaLojalnosc.xml
Synchronizacja definicji do urządzeń mobilnych odbywa się po każdej modyfikacji w plikach definicji. Aby usunąć już zsynchronizowaną definicję z urządzeń mobilnych należy zmienić id programu na wartość ujemną. Taka definicja zostanie usunięta przy następnej synchronizacji.
Przyklad
-12#NaszaLojalnosc.xml
<?xml version=”1.0″ encoding=”UTF-8″?> <LoyaltyProgram>

<Name>…</Name>

<SettleDocumentsValue>…</SettleDocumentsValue>

<CheckContractorStatusQuery>

</CheckContractorStatusQuery>

<CheckArticleStatusQuery>

</CheckArticleStatusQuery>

<InitialMessageQuery>

</InitialMessageQuery>

<AfterRemovePositionLoyaltyProgramQuery>

</AfterRemovePositionLoyaltyProgramQuery>

<AfterAddPositionLoyaltyProgramQuery>

</AfterAddPositionLoyaltyProgramQuery>

<AfterRemoveDocumentLoyaltyProgramQuery>

</AfterRemoveDocumentLoyaltyProgramQuery>

<AfterAddDocumentLoyaltyProgramQuery>

</AfterAddDocumentLoyaltyProgramQuery>

</LoyaltyProgram>

Elementy w definicji program lojalnościowego

  • Name – Nazwa program lojalnościowego
  • SettleDocumentsValue – flaga bitowa określająca, na jakich dokumentach bierze udział program lojalnościowy. Poszczególne typy dokumentów będą miały przyporządkowane wartości:

1 – OS

2 – ZS

4 – FS

8 – PA

16 – WZ

32 – WM

Wskazówka
Wartość pola 5 oznaczać będzie, że rozliczenie punktów dostępne będzie na dokumentach OS i FS (1+4).
  • CheckContractorStatusQuery – Zapytanie sprawdzające czy dany kontrahent bierze udział w programie lojalnościowym oraz zwraca liczbę punktów dostępnych dla kontrahenta. Zwrócenie wiersza oznacza, że kontrahent bierze udział w programie lojalnościowym.
    • Parametry wejściowe:
      • @DocumentType – typ dokumentu. Wartość zgodna z wartościami z punktu drugiego.
      • @ContractorId – identyfikator kontrahenta
      • @LoyaltyProgramId – identyfikator programu lojalnościowego
      • @EditedDocumentId – identyfikator dokumentu, który jest teraz aktualnie reedytowany (został tylko zapisany wcześniej, został cofnięty do bufora)
    • Kolumny wyjściowe:
      • Liczba punktów dostępnych do zużycia przez kontrahenta
  • CheckArticleStatusQuery – Zapytanie sprawdzające czy dany towar jest dostępny w danym programie lojalnościowym oraz zwraca liczbę punktów do rozliczenia na pozycji.
    • Parametry wejściowe
      • @ArticleId – identyfikator towaru na który wystawiana jest pozycja
      • @StartGrossPrice – początkowa cena brutto
      • @StartNetPrice – początkowa cena netto
      • @Quantity – ilość w jednostce bazowej
      • @AvailablePoints – liczba dostępnych punktów kontrahenta
      • @EditedDocumentId – identyfikator edytowanego dokumentu
      • @VatRate – stawka VAT (np. dla 23% – parametr ten będzie miał wartość 23)
      • @VatDirection – kierunek VAT (0 – Netto, 1 – Brutto)
    • Kolumny wyjściowe
      • MaxPointsToSettleValue – maksymalna liczba punktów możliwa do rozliczenia na pozycji
      • EndGrossPrice – końcowa cena brutto na pozycji po rozliczeniu punktów MaxPointsToSettleValue
  • InitialMessageQuery – Zapytanie tworzące komunikat powitalny.
    • Parametry wejściowe
      • @DocumentType – typ dokumentu. Wartość zgodna z wartościami z punktu drugiego.
      • @ContractorId – identyfikator kontrahenta
      • @LoyaltyProgramId – identyfikator programu lojalnościowego
      • @EditedDocumentId – identyfikator dokumentu, który jest teraz aktualnie reedytowany (został tylko zapisany wcześniej, został cofnięty do bufora)
    • Kolumny wyjściowe
      • InitialMessageText – komunikat powitalny. Może zawierać proste tagi html’owe w celu sformatowania tekstu. (np. Dodanie nowej linii <br />, Zmiana koloru fragmentu tekstu <font color=”#FF0000″></font>, itd.)
  • AfterRemovePositionLoyaltyProgramQuery – Zapytanie wykonywane po usunięciu rozliczenia programu lojalnościowego na pozycji. Służy do wycofania zmian wykonanych w AfterAddPositionLoyaltyProgramQuery.
    • Parametry wejściowe
      • @LoyaltyProgramId – identyfikator programu lojalnościowego
      • @ProgramName – nazwa programu lojalnościowego
      • @AttributeObjectType – typ atrybutów dla pozycji
      • @ObjectId – identyfikator dokumentu
      • @ObjectIsLocal – identyfikator dokumentu
      • @ObjectSubId – identyfikator pozycji
      • @ObjectSubIsLocal – identyfikator pozycji
    • Obsługiwane jest wiele zapytań w ramach tej samej definicji. Separator skryptów „;GO;
  • AfterAddPositionLoyaltyProgramQuery – Zapytanie wykonywane po zapisie dokumentu – dla każdej pozycji, która zostaje rozliczona za pomocą programu lojalnościowego.
    • Parametry wejściowe
      • @LoyaltyProgramId
      • @ProgramName
      • @SettledPoints
      • @AttributeObjectType
      • @ObjectId
      • @ObjectIsLocal
      • @ObjectSubId
      • @ObjectSubIsLocal
      • @StartGrossPrice – cena początkowa brutto
      • @StartNetPrice – cena początkowa netto
      • @StartGrossValue – wartość brutto
      • @StartNetValue – wartość netto
    • Obsługiwane jest wiele zapytań w ramach tej samej definicji. Separator skryptów „;GO;
  • AfterRemoveDocumentLoyaltyProgramQuery – Zapytanie wykonywane po usunięciu rozliczenia programu lojalnościowego z dokumentu. Służy do wycofywania zmian wykonanych w
    • Parametry wejściowe
      • @LoyaltyProgramId
      • @ProgramName
      • @SettledPoints
      • @AttributeObjectType
      • @ObjectId
      • @ObjectIsLocal
      • @ObjectSubId
      • @ObjectSubIsLocal
    • Obsługiwane jest wiele zapytań w ramach tej samej definicji. Separator skryptów „;GO;
  • AfterAddDocumentLoyaltyProgramQuery – Zapytanie wykonywane po zapisie dokumentu z rozliczeniem programu lojalnościowego.
    • Parametry wejściowe
      • LoyaltyProgramId
      • ProgramName
      • SettledPoints
      • AttributeObjectType
      • ObjectId
      • ObjectIsLocal
      • ObjectSubId
      • ObjectSubIsLocal
    • Obsługiwane jest wiele zapytań w ramach tej samej definicji. Separator skryptów „;GO;

Synchronizacja punktów lojalnościowych kontrahentów

Aby umożliwić synchronizację punktów lojalnościowych kontrahentów należy zaimplementować metody synchronizacji obiektu [contractorsloyaltypoints]:
  • *.statement – zapytanie pobierające aktualne stany punktów kontrahentów. Zwracane kolumny:
    • OperationType – typ operacji (dodawanie, usuwanie, edycja),
    • OperationTS – timestamp synchronizacji,
    • LoyaltyProgramId – identyfikator programu lojalnościowego,
    • ContractorId – identyfikator kontrahenta,
    • Points – liczba dostępnych punktów do rozliczenia przez kontrahenta,
    • LockedPoints – liczba punktów dostępnych lecz zablokowanych do rozliczenia. Obecnie parametr ten nie jest jeszcze obsługiwany, dlatego zawsze kolumna ta powinna zwracać wartość 0.
  • contractorsloyaltypoints*.xml – definicja metody synchronizacji, triggery aktualizujące timestampy wierszy

Rozliczanie punktów w systemie Comarch ERP Altum

Rozliczanie punktów należy obsłużyć po stronie systemu Comarch ERP Altum za pomocą triggera wdrożeniowego aktywowanego np. potwierdzeniem dokumentu. Dokładny sposób rozliczenia jest zależny od  mechanizmów zaimplementowanych w programie lojalnościowym po stronie systemu Comarch ERP Altum. Program lojalnościowy może zostać oparty poprzez atrybuty zdefiniowane w systemie Comarch ERP Altum. W takiej obsłudze będą brani pod uwagę Kontrahenci, którzy posiadają zdefiniowany atrybut ze wskazaniem programu lojalnościowego (np. Nasza Lojalność), a przedstawiciel będzie mógł nadać rabat tylko na pozycjach towarów oznaczonych też odpowiednim atrybutem.
Dodanie atrybuty na karcie towaru i karcie kontrahenta
Obecne implementacje do przesyłania informacji o liczbie rozliczonych punktów, korzystają z atrybutów (klasa atrybutu tylko do odczytu) ustawianych na pozycjach dokumentów (za pomocą AfterAddPositionLoyaltyProgramQuery) z wartością rozliczonych na pozycji punktów. Podczas synchronizacji do systemu ERP dokumentów, w momencie ich potwierdzenia, w triggerze sprawdzone powinno zostać istnienie atrybutu rozliczającego punkty na pozycjach. Wartość rozliczonych punktów powinna zostać odjęta z puli punktowej kontrahenta. Dodatkowo rozliczenie takie powinno spowodować podbicie odpowiednich timestampów w [contractorsloyaltypoints] w celu wymuszenia synchronizacji aktualnego stanu punktów kontrahenta.

Blokada realizacji działań handlowych dla nowo utworzonego kontrahenta

Aplikacja Comarch Mobile umożliwia blokowanie realizacji działań handlowych dla nowo utworzonego kontrahenta do czasu jego synchronizacji do systemu ERP. Kontrahent dodany w aplikacji Comarch Mobile jest oznaczony ikonką . Zablokowana zostanie możliwość wystawiania dokumentów handlowych, dokumentów ZSR oraz tworzenia działań CRM we wszystkich miejscach w aplikacji. Aby mieć możliwość wystawiania poszczególnych działań handlowych dla nowo utworzonego kontrahenta konieczne jest wykonanie synchronizacji z systemem ERP.
Uwaga
Za konfigurację tej funkcjonalności odpowiada parametr CanBlockActionsForNewContractorBeforeSynchronization. Wartość parametru należy zmienić w pliku contractors.xl.statement w lokalizacji C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\Methods\configuration. Więcej informacji na temat konfiguracji znajduje się TUTAJ.
Po włączeniu parametru CanBlockActionsForNewContractorBeforeSynchronization i utworzeniu nowego kontrahenta w aplikacji Comarch Mobile:
  • po kliknięciu w sekcję Działania, Serwis oraz Handlowe na karcie kontrahenta zostanie wyświetlony komunikat: "Brak możliwości wykonywania działań handlowych. Dokonaj synchronizacji nowego kontrahenta."
Widok okna informującego o konieczności synchronizacji
  • po kliknięciu na liście kontrahentów w menu kontekstowym nowego kontrahenta nie jest widoczna opcja "Dodaj dokument"

  • podczas wystawiania dokumentów w kaflu Dokumenty, Serwis i Kasa lub działania CRM w kaflu Terminarz i Dzień w momencie wyboru kontrahenta, który nie został jeszcze zsynchronizowany z systemem ERP, pojawi się komunikat: "Należy dokonać synchronizacji nowego kontrahenta."

Widok okna informującego o konieczności synchronizacji
  • w przypadku kafla Dokumenty, Dzień, Serwis i Terminarz ukryta jest ikonka odpowiedzialna za dodanie nowego kontrahenta