Beispiel #1
0
        private Error validateModel(SalesOrderDetailTempModel model)
        {
            var error = isValidRequiredInt(model.ProductId, "ProductName", EvolutionResources.errAValidItemMustBeSelected);

            if (!error.IsError)
            {
                error = isValidNonRequiredString(getFieldValue(model.ProductDescription), 255, "ProductDescription", EvolutionResources.errTextDataRequiredInField);
            }

            return(error);
        }
        private SalesOrderDetailTempModel createSalesOrderDetailTemp(SalesOrderHeaderTempModel soht,
                                                                     CompanyModel testCompany,
                                                                     CustomerModel testCustomer,
                                                                     UserModel testUser,
                                                                     int productId)
        {
            var prodPrice = ProductService.FindProductPrice(testCompany, productId, testCustomer.Id);

            var sodt = new SalesOrderDetailTempModel {
                CompanyId = testCompany.Id,
                SalesOrderHeaderTempId = soht.Id,
                LineNumber             = 1000,
                ProductId      = productId,
                OrderQty       = RandomInt(),
                UnitPriceExTax = (prodPrice == null ? 0 : prodPrice.SellingPrice)
                                 //ConflictFlag = false,
                                 //ConflictApproved = false,
                                 //ReallocateItem = false
            };

            return(sodt);
        }
Beispiel #3
0
        public SalesOrderDetailTempModel FindSalesOrderDetailTempModel(int id, CompanyModel company, bool bCreateEmptyIfNotfound = true)
        {
            SalesOrderDetailTempModel model = null;

            var p = db.FindSalesOrderDetailTemp(id);

            if (p == null)
            {
                if (bCreateEmptyIfNotfound)
                {
                    model = new SalesOrderDetailTempModel {
                        CompanyId    = company.Id,
                        LineStatusId = db.FindSalesOrderHeaderSubStatus(SalesOrderHeaderSubStatus.Unpicked).Id
                    }
                }
                ;
            }
            else
            {
                model = MapToModel(p);
            }

            return(model);
        }
Beispiel #4
0
        public CustomerModel FindCustomer(SalesOrderDetailTempModel sodt, CompanyModel company)
        {
            var soht = FindSalesOrderHeaderTempModel(sodt.SalesOrderHeaderTempId, company, false);

            return(FindCustomer(soht, company));
        }
Beispiel #5
0
        public SalesOrderDetailTempModel MapToModel(SalesOrderDetailTempModel item)
        {
            var newItem = Mapper.Map <SalesOrderDetailTempModel, SalesOrderDetailTempModel>(item);

            return(newItem);
        }
Beispiel #6
0
 public string LockSalesOrderDetailTemp(SalesOrderDetailTempModel model)
 {
     return(db.LockRecord(typeof(SalesOrderDetailTemp).ToString(), model.Id));
 }
Beispiel #7
0
        public Error InsertOrUpdateSalesOrderDetailTemp(SalesOrderDetailTempModel sodt, UserModel user, string lockGuid)
        {
            if (sodt.ProductId == null)
            {
                var product = db.FindProduct(sodt.ProductName);
                if (product != null)
                {
                    sodt.ProductId = product.Id;
                }
            }

            var error = validateModel(sodt);

            if (!error.IsError)
            {
                // Check that the lock is still current
                if (!db.IsLockStillValid(typeof(SalesOrderDetailTemp).ToString(), sodt.Id, lockGuid))
                {
                    error.SetError(EvolutionResources.errRecordChangedByAnotherUser, "ProductName");
                }
                else
                {
                    var now = DateTimeOffset.Now;
                    if (sodt.DateCreated == null)
                    {
                        sodt.DateCreated = now;
                    }
                    sodt.DateModified = now;

                    SalesOrderDetailTemp temp = null;
                    if (sodt.Id != 0)
                    {
                        // Existing record to be updated
                        temp = db.FindSalesOrderDetailTemp(sodt.Id);

                        // The following fields are not copied:
                        //      OriginalRowId
                        //      LineNumber
                        Mapper.Map <SalesOrderDetailTempModel, SalesOrderDetailTemp>(sodt, temp);
                        if (temp.LineNumber == null)
                        {
                            temp.LineNumber = db.GetNextSalesOrderDetailLineNumber(temp.SalesOrderHeaderTempId, true);
                        }
                    }
                    else
                    {
                        // New record, so copy values

                        // The following fields are not copied:
                        //      OriginalRowId
                        //      LineNumber
                        temp = Mapper.Map <SalesOrderDetailTempModel, SalesOrderDetailTemp>(sodt);

                        temp.OriginalRowId = sodt.OriginalRowId;
                        temp.LineNumber    = db.GetNextSalesOrderDetailLineNumber(temp.SalesOrderHeaderTempId, true);
                    }

                    temp.UserId = user.Id;

                    if (sodt.UnitPriceExTax != null)
                    {
                        sodt.LinePrice = sodt.UnitPriceExTax * sodt.OrderQty;
                        if (sodt.DiscountPercent != null && sodt.DiscountPercent.Value != 0)
                        {
                            sodt.LinePrice = sodt.LinePrice / 100 * (100 - sodt.DiscountPercent);
                        }
                    }

                    db.InsertOrUpdateSalesOrderDetailTemp(temp);
                    sodt.Id = temp.Id;
                }
            }
            return(error);
        }