示例#1
0
 public RegisteredMovement Create(CreateMovement newRegistry)
 {
     using (LogisticDataContext logisticDataContext = new LogisticDataContext())
     {
         var eMovement = newRegistry.ToEntity();
         logisticDataContext.Movements.Add(eMovement);
         logisticDataContext.SaveChanges();
         return(eMovement.ToDTO());
     }
 }
示例#2
0
 public static Movement ToEntity(this CreateMovement createMovement)
 {
     return(new Movement()
     {
         MovementDate = createMovement.MovementDate
         , WarehouseId = createMovement.WarehouseId
         , MovementTypeId = createMovement.MovementTypeId
         , CreationDate = DateTime.Now
         , Details = createMovement.ListDetails.ToList().Select(x => x.ToEntity()).ToList()
     });
 }
示例#3
0
        private string TestCreateAndCompleteAndReverseMovement_1()
        {
            var documentNumber = Guid.NewGuid().ToString();

            CreateMovement movement = new CreateMovement();

            movement.DocumentNumber  = documentNumber;
            movement.CommandId       = Guid.NewGuid().ToString();
            movement.WarehouseIdFrom = "1";
            movement.WarehouseIdTo   = "2";
            movement.MovementDate    = DateTime.Now;
            movement.IsInTransit     = false;//movement.IsInTransit = true;

            var line_1 = movement.NewCreateMovementLine();

            line_1.LineNumber             = DateTime.Now.Ticks.ToString();//todo
            line_1.ProductId              = "TEST_" + DateTime.Now.Ticks.ToString();
            line_1.LocatorIdFrom          = "1_TEST_F_" + DateTime.Now.Ticks.ToString();
            line_1.LocatorIdTo            = "2_TEST_T_" + DateTime.Now.Ticks.ToString();
            line_1.AttributeSetInstanceId = "EMPTY";
            line_1.MovementQuantity       = 123;
            movement.MovementLines.Add(line_1);

            movementApplicationService.When(movement);

            var complete = new MovementCommands.DocumentAction();

            complete.Value          = DocumentAction.Complete;
            complete.DocumentNumber = documentNumber;
            complete.Version        = 1;
            complete.CommandId      = Guid.NewGuid().ToString();
            movementApplicationService.When(complete);

            var reverse = new MovementCommands.DocumentAction();

            reverse.Value          = DocumentAction.Reverse;
            reverse.DocumentNumber = documentNumber;
            reverse.Version        = 2;
            reverse.CommandId      = Guid.NewGuid().ToString();
            movementApplicationService.When(reverse);

            return(documentNumber);
        }
        /// <summary>
        /// 生成反转的单据(但不包括行)。
        /// </summary>
        protected virtual ICreateMovement DoCreateReversalMovement(IMovementState movement)
        {
            var reversalMov = new CreateMovement();

            //reversalInOut.Organization = inOut.Organization;
            //reversalInOut.Client = inOut.Client;

            //生成新的单号:
            reversalMov.DocumentNumber = "RM" + SeqIdGenerator.GetNextId();//DocumentNumberGenerator.GetNewDocumentNumber();
            //设置反转关系:
            reversalMov.ReversalDocumentNumber = movement.DocumentNumber;

            //movement.Reversal = reversalMov;
            //源单据前向关联到反转单据:
            //movement.Description = "(" + reversalMov.DocumentNumber + "<-)";//(1000016<-)

            //反转单据后向关联到源单据:
            reversalMov.Description = "{->" + movement.DocumentNumber + ")";//{->1000015)

            //reversalMov.Posted = movement.Posted;//??
            //reversalMov.Processing = movement.Processing;
            //reversalMov.Processed = movement.Processed;

            reversalMov.DocumentTypeId = movement.DocumentTypeId;
            reversalMov.MovementDate   = movement.MovementDate;//???

            reversalMov.ApprovalAmount        = movement.ApprovalAmount;
            reversalMov.ChargeAmount          = movement.ChargeAmount;
            reversalMov.DateReceived          = movement.DateReceived;
            reversalMov.FreightAmount         = movement.FreightAmount;
            reversalMov.Active                = movement.Active;
            reversalMov.IsInTransit           = false;//??
            reversalMov.SalesRepresentativeId = movement.SalesRepresentativeId;
            reversalMov.ShipperId             = movement.ShipperId;
            reversalMov.BusinessPartnerId     = movement.BusinessPartnerId;
            //reversalMov.User = movement.User;

            reversalMov.WarehouseIdFrom = movement.WarehouseIdFrom;
            reversalMov.WarehouseIdTo   = movement.WarehouseIdTo;

            return(reversalMov);
        }
示例#5
0
        private string CreateAndCompleteTestMovement(bool isInTransit)
        {
            var documentNumber = Guid.NewGuid().ToString();

            CreateMovement movement = new CreateMovement();

            movement.DocumentNumber  = documentNumber;
            movement.CommandId       = Guid.NewGuid().ToString();
            movement.WarehouseIdFrom = "1";
            movement.WarehouseIdTo   = "2";
            //movement.DocumentAction = DocumentAction.Draft;// 不能这样写:movement.DocumentStatus = DocumentStatus.Drafted
            //movement.ChargeAmount = new Money(10000, "CNY");
            //movement.FreightAmount = new Money(400, "CNY");
            //movement.MovementTypeId = DocumentTypeIds.Movement;
            movement.MovementDate = DateTime.Now;

            //////////////////
            movement.IsInTransit = isInTransit;
            //////////////////

            var line_1 = movement.NewCreateMovementLine();

            line_1.LineNumber             = DateTime.Now.Ticks.ToString();//todo
            line_1.ProductId              = "TEST_" + DateTime.Now.Ticks.ToString();
            line_1.LocatorIdFrom          = "1_TEST_F_" + DateTime.Now.Ticks.ToString();
            line_1.LocatorIdTo            = "2_TEST_T_" + DateTime.Now.Ticks.ToString();
            line_1.AttributeSetInstanceId = "EMPTY";
            line_1.MovementQuantity       = 123;
            movement.MovementLines.Add(line_1);

            movementApplicationService.When(movement);

            var complete = new MovementCommands.DocumentAction();

            complete.Value          = DocumentAction.Complete;
            complete.DocumentNumber = documentNumber;
            complete.Version        = 1;
            complete.CommandId      = Guid.NewGuid().ToString();
            movementApplicationService.When(complete);
            return(documentNumber);
        }
示例#6
0
 public RegisteredMovement Create(CreateMovement createMovement)
 {
     return(_movementService.Create(createMovement));
 }