Пример #1
0
        public bool DeleteForTypeAndProperty(string typeBvin, long propertyId)
        {
            var typeGuid = DataTypeHelper.BvinToGuid(typeBvin);

            return(Delete(y => y.PropertyId == propertyId && y.ProductTypeBvin == typeGuid));
        }
        protected override Func <hcc_ProductImage, bool> NotMatchItems(List <ProductImage> items)
        {
            var itemGuids = items.Select(i => DataTypeHelper.BvinToGuid(i.Bvin)).ToList();

            return(pi => !itemGuids.Contains(pi.bvin));
        }
        public ProductImage FindForAllStores(string bvin)
        {
            var guid = DataTypeHelper.BvinToGuid(bvin);

            return(FindFirstPoco(y => y.bvin == guid));
        }
Пример #4
0
        protected bool Save()
        {
            var culture = Thread.CurrentThread.CurrentUICulture;
            var result  = false;

            if (Page.IsValid)
            {
                var p = HccApp.CatalogServices.Products.Find(ProductId);
                if (p == null)
                {
                    p = new Product();
                }

                p.Status       = chkActive.Checked ? ProductStatus.Active : ProductStatus.Disabled;
                p.IsSearchable = chkSearchable.Checked;

                var isBundle = rbBehaviour.SelectedValue == "B";
                var isGC     = rbBehaviour.SelectedValue == "GC";
                p.IsBundle = isBundle;

                if (isGC && p.IsGiftCard != isGC && !string.IsNullOrEmpty(p.Bvin))
                {
                    HccApp.CatalogServices.BundledProducts.DeleteByBundleProductId(p.Bvin);
                }
                p.IsGiftCard = isGC;

                p.TemplateName = ddlTemplateList.SelectedValue;
                p.Featured     = chkFeatured.Checked;

                if (string.Compare(p.Sku.Trim(), SkuField.Text.Trim(), true) != 0)
                {
                    //sku changed, so do a sku check
                    var prodGuid = DataTypeHelper.BvinToNullableGuid(p.Bvin);
                    if (HccApp.CatalogServices.Products.IsSkuExist(SkuField.Text.Trim(), prodGuid))
                    {
                        ucMessageBox.ShowError(Localization.GetString("SkuExists"));
                        return(false);
                    }
                }

                p.Sku = SkuField.Text.Trim();

                p.ProductName   = txtProductName.Text.Trim();
                p.ProductTypeId = lstProductType.SelectedValue ?? string.Empty;

                p.IsUserSuppliedPrice    = chkUserPrice.Checked;
                p.HideQty                = chkHideQty.Checked;
                p.UserSuppliedPriceLabel = txtUserPriceLabel.Text;

                if (p.IsUserSuppliedPrice || isGC)
                {
                    p.ListPrice             = 0;
                    p.SiteCost              = 0;
                    p.SitePrice             = 0;
                    p.SitePriceOverrideText = string.Empty;
                }
                else
                {
                    decimal listPrice;
                    if (decimal.TryParse(ListPriceField.Text, NumberStyles.Currency, culture, out listPrice))
                    {
                        p.ListPrice = Money.RoundCurrency(listPrice);
                    }
                    decimal cost;
                    if (decimal.TryParse(CostField.Text, NumberStyles.Currency, Thread.CurrentThread.CurrentUICulture,
                                         out cost))
                    {
                        p.SiteCost = Money.RoundCurrency(cost);
                    }
                    decimal price;
                    if (decimal.TryParse(SitePriceField.Text, NumberStyles.Currency,
                                         Thread.CurrentThread.CurrentUICulture, out price))
                    {
                        p.SitePrice = Money.RoundCurrency(price);
                    }
                    p.SitePriceOverrideText = PriceOverrideTextBox.Text.Trim();
                }
                p.LongDescription = LongDescriptionField.Text.Trim();
                p.ManufacturerId  = lstManufacturers.SelectedValue ?? string.Empty;
                p.VendorId        = lstVendors.SelectedValue ?? string.Empty;


                if (string.IsNullOrEmpty(SmallImageAlternateTextField.Text))
                {
                    p.ImageFileSmallAlternateText = p.ProductName + " " + p.Sku;
                }
                else
                {
                    p.ImageFileSmallAlternateText = SmallImageAlternateTextField.Text;
                }
                if (string.IsNullOrEmpty(MediumImageAlternateTextField.Text))
                {
                    p.ImageFileMediumAlternateText = p.ProductName + " " + p.Sku;
                }
                else
                {
                    p.ImageFileMediumAlternateText = MediumImageAlternateTextField.Text;
                }

                p.PreContentColumnId  = ddlPreContentColumn.SelectedValue;
                p.PostContentColumnId = ddlPostContentColumn.SelectedValue;

                var oldUrl = p.UrlSlug;

                // no entry, generate one
                if (p.UrlSlug.Trim().Length < 1)
                {
                    p.UrlSlug = Text.Slugify(p.ProductName, false);
                }
                else
                {
                    p.UrlSlug = Text.Slugify(txtRewriteUrl.Text, false);
                }

                if (UrlRewriter.IsProductSlugInUse(p.UrlSlug, p.Bvin, HccApp))
                {
                    ucMessageBox.ShowWarning(Localization.GetString("UrlExists"));
                    return(false);
                }

                p.Keywords      = txtKeywords.Text.Trim();
                p.ProductTypeId = lstProductType.SelectedValue;
                if (!string.IsNullOrEmpty(lstTaxClasses.SelectedValue))
                {
                    p.TaxSchedule = long.Parse(lstTaxClasses.SelectedValue);
                }
                else
                {
                    p.TaxSchedule = -1;
                }

                p.MetaTitle       = txtMetaTitle.Text.Trim();
                p.MetaDescription = txtMetaDescription.Text.Trim();
                p.MetaKeywords    = txtMetaKeywords.Text.Trim();

                decimal weight = 0;
                decimal.TryParse(txtWeight.Text, NumberStyles.Float, Thread.CurrentThread.CurrentUICulture, out weight);
                p.ShippingDetails.Weight = weight;

                decimal length = 0;
                decimal.TryParse(txtLength.Text, NumberStyles.Float, Thread.CurrentThread.CurrentUICulture, out length);
                p.ShippingDetails.Length = length;

                decimal width = 0;
                decimal.TryParse(txtWidth.Text, NumberStyles.Float, Thread.CurrentThread.CurrentUICulture, out width);
                p.ShippingDetails.Width = width;

                decimal height = 0;
                decimal.TryParse(txtHeight.Text, NumberStyles.Float, Thread.CurrentThread.CurrentUICulture, out height);
                p.ShippingDetails.Height = height;

                p.ShippingDetails.ExtraShipFee =
                    Money.RoundCurrency(decimal.Parse(ExtraShipFeeField.Text, NumberStyles.Currency, culture));
                p.ShippingMode = (ShippingMode)int.Parse(ddlShipType.SelectedValue);
                p.ShippingDetails.IsNonShipping  = chkNonShipping.Checked;
                p.ShippingDetails.ShipSeparately = chkShipSeparately.Checked;

                p.ShippingCharge = (ShippingChargeType)int.Parse(lstShippingCharge.SelectedValue);

                p.MinimumQty = int.Parse(txtMinimumQty.Text, NumberStyles.Integer, Thread.CurrentThread.CurrentUICulture);

                p.TaxExempt = TaxExemptField.Checked;

                p.GiftWrapAllowed = false;

                if (!string.IsNullOrWhiteSpace(rblAllowReviews.SelectedValue))
                {
                    p.AllowReviews = bool.Parse(rblAllowReviews.SelectedValue);
                }
                else
                {
                    p.AllowReviews = null;
                }
                p.SwatchPath = swatchpathfield.Text;

                if (ucImageUploadLarge.HasFile)
                {
                    var fileName = Text.CleanFileName(Path.GetFileName(ucImageUploadLarge.FileName));
                    p.ImageFileMedium = fileName;
                    p.ImageFileSmall  = fileName;
                }

                if (string.IsNullOrEmpty(p.Bvin))
                {
                    result = HccApp.CatalogServices.ProductsCreateWithInventory(p, true);
                }
                else
                {
                    result = HccApp.CatalogServices.ProductsUpdateWithSearchRebuild(p);
                }

                if (result)
                {
                    // Create taxonomy tags
                    var taxonomyTags = txtTaxonomyTags.Text.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    HccApp.SocialService.UpdateProductTaxonomy(p, taxonomyTags);

                    // Save images
                    UploadImage(p);

                    // Store propety values
                    var props = HccApp.CatalogServices.ProductPropertiesFindForType(lstProductType.SelectedValue);
                    foreach (var prop in props)
                    {
                        if (_productTypeProperties.ContainsKey(prop.Id))
                        {
                            HccApp.CatalogServices.ProductPropertyValues.SetPropertyValue(p.Bvin, prop,
                                                                                          _productTypeProperties[prop.Id]);
                        }
                    }

                    // Update bvin field so that next save will call updated instead of create
                    ProductId = p.Bvin;

                    if (!string.IsNullOrEmpty(oldUrl) && oldUrl != p.UrlSlug)
                    {
                        HccApp.ContentServices.CustomUrls.Register301(oldUrl,
                                                                      p.UrlSlug,
                                                                      p.Bvin, CustomUrlType.Product, HccApp.CurrentRequestContext, HccApp);
                        UrlsAssociated1.LoadUrls();
                    }
                }
                else
                {
                    ucMessageBox.ShowError(Localization.GetString("SaveProductFailure"));
                }
            }
            return(result);
        }
        public bool DeleteForProductId(string productId)
        {
            var productGuid = DataTypeHelper.BvinToGuid(productId);

            return(Delete(y => y.ProductID == productGuid));
        }
        protected override Func <hcc_RMA, bool> MatchItems(RMA item)
        {
            var guid = DataTypeHelper.BvinToGuid(item.Bvin);

            return(rma => rma.bvin == guid);
        }
