Пример #1
0
 public NAS.DAL.Accounting.Currency.Currency GetDefaultCurrency(DevExpress.Xpo.Session session)
 {
     try
     {
         CurrencyType currencyType_Id_true = session.FindObject <CurrencyType>(
             CriteriaOperator.And(
                 new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.Equal),
                 new BinaryOperator("IsMaster", true, BinaryOperatorType.Equal)
                 ));
         Currency currency_Id_true = session.FindObject <Currency>(
             CriteriaOperator.And(
                 new BinaryOperator("CurrencyTypeId", currencyType_Id_true.CurrencyTypeId, BinaryOperatorType.Equal),
                 new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.Equal),
                 new BinaryOperator("IsDefault", true, BinaryOperatorType.Equal)
                 ));
         if (currency_Id_true != null)
         {
             return(currency_Id_true);
         }
         return(null);
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
Пример #2
0
        public static BaseObject PullCachedInstance(DevExpress.Xpo.Session session, BaseObject CachedInstance,
                                                    Type objType)
        {
            // return previous instance if session matches
            try
            {
                if (CachedInstance != null &&
                    ((BaseObject)CachedInstance).Session == session &&
                    !CachedInstance.IsDeleted)
                {
                    return(CachedInstance);
                }
            }
            catch (ObjectDisposedException)
            {
            }

            // return instance from new session
            var instance = session.FindObject(
                PersistentCriteriaEvaluationBehavior.InTransaction, objType, null) as BaseObject;

            if (instance == null)
            {
                // create SetOfBooks if it doesn't exist
                instance = Activator.CreateInstance(objType, session) as BaseObject;
                instance.Save();
            }
            return(instance);
        }
Пример #3
0
        public override void ItemsRequestedByFilterCondition(DevExpress.Xpo.Session session, object source, DevExpress.Web.ASPxEditors.ListEditItemsRequestedByFilterConditionEventArgs e)
        {
            ASPxComboBox combo = source as ASPxComboBox;
            XPCollection <Organization> collection = new XPCollection <Organization>(session);

            collection.SkipReturnedObjects = e.BeginIndex;
            collection.TopReturnedObjects  = e.EndIndex - e.BeginIndex + 1;

            //Get CUSTOMER trading type
            TradingCategory customerTradingCategory =
                session.FindObject <TradingCategory>(new BinaryOperator("Code", "CUSTOMER"));

            CriteriaOperator criteria = CriteriaOperator.And(
                //row status is active
                new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE),
                CriteriaOperator.Or(
                    //find code contains the filter
                    new BinaryOperator("Code", String.Format("%{0}%", e.Filter), BinaryOperatorType.Like),
                    //find name contains the filter
                    new BinaryOperator("Name", String.Format("%{0}%", e.Filter), BinaryOperatorType.Like)
                    ),
                //find customer and supplier
                new ContainsOperator("OrganizationCategories",
                                     CriteriaOperator.And(
                                         new BinaryOperator("TradingCategoryId", customerTradingCategory),
                                         new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE)
                                         )
                                     )
                );

            collection.Criteria = criteria;
            collection.Sorting.Add(new SortProperty("Code", DevExpress.Xpo.DB.SortingDirection.Ascending));

            combo.DataSource = collection;
            combo.DataBindItems();
        }
Пример #4
0
        public virtual void CreateBillItem(
            DevExpress.Xpo.Session session,
            Guid billId,
            Guid itemId,
            Guid unitId,
            double quantity,
            double price,
            double promotionInPercentage,
            string comment)
        {
            try
            {
                NAS.DAL.Invoice.Bill bill =
                    session.GetObjectByKey <NAS.DAL.Invoice.Bill>(billId);
                if (bill == null)
                {
                    throw new Exception("Could not found specific bill");
                }
                //Get ItemUnit
                Item item = session.GetObjectByKey <Item>(itemId);
                Unit unit = session.GetObjectByKey <Unit>(unitId);

                ItemUnit itemUnit = session.FindObject <ItemUnit>(
                    CriteriaOperator.And(
                        new BinaryOperator("ItemId", item),
                        new BinaryOperator("UnitId", unit),
                        CriteriaOperator.Or(
                            new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE),
                            new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_DEFAULT)
                            )
                        ));
                if (itemUnit == null)
                {
                    throw new Exception("Could not found item unit");
                }

                BillItem billItem = new BillItem(session)
                {
                    BillId  = bill,
                    Comment = comment,
                    //Currency
                    ItemUnitId        = itemUnit,
                    Price             = price,
                    PromotionInNumber = promotionInPercentage != -1
                        ? (price * quantity * promotionInPercentage) / 100 : 0,
                    PromotionInPercentage = promotionInPercentage,
                    Quantity   = quantity,
                    RowStatus  = Utility.Constant.ROWSTATUS_ACTIVE,
                    TotalPrice = price * quantity
                };
                billItem.Save();

                //update SumOfItemPrice
                bill.SumOfItemPrice = bill.BillItems.Sum(r => r.TotalPrice);
                bill.Save();

                if (bill.PromotionCalculationType.Equals(Utility.Constant.CALCULATION_TYPE_ON_ITEMS))
                {
                    UpdatePromotionOnItems(session, billId);
                }

                //Insert into BillItemTax...
                //Get VAT TaxType of Item
                ItemBO  itemBO  = new ItemBO();
                ItemTax itemTax = itemBO.GetCurrentVATOfItem(session, itemId);

                if (itemTax != null)
                {
                    BillItemTax billItemTax = new BillItemTax(session)
                    {
                        BillItemId      = billItem,
                        ItemTaxId       = itemTax,
                        TaxInNumber     = itemTax.TaxId.Amount,
                        TaxInPercentage = itemTax.TaxId.Percentage
                    };
                    billItemTax.Save();
                }

                UpdateSumOfTax(session, bill);

                #region Update bill Total
                bill.Total = bill.SumOfItemPrice - bill.SumOfPromotion + bill.SumOfTax;
                bill.Save();
                #endregion Update bill Total
            }
            catch (Exception ex)
            {
                throw;
            }
        }