Ejemplo n.º 1
0
        public static EF6.Product Get(Guid id)
        {
            EF6.Product result = null;

            using (var ctx = new EF6.RT2020Entities())
            {
                result = ctx.Product.Where(x => x.ProductId == id).AsNoTracking().FirstOrDefault();
            }

            return(result);
        }
Ejemplo n.º 2
0
        private Guid ImportProduct(StockCodeRec oRec)
        {
            Guid          result             = Guid.Empty;
            StringBuilder productWhereClause = new StringBuilder();

            productWhereClause.Append(" STKCODE = '").Append(oRec.PLU).Append("' ");
            productWhereClause.Append(" AND APPENDIX1 = '").Append(oRec.Season).Append("' ");
            productWhereClause.Append(" AND APPENDIX2 = '").Append(oRec.Color).Append("' ");
            productWhereClause.Append(" AND APPENDIX3 = '").Append(oRec.Size).Append("' ");
            productWhereClause.Append(" AND CLASS1 = '").Append(oRec.Vendor).Append("' ");
            productWhereClause.Append(" AND CLASS2 = '").Append(oRec.Gender).Append("' ");
            productWhereClause.Append(" AND CLASS3 = '").Append(oRec.Collection).Append("' ");
            productWhereClause.Append(" AND CLASS4 = '").Append(oRec.Group).Append("' ");
            productWhereClause.Append(" AND CLASS5 = '").Append(oRec.Category).Append("' ");
            productWhereClause.Append(" AND CLASS6 = '").Append(oRec.SubCat).Append("' ");

            using (var ctx = new EF6.RT2020Entities())
            {
                var oItem = ctx.Product.SqlQuery(string.Format("Select * from Product where {0}", productWhereClause.ToString())).FirstOrDefault();
                if (oItem == null)
                {
                    oItem           = new EF6.Product();
                    oItem.ProductId = Guid.NewGuid();
                    oItem.STKCODE   = oRec.PLU;
                    oItem.APPENDIX1 = oRec.Season;
                    oItem.APPENDIX2 = oRec.Color;
                    oItem.APPENDIX3 = oRec.Size;
                    oItem.CLASS1    = oRec.Vendor;
                    oItem.CLASS2    = oRec.Gender;
                    oItem.CLASS3    = oRec.Collection;
                    oItem.CLASS4    = oRec.Group;
                    oItem.CLASS5    = oRec.Category;
                    oItem.CLASS6    = oRec.SubCat;

                    oItem.ProductName   = oRec.Description;
                    oItem.RetailPrice   = Convert.ToDecimal(oRec.BASPRC);
                    oItem.DownloadToPOS = chkSetRetailItem.Checked;
                    //oItem.NatureId = System.Guid.Empty;

                    oItem.CreatedBy = ConfigHelper.CurrentUserId;
                    oItem.CreatedOn = DateTime.Now;

                    ctx.Product.Add(oItem);
                }

                oItem.ModifiedBy = ConfigHelper.CurrentUserId;
                oItem.ModifiedOn = DateTime.Now;

                ctx.SaveChanges();
                result = oItem.ProductId;
            }
            return(result);
        }
Ejemplo n.º 3
0
        public static EF6.Product Get(string queryString, string orderBy = "STKCODE")
        {
            EF6.Product result = null;

            using (var ctx = new EF6.RT2020Entities())
            {
                result = ctx.Product
                         .SqlQuery(string.Format("Select * from Product Where {0} Order By {1}", queryString, orderBy))
                         .AsNoTracking()
                         .FirstOrDefault();
            }

            return(result);
        }