Пример #7
0
 void IRecordLoad.AddColumn(string field, Type dataType)
 {
     columns.Add(field, dataType);
     values.Add(field, DataTypeHelper.GetDefaultValue(dataType));
 }
Пример #8
0
        /// <summary>
        ///     Delete Product file for given store
        /// </summary>
        /// <param name="fileId">File unique identifier</param>
        /// <param name="storeId">Store unique identifier</param>
        /// <returns>Returns true if file removed successfully</returns>
        public bool DeleteForFileId(string fileId, long storeId)
        {
            var fileGuid = DataTypeHelper.BvinToGuid(fileId);

            return(Delete(y => y.ProductFileId == fileGuid && y.StoreId == storeId));
        }
        public ProductSearchResultAdv DoSearch(ProductSearchQueryAdv query, int pageNumber, int pageSize)
        {
            _query = query;
            var result = new ProductSearchResultAdv();

            IQueryable <ProductQuery> dbQuery    = null;
            IQueryable <ProductQuery> dbQueryAll = null;

            _queryCategories   = query.Categories.Select(bvin => DataTypeHelper.BvinToGuid(bvin)).ToList();
            _queryTypes        = query.Types.Select(bvin => DataTypeHelper.BvinToNullableGuid(bvin)).ToList();
            _queryManufactures = query.Manufactures.Select(bvin => DataTypeHelper.BvinToNullableGuid(bvin)).ToList();
            _queryVendors      = query.Vendors.Select(bvin => DataTypeHelper.BvinToNullableGuid(bvin)).ToList();
            var selPropIds = query.Properties.Keys.ToList();

            _querySelectedProperties = _context.hcc_ProductProperty.Where(pp => selPropIds.Contains(pp.Id)).ToList();

            var productSecurityFilterQuery = _context.hcc_Product.Where(p => p.Status == (int)ProductStatus.Active);

            if (query.IsConsiderSearchable)
            {
                productSecurityFilterQuery = productSecurityFilterQuery.Where(p => p.IsSearchable == query.IsSearchable);
            }
            var prodQuery = SecurityFilter(productSecurityFilterQuery);

            if (query.SortOrder != CategorySortOrder.ProductName &&
                query.SortOrder != CategorySortOrder.ProductNameDescending)
            {
                dbQuery = prodQuery.Where(p => p.IsAvailableForSale)
                          .GroupJoin(_propertiesJoin, p => p.bvin, ppvj => ppvj.ppv.Item.ProductBvin,
                                     (p, ppvj) =>
                                     new ProductQuery
                {
                    p    = p,
                    pt   = null,
                    ppvj = ppvj.Where(pj => pj.ptypes.Any(pt => pt.ProductTypeBvin == p.ProductTypeId))
                });
            }
            else
            {
                var productTranslation = _context.hcc_ProductTranslations
                                         .Where(
                    it =>
                    it.Culture == _reqContext.MainContentCulture ||
                    it.Culture == _reqContext.FallbackContentCulture);
                dbQuery = prodQuery.Where(p => p.IsAvailableForSale)
                          .GroupJoin(productTranslation, p => p.bvin, pt => pt.ProductId, (p, pt)
                                     =>
                                     new
                {
                    p,
                    pt =
                        pt.OrderBy(ptr => ptr.Culture == _reqContext.MainContentCulture ? 1 : 2)
                        .FirstOrDefault()
                })
                          .GroupJoin(_propertiesJoin, p => p.p.bvin, ppvj => ppvj.ppv.Item.ProductBvin,
                                     (p, ppvj) =>
                                     new ProductQuery
                {
                    p    = p.p,
                    pt   = p.pt,
                    ppvj = ppvj.Where(pj => pj.ptypes.Any(pt => pt.ProductTypeBvin == p.p.ProductTypeId))
                });
            }
            // Fill price info before filtering by price is done
            result.MinPrice = dbQuery.Min(q => (decimal?)q.p.SitePrice) ?? 0;
            result.MaxPrice = dbQuery.Max(q => (decimal?)q.p.SitePrice) ?? 0;

            using (MiniProfiler.Current.Step("Filtering"))
            {
                // Filtering results by price
                dbQuery    = FilterByPrice(dbQuery);
                dbQueryAll = FilterByFacets(dbQuery);

                switch (query.SortOrder)
                {
                case CategorySortOrder.ProductName:
                    dbQueryAll = dbQueryAll.OrderBy(q => q.pt.ProductName);
                    break;

                case CategorySortOrder.ProductNameDescending:
                    dbQueryAll = dbQueryAll.OrderByDescending(q => q.pt.ProductName);
                    break;

                case CategorySortOrder.ProductPriceAscending:
                    dbQueryAll = dbQueryAll.OrderBy(q => q.p.SitePrice);
                    break;

                case CategorySortOrder.ProductPriceDescending:
                    dbQueryAll = dbQueryAll.OrderByDescending(q => q.p.SitePrice);
                    break;

                case CategorySortOrder.ProductSKUAscending:
                    dbQueryAll = dbQueryAll.OrderBy(q => q.p.SKU);
                    break;

                case CategorySortOrder.ProductSKUDescending:
                    dbQueryAll = dbQueryAll.OrderByDescending(q => q.p.SKU);
                    break;

                default:
                    dbQueryAll =
                        dbQueryAll.OrderBy(
                            q =>
                            q.p.hcc_ProductXCategory.Where(z => _queryCategories.Contains(z.CategoryId))
                            .Select(z => z.SortOrder)
                            .FirstOrDefault());
                    break;
                }
            }

            // Fill facets info
            using (MiniProfiler.Current.Step("Build Manufactory Facets"))
            {
                result.Manufacturers = BuildManufactoryFacets(FilterByFacets(dbQuery, "M"));
            }
            using (MiniProfiler.Current.Step("Build Vendors Facets"))
            {
                result.Vendors = BuildVendorsFacets(FilterByFacets(dbQuery, "V"));
            }
            using (MiniProfiler.Current.Step("Build Types Factes"))
            {
                result.Types = BuildTypesFactes(FilterByFacets(dbQuery, "T"));
            }
            using (MiniProfiler.Current.Step("Build Property Facets"))
            {
                result.Properties = BuildPropertyFacets(FilterByFacets(dbQuery, "P"));
            }
            using (MiniProfiler.Current.Step("Build Selections"))
            {
                // Fill selected data
                result.SelectedCategories    = BuildSelectedCategories();
                result.SelectedVendors       = BuildSelectedVendors();
                result.SelectedManufacturers = BuildSelectedManufactures();
                result.SelectedTypes         = BuildSelectedTypes();
                result.SelectedProperties    = BuildSelectedProperties();

                result.SelectedMinPrice = query.MinPrice ?? result.MinPrice;
                result.SelectedMaxPrice = query.MaxPrice ?? result.MaxPrice;
            }

            using (MiniProfiler.Current.Step("Get Products List"))
            {
                var skip = (pageNumber - 1) * pageSize;
                if (skip < 0)
                {
                    skip = 0;
                }

                var productIds = dbQueryAll.Select(q => q.p.bvin);
                result.TotalCount = productIds.Count();
                result.Products   = productIds.
                                    Skip(skip).
                                    Take(pageSize).
                                    ToList().
                                    Select(guid => DataTypeHelper.GuidToBvin(guid)).
                                    ToList();
            }
            return(result);
        }
