public static void Prepaid(String licencePlates, String vehicleType, String ticketType)
        {
            if (!Controller.ChargeRegularUserController.HasInternet())
            {
                throw new Exception("Uređaj nije spojen na Internet. Računi se ne mogu fiskalizirati.");
            }

            decimal chargeBase = 0;
            decimal chargeTax  = 0;

            Vehicle vehicle = VehicleController.CheckIn(licencePlates, vehicleType);
            Ticket  ticket  = new Ticket();

            ticket.LicencePlates = licencePlates;
            ticket.VehicleType   = vehicleType;
            ticket.TicketType    = ticketType;
            ticket.CheckedIn     = vehicle.CheckedInDate;
            ticket.CheckedOut    = vehicle.CheckedInDate;
            ticket.Username      = LoginController.LoggedInUser.FirstName + " " + LoginController.LoggedInUser.LastName;
            String JIR;
            String ZIK;

            ticket.Charged = ChargesController.GetCharge(ticket.TicketType, vehicle.VehicleType, out chargeBase, out chargeTax);

            if (!Shared.TestMode)
            {
                ChargesController.Fiskaliziraj(vehicle.LicencePlates, vehicle.CheckedInDate, LoginController.LoggedInUser.OIB, ticket.Charged, chargeBase, chargeTax, out ZIK, out JIR);
            }
            else
            {
                JIR = "550e8400-e29b-41d4-a716-446655440000";
                ZIK = "e4d909c290d0fb1ca068ffaddf22cbd0";
            }
            ticket.ChargedBase  = chargeBase;
            ticket.ChargedTax   = chargeTax;
            ticket.JIR          = JIR;
            ticket.ZIK          = ZIK;
            ticket.ChargeTicket = true;
            Database.Tickets.AddTicket(ticket);
            ticket.TicketCount = CounterController.GetTicketCount();

            CheckOutTicket checkOutTicket = new CheckOutTicket(ticket, null);

            Shared.Worker.Print(checkOutTicket);
            Shared.Worker.Print(checkOutTicket);
            Tickets.AddLogOutTicket(LoginController.LoggedInUser.Username,
                                    checkOutTicket.Ticket.TicketType, checkOutTicket.Ticket.VehicleType,
                                    checkOutTicket.Ticket.LicencePlates, checkOutTicket.Ticket.Charged);
            CounterController.IncrementCounter();
        }
示例#2
0
        public static void ChargeSubscription(String licencePlate, int months, DateTime validTo, Company company)
        {
            if (!Controller.ChargeRegularUserController.HasInternet())
            {
                throw new Exception("Uređaj nije spojen na Internet. Računi se ne mogu fiskalizirati.");
            }

            Vehicle vehicle = Database.Vehicles.GetVehicle(licencePlate);

            if (vehicle == null)
            {
                throw new Exception("Ne postoji vozilo s oznakom " + licencePlate + " u bazi.");
            }
            decimal chargeBase = 0;
            decimal chargeTax  = 0;


            String  username = LoginController.LoggedInUser.FirstName + " " + LoginController.LoggedInUser.LastName;
            String  JIR;
            String  ZIK;
            decimal charged = ChargesController.GetCharge("Pretplatnička karta", vehicle.VehicleType, out chargeBase, out chargeTax) * months;

            if (!Shared.TestMode)
            {
                ChargesController.Fiskaliziraj(vehicle.LicencePlates, vehicle.CheckedInDate, "12345678901", charged, chargeBase, chargeTax, out ZIK, out JIR);
            }
            else
            {
                JIR = "550e8400-e29b-41d4-a716-446655440000";
                ZIK = "e4d909c290d0fb1ca068ffaddf22cbd0";
            }
            SubscriberAddTicket addSubscriberTicket = new SubscriberAddTicket(licencePlate, vehicle.VehicleType,
                                                                              months, validTo, charged, chargeTax, chargeBase, username, JIR, ZIK, CounterController.GetTicketCount(), company);



            Shared.Worker.Print(addSubscriberTicket);
            Shared.Worker.Print(addSubscriberTicket);
            Tickets.AddLogOutTicket(LoginController.LoggedInUser.Username,
                                    "Pretplatnička karta", addSubscriberTicket.VehicleType,
                                    addSubscriberTicket.LicencePlate, addSubscriberTicket.Charged);
            CounterController.IncrementCounter();
        }
        public static void CheckOut(String licencePlate, Company company)
        {
            if (!Controller.ChargeRegularUserController.HasInternet())
            {
                throw new Exception("Uređaj nije spojen na Internet. Računi se ne mogu fiskalizirati.");
            }

            Vehicle vehicle = VehicleController.CheckOut(licencePlate);

            if (vehicle == null)
            {
                throw new Exception("Vozilo s oznakom " + licencePlate + " nije prijavljeno prilikom ulaska na parkiralište.");
            }
            decimal chargeBase = 0;
            decimal chargeTax  = 0;
            Ticket  ticket     = Database.Tickets.GetTicket(vehicle.LicencePlates, vehicle.VehicleType, vehicle.CheckedInDate, false);

            if (ticket == null || ticket.ChargeTicket)
            {
                throw new Exception("Vozilo s oznakom " + licencePlate + " nije prijavljeno prilikom ulaska na parking.");
            }
            if (ticket.TicketType != "Pojedinačni prijevoz")
            {
                throw new Exception("Izlazna karta se naplačuje samo vozilima s pojedinačnom kartom");
            }
            ticket.CheckedOut = DateTime.Now;
            ticket.Username   = LoginController.LoggedInUser.FirstName + " " + LoginController.LoggedInUser.LastName;
            String JIR;
            String ZIK;

            ticket.Charged = ChargesController.GetCharge(ticket.TicketType, vehicle.VehicleType, vehicle.CheckedInDate, out chargeBase, out chargeTax);
            decimal dailyTicketCharge = ChargesController.GetCharge("Dnevna karta", vehicle.VehicleType);

            if (ticket.TicketType == "Pojedinačni prijevoz" && ticket.Charged > dailyTicketCharge)
            {
                ticket.TicketType = "Dnevna karta";
                ticket.Charged    = ChargesController.GetCharge(ticket.TicketType,
                                                                vehicle.VehicleType, out chargeBase, out chargeTax);
            }

            //porezna
            if (!Shared.TestMode)
            {
                ChargesController.Fiskaliziraj(vehicle.LicencePlates, vehicle.CheckedInDate, "12345678901", ticket.Charged, chargeBase, chargeTax, out ZIK, out JIR);
            }
            else
            {
                JIR = "550e8400-e29b-41d4-a716-446655440000";
                ZIK = "e4d909c290d0fb1ca068ffaddf22cbd0";
            }
            ticket.ChargedBase  = chargeBase;
            ticket.ChargedTax   = chargeTax;
            ticket.JIR          = JIR;
            ticket.ZIK          = ZIK;
            ticket.ChargeTicket = true;
            Database.Tickets.UpdateTicket(ticket);
            ticket.TicketCount = CounterController.GetTicketCount();

            CheckOutTicket checkOutTicket = new CheckOutTicket(ticket, company);

            Shared.Worker.Print(checkOutTicket);
            Shared.Worker.Print(checkOutTicket);
            Tickets.AddLogOutTicket(LoginController.LoggedInUser.Username,
                                    checkOutTicket.Ticket.TicketType, checkOutTicket.Ticket.VehicleType,
                                    checkOutTicket.Ticket.LicencePlates, checkOutTicket.Ticket.Charged);
            CounterController.IncrementCounter();
        }