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); }
public Warehouse GetByWarehouseCode(string warehouseCode) { return(_warehouseRepository.GetByWarehouseCode(warehouseCode)); }