Пример #10
0
        private static List <RepairReport> GetRepairReport(DataTable dt)
        {
            List <RepairReport> repairList = new List <RepairReport>();

            foreach (DataRow row in dt.Rows)
            {
                List <string> beforeList = new List <string>();
                List <string> afterList  = new List <string>();
                RepairReport  r          = new RepairReport();
                r.Id              = DataTypeHelper.GetIntValue(row["ID"]);
                r.SerialNumber    = DataTypeHelper.GetStringValue(row["序号"]);
                r.Department      = DataTypeHelper.GetStringValue(row["部门"]);
                r.Address         = DataTypeHelper.GetStringValue(row["地址"]);
                r.RepairPerson    = DataTypeHelper.GetStringValue(row["报修人"]);
                r.PhoneNumber     = DataTypeHelper.GetStringValue(row["联系电话"]);
                r.ServiceProject  = DataTypeHelper.GetStringValue(row["服务项目"]);
                r.ServiceCategory = DataTypeHelper.GetStringValue(row["服务类别"]);
                r.Level           = DataTypeHelper.GetStringValue(row["紧急程度"]);
                //r.Identity = DataTypeHelper.GetStringValue(row["身份"]);
                //r.NeedIn = DataTypeHelper.GetStringValue(row["是否入户"]);
                r.RepairExplain   = DataTypeHelper.GetStringValue(row["报修说明"]);
                r.RepairTime      = DataTypeHelper.GetDateStringValue(row["报修时间"]);
                r.OrderTime       = DataTypeHelper.GetDateStringValue(row["预约服务时间"]);
                r.VisitTime       = DataTypeHelper.GetDateStringValue(row["谈好上门时间"]);
                r.SendPerson      = DataTypeHelper.GetStringValue(row["发单人"]);
                r.ReceivePerson   = DataTypeHelper.GetStringValue(row["接单人"]);
                r.DispatchTime    = DataTypeHelper.GetDateStringValue(row["派工时间"]);
                r.ArriveTime      = DataTypeHelper.GetDateStringValue(row["到场时间"]);
                r.OperatePerson   = DataTypeHelper.GetStringValue(row["操作人"]);
                r.CompleteTime    = DataTypeHelper.GetDateStringValue(row["完成时间"]);
                r.ChargeType      = DataTypeHelper.GetStringValue(row["收费类别"]);
                r.MaterialExpense = DataTypeHelper.GetDoubleValue(row["材料费"]);
                r.LaborExpense    = DataTypeHelper.GetDoubleValue(row["人工费"]);
                //r.IsPaid = DataTypeHelper.GetStringValue(row["是否已收"]);
                //r.IsRead = DataTypeHelper.GetIntValue(row["是否阅读"]);
                //r.AffirmComplete = DataTypeHelper.GetStringValue(row["业主确认完成"]);
                //r.AffirmCompleteEvaluation = DataTypeHelper.GetStringValue(row["业主评价"]);
                //r.AffirmCompleteTime = DataTypeHelper.GetDateStringValue(row["业主确认完成时间"]);
                //r.IsSatisfying = DataTypeHelper.GetStringValue(row["是否满意"]);
                //r.CallBackEvaluation = DataTypeHelper.GetStringValue(row["回访意见"]);
                //r.CallBackPerson = DataTypeHelper.GetStringValue(row["回访人"]);
                //r.CallBackTime = DataTypeHelper.GetDateStringValue(row["回访时间"]);
                r.status = DataTypeHelper.GetStringValue(row["状态"]);
                //r.status = string.IsNullOrEmpty(r.AffirmComplete) ? r.status : "业主已确认";
                //r.status = string.IsNullOrEmpty(r.CallBackPerson) ? r.status : "已回访";
                r.CompleteStatus = DataTypeHelper.GetStringValue(row["完成情况及所耗物料"]);
                //r.LateTime = DataTypeHelper.GetDateStringValue(row["预计延期到"]);
                r.type = DataTypeHelper.GetStringValue(row["上报原因"]);
                //r.LateReason = DataTypeHelper.GetStringValue(row["延期原因"]);
                beforeList.Add(DataTypeHelper.GetStringValue(row["报修前照片1"]));
                beforeList.Add(DataTypeHelper.GetStringValue(row["报修前照片2"]));
                beforeList.Add(DataTypeHelper.GetStringValue(row["报修前照片3"]));
                r.BeforeImage = beforeList.ToArray();
                afterList.Add(DataTypeHelper.GetStringValue(row["处理后照片1"]));
                afterList.Add(DataTypeHelper.GetStringValue(row["处理后照片2"]));
                afterList.Add(DataTypeHelper.GetStringValue(row["处理后照片3"]));
                r.AfterImage = afterList.ToArray();
                repairList.Add(r);
            }

            return(repairList);
        }
Пример #11
0
 public ColorMapTableSetter(ColorMapTable<double> oColorMapTable)
 {
     enumDataType dataType = DataTypeHelper.DataType2Enum(typeof(T));
     switch (dataType)
     {
         case enumDataType.Byte:
             Func<byte, byte> stByte = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (byte)oColorMapTable.Items[i].MinValue && v < (byte)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stByte;
             break;
         case enumDataType.Float:
             Func<float, byte> stFloat = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (float)oColorMapTable.Items[i].MinValue && v < (float)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stFloat;
             break;
         case enumDataType.Double:
             Func<double, byte> stDouble = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (double)oColorMapTable.Items[i].MinValue && v < (double)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stDouble;
             break;
         case enumDataType.UInt16:
             Func<UInt16, byte> stUInt16 = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (UInt16)oColorMapTable.Items[i].MinValue && v < (UInt16)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stUInt16;
             break;
         case enumDataType.Int16:
             Func<Int16, byte> stInt16 = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (Int16)oColorMapTable.Items[i].MinValue && v < (Int16)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stInt16;
             break;
         case enumDataType.Int32:
             Func<Int32, byte> stInt32 = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (Int32)oColorMapTable.Items[i].MinValue && v < (Int32)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stInt32;
             break;
         case enumDataType.UInt32:
             Func<UInt32, byte> stUInt32 = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (UInt32)oColorMapTable.Items[i].MinValue && v < (UInt32)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stUInt32;
             break;
         case enumDataType.Int64:
             Func<Int64, byte> stInt64 = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (Int64)oColorMapTable.Items[i].MinValue && v < (Int64)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stInt64;
             break;
         case enumDataType.UInt64:
             Func<UInt64, byte> stUInt64 = (v) =>
             {
                 for (byte i = 0; i < oColorMapTable.Items.Count; i++)
                     if (v >= (UInt64)oColorMapTable.Items[i].MinValue && v < (UInt64)oColorMapTable.Items[i].MaxValue)
                         return (byte)(i + 1);
                 return 255;
             };
             _stretcher = stUInt64;
             break;
     }
     _colorTable = new ColorMapTable<int>();
     for (byte i = 1; i <= oColorMapTable.Items.Count; i++)
         _colorTable.Items.Add(new ColorMapItem<int>(i, i + 1, oColorMapTable.Items[i - 1].Color));
 }
