Example #1
0
        public ActionResult <IEnumerable <CaisseSimpleMv> > Get()
        {
            // Construction element de retour.
            List <CaisseSimpleMv> caisseSimpleMvItems = new List <CaisseSimpleMv>();

            // On charge les caisses.
            IEnumerable <CaisseItem> caisses = _caissesService.DonneCaisses().Result;

            // On parcours les caisses.
            foreach (CaisseItem caisseItem in caisses)
            {
                // Chargement session de caisse en cours.
                CaisseSessionItem caisseSessionItem = caisseItem.Sessions
                                                      .Where(x => x.DateFermeture == DateTime.MinValue)
                                                      .SingleOrDefault();

                // Lecture.
                string strEtatCaisse    = "";
                string strClientEnCours = "";
                if (caisseSessionItem != null)
                {
                    // Etat de la caisse.
                    if (caisseSessionItem.DateFermeture != DateTime.MinValue)
                    {
                        strEtatCaisse = "Ferme";
                    }
                    else if (caisseSessionItem.DateDernierClient != DateTime.MinValue)
                    {
                        strEtatCaisse = "Dernier client";
                    }
                    else if (caisseSessionItem.DateOuverture != DateTime.MinValue)
                    {
                        strEtatCaisse = "Ouverte";
                    }

                    // Client en cours.
                    CaisseClientItem caisseClientItem = caisseSessionItem.Clients
                                                        .Where(x => x.DateFinClient == DateTime.MinValue)
                                                        .SingleOrDefault();
                    if (caisseClientItem != null)
                    {
                        strClientEnCours = caisseClientItem.NomClient;
                    }
                }

                // Ajout à la liste des résultats.
                caisseSimpleMvItems.Add(new CaisseSimpleMv()
                {
                    Numero        = caisseItem.Numero,
                    Etat          = strEtatCaisse,
                    ClientEnCours = strClientEnCours
                });
            }

            // Retour.
            return(Ok(caisseSimpleMvItems));
        }
Example #2
0
        public IActionResult Post([FromBody] CaisseClientItem value)
        {
            CaisseClientEvent evenement = new CaisseClientEvent()
            {
                dateEvenement = value.dateEvenement,
                evenementClientTypeCourant = value.evenementClientTypeCourant,
                nomClient = value.nomClient,
                numero    = value.numero
            };

            _busEvenement.Publier(evenement);
            return(Ok());
        }
Example #3
0
        public async Task Handle(CaisseClientEvent @event)
        {
            // On recherche si la caisse existe.
            CaisseItem caisseItem = _caisseService.RechercherCaisseUniqueAvecNumero(@event.numero).Result;

            // La caisse n'existe pas : on la creer.
            if (caisseItem == null)
            {
                caisseItem = new CaisseItem()
                {
                    Numero = @event.numero
                };
                _caisseService.AjouterCaisse(caisseItem);
            }

            // Recherche de la session en cours.
            long lgTicks = long.Parse(@event.dateEvenement);
            CaisseSessionItem caisseSessionItem = caisseItem.Sessions
                                                  .Where(x => x.DateFermeture == DateTime.MinValue)
                                                  .SingleOrDefault();

            // Mise à jour de l'état de la caisse suivant le cas.
            if (@event.evenementClientTypeCourant == "DebutClient")
            {
                CaisseClientItem caisseClientItem = new CaisseClientItem()
                {
                    NomClient       = @event.nomClient,
                    DateDebutClient = new DateTime(lgTicks)
                };
                caisseSessionItem.Clients.Add(caisseClientItem);
            }
            if (@event.evenementClientTypeCourant == "FinClient")
            {
                CaisseClientItem caisseClientItem = caisseSessionItem.Clients
                                                    .Where(x => x.DateFinClient == DateTime.MinValue)
                                                    .SingleOrDefault();
                caisseClientItem.DateFinClient = new DateTime(lgTicks);
            }

            // Sauvegarde.
            await _caisseService.MajCaisse(caisseItem);
        }