Example #1
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify, EntityChangeTypes.None))
            {
                if (entity.GetFieldValue <Guid>("FinancialOpKind") == Guid.Parse("00000000-0000-0000-0000-000000000000"))
                {
                    entity.SetFieldValue("FinancialOpKind", null);
                }

                var innerEntity = entity.GetFieldValue <Entity>("InnerItem");
                innerEntity.ChangeStatus =
                    entity.ChangeStatus == EntityChangeTypes.None ? EntityChangeTypes.Modify : entity.ChangeStatus;

                dbHelper.ApplyChanges(innerEntity);

                if (entity.ChangeStatus == EntityChangeTypes.Add && entity.GetFieldValue <Guid?>("FinancialItem_Cheque") != null)
                {
                    var payReceipt = dbHelper.FetchSingleByID("rp.PayReceipt", entity.GetFieldValue <Guid>("PayReceipt"), null);
                    new PaidChequeBL().CreateChequeStatusChange(innerEntity, payReceipt);
                }

                entity.FieldValues.Remove("InnerItem");
            }
        }
Example #2
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                if (entity.GetFieldValue <Guid>("OpType") == OptionSetHelper.GetOptionSetItemID("wm.MontageOrDemontage", "Montage"))
                {
                    //حواله مونتاژ
                    CreateGhabzOrHavale(entity, "HavaleAmaliateMontage");

                    //رسید مونتاژ
                    CreateGhabzOrHavale(entity, "ResideAmaliateMontage");
                }
                else if (entity.GetFieldValue <Guid>("OpType") == OptionSetHelper.GetOptionSetItemID("wm.MontageOrDemontage", "Demontage"))
                {
                    //حواله دمونتاژ
                    CreateGhabzOrHavale(entity, "HavaleAmaliateDemontage");

                    //رسید دمونتاژ
                    CreateGhabzOrHavale(entity, "ResideAmaliateDemontage");
                }
            }

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                if (entity.FieldExists("StuffComponents") && entity.GetFieldValue <EntityList>("StuffComponents") != null)
                {
                    dbHelper.ApplyChanges(entity.GetFieldValue <EntityList>("StuffComponents"));
                }
            }
        }
Example #3
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                //حواله تغییر وضعیت کالای قطعه برداری شده
                CreateGhabzOrHavale(entity, "Havale", "HavaleTaghirVaziateKalayeGhetehBardariShodeh");

                //رسید تغییر وضعیت کالای قطعه برداری شده
                CreateGhabzOrHavale(entity, "Ghabz", "GhabzeTaghirVaziateKalayeGhetehBardariShodeh");

                //رسید قطعه برداری
                CreateGhabzOrHavale(entity, "Ghabz", "GhabzeKalahayeGhetehBardariShodeh");

                //حواله اصلاح ارزش کالای قطعه برداری شده
                CreateGhabzOrHavale(entity, "Havale", "HavaleKaheshArzesheKalayeGhetehBardariShodeh");
            }

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                if (entity.FieldExists("GhetehBardariAzKalaItems") && entity.GetFieldValue <EntityList>("GhetehBardariAzKalaItems") != null)
                {
                    dbHelper.ApplyChanges(entity.GetFieldValue <EntityList>("GhetehBardariAzKalaItems"));
                }
            }
        }
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            //DebugHelper.Break();
            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                CreateGhabzOrHavale(entity, "Havale", entity.ChangeStatus);
                CreateGhabzOrHavale(entity, "Ghabz", entity.ChangeStatus);
            }

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                if (entity.FieldExists("StuffStatusChangeAndTransferItems") &&
                    entity.GetFieldValue <EntityList>("StuffStatusChangeAndTransferItems") != null)
                {
                    dbHelper.ApplyChanges(entity.GetFieldValue <EntityList>("StuffStatusChangeAndTransferItems"));
                }

                var stuffStatusChangeAndTransferType = dbHelper.FetchSingleByID("wm.StuffStatusChangeAndTransferType", entity.GetFieldValue <Guid>("StuffStatusChangeAndTransferType"), null);
                if (stuffStatusChangeAndTransferType.GetFieldValue <bool>("AccDocIssuing"))
                {
                    CreateStuffStatusChangeAndTransferAccDoc(entity);
                }
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                //acc.Instance.DeleteAccDocMaster(entity.GetFieldValue<Guid?>("AccDoc"), "wm.StuffStatusChangeAndTransfer", invoiceID);
            }
        }