Пример #12
0
        /// <summary>
        /// 设置业主评价信息
        /// </summary>
        /// <param name="evaluation"></param>
        /// <param name="isSatisfying"></param>
        /// <param name="id"></param>
        /// <param name="evaluationTime"></param>
        /// <param name="evaluationer"></param>
        /// <returns></returns>
        //public static StatusReport Evaluation(string evaluation, string isSatisfying, string id, string evaluationTime, string evaluationer)
        //{
        //    StatusReport sr = new StatusReport();
        //    string sqlString = "update 基础资料_服务任务管理 " +
        //        " set 是否满意 = @是否满意," +
        //        " 回访意见 = @回访意见 " +
        //        " 回访人 = @回访人 " +
        //        " 回访时间 = @回访时间 " +
        //        "where ID = @ID";
        //    sr = SQLHelper.Update("wyt", sqlString,
        //        new SqlParameter("@是否满意", isSatisfying),
        //        new SqlParameter("@回访意见", evaluation),
        //        new SqlParameter("@回访人", evaluation),
        //        new SqlParameter("@回访时间", evaluation),
        //        new SqlParameter("@ID", id));
        //    return sr;
        //}


        public static StatusReport GetRepairStatistics(string ztcode, string level, string userName, string before)
        {
            StatusReport sr        = new StatusReport();
            string       sqlString = " SELECT " +
                                     " 接单人, " +
                                     " 帐套名称, " +
                                     " COUNT(CASE WHEN isnull(状态, '') = '' THEN NULL ELSE ID END) AS 接单数, " +
                                     " COUNT(CASE WHEN isnull(状态, '') = '已完成' THEN ID ELSE NULL END) AS 完成数, " +
                                     " COUNT(CASE WHEN isnull(状态, '') <> '' AND isnull(状态, '') <> '已完成' THEN ID ELSE NULL END) AS 未完成数, " +
                                     " COUNT(CASE WHEN 是否满意 = '非常满意' THEN ID ELSE NULL END) AS 非常满意数, " +
                                     " COUNT(CASE WHEN 是否满意 = '满意' THEN ID ELSE NULL END) AS 满意数, " +
                                     " COUNT(CASE WHEN 是否满意 = '不满意' THEN ID ELSE NULL END) AS 不满意数, " +
                                     " COUNT(是否满意) AS 评价总数 " +
                                     " FROM dbo.小程序_工单管理 ";
            string condition = "";
            string group     = "";
            string order     = "";

            switch (level)
            {
            case "一线":
            {
                condition = "where 接单人 = @接单人 and 帐套代码 = @帐套代码 " +
                            " and left(CONVERT(varchar(10),报修时间,112),6) >= left(CONVERT(varchar(10),dateadd(month,@before,GETDATE()),112),6) ";
                group      = " group by 帐套名称,接单人 ";
                order      = " order by 帐套名称,接单人 ";
                sqlString += condition + group + order;
                DataTable dt = null;
                dt = SQLHelper.ExecuteQuery("wyt", sqlString,
                                            new SqlParameter("@接单人", userName),
                                            new SqlParameter("@帐套代码", ztcode),
                                            new SqlParameter("@before", -Convert.ToInt32(before)));
                if (dt.Rows.Count == 0)
                {
                    sr.status = "fail";
                    sr.result = "未查询到任何数据";
                    return(sr);
                }
                DataRow dr = dt.Rows[0];
                RepairStatisticsPersonal rs = new RepairStatisticsPersonal()
                {
                    name             = DataTypeHelper.GetStringValue(dr["接单人"]),
                    ztName           = DataTypeHelper.GetStringValue(dr["帐套名称"]),
                    countReceive     = Convert.ToString(dr["接单数"]),
                    countFinished    = Convert.ToString(dr["完成数"]),
                    countUnfinished  = Convert.ToString(dr["未完成数"]),
                    countVerySatisfy = Convert.ToString(dr["非常满意数"]),
                    countSatisfy     = Convert.ToString(dr["满意数"]),
                    countUnsatisfy   = Convert.ToString(dr["不满意数"]),
                    countEvaluation  = Convert.ToString(dr["评价总数"])
                };
                //string countEvaluation = Convert.ToString(dr["评价总数"]);
                rs.rateFinish      = GetPercent(rs.countFinished, rs.countReceive);
                rs.rateUnfinish    = GetPercent(rs.countUnfinished, rs.countReceive);
                rs.rateVerySatisfy = GetPercent(rs.countVerySatisfy, rs.countEvaluation);
                rs.rateSatisfy     = GetPercent(rs.countSatisfy, rs.countEvaluation);
                rs.rateUnsatisfy   = GetPercent(rs.countUnsatisfy, rs.countEvaluation);
                sr.status          = "Success";
                sr.result          = "成功";
                sr.data            = rs;
                sr.parameters      = sqlString;
            }
            break;

            case "助理":
            case "项目经理":
            {
                condition = "where 帐套代码 = @帐套代码 " +
                            " and left(CONVERT(varchar(10),报修时间,112),6) >= left(CONVERT(varchar(10),dateadd(month,@before,GETDATE()),112),6) ";
                group      = " group by 帐套名称,接单人 ";
                order      = " order by 帐套名称,接单人 ";
                sqlString += condition + group + order;
                DataTable dt = null;
                dt = SQLHelper.ExecuteQuery("wyt", sqlString,
                                            new SqlParameter("@帐套代码", ztcode),
                                            new SqlParameter("@before", -Convert.ToInt32(before)));
                if (dt.Rows.Count == 0)
                {
                    sr.status = "fail";
                    sr.result = "未查询到任何数据";
                    return(sr);
                }
                //string count = "0";
                RepairStatisticsProject         rsproject = new RepairStatisticsProject();
                List <RepairStatisticsPersonal> rspList   = new List <RepairStatisticsPersonal>();
                foreach (DataRow dr in dt.Rows)
                {
                    RepairStatisticsPersonal rs = new RepairStatisticsPersonal()
                    {
                        name             = DataTypeHelper.GetStringValue(dr["接单人"]),
                        ztName           = DataTypeHelper.GetStringValue(dr["帐套名称"]),
                        countReceive     = Convert.ToString(dr["接单数"]),
                        countFinished    = Convert.ToString(dr["完成数"]),
                        countUnfinished  = Convert.ToString(dr["未完成数"]),
                        countVerySatisfy = Convert.ToString(dr["非常满意数"]),
                        countSatisfy     = Convert.ToString(dr["满意数"]),
                        countUnsatisfy   = Convert.ToString(dr["不满意数"]),
                        countEvaluation  = Convert.ToString(dr["评价总数"])
                    };
                    //string countEvaluation = Convert.ToString(dr["评价总数"]);
                    rs.rateFinish      = GetPercent(rs.countFinished, rs.countReceive);
                    rs.rateUnfinish    = GetPercent(rs.countUnfinished, rs.countReceive);
                    rs.rateVerySatisfy = GetPercent(rs.countVerySatisfy, rs.countEvaluation);
                    rs.rateSatisfy     = GetPercent(rs.countSatisfy, rs.countEvaluation);
                    rs.rateUnsatisfy   = GetPercent(rs.countUnsatisfy, rs.countEvaluation);
                    rspList.Add(rs);
                    rsproject.ztName           = rs.ztName;
                    rsproject.countReceive     = Convert.ToString(Convert.ToDecimal(rsproject.countReceive) + Convert.ToDecimal(rs.countReceive));
                    rsproject.countFinished    = Convert.ToString(Convert.ToDecimal(rsproject.countFinished) + Convert.ToDecimal(rs.countFinished));
                    rsproject.countUnfinished  = Convert.ToString(Convert.ToDecimal(rsproject.countUnfinished) + Convert.ToDecimal(rs.countUnfinished));
                    rsproject.countVerySatisfy = Convert.ToString(Convert.ToDecimal(rsproject.countVerySatisfy) + Convert.ToDecimal(rs.countVerySatisfy));
                    rsproject.countSatisfy     = Convert.ToString(Convert.ToDecimal(rsproject.countSatisfy) + Convert.ToDecimal(rs.countSatisfy));
                    rsproject.countUnsatisfy   = Convert.ToString(Convert.ToDecimal(rsproject.countUnsatisfy) + Convert.ToDecimal(rs.countUnsatisfy));
                    rsproject.countEvaluation  = Convert.ToString(Convert.ToDecimal(rsproject.countEvaluation) + Convert.ToDecimal(rs.countEvaluation));
                }
                rsproject.rateFinish               = GetPercent(rsproject.countFinished, rsproject.countReceive);
                rsproject.rateUnfinish             = GetPercent(rsproject.countUnfinished, rsproject.countReceive);
                rsproject.rateVerySatisfy          = GetPercent(rsproject.countVerySatisfy, rsproject.countEvaluation);
                rsproject.rateSatisfy              = GetPercent(rsproject.countSatisfy, rsproject.countEvaluation);
                rsproject.rateUnsatisfy            = GetPercent(rsproject.countUnsatisfy, rsproject.countEvaluation);
                rsproject.repairStatisticsPersonal = rspList.ToArray();
                sr.status     = "Success";
                sr.result     = "成功";
                sr.data       = rsproject;
                sr.parameters = sqlString;
            }
            break;

            case "公司":
            {
                sqlString = " SELECT " +
                            " 帐套名称, " +
                            " COUNT(CASE WHEN isnull(状态, '') = '' THEN NULL ELSE ID END) AS 接单数, " +
                            " COUNT(CASE WHEN isnull(状态, '') = '已完成' THEN ID ELSE NULL END) AS 完成数, " +
                            " COUNT(CASE WHEN isnull(状态, '') <> '' AND isnull(状态, '') <> '已完成' THEN ID ELSE NULL END) AS 未完成数, " +
                            " COUNT(CASE WHEN 是否满意 = '非常满意' THEN ID ELSE NULL END) AS 非常满意数, " +
                            " COUNT(CASE WHEN 是否满意 = '满意' THEN ID ELSE NULL END) AS 满意数, " +
                            " COUNT(CASE WHEN 是否满意 = '不满意' THEN ID ELSE NULL END) AS 不满意数, " +
                            " COUNT(是否满意) AS 评价总数 " +
                            " FROM dbo.小程序_工单管理 ";
                condition  = " where left(CONVERT(varchar(10),报修时间,112),6) >=left(CONVERT(varchar(10),dateadd(month,@before,GETDATE()),112),6) ";
                group      = " group by 帐套名称 ";
                order      = " order by 帐套名称 ";
                sqlString += condition + group + order;
                DataTable dt = null;
                dt = SQLHelper.ExecuteQuery("wyt", sqlString,
                                            new SqlParameter("@before", -Convert.ToInt32(before)));
                if (dt.Rows.Count == 0)
                {
                    sr.status = "fail";
                    sr.result = "未查询到任何数据";
                    return(sr);
                }
                //string count = "0";
                RepairStatisticsCompany        rsc     = new RepairStatisticsCompany();
                List <RepairStatisticsProject> rspList = new List <RepairStatisticsProject>();
                foreach (DataRow dr in dt.Rows)
                {
                    RepairStatisticsProject rsp = new RepairStatisticsProject()
                    {
                        ztName           = DataTypeHelper.GetStringValue(dr["帐套名称"]),
                        countReceive     = Convert.ToString(dr["接单数"]),
                        countFinished    = Convert.ToString(dr["完成数"]),
                        countUnfinished  = Convert.ToString(dr["未完成数"]),
                        countVerySatisfy = Convert.ToString(dr["非常满意数"]),
                        countSatisfy     = Convert.ToString(dr["满意数"]),
                        countUnsatisfy   = Convert.ToString(dr["不满意数"]),
                        countEvaluation  = Convert.ToString(dr["评价总数"])
                    };
                    //string countEvaluation = Convert.ToString(dr["评价总数"]);
                    rsp.rateFinish      = GetPercent(rsp.countFinished, rsp.countReceive);
                    rsp.rateUnfinish    = GetPercent(rsp.countUnfinished, rsp.countReceive);
                    rsp.rateVerySatisfy = GetPercent(rsp.countVerySatisfy, rsp.countEvaluation);
                    rsp.rateSatisfy     = GetPercent(rsp.countSatisfy, rsp.countEvaluation);
                    rsp.rateUnsatisfy   = GetPercent(rsp.countUnsatisfy, rsp.countEvaluation);
                    rspList.Add(rsp);
                    rsc.ztName           = rsp.ztName;
                    rsc.countReceive     = Convert.ToString(Convert.ToDecimal(rsc.countReceive) + Convert.ToDecimal(rsp.countReceive));
                    rsc.countFinished    = Convert.ToString(Convert.ToDecimal(rsc.countFinished) + Convert.ToDecimal(rsp.countFinished));
                    rsc.countUnfinished  = Convert.ToString(Convert.ToDecimal(rsc.countUnfinished) + Convert.ToDecimal(rsp.countUnfinished));
                    rsc.countVerySatisfy = Convert.ToString(Convert.ToDecimal(rsc.countVerySatisfy) + Convert.ToDecimal(rsp.countVerySatisfy));
                    rsc.countSatisfy     = Convert.ToString(Convert.ToDecimal(rsc.countSatisfy) + Convert.ToDecimal(rsp.countSatisfy));
                    rsc.countUnsatisfy   = Convert.ToString(Convert.ToDecimal(rsc.countUnsatisfy) + Convert.ToDecimal(rsp.countUnsatisfy));
                    rsc.countEvaluation  = Convert.ToString(Convert.ToDecimal(rsc.countEvaluation) + Convert.ToDecimal(rsp.countEvaluation));
                }
                rsc.rateFinish              = GetPercent(rsc.countFinished, rsc.countReceive);
                rsc.rateUnfinish            = GetPercent(rsc.countUnfinished, rsc.countReceive);
                rsc.rateVerySatisfy         = GetPercent(rsc.countVerySatisfy, rsc.countEvaluation);
                rsc.rateSatisfy             = GetPercent(rsc.countSatisfy, rsc.countEvaluation);
                rsc.rateUnsatisfy           = GetPercent(rsc.countUnsatisfy, rsc.countEvaluation);
                rsc.repairStatisticsProject = rspList.ToArray();
                sr.status     = "Success";
                sr.result     = "成功";
                sr.data       = rsc;
                sr.parameters = sqlString;
            }
            break;
            }

            return(sr);
        }
