Beispiel #1
0
        private bool ItemColumnEvaluate(int row, string itemName)
        {
            OperationDetail detail = selectedDetails [row];

            if (detail.ItemId >= 0 && detail.ItemName == itemName)
            {
                return(true);
            }

            double currentQuantity = detail.Quantity;

            string codeLot;
            long   lotId;
            Item   item = Item.GetByAny(itemName, out barcodeUsed, out codeQtty, out codeLot, out lotId);

            bool result = selectedDetails [row].ItemEvaluate(item, PriceGroup.RegularPrice);

            // no quantity from the barcode scanner
            if (codeQtty.IsZero())
            {
                codeQtty = currentQuantity;
            }

            return(result);
        }
Beispiel #2
0
        public void ThenTheRequestShouldNotHaveBeenFinishedAtThePointWhenTheExceptionWasReported()
        {
            ExceptionDetail exception = this.GetSingleExceptionDetail();
            OperationDetail operation = this.GetSingleOperationDetail();

            Assert.AreSame(operation, exception.OperationInProgressAtTime);
        }
        public async Task <IActionResult> PutOperationDetail(Guid id, OperationDetail operationDetail)
        {
            if (id != operationDetail.Id)
            {
                return(BadRequest());
            }

            _context.Entry(operationDetail).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OperationDetailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <OperationDetail> > PostOperationDetail(OperationDetail operationDetail)
        {
            _context.OperationDetails.Add(operationDetail);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetOperationDetail", new { id = operationDetail.Id }, operationDetail));
        }
Beispiel #5
0
        internal void Insert()
        {
            var database = client.GetDatabase(databaseName);
            IMongoCollection <Operation> collection = database.GetCollection <Operation>(collectionName);
            var result = new List <Operation>(operationCount);

            for (int i = 0; i < operationCount; i++)
            {
                var operation = new Operation
                {
                    Id             = Guid.NewGuid(),
                    Comment        = $"{i}",
                    CreatedOn      = DateTime.Now,
                    OperationState = Beezie.Domain.Enums.OperationStates.Finalized,
                    OperationType  = i % 1000 == 0 ? Beezie.Domain.Enums.OperationTypes.Inventory : Beezie.Domain.Enums.OperationTypes.Out,
                };
                var operationLocations = new List <OperationLocation>();

                for (int j = 0; j < operationLocationCount; j++)
                {
                    var operationLocation = new OperationLocation
                    {
                        Id = Guid.NewGuid(),
                        OperationLocationType = operation.OperationType == Beezie.Domain.Enums.OperationTypes.Inventory
                        ? Beezie.Domain.Enums.OperationLocationTypes.Inventory
                        : Beezie.Domain.Enums.OperationLocationTypes.Sale,
                        StorageId = 42,
                    };

                    var operationDetails = new List <OperationDetail>();
                    for (int k = 0; k < operationDetailCount; k++)
                    {
                        var operationDetail = new OperationDetail
                        {
                            Id                = Guid.NewGuid(),
                            CreatedOn         = DateTime.Now,
                            FinalizedOn       = DateTime.Now.AddMinutes(5),
                            PaidOn            = DateTime.Now.AddMinutes(5),
                            PriceId           = 42,
                            ProductLocationId = k,
                            Quantity          = 42 * k + 1
                        };
                        operationDetails.Add(operationDetail);
                    }
                    operationLocation.OperationDetails = operationDetails;
                    operationLocations.Add(operationLocation);
                }

                operation.OperationLocations = operationLocations;
                result.Add(operation);
            }
            collection.InsertMany(result);

            Console.WriteLine($"insert {operationCount}*{operationLocationCount}*{operationDetailCount} = {operationCount * operationLocationCount * operationDetailCount}");
        }
        public bool Update(AsDetailDto asDetailDto)
        {
            //chargement du accountStatementFile
            var accountStatement = _accountStatementRepository.GetById(asDetailDto.Id);

            //mise à jour des données
            accountStatement.AmountOperation       = asDetailDto.AmountOperation;
            accountStatement.DateIntegration       = asDetailDto.DateIntegration.Value.Date;
            accountStatement.LabelOperation        = asDetailDto.LabelOperation;
            accountStatement.IdOperation           = asDetailDto.Operation.Selected.Id;
            accountStatement.IdOperationMethod     = asDetailDto.OperationMethod.Selected.Id;
            accountStatement.IdOperationType       = asDetailDto.OperationType.Selected.Id;
            accountStatement.IdOperationTypeFamily = asDetailDto.OperationTypeFamily.Selected.Id;

            switch (asDetailDto.OperationPlace.Selected.Id)
            {
            case 2:
                asDetailDto.OperationDetail.GMapAddress.Id = 2;
                asDetailDto.OperationDetail.KeywordPlace   = null;
                break;

            case 3:
                asDetailDto.OperationDetail.GMapAddress.Id = 3;
                asDetailDto.OperationDetail.KeywordPlace   = "--INTERNET--";
                break;

            default:
                break;
            }


            //Recherche si operation detail existe déjà, sinon creation
            var             idOdUnknown     = _referentialService.OperationDetailService.GetUnknown(asDetailDto.User.IdUserGroup).Id;
            OperationDetail operationDetail = new OperationDetail
            {
                Id               = asDetailDto.OperationDetail.Id == idOdUnknown ? 0 : asDetailDto.OperationDetail.Id,
                IdUserGroup      = asDetailDto.User.IdUserGroup,
                IdOperation      = asDetailDto.Operation.Selected.Id,
                IdGMapAddress    = asDetailDto.OperationDetail.GMapAddress.Id,
                KeywordOperation = asDetailDto.OperationDetail.KeywordOperation,
                KeywordPlace     = asDetailDto.OperationDetail.KeywordPlace
            };

            operationDetail = _referentialService.OperationDetailService.GetOrCreate(operationDetail);
            accountStatement.IdOperationDetail = operationDetail.Id;

            //Mise à jour de l'operationTransverse
            _operationTransverseAsService.Update(asDetailDto.OperationTransverse.ListSelected, asDetailDto.Id);

            //update de accountStatementFile
            _accountStatementRepository.Update(accountStatement);

            return(true);
        }
        public bool CheckApplicableToDetail <T> (IList <T> operationDetails, OperationDetail operationDetail) where T : OperationDetail
        {
            if (error)
            {
                return(false);
            }

            bool ret;

            switch (type)
            {
            case PriceRule.ConditionType.Good:
                ret = operationDetail.ItemId == Convert.ToInt64(values [0]);
                break;

            case PriceRule.ConditionType.GoodGroup:
                ItemsGroup itemsGroup = ItemsGroup.Cache.GetById(operationDetail.ItemGroupId);

                string groupCode = null;
                long?  intValue  = PriceRule.GetLongValue(formula);
                if (intValue != null)
                {
                    ItemsGroup byId = ItemsGroup.Cache.GetById(intValue.Value);
                    if (byId != null)
                    {
                        groupCode = byId.Code;
                    }
                }

                if (groupCode == null)
                {
                    groupCode = PriceRule.GetStringValue(formula);
                }

                ret = itemsGroup.Code.StartsWith(groupCode);
                break;

            case PriceRule.ConditionType.GoodQttySum:
                double from;
                double to;
                GetConditionNumericInterval(formula, out from, out to);
                double quantity = operationDetails
                                  .Where(detail => detail.ItemId == operationDetail.ItemId)
                                  .Select(detail => detail.Quantity)
                                  .Sum();
                ret = from <= quantity && quantity <= to;
                break;

            default:
                return(true);
            }

            return(ret != IsException);
        }
Beispiel #8
0
        public OperationDetail GetOperationDetail(int idUserGroup, AccountStatementImportFile accountStatementImportFile)
        {
            OperationDetail operationDetail = null;

            if (accountStatementImportFile.IsLocalisable)
            {
                operationDetail = _referentialService.OperationDetailService.GetByKeywords(idUserGroup, accountStatementImportFile.LabelOperationWork, accountStatementImportFile.IdOperationMethod, (EnumMovement)accountStatementImportFile.IdMovement);
            }
            else
            {
                operationDetail = _referentialService.OperationDetailService.GetByKeywordOperation(idUserGroup, accountStatementImportFile.LabelOperationWork, accountStatementImportFile.IdOperationMethod, (EnumMovement)accountStatementImportFile.IdMovement);
            }

            return(operationDetail);
        }
Beispiel #9
0
 public OperationDetail InsertOperationDetail(OperationDetail operation)
 {
     return(QueryFirst <OperationDetail>("InsertOperationDetail",
                                         new
     {
         @pItemId = operation.ItemId
         ,
         @pQuantity = operation.Quantity
         ,
         @pSalePrice = operation.SalePrice
         ,
         @pRowSum = operation.RowSum
         ,
         @pOperationId = operation.OperationId
     }));
 }
Beispiel #10
0
        protected DocumentDetail(int detailNumber, OperationDetail detail, bool usePriceIn = true)
        {
            this.usePriceIn = usePriceIn;
            Number          = Data.Number.ToEditString(detailNumber);

            Item item = Item.GetById(detail.ItemId);

            ItemCode      = item.Code;
            ItemName      = item.Name2;
            MUnit         = detail.MUnitName;
            Quantity      = Entities.Quantity.ToString(detail.Quantity);
            Discount      = Percent.ToString(detail.Discount);
            DiscountValue = Entities.Currency.ToString(detail.DiscountValue);
            Price         = Entities.Currency.ToString(usePriceIn ? detail.PriceIn : detail.PriceOut, usePriceIn ? PriceType.Purchase : PriceType.Sale);
            Total         = Entities.Currency.ToString(detail.Total, usePriceIn ? PriceType.Purchase : PriceType.Sale);

            Lot            = detail.Lot;
            SerialNumber   = detail.SerialNumber;
            ExpirationDate = detail.ExpirationDate.HasValue ? BusinessDomain.GetFormattedDate(detail.ExpirationDate.Value) : String.Empty;
            ProductionDate = detail.ProductionDate.HasValue ? BusinessDomain.GetFormattedDate(detail.ProductionDate.Value) : String.Empty;
            LotLocation    = detail.LotLocation;
            Note           = detail.Note;
        }
        public OperationDetail GetOrCreate(OperationDetail operationDetail)
        {
            //recherche de l'operation detail
            var operationDetailDuplicate = _operationDetailRepository.GetByOperationDetail(operationDetail);

            if (operationDetailDuplicate != null)
            {
                return(operationDetailDuplicate);
            }

            //Recherche si les mots clefs existent déjà pour une autre operation
            if (HasSameKeywords(operationDetail))
            {
                if (operationDetail.KeywordPlace != null)
                {
                    throw new Exception($"La paire de mot clef: {operationDetail.KeywordOperation}/{operationDetail.KeywordPlace} existe déjà pour une autre opération");
                }
                else
                {
                    throw new Exception($"Le mot clef: {operationDetail.KeywordOperation} existe déjà pour une autre opération");
                }
            }

            operationDetail.KeywordOperation = FileHelper.ExcludeForbiddenChars(operationDetail.KeywordOperation.ToUpper());
            operationDetail.KeywordPlace     = operationDetail.KeywordPlace != null?operationDetail.KeywordPlace.ToUpper() : null;

            if (operationDetail.Id == 0)
            {
                return(_operationDetailRepository.Create(operationDetail));
            }
            else
            {
                _operationDetailRepository.Update(operationDetail);
                return(operationDetail);
            }
        }
Beispiel #12
0
        public void ThenInstrumentationShouldStartARequestNamed(string requestName)
        {
            OperationDetail operation = this.GetSingleOperationDetail();

            Assert.AreEqual(requestName, operation.Name);
        }
Beispiel #13
0
 public OperationReportService()
 {
     operationDetail = new OperationDetail(WebService.UserComputerInfo.GetComputerMac());
     nowInTime       = null;
 }
Beispiel #14
0
 public bool CheckApplicableToDetail <T> (IList <T> operationDetails, OperationDetail operationDetail, AppliedActions maskApplied = AppliedActions.All) where T : OperationDetail
 {
     return((operationDetail.AppliedPriceRules & maskApplied) == AppliedActions.None &&
            conditions.All(condition => condition.CheckApplicableToDetail(operationDetails, operationDetail)));
 }
Beispiel #15
0
 public OperationDetail InsertOperationDetail(OperationDetail operation)
 {
     return(addEditDeleteRepository.InsertOperationDetail(operation));
 }
 private bool HasSameKeywords(OperationDetail operationDetail)
 {
     return(_operationDetailRepository.HasSameKeywords(operationDetail));
 }
 public void AddToOperationDetails(OperationDetail operationDetail)
 {
     base.AddObject("OperationDetails", operationDetail);
 }
Beispiel #18
0
 public ProtocolDetail(int detailNumber, OperationDetail detail, bool usePriceIn = true)
     : base(detailNumber, detail, usePriceIn)
 {
 }
Beispiel #19
0
 public SaleDetail(OperationDetail operationDetail)
     : this()
 {
     Populate(operationDetail);
 }
 public ReceiptDetail(int detailNumber, OperationDetail detail, bool usePriceIn = true)
     : base(detailNumber, detail, usePriceIn)
 {
 }
Beispiel #21
0
        public void ThenTheInstrumentationShouldReportAnOpenAPIOperationIdOf(string operationId)
        {
            OperationDetail operation = this.GetSingleOperationDetail();

            Assert.AreEqual(operationId, operation.AdditionalDetail?.Properties["Menes.OperationId"]);
        }
 public static OperationDetail CreateOperationDetail(global::System.DateTime dateCreated, global::System.DateTime dateModified, int sequenceId, string entityId, int actionId)
 {
     OperationDetail operationDetail = new OperationDetail();
     operationDetail.DateCreated = dateCreated;
     operationDetail.DateModified = dateModified;
     operationDetail.SequenceId = sequenceId;
     operationDetail.EntityId = entityId;
     operationDetail.ActionId = actionId;
     return operationDetail;
 }
Beispiel #23
0
        public void ThenTheRequestShouldNotHaveBeenFinishedYet()
        {
            OperationDetail operation = this.GetSingleOperationDetail();

            Assert.IsFalse(operation.IsDisposed);
        }
 public OperationReportService()
 {
     operationDetail = new OperationDetail(WebService.UserComputerInfo.GetComputerMac(), WebService.UserComputerInfo.GetMachineName(), WebService.UserComputerInfo.UserToken);
     nowInTime       = null;
 }
        public override List <AccountStatementImportFile> ImportFile(StreamReader reader, AccountStatementImport accountStatementImport, User user)
        {
            reader.DiscardBufferedData();
            reader.BaseStream.Seek(0, SeekOrigin.Begin);

            List <AccountStatementImportFile> accountStatementImportFiles = new List <AccountStatementImportFile>();
            int currentLineNumber = 0;

            while (!reader.EndOfStream)
            {
                var line = reader.ReadLine();

                var values = line.Split(';');
                AccountStatementImportFile asif = _asifService.InitForImport(user.IdUserGroup);
                asif.Id             = currentLineNumber;
                asif.IdImport       = accountStatementImport.Id;
                asif.DateImport     = DateTime.Now;
                asif.Reference      = null;
                asif.LabelOperation = values[2].ToString();

                asif.LabelOperationWork = _asifService.GetOperationLabelWork(asif.LabelOperation);
                //asif.LabelOperationWork = asif.LabelOperationWork.ToString().Replace(" ", "");
                if (values[3].ToString() != string.Empty)
                {
                    asif.AmountOperation = -double.Parse(values[3].Replace(",", ".").ToString(), CultureInfo.InvariantCulture);
                    asif.IdMovement      = (int)EnumMovement.Debit;
                }
                else if (values[4].ToString() != string.Empty)
                {
                    asif.AmountOperation = double.Parse(values[4].Replace(",", ".").ToString(), CultureInfo.InvariantCulture);
                    asif.IdMovement      = (int)EnumMovement.Credit;
                }

                asif.DateIntegration = Convert.ToDateTime(values[1].ToString());
                asif.Account         = _referentialService.AccountService.GetByNumber(values[0].ToString());
                asif.IdAccount       = asif.Account.Id;

                OperationMethod operationMethod = _referentialService.OperationMethodService.GetOperationMethodByFileLabel(asif.LabelOperationWork, EnumBankFamily.CreditAgricole);
                asif.IdOperationMethod = operationMethod.Id;

                //Date Operation
                switch (asif.IdOperationMethod)
                {
                case (int)EnumOperationMethod.PaiementCarte:
                    asif.DateOperation = GetDateOperationByFileLabel(asif.LabelOperationWork, asif.DateIntegration.Value, EnumOperationMethod.PaiementCarte);
                    break;

                case (int)EnumOperationMethod.RetraitCarte:
                    asif.DateOperation = GetDateOperationByFileLabel(asif.LabelOperationWork, asif.DateIntegration.Value, EnumOperationMethod.RetraitCarte);
                    break;
                }

                //Determination de operationDetail (operation+addresse) à partir des keywords
                OperationDetail operationDetail = _asifService.GetOperationDetail(user.Id, asif);
                if (operationDetail != null)
                {
                    asif.IdOperation           = operationDetail.Operation.Id;
                    asif.IdOperationType       = operationDetail.Operation.IdOperationType;
                    asif.IdOperationTypeFamily = operationDetail.Operation.OperationType.IdOperationTypeFamily;
                    asif.IdOperationDetail     = operationDetail.Id;
                    asif.OperationLabelTemp    = operationDetail.Operation.Label;
                    asif.OperationKeywordTemp  = operationDetail.KeywordOperation;
                    asif.PlaceLabelTemp        = operationDetail.KeywordPlace;
                    asif.PlaceKeywordTemp      = operationDetail.KeywordPlace;
                }
                else
                {
                    //Determination de operationDetail (operation+addresse) à partir du label brut
                    OperationType operationType = _referentialService.OperationTypeService.GetUnknown(user.IdUserGroup);
                    asif.IdOperationType       = operationType.Id;
                    asif.IdOperationTypeFamily = operationType.IdOperationTypeFamily;

                    //rechercher les labels et keyword sur libellé brut
                    OperationInformation operationInformation = GetOperationInformationByParsingLabel(user.Id, asif.LabelOperation, asif.LabelOperationWork, operationMethod);
                    if (operationInformation != null)
                    {
                        //asif.IdOperation = operationInformation.IdOperation;
                        asif.OperationLabelTemp   = operationInformation.OperationLabel;
                        asif.OperationKeywordTemp = operationInformation.OperationKeyword;
                        asif.PlaceKeywordTemp     = operationInformation.PlaceKeyword;
                        asif.PlaceLabelTemp       = operationInformation.PlaceLabel;
                    }
                }

                accountStatementImportFiles.Add(asif);
            }


            return(accountStatementImportFiles);
        }
 public RestaurantOrderDetail(OperationDetail operationDetail)
     : base(operationDetail)
 {
     sign = 0;
     baseTotalOnPricePlusVAT = true;
 }
 public StockTakingProtocolDetail(int detailNumber, OperationDetail detail, bool usePriceIn)
     : base(detailNumber, detail, usePriceIn)
 {
 }