コード例 #1
0
        public long Add(ExpectedReceiptBindingModel bindingModel)
        {
            var warehouse = _warehouseRepository.GetByWarehouseCode(bindingModel.WarehouseCode);
            var haulier   = _haulierService.GetByHaulierCode(bindingModel.HaulierCode);
            Func <ExpectedReceipt, bool> res = x => x.CustomerId == bindingModel.CustomerId;
            var  count = _expectedReceiptRepository.GetList(res).Count();
            long?haulierId;
            var  grn = String.Format("GRN-{0:0000000000}", count + 1);
            var  arn = String.Format("ARN-{0:0000000000}", count + 1);

            if (bindingModel.HaulierId != null)
            {
                haulierId = bindingModel.HaulierId;
            }
            else
            {
                haulierId = haulier?.Id ?? null;
            }
            ExpectedReceipt expectedReceipt = new ExpectedReceipt
            {
                //Id = (int) bindingModel.Id,
                ExpectedReceiptDate = bindingModel.ExpectedReceiptDate,
                GoodsReceivedNumber = grn,
                AutoReferenceNumber = arn,
                Received            = bindingModel.Received,
                Comments            = bindingModel.Comments,
                Address             = bindingModel.Address,
                CustomerClientId    = bindingModel.CustomerClientId,
                Supplier            = bindingModel.Supplier,
                HaulierId           = haulierId,
                StatusId            = bindingModel.StatusId,
                CustomerId          = (int)bindingModel.CustomerId,
                WarehouseId         = warehouse.Id,
                ReceivedBy          = bindingModel.ReceivedBy,
                ReceivedDate        = bindingModel.ReceivedDate,
                Planned             = bindingModel.Planned,
                ReferenceNumber     = bindingModel.ReferenceNumber,
                CreatedBy           = bindingModel.CreatedBy,
                UpdatedBy           = bindingModel.UpdatedBy
            };

            if (IsDuplicate(expectedReceipt.ReferenceNumber, expectedReceipt.Id, expectedReceipt.CustomerId) == false)
            {
                return(_expectedReceiptRepository.Add(expectedReceipt));
            }
            else
            {
                Expression <Func <ExpectedReceipt, bool> > expectedRes = x => x.ReferenceNumber == expectedReceipt.ReferenceNumber && x.CustomerId == expectedReceipt.CustomerId && x.IsActive == false;
                var model = _expectedReceiptRepository.Get(expectedRes);

                if (model != null)
                {
                    expectedReceipt.Id       = model.Id;
                    expectedReceipt.IsActive = true;

                    _expectedReceiptRepository.Detach(model);

                    _expectedReceiptRepository.Update(expectedReceipt);
                    return(haulier.Id);
                }
                else
                {
                    return(0);
                }
            }

            //return _expectedReceiptRepository.Add(expectedReceipt);
        }
コード例 #2
0
 public Warehouse GetByWarehouseCode(string warehouseCode)
 {
     return(_warehouseRepository.GetByWarehouseCode(warehouseCode));
 }