Пример #13
0
        /// <summary>
        /// 获取满足条件的工单的列表
        /// </summary>
        /// <param name="openId"></param>
        /// <param name="ztcode"></param>
        /// <returns></returns>
        public static StatusReport GetRepairOrder(string userCode, string ztcode, string status, string orderType)
        {
            string       orderStatusCondition = status == "未完成" ? " and not(isnull(状态,'') = '已完成') " : " and 状态 = '已完成' ";
            StatusReport sr        = new StatusReport();
            string       sqlString =
                " SELECT TOP 100 " +
                " ID,部门,序号,地址,报修人,联系电话,服务项目,发单人,接单人,报修时间,派工时间,预约服务时间, " +
                " 完成情况及所耗物料,操作人,完成时间,材料费,人工费,合计,收费类别,主管意见,服务台签字,客户意见, " +
                " 目录显示,回访时间,回访意见,回访人,到场时间,状态,是否阅读,报修前照片1,报修前照片2,报修前照片3, " +
                " 处理后照片1,处理后照片2,处理后照片3,报修来源,报修处理时间,报修处理ID,网上报修时间,服务类别,紧急程度, " +
                " 报修说明,谈好上门时间,帐套代码,帐套名称 " +
                " FROM 小程序_工单管理 where 帐套代码 = @帐套代码 and year(报修时间) > 2017 and 接单人 = @接单人 ";

            //" FROM 小程序_工单管理 where 接单人 = @接单人 and 帐套代码 = @帐套代码 ";
            sqlString += orderStatusCondition;
            sqlString += (" order by " + orderType + " desc");
            //sqlString += orderType == "已完成" ? " order by 完成时间 desc " : " order by ID desc ";
            DataTable dt = SQLHelper.ExecuteQuery("wyt", sqlString,
                                                  new SqlParameter("@接单人", userCode),
                                                  new SqlParameter("@帐套代码", ztcode),
                                                  new SqlParameter("@状态", status));

            if (dt.Rows.Count == 0)
            {
                sr.status = "Fail";
                sr.result = "未查询到任何数据";
                return(sr);
            }

            //string sqlStr = " select 序号,内容 from 基础资料_服务任务管理设置_入户维修注意事项 where left(DefClass,2) = @分类 ";
            //DataTable dtCaution = SQLHelper.ExecuteQuery("wyt", sqlStr, new SqlParameter("@分类", ztcode));
            //List<RepairCaution> rcList = new List<RepairCaution>();
            //if (dtCaution.Rows.Count != 0)
            //{
            //    foreach (DataRow drCaution in dtCaution.Rows)
            //    {
            //        RepairCaution rc = new RepairCaution();
            //        rc.number = DataTypeHelper.GetStringValue(drCaution["序号"]);
            //        rc.content = DataTypeHelper.GetStringValue(drCaution["内容"]);
            //        rcList.Add(rc);
            //    }
            //}

            List <Repair> repairList = new List <Repair>();

            foreach (DataRow row in dt.Rows)
            {
                List <string> beforeList = new List <string>();
                List <string> afterList  = new List <string>();
                Repair        r          = new Repair
                {
                    Id              = DataTypeHelper.GetIntValue(row["ID"]),
                    SerialNumber    = DataTypeHelper.GetStringValue(row["序号"]),
                    Department      = DataTypeHelper.GetStringValue(row["部门"]),
                    Address         = DataTypeHelper.GetStringValue(row["地址"]),
                    RepairPerson    = DataTypeHelper.GetStringValue(row["报修人"]),
                    PhoneNumber     = DataTypeHelper.GetStringValue(row["联系电话"]),
                    ServiceProject  = DataTypeHelper.GetStringValue(row["服务项目"]),
                    ServiceCategory = DataTypeHelper.GetStringValue(row["服务类别"]),
                    Level           = DataTypeHelper.GetStringValue(row["紧急程度"]),
                    //Identity = DataTypeHelper.GetStringValue(row["身份"]),
                    //NeedIn = DataTypeHelper.GetStringValue(row["是否入户"]),
                    RepairExplain   = DataTypeHelper.GetStringValue(row["报修说明"]),
                    RepairTime      = DataTypeHelper.GetDateStringValue(row["报修时间"]),
                    OrderTime       = DataTypeHelper.GetDateStringValue(row["预约服务时间"]),
                    VisitTime       = DataTypeHelper.GetDateStringValue(row["谈好上门时间"]),
                    SendPerson      = DataTypeHelper.GetStringValue(row["发单人"]),
                    ReceivePerson   = DataTypeHelper.GetStringValue(row["接单人"]),
                    DispatchTime    = DataTypeHelper.GetDateStringValue(row["派工时间"]),
                    ArriveTime      = DataTypeHelper.GetDateStringValue(row["到场时间"]),
                    OperatePerson   = DataTypeHelper.GetStringValue(row["操作人"]),
                    CompleteTime    = DataTypeHelper.GetDateStringValue(row["完成时间"]),
                    ChargeType      = DataTypeHelper.GetStringValue(row["收费类别"]),
                    MaterialExpense = DataTypeHelper.GetDoubleValue(row["材料费"]),
                    LaborExpense    = DataTypeHelper.GetDoubleValue(row["人工费"]),
                    //r.IsPaid = DataTypeHelper.GetStringValue(row["是否已收"]);
                    IsRead = DataTypeHelper.GetIntValue(row["是否阅读"]),
                    //r.AffirmComplete = DataTypeHelper.GetStringValue(row["业主确认完成"]);
                    //r.AffirmCompleteEvaluation = DataTypeHelper.GetStringValue(row["业主评价"]);
                    //r.AffirmCompleteTime = DataTypeHelper.GetDateStringValue(row["业主确认完成时间"]);
                    //r.IsSatisfying = DataTypeHelper.GetStringValue(row["是否满意"]);
                    CallBackEvaluation = DataTypeHelper.GetStringValue(row["回访意见"]),
                    CallBackPerson     = DataTypeHelper.GetStringValue(row["回访人"]),
                    CallBackTime       = DataTypeHelper.GetDateStringValue(row["回访时间"]),
                    status             = DataTypeHelper.GetStringValue(row["状态"])
                };
                //r.status = string.IsNullOrEmpty(r.AffirmComplete) ? r.status : "业主已确认";
                //r.status = string.IsNullOrEmpty(r.CallBackPerson) ? r.status : "已回访";
                r.CompleteStatus = DataTypeHelper.GetStringValue(row["完成情况及所耗物料"]);
                //r.LateTime = DataTypeHelper.GetDateStringValue(row["预计延期到"]);
                //r.LateReason = DataTypeHelper.GetStringValue(row["延期原因"]);
                beforeList.Add(DataTypeHelper.GetStringValue(row["报修前照片1"]));
                beforeList.Add(DataTypeHelper.GetStringValue(row["报修前照片2"]));
                beforeList.Add(DataTypeHelper.GetStringValue(row["报修前照片3"]));
                r.BeforeImage = beforeList.ToArray();
                afterList.Add(DataTypeHelper.GetStringValue(row["处理后照片1"]));
                afterList.Add(DataTypeHelper.GetStringValue(row["处理后照片2"]));
                afterList.Add(DataTypeHelper.GetStringValue(row["处理后照片3"]));
                r.AfterImage = afterList.ToArray();
                //r.Cautions = rcList.ToArray();
                repairList.Add(r);
            }
            sr.status = "Success";
            sr.result = "成功";
            sr.data   = repairList.ToArray();

            return(sr);
        }