Ejemplo n.º 4
0
        private void CreateProducts(ListViewItem listItem)
        {
            using (var ctx = new EF6.RT2020Entities())
            {
                // Check BatchId(listItem.SubItems[1].Text) and Stock Code(listItem.SubItems[2].Text)
                Guid batchId = Guid.Empty;
                if (IsValid() && Guid.TryParse(listItem.SubItems[1].Text, out batchId) && listItem.SubItems[2].Text.Length > 0)
                {
                    var oBatch = ctx.ProductBatch.Find(batchId);
                    if (oBatch != null)
                    {
                        string a1 = listItem.SubItems[3].Text.Trim();
                        string a2 = listItem.SubItems[4].Text.Trim();
                        string a3 = listItem.SubItems[5].Text.Trim();

                        Guid a1Id = Guid.Empty, a2Id = Guid.Empty, a3Id = Guid.Empty;
                        Guid.TryParse(listItem.SubItems[6].Text, out a1Id);
                        Guid.TryParse(listItem.SubItems[7].Text, out a2Id);
                        Guid.TryParse(listItem.SubItems[8].Text, out a3Id);

                        string prodCode = listItem.SubItems[2].Text + a1 + a2 + a3;
                        if (prodCode.Length <= 22)
                        {
                            var stkcode = listItem.SubItems[2].Text.Trim();

                            StringBuilder sql = new StringBuilder();
                            sql.Append(" STKCODE = '").Append(listItem.SubItems[2].Text.Trim()).Append("' ");
                            sql.Append(" AND APPENDIX1 = '").Append(a1.Trim()).Append("' ");
                            sql.Append(" AND APPENDIX2 = '").Append(a2.Trim()).Append("' ");
                            sql.Append(" AND APPENDIX3 = '").Append(a3.Trim()).Append("' ");

                            var oItem = ctx.Product.Where(x => x.STKCODE == stkcode && x.APPENDIX1 == a1 && x.APPENDIX2 == a2 && x.APPENDIX3 == a3).FirstOrDefault();
                            if (oItem == null)
                            {
                                #region add new Product
                                oItem           = new EF6.Product();
                                oItem.ProductId = Guid.NewGuid();
                                oItem.STKCODE   = listItem.SubItems[2].Text;
                                oItem.APPENDIX1 = a1;
                                oItem.APPENDIX2 = a2;
                                oItem.APPENDIX3 = a3;

                                oItem.Status = Convert.ToInt32(EnumHelper.Status.Active.ToString("d"));

                                oItem.CLASS1 = oBatch.CLASS1;
                                oItem.CLASS2 = oBatch.CLASS2;
                                oItem.CLASS3 = oBatch.CLASS3;
                                oItem.CLASS4 = oBatch.CLASS4;
                                oItem.CLASS5 = oBatch.CLASS5;
                                oItem.CLASS6 = oBatch.CLASS6;

                                oItem.ProductName     = oBatch.Description;
                                oItem.ProductName_Chs = oBatch.Description;
                                oItem.ProductName_Cht = oBatch.Description;
                                oItem.Remarks         = oBatch.REMARKS;

                                oItem.NormalDiscount = oBatch.NRDISC.Value;
                                oItem.UOM            = oBatch.MAINUNIT;
                                oItem.NatureId       = ProductNatureEx.GetIdByCode(oBatch.NATURE);

                                oItem.FixedPriceItem = false;

                                oItem.CreatedBy  = ConfigHelper.CurrentUserId;
                                oItem.CreatedOn  = DateTime.Now;
                                oItem.ModifiedBy = ConfigHelper.CurrentUserId;
                                oItem.ModifiedOn = DateTime.Now;

                                ctx.Product.Add(oItem);

                                var productId = oItem.ProductId;
                                #endregion

                                #region SaveProductBarcode(oBatch, productId, prodCode);
                                var oBarcode = ctx.ProductBarcode.Where(x => x.ProductId == productId).FirstOrDefault();
                                if (oBarcode == null)
                                {
                                    oBarcode = new EF6.ProductBarcode();
                                    oBarcode.ProductBarcodeId  = Guid.NewGuid();
                                    oBarcode.ProductId         = productId;
                                    oBarcode.Barcode           = prodCode;
                                    oBarcode.BarcodeType       = "INTER";
                                    oBarcode.PrimaryBarcode    = true;
                                    oBarcode.DownloadToPOS     = (oBatch.RETAILITEM == "F") ? false : true;
                                    oBarcode.DownloadToCounter = (oBatch.COUNTER_ITEM == "F") ? false : true;

                                    ctx.ProductBarcode.Add(oBarcode);
                                    ctx.SaveChanges();
                                }
                                #endregion

                                #region Appendix / Class
                                System.Guid c1Id = ProductClass1Ex.GetClassIdByCode(oBatch.CLASS1);
                                System.Guid c2Id = ProductClass2Ex.GetClassIdByCode(oBatch.CLASS2);
                                System.Guid c3Id = ProductClass3Ex.GetClassIdByCode(oBatch.CLASS3);
                                System.Guid c4Id = ProductClass4Ex.GetClassIdByCode(oBatch.CLASS4);
                                System.Guid c5Id = ProductClass5Ex.GetClassIdByCode(oBatch.CLASS5);
                                System.Guid c6Id = ProductClass6Ex.GetClassIdByCode(oBatch.CLASS6);
                                // SaveProductCode(productId, a1Id, a2Id, a3Id, c1Id, c2Id, c3Id, c4Id, c5Id, c6Id);
                                var oCode = ctx.ProductCode.Where(x => x.ProductId == productId).FirstOrDefault();
                                if (oCode == null)
                                {
                                    oCode             = new EF6.ProductCode();
                                    oCode.CodeId      = Guid.NewGuid();
                                    oCode.ProductId   = productId;
                                    oCode.Appendix1Id = a1Id;
                                    oCode.Appendix2Id = a2Id;
                                    oCode.Appendix3Id = a3Id;

                                    ctx.ProductCode.Add(oCode);
                                }
                                oCode.Class1Id = c1Id;
                                oCode.Class2Id = c2Id;
                                oCode.Class3Id = c3Id;
                                oCode.Class4Id = c4Id;
                                oCode.Class5Id = c5Id;
                                oCode.Class6Id = c6Id;

                                ctx.SaveChanges();
                                #endregion

                                // Product Price
                                #region SaveProductSupplement(oBatch, oItem.ProductId);
                                //string sql = "ProductId = '" + productId.ToString() + "'";
                                var oProdSupp = ctx.ProductSupplement.Where(x => x.ProductId == productId).FirstOrDefault();
                                if (oProdSupp == null)
                                {
                                    oProdSupp = new EF6.ProductSupplement();
                                    oProdSupp.SupplementId = Guid.NewGuid();
                                    oProdSupp.ProductId    = productId;

                                    ctx.ProductSupplement.Add(oProdSupp);
                                }
                                oProdSupp.VendorCurrencyCode = oBatch.VCURR;
                                oProdSupp.VendorPrice        = oBatch.VPRC;
                                oProdSupp.ProductName_Memo   = oBatch.DESC_MEMO;
                                oProdSupp.ProductName_Pole   = oBatch.DESC_POLE;

                                ctx.SaveChanges();
                                #endregion

                                #region SaveProductPrice(oBatch, oItem.ProductId);
                                SaveProductPrice(productId, ProductHelper.Prices.BASPRC.ToString(), "HKD", oBatch.BASPRC.ToString());
                                SaveProductPrice(productId, ProductHelper.Prices.ORIPRC.ToString(), "HKD", oBatch.ORIPRC.ToString());
                                SaveProductPrice(productId, ProductHelper.Prices.VPRC.ToString(), oBatch.VCURR, oBatch.VPRC.ToString());
                                SaveProductPrice(productId, ProductHelper.Prices.WHLPRC.ToString(), "HKD", oBatch.WHLPRC.ToString());
                                #endregion

                                // Remarks
                                #region SaveProductRemarks(oBatch, oItem.ProductId);
                                var oRemarks = ctx.ProductRemarks.Where(x => x.ProductId == productId).FirstOrDefault();
                                if (oRemarks == null)
                                {
                                    oRemarks = new EF6.ProductRemarks();
                                    oRemarks.ProductRemarksId = Guid.NewGuid();
                                    oRemarks.ProductId        = productId;

                                    ctx.ProductRemarks.Add(oRemarks);
                                }
                                oRemarks.Photo = oBatch.PHOTO;

                                oRemarks.BinX = oBatch.BINX;
                                oRemarks.BinY = oBatch.BINY;
                                oRemarks.BinZ = oBatch.BINZ;

                                oRemarks.DownloadToShop    = (oBatch.RETAILITEM == "F") ? false : true;
                                oRemarks.OffDisplayItem    = (oBatch.OFF_DISPLAY_ITEM == "F") ? false : true;
                                oRemarks.DownloadToCounter = (oBatch.COUNTER_ITEM == "F") ? false : true;

                                oRemarks.REMARK1 = oBatch.REMARK1;
                                oRemarks.REMARK2 = oBatch.REMARK2;
                                oRemarks.REMARK3 = oBatch.REMARK3;
                                oRemarks.REMARK4 = oBatch.REMARK4;
                                oRemarks.REMARK5 = oBatch.REMARK5;
                                oRemarks.REMARK6 = oBatch.REMARK6;

                                ctx.SaveChanges();
                                #endregion

                                oBatch.STATUS = "OK";
                                ctx.SaveChanges();
                            }
                        }
                    }
                }
            }
        }