Example #5
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                dbHelper.ApplyChanges(entity.GetFieldValue <EntityList>("StuffBOM_StuffComponents"));
            }
        }
Example #6
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            //DebugHelper.Break();

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                var redundantExists = dbHelper.EntityExists("cmn.FinancialGroup",
                                                            string.Format("Title = '{0}' and ID <> '{1}'",
                                                                          entity.GetFieldValue <string>("Title"),
                                                                          entity.GetFieldValue <Guid>("ID")));

                if (redundantExists)
                {
                    throw new AfwException("این گروه مالی قبلا ثبت شده است.");
                }

                var isDefaultFinancialGroupExists = dbHelper.EntityExists("cmn.FinancialGroup",
                                                                          string.Format("IsDefault = 1 and ID <> '{0}'",
                                                                                        entity.GetFieldValue <Guid>("ID")));

                if (isDefaultFinancialGroupExists && entity.GetFieldValue <bool>("IsDefault"))
                {
                    throw new AfwException("قبلا گروه مالی پیش فرض تعیین شده است.");
                }

                if (entity.GetFieldValue <bool>("IsDefault") == true)
                {
                    var isCurrentYearExists = dbHelper.EntityExists("cmn.FinancialGroup",
                                                                    string.Format("IsDefault = '{0}' and ID <> '{1}'",
                                                                                  entity.GetFieldValue <bool>("IsDefault"),
                                                                                  entity.GetFieldValue <Guid>("ID")));

                    if (isCurrentYearExists)
                    {
                        var financialYearEntity = dbHelper.FetchSingle("cmn.FinancialGroup",
                                                                       string.Format("IsDefault = '{0}' and ID <> '{1}'",
                                                                                     entity.GetFieldValue <bool>("IsDefault"),
                                                                                     entity.GetFieldValue <Guid>("ID")), null);

                        financialYearEntity.ChangeStatus = "Modify";
                        financialYearEntity.SetFieldValue("IsDefault", false);
                        dbHelper.ApplyChanges(financialYearEntity);
                    }
                }
            }
        }
Example #7
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            var salesCase = dbHelper.FetchSingleByID("crm.SalesCase", entity.GetFieldValue <Guid>("SalesCase"), null);

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add))
            {
                var salesCaseStatus_LostID = OptionSetHelper.GetOptionSetItemID("crm.SalesCaseStatuses", "Lost");
                salesCase.FieldValues["Status"] = salesCaseStatus_LostID;
            }

            salesCase.FieldValues["LastActionTime"] = CoreComponent.Instance.GetServerDateTime();
            salesCase.ChangeStatus = EntityChangeTypes.Modify;

            dbHelper.ApplyChanges(salesCase);
        }
Example #8
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            //DebugHelper.Break();

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                if (entity.FieldExists("StuffItems"))
                {
                    var StuffItems = entity.GetFieldValue <EntityList>("StuffItems");
                    StuffItems.Entities.RemoveAll(
                        o => o.ChangeStatus == EntityChangeTypes.Add &&
                        o.GetFieldValue <Guid?>("Stuff") == null);

                    dbHelper.ApplyChanges(StuffItems);
                }
            }
        }