Пример #14
0
        public static StatusReport GetCharges(string ztCode, string roomNumber, string userName)
        {
            StatusReport sr = new StatusReport()
            {
                status = "Success",
                result = "成功"
            };
            Charge charge    = new Charge();
            string sqlString = " select 应收款ID as ID " +
                               " from weixin.dbo.应收款APP" +
                               " where 帐套代码 = @帐套代码 " +
                               " and 房号 = @房号 " +
                               " and 占用者名称 = @占用者名称 " +
                               " and 收费状态 IS NULL";

            DataTable dt = SQLHelper.ExecuteQuery("wyt", sqlString,
                                                  new SqlParameter("@占用者名称", userName),
                                                  new SqlParameter("@房号", roomNumber),
                                                  new SqlParameter("@帐套代码", ztCode));

            if (dt.Rows.Count == 0)
            {
                sr.status = "Fail";
                sr.result = "未查询到符合条件的记录";
                return(sr);
            }
            List <int?> idList = new List <int?>();

            foreach (DataRow row in dt.Rows)
            {
                int?id = DataTypeHelper.GetIntValue(row["ID"]);
                idList.Add(id);
            }
            charge.Ids = idList.ToArray();

            sqlString = "SELECT 资源编号, 占用者名称, SUM(应收金额) AS 应收总额, MIN(计费年月) + '-' + MAX(计费年月) + 费用名称 AS 费用名称 " +
                        "FROM weixin.dbo.应收款APP " +
                        " where 帐套代码 = @帐套代码 " +
                        " and 房号 = @房号 " +
                        " and 占用者名称 = @占用者名称 " +
                        " and 收费状态 IS NULL " +
                        "GROUP BY 资源编号, 占用者名称, 费用名称 ";
            dt = SQLHelper.ExecuteQuery("wyt", sqlString,
                                        new SqlParameter("@占用者名称", userName),
                                        new SqlParameter("@房号", roomNumber),
                                        new SqlParameter("@帐套代码", ztCode));
            if (dt.Rows.Count == 0)
            {
                sr.status = "Fail";
                sr.result = "未查询到符合条件的记录";
                return(sr);
            }
            List <ChargeDetail> chargeList = new List <ChargeDetail>();

            foreach (DataRow dr in dt.Rows)
            {
                ChargeDetail chargeDetail = new ChargeDetail()
                {
                    ChargeName = DataTypeHelper.GetStringValue(dr["费用名称"]),
                    Charge     = DataTypeHelper.GetDoubleValue(dr["应收总额"])
                };
                chargeList.Add(chargeDetail);
            }
            charge.ChargeDetail = chargeList.ToArray();
            sr.data             = charge;
            return(sr);
        }
        public RMA Find(string bvin)
        {
            var guid = DataTypeHelper.BvinToGuid(bvin);

            return(FindFirstPoco(y => y.bvin == guid));
        }
Пример #16
0
        public Order FindForAllStores(string bvin)
        {
            var guid = DataTypeHelper.BvinToGuid(bvin);

            return(FindFirstPoco(o => o.bvin == guid));
        }
        public bool Delete(string bvin)
        {
            var guid = DataTypeHelper.BvinToGuid(bvin);

            return(Delete(y => y.bvin == guid));
        }
        NotMatchItems(List <OptionItem> items)
        {
            var itemGuids = items.Select(i => DataTypeHelper.BvinToGuid(i.Bvin)).ToList();

            return(poi => !itemGuids.Contains(poi.Item.bvin));
        }
        protected override Func <hcc_RMA, bool> NotMatchItems(List <RMA> items)
        {
            var itemGuids = items.Select(i => DataTypeHelper.BvinToGuid(i.Bvin)).ToList();

            return(rma => !itemGuids.Contains(rma.bvin));
        }
Пример #20
0
        internal void CreateSampleAnalyticsByMonth(int month)
        {
            var smapleProductSkus = new List <string>
            {
                "SAMPLE001",
                "SAMPLE002",
                "SAMPLE003",
                "SAMPLE004",
                "SAMPLE005",
                "SAMPLE006"
            };
            var products = CatalogServices.Products.FindManySkus(smapleProductSkus);

            var productsCount = products.Count;

            var storeId = Context.CurrentStore.Id;

            var todaysDate = DateTime.UtcNow;
            var startDate  = todaysDate.AddMonths(-month);

            EventLog.LogEvent("SampleData", "Creating Analytics info for " + startDate.ToString("Y"),
                              EventLogSeverity.Information);

            var endDate = startDate.AddMonths(-1);

            var index    = 0;
            var currDate = startDate;

            var sessionGuid         = Guid.NewGuid();
            var analyticsEventsList = new List <AnalyticsEvent>();
            var analyticsEventTypes = new[] { ActionTypes.ProductViewed, ActionTypes.ProductAddedToCart };

            while (currDate > endDate)
            {
                if (currDate != todaysDate)
                {
                    foreach (var product in products)
                    {
                        for (var i = 0; i < currDate.Month + currDate.Year % 2 + index % 6; i++)
                        {
                            var analyticsEvent = new AnalyticsEvent
                            {
                                SessionGuid         = sessionGuid,
                                ShoppingSessionGuid = sessionGuid,
                                StoreId             = storeId,
                                Action   = analyticsEventTypes[i % 2],
                                ObjectId = DataTypeHelper.BvinToGuid(product.Bvin),
                                DateTime = currDate
                            };
                            analyticsEventsList.Add(analyticsEvent);

                            sessionGuid = Guid.NewGuid();
                        }

                        index++;
                    }
                }
                currDate = currDate.AddDays(-1);
            }

            var analyticsEventsRepository = Factory.CreateRepo <AnalyticsEventsRepository>();

            analyticsEventsRepository.BatchCreate(analyticsEventsList);

            index    = 0;
            currDate = startDate;

            var ordersList = new List <Order>();
            var address    = new Address
            {
                FirstName   = "Ryan",
                LastName    = "Morgan",
                Line1       = "319 CLEMATIS ST",
                Line2       = "Suite 500",
                City        = "WEST PALM BCH",
                RegionBvin  = "FL",
                PostalCode  = "44301",
                CountryBvin = Country.UnitedStatesCountryBvin,
                Phone       = "(561) 714-7926"
            };

            while (currDate > endDate)
            {
                if (currDate != todaysDate)
                {
                    foreach (var product in products)
                    {
                        var order = new Order
                        {
                            bvin                        = Guid.NewGuid().ToString(),
                            StoreId                     = storeId,
                            BillingAddress              = address,
                            ShippingAddress             = address,
                            UserID                      = "1",
                            UserEmail                   = "*****@*****.**",
                            OrderNumber                 = "Sample Order",
                            ShippingMethodId            = "TOBEDETERMINED",
                            ShippingProviderId          = string.Empty,
                            ShippingProviderServiceCode = string.Empty,
                            ShippingMethodDisplayName   = "To Be Determined. Contact Store for Details",
                            PaymentStatus               = OrderPaymentStatus.Paid,
                            ShippingStatus              = OrderShippingStatus.Unshipped,
                            StatusCode                  = "F37EC405-1EC6-4a91-9AC4-6836215FBBBC",
                            StatusName                  = "Received",
                            IsPlaced                    = true,
                            IsAbandonedEmailSent        = true,
                            UserDeviceType              = (DeviceType)(index % 3),
                            LastUpdatedUtc              = currDate,
                            TimeOfOrderUtc              = currDate
                        };
                        var qty      = (currDate.Month + 4 + currDate.Year % 2 + index % 6) % 12 + 4;
                        var lineItem = new LineItem
                        {
                            StoreId              = storeId,
                            OrderBvin            = order.bvin,
                            ProductId            = product.Bvin,
                            ProductSku           = product.Sku,
                            ProductName          = product.ProductName,
                            Quantity             = qty,
                            BasePricePerItem     = product.SitePrice,
                            AdjustedPricePerItem = product.SitePrice,
                            LineTotal            = product.SitePrice * qty,
                            ShipFromMode         = ShippingMode.ShipFromSite,
                            LastUpdatedUtc       = currDate
                        };
                        order.Items.Add(lineItem);
                        ordersList.Add(order);

                        index++;

                        var order2 = new Order
                        {
                            bvin                        = Guid.NewGuid().ToString(),
                            StoreId                     = storeId,
                            BillingAddress              = address,
                            ShippingAddress             = address,
                            UserID                      = "1",
                            UserEmail                   = "*****@*****.**",
                            OrderNumber                 = "Sample Order",
                            ShippingMethodId            = "TOBEDETERMINED",
                            ShippingProviderId          = string.Empty,
                            ShippingProviderServiceCode = string.Empty,
                            ShippingMethodDisplayName   = "To Be Determined. Contact Store for Details",
                            PaymentStatus               = OrderPaymentStatus.Paid,
                            ShippingStatus              = OrderShippingStatus.Unshipped,
                            StatusCode                  = OrderStatusCode.Received,
                            StatusName                  = "Received",
                            IsPlaced                    = false,
                            IsAbandonedEmailSent        = true,
                            UserDeviceType              = (DeviceType)(index % 3),
                            LastUpdatedUtc              = currDate,
                            TimeOfOrderUtc              = currDate
                        };
                        var qty2      = (currDate.Month + 8 + currDate.Year % 2 + index % 6) % 12 + 2;
                        var lineItem2 = new LineItem
                        {
                            StoreId              = storeId,
                            OrderBvin            = order2.bvin,
                            ProductId            = product.Bvin,
                            ProductSku           = product.Sku,
                            ProductName          = product.ProductName,
                            Quantity             = qty2,
                            BasePricePerItem     = product.SitePrice,
                            AdjustedPricePerItem = product.SitePrice,
                            LineTotal            = product.SitePrice * qty2,
                            ShipFromMode         = ShippingMode.ShipFromSite,
                            LastUpdatedUtc       = currDate
                        };
                        order2.Items.Add(lineItem2);
                        ordersList.Add(order2);

                        index++;
                    }
                }

                currDate = currDate.AddDays(-1);
            }
            var orderRepository = Factory.CreateRepo <OrderRepository>();

            orderRepository.BatchCreate(ordersList, false);

            var lineItemList       = ordersList.SelectMany(o => o.Items).ToList();
            var lineItemRepository = Factory.CreateRepo <LineItemRepository>();

            lineItemRepository.BatchCreate(lineItemList);


            var orderTransactionList = new List <OrderTransaction>();

            foreach (var order in ordersList)
            {
                if (!order.IsPlaced)
                {
                    continue;
                }

                var orderTransaction = new OrderTransaction
                {
                    StoreId      = storeId,
                    OrderId      = order.bvin,
                    OrderNumber  = "Sample Order",
                    TimeStampUtc = order.TimeOfOrderUtc,
                    Action       = ActionType.CashReceived,
                    Amount       = order.TotalGrand,
                    Success      = true
                };
                orderTransactionList.Add(orderTransaction);
            }
            var orderTransactionRepository = Factory.CreateRepo <OrderTransactionRepository>();

            orderTransactionRepository.BatchCreate(orderTransactionList);
        }
Пример #21
0
        public void DeleteForOrder(string orderBvin)
        {
            var orderGuid = DataTypeHelper.BvinToGuid(orderBvin);

            Delete(y => y.OrderId == orderGuid);
        }
Пример #22
0
        public void Compute(IRasterBand[] srcRasters, RasterQuickStatResult[] results, Action <int, string> progressTracker)
        {
            int bandCount = srcRasters.Length;
            //计算每块包含的行数
            int rowsOfBlock = 0;
            int rowSize     = srcRasters[0].Width * DataTypeHelper.SizeOf(srcRasters[0].DataType);

            if (rowSize >= MAX_BLOCK_SIZE)
            {
                rowsOfBlock = 1;
            }
            else
            {
                rowsOfBlock = MAX_BLOCK_SIZE / rowSize;
            }
            //计算总块数
            int countBlocks = (int)Math.Ceiling((float)srcRasters[0].Height / rowsOfBlock); //总块数

            if (countBlocks == 0)
            {
                countBlocks = 1;
            }
            if (countBlocks == 1)
            {
                rowsOfBlock = srcRasters[0].Height;
            }
            //创建参与计算的波段缓存区(缓存区大小==块大小)
            int width    = srcRasters[0].Width;
            int height   = srcRasters[0].Height;
            int srcCount = srcRasters.Length;

            GCHandle[] srcHandles = new GCHandle[srcCount];
            T[][]      srcBuffers = new T[srcCount][];
            for (int i = 0; i < srcCount; i++)
            {
                srcBuffers[i] = new T[rowsOfBlock * width];
                srcHandles[i] = GCHandle.Alloc(srcBuffers[i], GCHandleType.Pinned);
            }
            //
            int   bRow           = 0;
            int   eRow           = 0;
            int   actualCount    = 0;
            int   bufferRowCount = 0;
            float percent        = countBlocks / 100f;
            int   ipercent       = 0;

            for (int i = 0; i < countBlocks; i++, bRow += rowsOfBlock)
            {
                //确保最后一块的结束行正确
                eRow           = Math.Min(height, bRow + rowsOfBlock);
                bufferRowCount = eRow - bRow;
                //从参与计算的波段中读取第i块数据
                for (int iSrc = 0; iSrc < srcCount; iSrc++)
                {
                    srcRasters[iSrc].Read(0, bRow, width, bufferRowCount, srcHandles[iSrc].AddrOfPinnedObject(), srcRasters[iSrc].DataType, width, bufferRowCount);
                }
                //执行波段计算并将计算结果写到目标波段块缓存区
                actualCount = bufferRowCount * width;
                //
                HandleHistogram(bandCount, srcBuffers, actualCount, results);
                //打印进度
                if (progressTracker != null)
                {
                    ipercent = (int)(i / percent);
                    progressTracker(ipercent, string.Empty);
                }
            }
            //
            HandleMeanValues(bandCount, results, srcRasters[0].Width * srcRasters[0].Height);
            //
            if (ipercent < 100)
            {
                if (progressTracker != null)
                {
                    progressTracker(100, string.Empty);
                }
            }
            //释放缓存区
            for (int i = 0; i < srcCount; i++)
            {
                srcHandles[i].Free();
            }
        }
        public bool DeleteForProductIdForStore(string productBvin, long storeId)
        {
            var productGuid = DataTypeHelper.BvinToGuid(productBvin);

            return(Delete(y => y.ProductId == productGuid && y.StoreId == storeId));
        }
 public SingleRegisterCommandModel(ushort address, ConfigurationSettingsModel settings)
     : base(address, settings)
 {
     Value = DataTypeHelper.GetDefaultValue(settings.DataType);
 }
        protected override Func <hcc_ProductImage, bool> MatchItems(ProductImage item)
        {
            var guid = DataTypeHelper.BvinToGuid(item.Bvin);

            return(pi => pi.bvin == guid);
        }