Example #9
0
        public void CreateAccDocItem(Guid accDocID, Guid accountID, Guid?personID, Guid?costCenterID, Guid?projectID,
                                     Guid?foreignCurrencyID, decimal debtorAmount, decimal creditorAmount, EntityDbHelper dbHelper)
        {
            var maxRowNo = cmn.Instance.GetFieldMaxIntValue("RowNo", "acc_AccDocItems", string.Format("AccDoc = '{0}'", accDocID));

            var accDocItemEntity = dbHelper.CreateNewEntity("acc.AccDocItem");

            accDocItemEntity.SetFieldValue("AccDoc", accDocID);
            accDocItemEntity.SetFieldValue("RowNo", maxRowNo + 1);
            accDocItemEntity.SetFieldValue("Account", accountID);
            accDocItemEntity.SetFieldValue("Person", personID);
            accDocItemEntity.SetFieldValue("CostCenter", costCenterID);
            accDocItemEntity.SetFieldValue("Project", projectID);
            accDocItemEntity.SetFieldValue("ForeignCurrency", foreignCurrencyID);
            accDocItemEntity.SetFieldValue("Note", "");
            accDocItemEntity.SetFieldValue("DebtorAmount", debtorAmount);
            accDocItemEntity.SetFieldValue("CreditorAmount", creditorAmount);
            accDocItemEntity.SetFieldValue("IsActive", true);
            dbHelper.ApplyChanges(accDocItemEntity);
        }
Example #10
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                var redundantExists = dbHelper.EntityExists("rp.QuickSettlementCashItem",
                                                            string.Format("Cash = '{0}' and Gender = '{1}' and FinancialOpKind = '{2}' and ID <> '{3}'",
                                                                          entity.GetFieldValue <Guid>("Cash"),
                                                                          entity.GetFieldValue <Guid>("Gender"),
                                                                          entity.GetFieldValue <Guid>("FinancialOpKind"),
                                                                          entity.GetFieldValue <Guid>("ID")));

                if (redundantExists)
                {
                    throw new AfwException("این آیتم صندوق در تسویه سریع قبلا ثبت شده است.");
                }

                if (entity.GetFieldValue <bool>("IsDefault") == true)
                {
                    var isDefaultExists = dbHelper.EntityExists("rp.QuickSettlementCashItem",
                                                                string.Format("IsDefault = '{0}' and ID <> '{1}'",
                                                                              entity.GetFieldValue <bool>("IsDefault"),
                                                                              entity.GetFieldValue <Guid>("Gender"),
                                                                              entity.GetFieldValue <Guid>("ID")));

                    if (isDefaultExists)
                    {
                        var beforeQuickSettlementCashItemEntity = dbHelper.FetchSingle("rp.QuickSettlementCashItem",
                                                                                       string.Format("IsDefault = '{0}' and Gender = '{1}' and ID <> '{2}'",
                                                                                                     entity.GetFieldValue <bool>("IsDefault"),
                                                                                                     entity.GetFieldValue <Guid>("Gender"),
                                                                                                     entity.GetFieldValue <Guid>("ID")), null);

                        beforeQuickSettlementCashItemEntity.ChangeStatus = "Modify";
                        beforeQuickSettlementCashItemEntity.SetFieldValue("IsDefault", false);
                        dbHelper.ApplyChanges(beforeQuickSettlementCashItemEntity);
                    }
                }
            }
        }
Example #11
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            //DebugHelper.Break();

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                var redundantExists = dbHelper.EntityExists("ps.PriceList",
                                                            string.Format("Title = '{0}' and ID <> '{1}'",
                                                                          entity.GetFieldValue <string>("Title"),
                                                                          entity.GetFieldValue <Guid>("ID")));

                if (redundantExists)
                {
                    throw new AfwException("این لیست قیمت با این نام قبلا ثبت شده است.");
                }

                if (entity.GetFieldValue <bool>("IsDefault") == true)
                {
                    var isDefaultExists = dbHelper.EntityExists("ps.PriceList",
                                                                string.Format("IsDefault = '{0}' and SaleBuyType = '{1}' and ID <> '{2}'",
                                                                              entity.GetFieldValue <bool>("IsDefault"),
                                                                              entity.GetFieldValue <Guid>("SaleBuyType"),
                                                                              entity.GetFieldValue <Guid>("ID")));

                    if (isDefaultExists)
                    {
                        var priceListEntity = dbHelper.FetchSingle("ps.PriceList",
                                                                   string.Format("IsDefault = '{0}' and SaleBuyType = '{1}' and ID <> '{2}'",
                                                                                 entity.GetFieldValue <bool>("IsDefault"),
                                                                                 entity.GetFieldValue <Guid>("SaleBuyType"),
                                                                                 entity.GetFieldValue <Guid>("ID")), null);

                        priceListEntity.ChangeStatus = "Modify";
                        priceListEntity.SetFieldValue("IsDefault", false);
                        dbHelper.ApplyChanges(priceListEntity);
                    }
                }
            }
        }