Пример #26
0
        public void Write(BinaryWriter writer, object value)
        {
            var valueType = value?.GetType();
            var decType   = DataTypeHelper.GetDecreaseDataType(value, valueType);
            var convValue = (IConvertible)value ?? 0;
            int objIdx;

            switch (decType)
            {
            case DataType.Decimal:
                #region Decimal Type
                var v1 = convValue.ToDecimal(null);
                if (v1 == default(decimal))
                {
                    writer.Write(DataType.DecimalDefault);
                    return;
                }
                objIdx = DecimalCache.SerializerGet(v1);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefDecimalByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefDecimalUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    writer.Write(DataType.Decimal);
                    writer.Write(v1);
                    DecimalCache.SerializerSet(v1);
                }
                #endregion
                return;

            case DataType.Double:
                #region Double Type
                var v2 = convValue.ToDouble(null);
                if (Math.Abs(v2 - default(double)) < 0.0000000000001)
                {
                    writer.Write(DataType.DoubleDefault);
                    return;
                }
                objIdx = DoubleCache.SerializerGet(v2);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefDoubleByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefDoubleUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteDouble(writer, DataType.Double, v2);
                    DoubleCache.SerializerSet(v2);
                }
                #endregion
                return;

            case DataType.Float:
                #region Float Type
                var v3 = convValue.ToSingle(null);
                if (Math.Abs(v3 - default(float)) < 0.0000000000001)
                {
                    writer.Write(DataType.FloatDefault);
                    return;
                }
                objIdx = FloatCache.SerializerGet(v3);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefFloatByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefFloatUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteFloat(writer, DataType.Float, v3);
                    FloatCache.SerializerSet(v3);
                }
                #endregion
                return;

            case DataType.Long:
                #region Long Type
                var v4 = convValue.ToInt64(null);
                objIdx = LongCache.SerializerGet(v4);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefLongByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefLongUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteLong(writer, DataType.Long, v4);
                    LongCache.SerializerSet(v4);
                }
                #endregion
                return;

            case DataType.ULong:
                #region ULong Type
                var v5 = convValue.ToUInt64(null);
                objIdx = ULongCache.SerializerGet(v5);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefULongByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefULongUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteULong(writer, DataType.ULong, v5);
                    ULongCache.SerializerSet(v5);
                }
                #endregion
                return;

            case DataType.Int:
                #region Int Type
                var v6 = convValue.ToInt32(null);
                objIdx = IntCache.SerializerGet(v6);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefIntByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefIntUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteInt(writer, DataType.Int, v6);
                    IntCache.SerializerSet(v6);
                }
                #endregion
                return;

            case DataType.UInt:
                #region UInt Type
                var v7 = convValue.ToUInt32(null);
                objIdx = UIntCache.SerializerGet(v7);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefUIntByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefUIntUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteUInt(writer, DataType.UInt, v7);
                    UIntCache.SerializerSet(v7);
                }
                #endregion
                return;

            case DataType.Short:
                #region Short Type
                var v8 = convValue.ToInt16(null);
                objIdx = ShortCache.SerializerGet(v8);
                if (objIdx > -1 && objIdx <= byte.MaxValue)
                {
                    WriteHelper.WriteByte(writer, DataType.RefShortByte, (byte)objIdx);
                }
                else
                {
                    WriteHelper.WriteShort(writer, DataType.Short, v8);
                    ShortCache.SerializerSet(v8);
                }
                #endregion
                return;

            case DataType.UShort:
                #region UShort Type
                var v9 = convValue.ToUInt16(null);
                objIdx = UShortCache.SerializerGet(v9);
                if (objIdx > -1 && objIdx <= byte.MaxValue)
                {
                    WriteHelper.WriteByte(writer, DataType.RefUShortByte, (byte)objIdx);
                }
                else
                {
                    WriteHelper.WriteUshort(writer, DataType.UShort, v9);
                    UShortCache.SerializerSet(v9);
                }
                #endregion
                return;

            case DataType.Byte:
                #region Byte Type
                var v10 = convValue.ToByte(null);
                switch (v10)
                {
                case 0:
                    writer.Write(DataType.ByteDefault);
                    return;

                case 1:
                    writer.Write(DataType.Byte1);
                    return;

                case 2:
                    writer.Write(DataType.Byte2);
                    return;

                case 3:
                    writer.Write(DataType.Byte3);
                    return;

                case 4:
                    writer.Write(DataType.Byte4);
                    return;

                case 5:
                    writer.Write(DataType.Byte5);
                    return;

                case 6:
                    writer.Write(DataType.Byte6);
                    return;

                case 7:
                    writer.Write(DataType.Byte7);
                    return;

                case 8:
                    writer.Write(DataType.Byte8);
                    return;

                case 9:
                    writer.Write(DataType.Byte9);
                    return;

                case 10:
                    writer.Write(DataType.Byte10);
                    return;

                case 11:
                    writer.Write(DataType.Byte11);
                    return;

                case 12:
                    writer.Write(DataType.Byte12);
                    return;

                case 13:
                    writer.Write(DataType.Byte13);
                    return;

                case 14:
                    writer.Write(DataType.Byte14);
                    return;

                case 15:
                    writer.Write(DataType.Byte15);
                    return;

                case 16:
                    writer.Write(DataType.Byte16);
                    return;

                case 17:
                    writer.Write(DataType.Byte17);
                    return;

                case 18:
                    writer.Write(DataType.Byte18);
                    return;

                case 19:
                    writer.Write(DataType.Byte19);
                    return;

                case 20:
                    writer.Write(DataType.Byte20);
                    return;

                default:
                    WriteHelper.WriteByte(writer, DataType.Byte, v10);
                    return;
                }

                #endregion
            case DataType.SByte:
                #region SByte Type
                var sByte = convValue.ToSByte(null);
                switch (sByte)
                {
                case -1:
                    writer.Write(DataType.SByteMinusOne);
                    return;

                default:
                    writer.Write(DataType.SByte);
                    writer.Write(sByte);
                    return;
                }
                #endregion
            }
        }
        public ProductImage Find(string bvin)
        {
            var guid = DataTypeHelper.BvinToGuid(bvin);

            return(FindFirstPoco(y => y.bvin == guid && y.StoreId == Context.CurrentStore.Id));
        }
Пример #28
0
        public void WriteValue(BinaryWriter writer, int value)
        {
            #region Static values
            switch (value)
            {
            case -1:
                writer.Write(DataType.SByteMinusOne);
                return;

            case 0:
                writer.Write(DataType.ByteDefault);
                return;

            case 1:
                writer.Write(DataType.Byte1);
                return;

            case 2:
                writer.Write(DataType.Byte2);
                return;

            case 3:
                writer.Write(DataType.Byte3);
                return;

            case 4:
                writer.Write(DataType.Byte4);
                return;

            case 5:
                writer.Write(DataType.Byte5);
                return;

            case 6:
                writer.Write(DataType.Byte6);
                return;

            case 7:
                writer.Write(DataType.Byte7);
                return;

            case 8:
                writer.Write(DataType.Byte8);
                return;

            case 9:
                writer.Write(DataType.Byte9);
                return;

            case 10:
                writer.Write(DataType.Byte10);
                return;

            case 11:
                writer.Write(DataType.Byte11);
                return;

            case 12:
                writer.Write(DataType.Byte12);
                return;

            case 13:
                writer.Write(DataType.Byte13);
                return;

            case 14:
                writer.Write(DataType.Byte14);
                return;

            case 15:
                writer.Write(DataType.Byte15);
                return;

            case 16:
                writer.Write(DataType.Byte16);
                return;

            case 17:
                writer.Write(DataType.Byte17);
                return;

            case 18:
                writer.Write(DataType.Byte18);
                return;

            case 19:
                writer.Write(DataType.Byte19);
                return;

            case 20:
                writer.Write(DataType.Byte20);
                return;
            }
            #endregion

            var decType = DataTypeHelper.GetDecreaseDataType(value);
            int objIdx;
            switch (decType)
            {
            case DataType.Int:
                #region Int Type
                objIdx = IntCache.SerializerGet(value);
                if (objIdx > -1)
                {
                    if (objIdx <= byte.MaxValue)
                    {
                        WriteHelper.WriteByte(writer, DataType.RefIntByte, (byte)objIdx);
                    }
                    else
                    {
                        WriteHelper.WriteUshort(writer, DataType.RefIntUShort, (ushort)objIdx);
                    }
                }
                else
                {
                    WriteHelper.WriteInt(writer, DataType.Int, value);
                    IntCache.SerializerSet(value);
                }
                #endregion
                return;

            case DataType.Short:
                #region Short Type
                var v8 = (short)value;
                objIdx = ShortCache.SerializerGet(v8);
                if (objIdx > -1 && objIdx <= byte.MaxValue)
                {
                    WriteHelper.WriteByte(writer, DataType.RefShortByte, (byte)objIdx);
                }
                else
                {
                    WriteHelper.WriteShort(writer, DataType.Short, v8);
                    ShortCache.SerializerSet(v8);
                }
                #endregion
                return;

            case DataType.UShort:
                #region UShort Type
                var v9 = (ushort)value;
                objIdx = UShortCache.SerializerGet(v9);
                if (objIdx > -1 && objIdx <= byte.MaxValue)
                {
                    WriteHelper.WriteByte(writer, DataType.RefUShortByte, (byte)objIdx);
                }
                else
                {
                    WriteHelper.WriteUshort(writer, DataType.UShort, v9);
                    UShortCache.SerializerSet(v9);
                }
                #endregion
                return;

            case DataType.Byte:
                #region Byte Type
                WriteHelper.WriteByte(writer, DataType.Byte, (byte)value);
                #endregion
                return;

            case DataType.SByte:
                #region SByte Type
                writer.Write(DataType.SByte);
                writer.Write((sbyte)value);
                #endregion
                return;
            }
        }
Пример #29
0
        /// <summary>
        ///     Get option by unique identifier from all store
        /// </summary>
        /// <param name="bvin">Option unique identifier</param>
        /// <returns>Returns <see cref="Option" /> instance</returns>
        public Option FindForAllStores(string bvin)
        {
            var guid = DataTypeHelper.BvinToGuid(bvin);

            return(FindFirstPoco(y => y.Item.bvin == guid));
        }
Пример #30
0
        public bool DeleteForProductType(string productTypeBvin)
        {
            var guid = DataTypeHelper.BvinToGuid(productTypeBvin);

            return(Delete(y => y.ProductTypeBvin == guid));
        }