Example #12
0
        //public void CreateReceiveReceipt(string payedAmount, string payType, string issueDate, string bankName, Guid customerID, EntityDbHelper dbHelper)
        //{
        //    // Create ReceiveReceipt
        //    var financialYearID = new FinancialYearBL().GetUserActiveFinancialYearID();
        //    var financialGroupID = dbHelper.FetchMultiple("cmn.FinancialGroup", "IsDefault = 1", null, null, null, null).Entities[0].GetFieldValue<Guid>("ID");
        //    var lastReceiptNumber = cmn.Instance.GetFieldMaxIntValue("ReceiptNumber", "rp_ReceiveReceipts", string.Format("FinancialYear = '{0}'", financialYearID));

        //    var receiveReceipt = dbHelper.CreateNewEntity("rp.ReceiveReceipt");
        //    receiveReceipt.SetFieldValue("FinancialYear", financialYearID);
        //    receiveReceipt.SetFieldValue("FinancialGroup", financialGroupID);
        //    receiveReceipt.SetFieldValue("Payer", customerID);
        //    receiveReceipt.SetFieldValue("ReceiptDate", issueDate);
        //    receiveReceipt.SetFieldValue("TotalAmount", payedAmount);
        //    receiveReceipt.SetFieldValue("Description", "رسید دریافت از طریق وب سرویس ترازنگار");
        //    receiveReceipt.SetFieldValue("ReceiptNumber", lastReceiptNumber + 1);

        //    dbHelper.ApplyChanges(receiveReceipt);

        //    // Create ReceiveReceiptItems

        //    var receiveReceiptItem = dbHelper.CreateNewEntity("rp.ReceiveReceiptItem");
        //    receiveReceiptItem.SetFieldValue("ReceiveReceipt", receiveReceipt.GetFieldValue<Guid>("ID"));

        //    var receiveType = dbHelper.FetchSingle("rp.ReceiveType", string.Format("Name = '{0}'", payType), null);

        //    if (payType == "Havale")
        //    {
        //        if (receiveType != null)
        //        {
        //            var receiveTypeID = receiveType.GetFieldValue<Guid>("ID");
        //            receiveReceiptItem.SetFieldValue("ReceiveType", receiveTypeID);

        //            var financialOpKind = dbHelper.FetchSingle("sacc.FinancialOpKind", "Name = 'VarizBeSaderat'", null);
        //            if (financialOpKind != null)
        //            {
        //                var financialOpKindID = financialOpKind.GetFieldValue<Guid>("ID");
        //                receiveReceiptItem.SetFieldValue("FinancialOpKind", financialOpKindID);

        //                var naghdeDaryafti = dbHelper.CreateNewEntity("rp.NaghdeDaryafti");
        //                receiveReceiptItem.SetFieldValue("FinancialItem_Naghd", naghdeDaryafti.GetFieldValue<Guid>("ID"));

        //                var cash = dbHelper.FetchMultiple("sacc.Cash", null, null, null, null, null);
        //                naghdeDaryafti.SetFieldValue("Payer", customerID);
        //                naghdeDaryafti.SetFieldValue("Amount", payedAmount);
        //                naghdeDaryafti.SetFieldValue("Cash", cash.Entities[0].GetFieldValue<Guid>("ID"));

        //                naghdeDaryafti.SetFieldValue("Description", "دریافت نقدی از طریق وب سرویس");

        //                dbHelper.ApplyChanges(naghdeDaryafti);
        //                dbHelper.ApplyChanges(receiveReceiptItem);
        //            }
        //        }
        //    }
        //    else if (payType == "Naghd")
        //    {
        //        if (receiveType != null)
        //        {
        //            var receiveTypeID = receiveType.GetFieldValue<Guid>("ID");
        //            receiveReceiptItem.SetFieldValue("ReceiveType", receiveTypeID);

        //            var financialOpKind = dbHelper.FetchSingle("sacc.FinancialOpKind", "Name = 'DaryaftNaghdi'", null);
        //            if (financialOpKind != null)
        //            {
        //                var financialOpKindID = financialOpKind.GetFieldValue<Guid>("ID");
        //                receiveReceiptItem.SetFieldValue("FinancialOpKind", financialOpKindID);

        //                var naghdeDaryafti = dbHelper.CreateNewEntity("rp.NaghdeDaryafti");
        //                receiveReceiptItem.SetFieldValue("FinancialItem_Naghd", naghdeDaryafti.GetFieldValue<Guid>("ID"));

        //                var cash = dbHelper.FetchMultiple("sacc.Cash", null, null, null, null, null);
        //                naghdeDaryafti.SetFieldValue("Payer", customerID);
        //                naghdeDaryafti.SetFieldValue("Amount", payedAmount);
        //                naghdeDaryafti.SetFieldValue("Cash", cash.Entities[0].GetFieldValue<Guid>("ID"));

        //                naghdeDaryafti.SetFieldValue("Description", "دریافت نقدی از طریق وب سرویس");

        //                dbHelper.ApplyChanges(naghdeDaryafti);
        //                dbHelper.ApplyChanges(receiveReceiptItem);
        //            }
        //        }
        //    }



        //}

        public void CreateAccDoc(Entity accDocEntity, decimal payedAmount, string issueDate, EntityDbHelper dbHelper)
        {
            var balanceStatusID = OptionSetHelper.GetOptionSetItemID("acc.BalanceStatus", "Balance");
            var docStatusID     = OptionSetHelper.GetOptionSetItemID("acc.DocStatus", "NotChecked");

            var docKindID        = new DocKindBL().GetDocKindID("ComposeDoc");
            var financialYearID  = new FinancialYearBL().GetUserActiveFinancialYearID();
            var financialGroupID = dbHelper.FetchMultiple("cmn.FinancialGroup", "IsDefault = 1", null, null, null, null).Entities[0].GetFieldValue <Guid>("ID");

            accDocEntity.SetFieldValue("IssueDate", issueDate);
            accDocEntity.SetFieldValue("FinancialYear", financialYearID);
            accDocEntity.SetFieldValue("FinancialGroup", financialGroupID);
            accDocEntity.SetFieldValue("DocKind", docKindID);
            accDocEntity.SetFieldValue("IsAutoGenerated", false);
            accDocEntity.SetFieldValue("BalanceStatus", balanceStatusID);
            accDocEntity.SetFieldValue("DocStatus", docStatusID);
            accDocEntity.SetFieldValue("RemainingAmount", payedAmount);
            accDocEntity.SetFieldValue("IsActive", 1);
            accDocEntity.SetFieldValue("Description", "سند تولید شده از طریق وب سرویس");
            dbHelper.ApplyChanges(accDocEntity);
        }
Example #13
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            var id = entity.GetFieldValue <Guid>("ID");

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                if (entity.FieldExists("WarehouseHybridOperationItems") && entity.GetFieldValue <EntityList>("WarehouseHybridOperationItems") != null)
                {
                    dbHelper.ApplyChanges(entity.GetFieldValue <EntityList>("WarehouseHybridOperationItems"));
                }

                if (!HasItem(id))
                {
                    throw new AfwException("عملیات ترکیبی هیچ آیتمی ندارد .");
                }
            }

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                CreateWarehouseDocs(entity);
            }
        }
Example #14
0
        public Entity FetchOrCreateStuff(ref Entity stuffMainCategory, string stuffCode, string stuffName, EntityDbHelper dbHelper)
        {
            var stuffEntity = dbHelper.CreateNewEntity("cmn.Stuff");

            var stuffDefEntity = dbHelper.FetchSingle("cmn.StuffDef", string.Format("Code = '{0}' and Name = N'{1}'", stuffCode, stuffName), null);

            if (stuffDefEntity == null)
            {
                // دریافت گروه های اصلی کالا که کدینگ حسابداری برای آنها ثبت شده است
                var stuffMainCategoryEntityList = dbHelper.FetchMultiple("cmn.StuffMainCategory", "Account is not null", null, null, null, null);
                if (stuffMainCategoryEntityList.Entities.Count > 0)
                {
                    // اولین گروه اصلی کالا که کدینگ حسابداری برای آن ثبت شده است
                    stuffMainCategory = stuffMainCategoryEntityList.Entities[0];
                    var stuffMainCategoryFirstID = stuffMainCategory.GetFieldValue <Guid>("ID");

                    // دریافت گروه های فرعی کالا که کدینگ حسابداری دارند
                    var stuffSubCategoryEntityList = dbHelper.FetchMultiple("cmn.StuffSubCategory",
                                                                            string.Format("MainCategory = '{0}'", stuffMainCategoryFirstID), null, null, null, null);

                    var mainMeasurementUnitEntityList = dbHelper.FetchMultiple("cmn.MeasurementUnit", null, null, null, null, null);

                    if (stuffSubCategoryEntityList.Entities.Count > 0 && mainMeasurementUnitEntityList.Entities.Count > 0)
                    {
                        // شناسه اولین گروه فرعی کالا
                        var subCategoryID = stuffSubCategoryEntityList.Entities[0].GetFieldValue <Guid>("ID");
                        // شناسه اولین واحد کالا
                        var mainMeasurementUnitID = mainMeasurementUnitEntityList.Entities[0].GetFieldValue <Guid>("ID");

                        var newStuffDef = dbHelper.CreateNewEntity("cmn.StuffDef");
                        newStuffDef.SetFieldValue("Code", stuffCode);
                        newStuffDef.SetFieldValue("Name", stuffName);
                        newStuffDef.SetFieldValue("HideInProforma", 0);
                        newStuffDef.SetFieldValue("HideInInvoice", 0);
                        newStuffDef.SetFieldValue("HideInStockTransfer", 0);
                        newStuffDef.SetFieldValue("DarayeMaliatBarArzesheAfzudeh", 0);
                        newStuffDef.SetFieldValue("SetUnitPriceOnlyFromPricesList", 0);
                        newStuffDef.SetFieldValue("SubCategory", subCategoryID);
                        newStuffDef.SetFieldValue("MainMeasurementUnit", mainMeasurementUnitID);
                        dbHelper.ApplyChanges(newStuffDef);

                        // فعلا در نرم افزار به ازای یک تعریف کالا یک کالا نیز وجود دارد که ما اولین آیتم آن را برمیگردانیم که بعدا قرار است یک لیست برگردانده شود
                        var stuffList = dbHelper.FetchMultiple("cmn.Stuff", string.Format("StuffDef = '{0}'", stuffDefEntity.GetFieldValue <Guid>("ID")), null, null, null, null);
                        stuffEntity = stuffList.Entities[0];
                    }
                }
            }
            else
            {
                // فعلا در نرم افزار به ازای یک تعریف کالا یک کالا نیز وجود دارد که ما اولین آیتم آن را برمیگردانیم که بعدا قرار است یک لیست برگردانده شود
                var stuffList = dbHelper.FetchMultiple("cmn.Stuff", string.Format("StuffDef = '{0}'", stuffDefEntity.GetFieldValue <Guid>("ID")), null, null, null, null);
                stuffEntity = stuffList.Entities[0];

                var subCategoryID    = stuffDefEntity.GetFieldValue <Guid>("SubCategory");
                var stuffSubCategory = dbHelper.FetchSingle("cmn.StuffSubCategory", string.Format("ID = '{0}'", subCategoryID), null);
                stuffMainCategory = dbHelper.FetchSingle("cmn.StuffMainCategory",
                                                         string.Format("ID = '{0}'", stuffSubCategory.GetFieldValue <Guid>("MainCategory")), null);
            }

            return(stuffEntity);
        }